site_pro/bin/0000755075506000000310000000000011734665236011415 5ustar namedsite_pro/bin/MailHandler.ashx0000644075506000000310000000331311640400606014442 0ustar named<%@ WebHandler Language="C#" Class="Handler" Debug="true" %> using System; using System.Web; using System.Net.Mail; using System.Text.RegularExpressions; public class Handler : IHttpHandler { public void ProcessRequest (HttpContext context) { SmtpClient mailClient = new SmtpClient(context.Request.Form.Get("smtpMailServer")); string owner_email = context.Request.Form.Get("owner_email"); string subject = "A message from your site visitor " + context.Request.Form.Get("name"); string email = context.Request.Form.Get("email"); string messageBody = ""; messageBody += "

Visitor: " + context.Request.Form.Get("name") + "

\n"; messageBody += "
\n"; messageBody += "

Email Address: " + context.Request.Form.Get("email") + "

\n"; messageBody += "
\n"; messageBody += "

Phone Number: " + context.Request.Form.Get("phone") + "

\n"; messageBody += "
\n"; messageBody += "

Message: " + context.Request.Form.Get("message") + "

\n"; MailMessage message = new MailMessage(); try{ message.From = new MailAddress(email.ToString()); }catch (FormatException e) { context.Response.Write(e.Message); } message.To.Add(owner_email); message.Subject = subject; if(context.Request.Form.Get("stripHTML") == "true"){ message.IsBodyHtml = false; messageBody = Regex.Replace(messageBody, "<.*?>", string.Empty); }else{ message.IsBodyHtml = true; } message.Body = messageBody; try{ mailClient.Send(message); }catch (SmtpException e) { context.Response.Write("mail failed"); } context.Response.Write("mail sent"); } public bool IsReusable { get { return false; } } }site_pro/bin/MailHandler.php0000644075506000000310000000244311674474456014316 0ustar namedVisitor: ' . $_POST["name"] . '

' . "\n"; $messageBody .= '
' . "\n"; } if($_POST['email']!='nope'){ $messageBody .= '

Email Address: ' . $_POST['email'] . '

' . "\n"; $messageBody .= '
' . "\n"; }else{ $headers = ''; } if($_POST['state']!='nope'){ $messageBody .= '

State: ' . $_POST['state'] . '

' . "\n"; $messageBody .= '
' . "\n"; } if($_POST['phone']!='nope'){ $messageBody .= '

Phone Number: ' . $_POST['phone'] . '

' . "\n"; $messageBody .= '
' . "\n"; } if($_POST['fax']!='nope'){ $messageBody .= '

Fax Number: ' . $_POST['fax'] . '

' . "\n"; $messageBody .= '
' . "\n"; } if($_POST['message']!='nope'){ $messageBody .= '

Message: ' . $_POST['message'] . '

' . "\n"; } if($_POST["stripHTML"] == 'true'){ $messageBody = strip_tags($messageBody); } try{ if(!mail($owner_email, $subject, $messageBody, $headers)){ throw new Exception('mail failed'); }else{ echo 'mail sent'; } }catch(Exception $e){ echo $e->getMessage() ."\n"; } ?>site_pro/blank.html0000644075506000000310000000205311731751200012602 0ustar named Page Title site_pro/cm.js0000644075506000000310000032365212121002013011556 0ustar namedwindow.CodeMirror=function(){"use strict";function w(a,c){if(!(this instanceof w))return new w(a,c);this.options=c=c||{};for(var d in Qc)!c.hasOwnProperty(d)&&Qc.hasOwnProperty(d)&&(c[d]=Qc[d]);I(c);var e="string"==typeof c.value?0:c.value.first,f=this.display=x(a,e);f.wrapper.CodeMirror=this,F(this),c.autofocus&&!o&&Fb(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,draggingText:!1,highlight:new He},D(this),c.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap");var g=c.value;"string"==typeof g&&(g=new Vd(c.value,c.mode)),xb(this,Zd)(this,g),b&&setTimeout(Re(Eb,this,!0),20),Hb(this);var h;try{h=document.activeElement==f.input}catch(i){}h||c.autofocus&&!o?setTimeout(Re(bc,this),20):cc(this),xb(this,function(){for(var a in Pc)Pc.propertyIsEnumerable(a)&&Pc[a](this,c[a],Sc);for(var b=0;Wc.length>b;++b)Wc[b](this)})()}function x(a,b){var d={},f=d.input=We("textarea",null,null,"position: absolute; padding: 0; width: 1px; height: 1em; outline: none;");e?f.style.width="1000px":f.setAttribute("wrap","off"),n&&(f.style.border="1px solid black"),f.setAttribute("autocorrect","off"),f.setAttribute("autocapitalize","off"),d.inputDiv=We("div",[f],null,"overflow: hidden; position: relative; width: 3px; height: 0px;"),d.scrollbarH=We("div",[We("div",null,null,"height: 1px")],"CodeMirror-hscrollbar"),d.scrollbarV=We("div",[We("div",null,null,"width: 1px")],"CodeMirror-vscrollbar"),d.scrollbarFiller=We("div",null,"CodeMirror-scrollbar-filler"),d.lineDiv=We("div"),d.selectionDiv=We("div",null,null,"position: relative; z-index: 1"),d.cursor=We("div","\u00a0","CodeMirror-cursor"),d.otherCursor=We("div","\u00a0","CodeMirror-cursor CodeMirror-secondarycursor"),d.measure=We("div",null,"CodeMirror-measure"),d.lineSpace=We("div",[d.measure,d.selectionDiv,d.lineDiv,d.cursor,d.otherCursor],null,"position: relative; outline: none"),d.mover=We("div",[We("div",[d.lineSpace],"CodeMirror-lines")],null,"position: relative"),d.sizer=We("div",[d.mover],"CodeMirror-sizer"),d.heightForcer=We("div",null,null,"position: absolute; height: "+Fe+"px; width: 1px;"),d.gutters=We("div",null,"CodeMirror-gutters"),d.lineGutter=null;var g=We("div",[d.sizer,d.heightForcer,d.gutters],null,"position: relative; min-height: 100%");return d.scroller=We("div",[g],"CodeMirror-scroll"),d.scroller.setAttribute("tabIndex","-1"),d.wrapper=We("div",[d.inputDiv,d.scrollbarH,d.scrollbarV,d.scrollbarFiller,d.scroller],"CodeMirror"),c&&(d.gutters.style.zIndex=-1,d.scroller.style.paddingRight=0),a.appendChild?a.appendChild(d.wrapper):a(d.wrapper),n&&(f.style.width="0px"),e||(d.scroller.draggable=!0),j?(d.inputDiv.style.height="1px",d.inputDiv.style.position="absolute"):c&&(d.scrollbarH.style.minWidth=d.scrollbarV.style.minWidth="18px"),d.viewOffset=d.lastSizeC=0,d.showingFrom=d.showingTo=b,d.lineNumWidth=d.lineNumInnerWidth=d.lineNumChars=null,d.prevInput="",d.alignWidgets=!1,d.pollingFast=!1,d.poll=new He,d.draggingText=!1,d.cachedCharWidth=d.cachedTextHeight=null,d.measureLineCache=[],d.measureLineCachePos=0,d.inaccurateSelection=!1,d.maxLine=null,d.maxLineLength=0,d.maxLineChanged=!1,d.wheelDX=d.wheelDY=d.wheelStartX=d.wheelStartY=null,d}function y(a){a.doc.mode=w.getMode(a.options,a.doc.modeOption),a.doc.iter(function(a){a.stateAfter&&(a.stateAfter=null),a.styles&&(a.styles=null)}),a.doc.frontier=a.doc.first,_(a,100),a.state.modeGen++,a.curOp&&Ab(a)}function z(a){a.options.lineWrapping?(a.display.wrapper.className+=" CodeMirror-wrap",a.display.sizer.style.minWidth=""):(a.display.wrapper.className=a.display.wrapper.className.replace(" CodeMirror-wrap",""),H(a)),B(a),Ab(a),kb(a),setTimeout(function(){J(a.display,a.doc.height)},100)}function A(a){var b=sb(a.display),c=a.options.lineWrapping,d=c&&Math.max(5,a.display.scroller.clientWidth/tb(a.display)-3);return function(e){return ud(a.doc,e)?0:c?(Math.ceil(e.text.length/d)||1)*b:b}}function B(a){var b=a.doc,c=A(a);b.iter(function(a){var b=c(a);b!=a.height&&be(a,b)})}function C(a){var b=$c[a.options.keyMap].style;a.display.wrapper.className=a.display.wrapper.className.replace(/\s*cm-keymap-\S+/g,"")+(b?" cm-keymap-"+b:"")}function D(a){a.display.wrapper.className=a.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+a.options.theme.replace(/(^|\s)\s*/g," cm-s-"),kb(a)}function E(a){F(a),Ab(a)}function F(a){var b=a.display.gutters,c=a.options.gutters;Xe(b);for(var d=0;c.length>d;++d){var e=c[d],f=b.appendChild(We("div",null,"CodeMirror-gutter "+e));"CodeMirror-linenumbers"==e&&(a.display.lineGutter=f,f.style.width=(a.display.lineNumWidth||1)+"px")}b.style.display=d?"":"none"}function G(a,b){if(0==b.height)return 0;for(var d,c=b.text.length,e=b;d=rd(e);){var f=d.find();e=$d(a,f.from.line),c+=f.from.ch-f.to.ch}for(e=b;d=sd(e);){var f=d.find();c-=e.text.length-f.from.ch,e=$d(a,f.to.line),c+=e.text.length-f.to.ch}return c}function H(a){var b=a.display,c=a.doc;b.maxLine=$d(c,c.first),b.maxLineLength=G(c,b.maxLine),b.maxLineChanged=!0,c.iter(function(a){var d=G(c,a);d>b.maxLineLength&&(b.maxLineLength=d,b.maxLine=a)})}function I(a){for(var b=!1,c=0;a.gutters.length>c;++c)"CodeMirror-linenumbers"==a.gutters[c]&&(a.lineNumbers?b=!0:a.gutters.splice(c--,1));!b&&a.lineNumbers&&a.gutters.push("CodeMirror-linenumbers")}function J(a,b){var c=b+2*db(a);a.sizer.style.minHeight=a.heightForcer.style.top=c+"px";var d=Math.max(c,a.scroller.scrollHeight),e=a.scroller.scrollWidth>a.scroller.clientWidth,f=d>a.scroller.clientHeight;f?(a.scrollbarV.style.display="block",a.scrollbarV.style.bottom=e?cf(a.measure)+"px":"0",a.scrollbarV.firstChild.style.height=d-a.scroller.clientHeight+a.scrollbarV.clientHeight+"px"):a.scrollbarV.style.display="",e?(a.scrollbarH.style.display="block",a.scrollbarH.style.right=f?cf(a.measure)+"px":"0",a.scrollbarH.firstChild.style.width=a.scroller.scrollWidth-a.scroller.clientWidth+a.scrollbarH.clientWidth+"px"):a.scrollbarH.style.display="",e&&f?(a.scrollbarFiller.style.display="block",a.scrollbarFiller.style.height=a.scrollbarFiller.style.width=cf(a.measure)+"px"):a.scrollbarFiller.style.display="",k&&0===cf(a.measure)&&(a.scrollbarV.style.minWidth=a.scrollbarH.style.minHeight=l?"18px":"12px")}function K(a,b,c){var d=a.scroller.scrollTop,e=a.wrapper.clientHeight;"number"==typeof c?d=c:c&&(d=c.top,e=c.bottom-c.top),d=Math.floor(d-db(a));var f=Math.ceil(d+e);return{from:de(b,d),to:de(b,f)}}function L(a){var b=a.display;if(b.alignWidgets||b.gutters.firstChild&&a.options.fixedGutter){for(var c=O(b)-b.scroller.scrollLeft+a.doc.scrollLeft,d=b.gutters.offsetWidth,e=c+"px",f=b.lineDiv.firstChild;f;f=f.nextSibling)if(f.alignable)for(var g=0,h=f.alignable;h.length>g;++g)h[g].style.left=e;a.options.fixedGutter&&(b.gutters.style.left=c+d+"px")}}function M(a){if(!a.options.lineNumbers)return!1;var b=a.doc,c=N(a.options,b.first+b.size-1),d=a.display;if(c.length!=d.lineNumChars){var e=d.measure.appendChild(We("div",[We("div",c)],"CodeMirror-linenumber CodeMirror-gutter-elt")),f=e.firstChild.offsetWidth,g=e.offsetWidth-f;return d.lineGutter.style.width="",d.lineNumInnerWidth=Math.max(f,d.lineGutter.offsetWidth-g),d.lineNumWidth=d.lineNumInnerWidth+g,d.lineNumChars=d.lineNumInnerWidth?c.length:-1,d.lineGutter.style.width=d.lineNumWidth+"px",!0}return!1}function N(a,b){return a.lineNumberFormatter(b+a.firstLineNumber)+""}function O(a){return $e(a.scroller).left-$e(a.sizer).left}function P(a,b,c){var d=a.display.showingFrom,e=a.display.showingTo,f=Q(a,b,c);return f&&(Ce(a,"update",a),(a.display.showingFrom!=d||a.display.showingTo!=e)&&Ce(a,"viewportChange",a,a.display.showingFrom,a.display.showingTo)),X(a),J(a.display,a.doc.height),f}function Q(a,b,d){var e=a.display,f=a.doc;if(!e.wrapper.clientWidth)return e.showingFrom=e.showingTo=f.first,e.viewOffset=0,void 0;var g=K(e,f,d);if(!(0==b.length&&g.from>e.showingFrom&&g.toj;++j)if(b[j].diff){i=b[j].from;break}var k=f.first+f.size,l=Math.max(g.from-a.options.viewportMargin,f.first),m=Math.min(k,g.to+a.options.viewportMargin);if(l>e.showingFrom&&20>l-e.showingFrom&&(l=Math.max(f.first,e.showingFrom)),e.showingTo>m&&20>e.showingTo-m&&(m=Math.min(k,e.showingTo)),v)for(l=ce(td(f,$d(f,l)));k>m&&ud(f,$d(f,m));)++m;var n=[{from:Math.max(e.showingFrom,f.first),to:Math.min(e.showingTo,k)}];if(n=n[0].from>=n[0].to?[]:S(n,b),v)for(var j=0;n.length>j;++j)for(var p,o=n[j];p=sd($d(f,o.to-1));){var q=p.find().from.line;if(!(q>o.from)){n.splice(j--,1);break}o.to=q}for(var r=0,j=0;n.length>j;++j){var o=n[j];l>o.from&&(o.from=l),o.to>m&&(o.to=m),o.from>=o.to?n.splice(j--,1):r+=o.to-o.from}if(r==m-l&&l==e.showingFrom&&m==e.showingTo)return R(a),void 0;n.sort(function(a,b){return a.from-b.from});var s=document.activeElement;.7*(m-l)>r&&(e.lineDiv.style.display="none"),U(a,l,m,n,i),e.lineDiv.style.display="",document.activeElement!=s&&s.offsetHeight&&s.focus();var t=l!=e.showingFrom||m!=e.showingTo||e.lastSizeC!=e.wrapper.clientHeight;t&&(e.lastSizeC=e.wrapper.clientHeight),e.showingFrom=l,e.showingTo=m,_(a,100);for(var x,u=e.lineDiv.offsetTop,w=e.lineDiv.firstChild;w;w=w.nextSibling)if(w.lineObj){if(c){var y=w.offsetTop+w.offsetHeight;x=y-u,u=y}else{var z=$e(w);x=z.bottom-z.top}var A=w.lineObj.height-x;if(2>x&&(x=sb(e)),A>.001||-.001>A){be(w.lineObj,x);var B=w.lineObj.widgets;if(B)for(var j=0;B.length>j;++j)B[j].height=B[j].node.offsetHeight}}return R(a),K(e,f,d).to>m&&Q(a,[],d),!0}}function R(a){var b=a.display.viewOffset=ee(a,$d(a.doc,a.display.showingFrom));a.display.mover.style.top=b+"px"}function S(a,b){for(var c=0,d=b.length||0;d>c;++c){for(var e=b[c],f=[],g=e.diff||0,h=0,i=a.length;i>h;++h){var j=a[h];e.to<=j.from&&e.diff?f.push({from:j.from+g,to:j.to+g}):e.to<=j.from||e.from>=j.to?f.push(j):(e.from>j.from&&f.push({from:j.from,to:e.from}),e.toc;++c)if(b.widgets[c].showIfHidden){var e=k.previousSibling;if(/pre/i.test(e.nodeName)){var h=We("div",null,null,"position: relative");e.parentNode.replaceChild(h,e),h.appendChild(e),e=h}var o=e.appendChild(We("div",[b.widgets[c].node],"CodeMirror-linewidget"));W(b.widgets[c],o,e,g)}}else if(m&&n>=m.from&&m.to>n){for(;k.lineObj!=b;)k=l(k);i&&n>=f&&k.lineNumber&&Ze(k.lineNumber,N(a.options,n)),k=k.nextSibling}else{if(b.widgets)for(var r,p=0,q=k;q&&20>p;++p,q=q.nextSibling)if(q.lineObj==b&&/div/i.test(q.nodeName)){r=q;break}var s=V(a,b,n,g,r);if(s!=r)j.insertBefore(s,k);else{for(;k!=r;)k=l(k);k=k.nextSibling}s.lineObj=b}++n});k;)k=l(k)}function V(a,b,d,e,f){var j,g=Ld(a,b),h=b.gutterMarkers,i=a.display;if(!(a.options.lineNumbers||h||b.bgClass||b.wrapClass||b.widgets))return g;if(f){f.alignable=null;for(var n,k=!0,l=0,m=f.firstChild;m;m=n)if(n=m.nextSibling,/\bCodeMirror-linewidget\b/.test(m.className)){for(var o=0,p=!0;b.widgets.length>o;++o){var q=b.widgets[o],r=!1;if(q.above||(r=p,p=!1),q.node==m.firstChild){W(q,m,f,e),++l,r&&f.insertBefore(g,m);break}}if(o==b.widgets.length){k=!1;break}}else f.removeChild(m);k&&l==b.widgets.length&&(j=f,f.className=b.wrapClass||"")}if(j||(j=We("div",null,b.wrapClass,"position: relative"),j.appendChild(g)),b.bgClass&&j.insertBefore(We("div",null,b.bgClass+" CodeMirror-linebackground"),j.firstChild),a.options.lineNumbers||h){var s=j.insertBefore(We("div",null,null,"position: absolute; left: "+(a.options.fixedGutter?e.fixedPos:-e.gutterTotalWidth)+"px"),j.firstChild);if(a.options.fixedGutter&&(j.alignable||(j.alignable=[])).push(s),!a.options.lineNumbers||h&&h["CodeMirror-linenumbers"]||(j.lineNumber=s.appendChild(We("div",N(a.options,d),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+e.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+i.lineNumInnerWidth+"px"))),h)for(var t=0;a.options.gutters.length>t;++t){var u=a.options.gutters[t],v=h.hasOwnProperty(u)&&h[u];v&&s.appendChild(We("div",[v],"CodeMirror-gutter-elt","left: "+e.gutterLeft[u]+"px; width: "+e.gutterWidth[u]+"px"))}}if(c&&(j.style.zIndex=2),b.widgets&&j!=f)for(var o=0,w=b.widgets;w.length>o;++o){var q=w[o],x=We("div",[q.node],"CodeMirror-linewidget");W(q,x,j,e),q.above?j.insertBefore(x,a.options.lineNumbers&&0!=b.height?s:g):j.appendChild(x),Ce(q,"redraw")}return j}function W(a,b,c,d){if(a.noHScroll){(c.alignable||(c.alignable=[])).push(b);var e=d.wrapperWidth;b.style.left=d.fixedPos+"px",a.coverGutter||(e-=d.gutterTotalWidth,b.style.paddingLeft=d.gutterTotalWidth+"px"),b.style.width=e+"px"}a.coverGutter&&(b.style.zIndex=5,b.style.position="relative",a.noHScroll||(b.style.marginLeft=-d.gutterTotalWidth+"px"))}function X(a){var b=a.display,c=rc(a.doc.sel.from,a.doc.sel.to);c||a.options.showCursorWhenSelecting?Y(a):b.cursor.style.display=b.otherCursor.style.display="none",c?b.selectionDiv.style.display="none":Z(a);var d=nb(a,a.doc.sel.head,"div"),e=$e(b.wrapper),f=$e(b.lineDiv);b.inputDiv.style.top=Math.max(0,Math.min(b.wrapper.clientHeight-10,d.top+f.top-e.top))+"px",b.inputDiv.style.left=Math.max(0,Math.min(b.wrapper.clientWidth-10,d.left+f.left-e.left))+"px"}function Y(a){var b=a.display,c=nb(a,a.doc.sel.head,"div");b.cursor.style.left=c.left+"px",b.cursor.style.top=c.top+"px",b.cursor.style.height=Math.max(0,c.bottom-c.top)*a.options.cursorHeight+"px",b.cursor.style.display="",c.other?(b.otherCursor.style.display="",b.otherCursor.style.left=c.other.left+"px",b.otherCursor.style.top=c.other.top+"px",b.otherCursor.style.height=.85*(c.other.bottom-c.other.top)+"px"):b.otherCursor.style.display="none"}function Z(a){function h(a,b,c,d){0>b&&(b=0),e.appendChild(We("div",null,"CodeMirror-selected","position: absolute; left: "+a+"px; top: "+b+"px; width: "+(null==c?f-a:c)+"px; height: "+(d-b)+"px"))}function i(b,d,e,i){function m(c){return mb(a,qc(b,c),"div",j)}var j=$d(c,b),k=j.text.length,l=i?1/0:-1/0;return kf(fe(j),d||0,null==e?k:e,function(a,b,c){var j=m("rtl"==c?b-1:a),n=m("rtl"==c?a:b-1),o=j.left,p=n.right;n.top-j.top>3&&(h(o,j.top,null,j.bottom),o=g,j.bottomo&&(o=g),h(o,n.top,p-o,n.bottom)}),l}var b=a.display,c=a.doc,d=a.doc.sel,e=document.createDocumentFragment(),f=b.lineSpace.offsetWidth,g=eb(a.display);if(d.from.line==d.to.line)i(d.from.line,d.from.ch,d.to.ch);else{for(var l,n,j=$d(c,d.from.line),k=j,m=[d.from.line,d.from.ch];l=sd(k);){var o=l.find();if(m.push(o.from.ch,o.to.line,o.to.ch),o.to.line==d.to.line){m.push(d.to.ch),n=!0;break}k=$d(c,o.to.line)}if(n)for(var p=0;m.length>p;p+=3)i(m[p],m[p+1],m[p+2]);else{var q,r,s=$d(c,d.to.line);q=d.from.ch?i(d.from.line,d.from.ch,null,!1):ee(a,j)-b.viewOffset,r=d.to.ch?i(d.to.line,rd(s)?null:0,d.to.ch,!0):ee(a,s)-b.viewOffset,r>q&&h(g,q,null,r)}}Ye(b.selectionDiv,e),b.selectionDiv.style.display=""}function $(a){var b=a.display;clearInterval(b.blinker);var c=!0;b.cursor.style.visibility=b.otherCursor.style.visibility="",b.blinker=setInterval(function(){b.cursor.offsetHeight&&(b.cursor.style.visibility=b.otherCursor.style.visibility=(c=!c)?"":"hidden")},a.options.cursorBlinkRate)}function _(a,b){a.doc.mode.startState&&a.doc.frontier=a.display.showingTo)){var f,c=+new Date+a.options.workTime,d=Xc(b.mode,cb(a,b.frontier)),e=[];b.iter(b.frontier,Math.min(b.first+b.size,a.display.showingTo+500),function(g){if(b.frontier>=a.display.showingFrom){var h=g.styles;g.styles=Gd(a,g,d);for(var i=!h||h.length!=g.styles.length,j=0;!i&&h.length>j;++j)i=h[j]!=g.styles[j];i&&(f&&f.end==b.frontier?f.end++:e.push(f={start:b.frontier,end:b.frontier+1})),g.stateAfter=Xc(b.mode,d)}else Id(a,g,d),g.stateAfter=0==b.frontier%5?Xc(b.mode,d):null;return++b.frontier,+new Date>c?(_(a,a.options.workDelay),!0):void 0}),e.length&&xb(a,function(){for(var a=0;e.length>a;++a)Ab(this,e[a].start,e[a].end)})()}}function bb(a,b){for(var c,d,e=a.doc,f=b,g=b-100;f>g;--f){if(e.first>=f)return e.first;var h=$d(e,f-1);if(h.stateAfter)return f;var i=Ie(h.text,null,a.options.tabSize);(null==d||c>i)&&(d=f-1,c=i)}return d}function cb(a,b){var c=a.doc,d=a.display;if(!c.mode.startState)return!0;var e=bb(a,b),f=e>c.first&&$d(c,e-1).stateAfter;return f=f?Xc(c.mode,f):Yc(c.mode),c.iter(e,b,function(g){Id(a,g,f);var h=e==b-1||0==e%5||e>=d.showingFrom&&d.showingTo>e;g.stateAfter=h?Xc(c.mode,f):null,++e}),f}function db(a){return a.lineSpace.offsetTop}function eb(a){var b=Ye(a.measure,We("pre",null,null,"text-align: left")).appendChild(We("span","x"));return b.offsetLeft}function fb(a,b,c,d){var e=-1;d=d||hb(a,b);for(var f=c;;f+=e){var g=d[f];if(g)break;0>e&&0==f&&(e=1)}return{left:c>f?g.right:g.left,right:f>c?g.left:g.right,top:g.top,bottom:g.bottom}}function gb(a,b){for(var c=a.display.measureLineCache,d=0;c.length>d;++d){var e=c[d];if(e.text==b.text&&e.markedSpans==b.markedSpans&&a.display.scroller.clientWidth==e.width&&e.classes==b.textClass+"|"+b.bgClass+"|"+b.wrapClass)return e.measure}}function hb(a,b){var c=gb(a,b);if(!c){c=ib(a,b);var d=a.display.measureLineCache,e={text:b.text,width:a.display.scroller.clientWidth,markedSpans:b.markedSpans,measure:c,classes:b.textClass+"|"+b.bgClass+"|"+b.wrapClass};16==d.length?d[++a.display.measureLineCachePos%16]=e:d.push(e)}return c}function ib(a,e){var f=a.display,g=Qe(e.text.length),h=Ld(a,e,g);if(b&&!c&&!a.options.lineWrapping&&h.childNodes.length>100){for(var i=document.createDocumentFragment(),j=10,k=h.childNodes.length,l=0,m=Math.ceil(k/j);m>l;++l){for(var n=We("div",null,null,"display: inline-block"),o=0;j>o&&k;++o)n.appendChild(h.firstChild),--k;i.appendChild(n)}h.appendChild(i)}Ye(f.measure,h);var p=$e(f.lineDiv),q=[],r=Qe(e.text.length),s=h.offsetHeight;d&&f.measure.first!=h&&Ye(f.measure,h);for(var t,l=0;g.length>l;++l)if(t=g[l]){for(var u=$e(t),v=Math.max(0,u.top-p.top),w=Math.min(u.bottom-p.top,s),o=0;q.length>o;o+=2){var x=q[o],y=q[o+1];if(!(x>w||v>y)&&(v>=x&&y>=w||x>=v&&w>=y||Math.min(w,y)-Math.max(v,x)>=w-v>>1)){q[o]=Math.min(v,x),q[o+1]=Math.max(w,y);break}}o==q.length&&q.push(v,w);var z=u.right;t.measureRight&&(z=$e(t.measureRight).left),r[l]={left:u.left-p.left,right:z-p.left,top:o}}for(var t,l=0;r.length>l;++l)if(t=r[l]){var A=t.top;t.top=q[A],t.bottom=q[A+1]}return r}function jb(a,b){var c=!1;if(b.markedSpans)for(var d=0;b.markedSpans>d;++d){var e=b.markedSpans[d];!e.collapsed||null!=e.to&&e.to!=b.text.length||(c=!0)}var f=!c&&gb(a,b);if(f)return fb(a,b,b.text.length,f).right;var g=Ld(a,b),h=g.appendChild(ef(a.display.measure));return Ye(a.display.measure,g),$e(h).right-$e(a.display.lineDiv).left}function kb(a){a.display.measureLineCache.length=a.display.measureLineCachePos=0,a.display.cachedCharWidth=a.display.cachedTextHeight=null,a.display.maxLineChanged=!0,a.display.lineNumChars=null}function lb(a,b,c,d){if(b.widgets)for(var e=0;b.widgets.length>e;++e)if(b.widgets[e].above){var f=Ad(b.widgets[e]);c.top+=f,c.bottom+=f}if("line"==d)return c;d||(d="local");var g=ee(a,b);if("local"!=d&&(g-=a.display.viewOffset),"page"==d){var h=$e(a.display.lineSpace);g+=h.top+(window.pageYOffset||(document.documentElement||document.body).scrollTop);var i=h.left+(window.pageXOffset||(document.documentElement||document.body).scrollLeft);c.left+=i,c.right+=i}return c.top+=g,c.bottom+=g,c}function mb(a,b,c,d){return d||(d=$d(a.doc,b.line)),lb(a,d,fb(a,d,b.ch),c)}function nb(a,b,c,d,e){function f(b,f){var g=fb(a,d,b,e);return f?g.left=g.right:g.right=g.left,lb(a,d,g,c)}d=d||$d(a.doc,b.line),e||(e=hb(a,d));var g=fe(d),h=b.ch;if(!g)return f(h);for(var i,j,k=g[0].level,l=0;g.length>l;++l){var o,p,m=g[l],n=m.level%2;if(h>m.from&&m.to>h)return f(h,n);var q=n?m.to:m.from,r=n?m.from:m.to;if(q==h)p=l&&m.level<(o=g[l-1]).level?f(o.level%2?o.from:o.to-1,!0):f(n&&m.from!=m.to?h-1:h),n==k?i=p:j=p;else if(r==h){var o=g.length-1>l&&g[l+1];if(!n&&o&&o.from==o.to)continue;p=o&&m.levelc)return ob(d.first,0,!0);var e=de(d,c),f=d.first+d.size-1;if(e>f)return ob(d.first+d.size-1,$d(d,f).text.length,!0);for(0>b&&(b=0);;){var g=$d(d,e),h=qb(a,g,e,b,c),i=sd(g),j=i&&i.find();if(!(i&&h.ch>=j.from.ch))return h;e=j.to.line}}function qb(a,b,c,d,e){function j(d){var e=nb(a,qc(c,d),"line",b,i);return g=!0,f>e.bottom?Math.max(0,e.left-h):e.top>f?e.left+h:(g=!1,e.left)}var f=e-ee(a,b),g=!1,h=a.display.wrapper.clientWidth,i=hb(a,b),k=fe(b),l=b.text.length,m=nf(b),n=of(b),o=j(m),p=g,q=j(n),r=g;if(d>q)return ob(c,n,r);for(;;){if(k?n==m||n==rf(b,m,1):1>=n-m){for(var s=q-d>d-o,t=s?m:n;Ve.test(b.text.charAt(t));)++t;var u=ob(c,t,s?p:r);return u.after=s,u}var v=Math.ceil(l/2),w=m+v;if(k){w=m;for(var x=0;v>x;++x)w=rf(b,w,1)}var y=j(w);y>d?(n=w,q=y,(r=g)&&(q+=1e3),l-=v):(m=w,o=y,p=g,l=v)}}function sb(a){if(null!=a.cachedTextHeight)return a.cachedTextHeight;if(null==rb){rb=We("pre");for(var b=0;49>b;++b)rb.appendChild(document.createTextNode("x")),rb.appendChild(We("br"));rb.appendChild(document.createTextNode("x"))}Ye(a.measure,rb);var c=rb.offsetHeight/50;return c>3&&(a.cachedTextHeight=c),Xe(a.measure),c||1}function tb(a){if(null!=a.cachedCharWidth)return a.cachedCharWidth;var b=We("span","x"),c=We("pre",[b]);Ye(a.measure,c);var d=b.offsetWidth;return d>2&&(a.cachedCharWidth=d),d||10}function vb(a){a.curOp={changes:[],updateInput:null,userSelChange:null,textChanged:null,selectionChanged:!1,updateMaxLine:!1,updateScrollPos:!1,id:++ub},Be++||(Ae=[])}function wb(a){var b=a.curOp,c=a.doc,d=a.display;if(a.curOp=null,b.updateMaxLine&&H(a),d.maxLineChanged&&!a.options.lineWrapping){var e=jb(a,d.maxLine);d.sizer.style.minWidth=Math.max(0,e+3+Fe)+"px",d.maxLineChanged=!1;var f=Math.max(0,d.sizer.offsetLeft+d.sizer.offsetWidth-d.scroller.clientWidth);c.scrollLeft>f&&!b.updateScrollPos&&Rb(a,Math.min(d.scroller.scrollLeft,f),!0)}var g,h;if(b.updateScrollPos)g=b.updateScrollPos;else if(b.selectionChanged&&d.scroller.clientHeight){var i=nb(a,c.sel.head);g=Gc(a,i.left,i.top,i.left,i.bottom)}(b.changes.length||g&&null!=g.scrollTop)&&(h=P(a,b.changes,g&&g.scrollTop)),!h&&b.selectionChanged&&X(a),b.updateScrollPos?(d.scroller.scrollTop=d.scrollbarV.scrollTop=c.scrollTop=g.scrollTop,d.scroller.scrollLeft=d.scrollbarH.scrollLeft=c.scrollLeft=g.scrollLeft,L(a)):g&&Dc(a),b.selectionChanged&&$(a),a.state.focused&&b.updateInput&&Eb(a,b.userSelChange);var j=b.maybeHiddenMarkers,k=b.maybeUnhiddenMarkers;if(j)for(var l=0;j.length>l;++l)j[l].lines.length||ze(j[l],"hide");if(k)for(var l=0;k.length>l;++l)k[l].lines.length&&ze(k[l],"unhide");var m;if(--Be||(m=Ae,Ae=null),b.textChanged&&ze(a,"change",a,b.textChanged),b.selectionChanged&&ze(a,"cursorActivity",a),m)for(var l=0;m.length>l;++l)m[l]()}function xb(a,b){return function(){var c=a||this,d=!c.curOp;d&&vb(c);try{var e=b.apply(c,arguments)}finally{d&&wb(c)}return e}}function yb(a){return function(){var c,b=this.cm&&!this.cm.curOp;b&&vb(this.cm);try{c=a.apply(this,arguments)}finally{b&&wb(this.cm)}return c}}function zb(a,b){var d,c=!a.curOp;c&&vb(a);try{d=b()}finally{c&&wb(a)}return d}function Ab(a,b,c,d){null==b&&(b=a.doc.first),null==c&&(c=a.doc.first+a.doc.size),a.curOp.changes.push({from:b,to:c,diff:d})}function Bb(a){a.display.pollingFast||a.display.poll.set(a.options.pollInterval,function(){Db(a),a.state.focused&&Bb(a)})}function Cb(a){function c(){var d=Db(a);d||b?(a.display.pollingFast=!1,Bb(a)):(b=!0,a.display.poll.set(60,c))}var b=!1;a.display.pollingFast=!0,a.display.poll.set(20,c)}function Db(a){var c=a.display.input,d=a.display.prevInput,e=a.doc,f=e.sel;if(!a.state.focused||gf(c)||Gb(a))return!1;var g=c.value;if(g==d&&rc(f.from,f.to))return!1;if(b&&g&&0===c.selectionStart)return Eb(a,!0),!1;var h=!a.curOp;h&&vb(a),f.shift=!1;for(var i=0,j=Math.min(d.length,g.length);j>i&&d[i]==g[i];)++i;var k=f.from,l=f.to;d.length>i?k=qc(k.line,k.ch-(d.length-i)):a.state.overwrite&&rc(k,l)&&!a.state.pasteIncoming&&(l=qc(l.line,Math.min($d(e,l.line).text.length,l.ch+(g.length-i))));var m=a.curOp.updateInput;return jc(a.doc,{from:k,to:l,text:ff(g.slice(i)),origin:a.state.pasteIncoming?"paste":"+input"},"end"),a.curOp.updateInput=m,g.length>1e3?c.value=a.display.prevInput="":a.display.prevInput=g,h&&wb(a),a.state.pasteIncoming=!1,!0}function Eb(a,b){var c,d,e=a.doc;rc(e.sel.from,e.sel.to)?b&&(a.display.prevInput=a.display.input.value=""):(a.display.prevInput="",c=hf&&(e.sel.to.line-e.sel.from.line>100||(d=a.getSelection()).length>1e3),a.display.input.value=c?"-":d||a.getSelection(),a.state.focused&&Me(a.display.input)),a.display.inaccurateSelection=c}function Fb(a){"nocursor"==a.options.readOnly||o&&document.activeElement==a.display.input||a.display.input.focus()}function Gb(a){return a.options.readOnly||a.doc.cantEdit}function Hb(a){function c(){a.state.focused&&setTimeout(Re(Fb,a),0)}function d(){b.cachedCharWidth=b.cachedTextHeight=null,kb(a),zb(a,Re(Ab,a))}function e(){for(var a=b.wrapper.parentNode;a&&a!=document.body;a=a.parentNode);a?setTimeout(e,5e3):ye(window,"resize",d)}function f(b){a.options.onDragEvent&&a.options.onDragEvent(a,re(b))||ue(b)}function g(){b.inaccurateSelection&&(b.prevInput="",b.inaccurateSelection=!1,b.input.value=a.getSelection(),Me(b.input))}var b=a.display;xe(b.scroller,"mousedown",xb(a,Mb)),xe(b.scroller,"dblclick",xb(a,se)),xe(b.lineSpace,"selectstart",function(a){Ib(b,a)||se(a)}),t||xe(b.scroller,"contextmenu",function(b){ec(a,b)}),xe(b.scroller,"scroll",function(){Qb(a,b.scroller.scrollTop),Rb(a,b.scroller.scrollLeft,!0),ze(a,"scroll",a)}),xe(b.scrollbarV,"scroll",function(){Qb(a,b.scrollbarV.scrollTop)}),xe(b.scrollbarH,"scroll",function(){Rb(a,b.scrollbarH.scrollLeft)}),xe(b.scroller,"mousewheel",function(b){Ub(a,b)}),xe(b.scroller,"DOMMouseScroll",function(b){Ub(a,b)}),xe(b.scrollbarH,"mousedown",c),xe(b.scrollbarV,"mousedown",c),xe(b.wrapper,"scroll",function(){b.wrapper.scrollTop=b.wrapper.scrollLeft=0}),xe(window,"resize",d),setTimeout(e,5e3),xe(b.input,"keyup",xb(a,function(b){a.options.onKeyEvent&&a.options.onKeyEvent(a,re(b))||16==b.keyCode&&(a.doc.sel.shift=!1)})),xe(b.input,"input",Re(Cb,a)),xe(b.input,"keydown",xb(a,_b)),xe(b.input,"keypress",xb(a,ac)),xe(b.input,"focus",Re(bc,a)),xe(b.input,"blur",Re(cc,a)),a.options.dragDrop&&(xe(b.scroller,"dragstart",function(b){Pb(a,b)}),xe(b.scroller,"dragenter",f),xe(b.scroller,"dragover",f),xe(b.scroller,"drop",xb(a,Nb))),xe(b.scroller,"paste",function(c){Ib(b,c)||(Fb(a),Cb(a))}),xe(b.input,"paste",function(){a.state.pasteIncoming=!0,Cb(a)}),xe(b.input,"cut",g),xe(b.input,"copy",g),j&&xe(b.sizer,"mouseup",function(){document.activeElement==b.input&&b.input.blur(),Fb(a)})}function Ib(a,b){for(var c=ve(b);c!=a.wrapper;c=c.parentNode){if(!c)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(c.className)||c.parentNode==a.sizer&&c!=a.mover)return!0}}function Jb(a,b,c){var d=a.display;if(!c){var e=ve(b);if(e==d.scrollbarH||e==d.scrollbarH.firstChild||e==d.scrollbarV||e==d.scrollbarV.firstChild||e==d.scrollbarFiller)return null}var f,g,h=$e(d.lineSpace);try{f=b.clientX,g=b.clientY}catch(b){return null}return pb(a,f-h.left,g-h.top)}function Mb(a){function p(a){if("single"==j)return yc(c.doc,vc(f,h),a),void 0;if(n=vc(f,n),o=vc(f,o),"double"==j){var b=Nc($d(f,a.line).text,a);sc(a,n)?yc(c.doc,b.from,o):yc(c.doc,n,b.to)}else"triple"==j&&(sc(a,n)?yc(c.doc,o,vc(f,qc(a.line,0))):yc(c.doc,n,vc(f,qc(a.line+1,0))))}function s(a){var b=++r,e=Jb(c,a,!0);if(e)if(rc(e,l)){var h=a.clientYq.bottom?20:0;h&&setTimeout(xb(c,function(){r==b&&(d.scroller.scrollTop+=h,s(a))}),50)}else{c.state.focused||bc(c),l=e,p(e);var g=K(d,f);(e.line>=g.to||e.linei-400&&rc(Lb.pos,h))j="triple",se(a),setTimeout(Re(Fb,c),20),Oc(c,h.line);else if(Kb&&Kb.time>i-400&&rc(Kb.pos,h)){j="double",Lb={time:i,pos:h},se(a);var k=Nc($d(f,h.line).text,h);yc(c.doc,k.from,k.to)}else Kb={time:i,pos:h};var l=h;if(c.options.dragDrop&&_e&&!Gb(c)&&!rc(g.from,g.to)&&!sc(h,g.from)&&!sc(g.to,h)&&"single"==j){var m=xb(c,function(b){e&&(d.scroller.draggable=!1),c.state.draggingText=!1,ye(document,"mouseup",m),ye(d.scroller,"drop",m),10>Math.abs(a.clientX-b.clientX)+Math.abs(a.clientY-b.clientY)&&(se(b),yc(c.doc,h),Fb(c))});return e&&(d.scroller.draggable=!0),c.state.draggingText=m,d.scroller.dragDrop&&d.scroller.dragDrop(),xe(document,"mouseup",m),xe(d.scroller,"drop",m),void 0}se(a),"single"==j&&yc(c.doc,vc(f,h));var n=g.from,o=g.to,q=$e(d.wrapper),r=0,v=xb(c,function(a){b||we(a)?s(a):u(a)}),w=xb(c,u);xe(document,"mousemove",v),xe(document,"mouseup",w)}}function Nb(a){var b=this;if(!(Ib(b.display,a)||b.options.onDragEvent&&b.options.onDragEvent(b,re(a)))){se(a);var c=Jb(b,a,!0),d=a.dataTransfer.files;if(c&&!Gb(b))if(d&&d.length&&window.FileReader&&window.File)for(var e=d.length,f=Array(e),g=0,h=function(a,d){var h=new FileReader;h.onload=function(){f[d]=h.result,++g==e&&(c=vc(b.doc,c),jc(b.doc,{from:c,to:c,text:ff(f.join("\n")),origin:"paste"},"around"))},h.readAsText(a)},i=0;e>i;++i)h(d[i],i);else{if(b.state.draggingText&&!sc(c,b.doc.sel.from)&&!sc(b.doc.sel.to,c))return b.state.draggingText(a),setTimeout(Re(Fb,b),20),void 0;try{var f=a.dataTransfer.getData("Text");if(f){var j=b.doc.sel.from,k=b.doc.sel.to;Ac(b.doc,c,c),b.state.draggingText&&pc(b.doc,"",j,k,"paste"),b.replaceSelection(f,null,"paste"),Fb(b),bc(b)}}catch(a){}}}}function Ob(a,b){var c=a.display;try{var d=b.clientX,e=b.clientY}catch(b){return!1}if(d>=Math.floor($e(c.gutters).right))return!1;if(se(b),!Ee(a,"gutterClick"))return!0;var f=$e(c.lineDiv);if(e>f.bottom)return!0;e-=f.top-c.viewOffset;for(var g=0;a.options.gutters.length>g;++g){var h=c.gutters.childNodes[g];if(h&&$e(h).right>=d){var i=de(a.doc,e),j=a.options.gutters[g];Ce(a,"gutterClick",a,i,j,b);break}}return!0}function Pb(a,b){if(!Ib(a.display,b)){var c=a.getSelection();if(b.dataTransfer.setData("Text",c),b.dataTransfer.setDragImage){var d=We("img",null,null,"position: fixed; left: 0; top: 0;");h&&(d.width=d.height=1,a.display.wrapper.appendChild(d),d._top=d.offsetTop),i&&(a.display.dragImg?d=a.display.dragImg:(a.display.dragImg=d,d.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",a.display.wrapper.appendChild(d))),b.dataTransfer.setDragImage(d,0,0),h&&d.parentNode.removeChild(d)}}}function Qb(b,c){2>Math.abs(b.doc.scrollTop-c)||(b.doc.scrollTop=c,a||P(b,[],c),b.display.scroller.scrollTop!=c&&(b.display.scroller.scrollTop=c),b.display.scrollbarV.scrollTop!=c&&(b.display.scrollbarV.scrollTop=c),a&&P(b,[]))}function Rb(a,b,c){(c?b==a.doc.scrollLeft:2>Math.abs(a.doc.scrollLeft-b))||(b=Math.min(b,a.display.scroller.scrollWidth-a.display.scroller.clientWidth),a.doc.scrollLeft=b,L(a),a.display.scroller.scrollLeft!=b&&(a.display.scroller.scrollLeft=b),a.display.scrollbarH.scrollLeft!=b&&(a.display.scrollbarH.scrollLeft=b)) }function Ub(b,c){var d=c.wheelDeltaX,f=c.wheelDeltaY;if(null==d&&c.detail&&c.axis==c.HORIZONTAL_AXIS&&(d=c.detail),null==f&&c.detail&&c.axis==c.VERTICAL_AXIS?f=c.detail:null==f&&(f=c.wheelDelta),f&&p&&e)for(var g=c.target;g!=j;g=g.parentNode)if(g.lineObj){b.display.currentWheelTarget=g;break}var i=b.display,j=i.scroller;if(d&&!a&&!h&&null!=Tb)return f&&Qb(b,Math.max(0,Math.min(j.scrollTop+f*Tb,j.scrollHeight-j.clientHeight))),Rb(b,Math.max(0,Math.min(j.scrollLeft+d*Tb,j.scrollWidth-j.clientWidth))),se(c),i.wheelStartX=null,void 0;if(f&&null!=Tb){var k=f*Tb,l=b.doc.scrollTop,m=l+i.wrapper.clientHeight;0>k?l=Math.max(0,l+k-50):m=Math.min(b.doc.height,m+k+50),P(b,[],{top:l,bottom:m})}20>Sb&&(null==i.wheelStartX?(i.wheelStartX=j.scrollLeft,i.wheelStartY=j.scrollTop,i.wheelDX=d,i.wheelDY=f,setTimeout(function(){if(null!=i.wheelStartX){var a=j.scrollLeft-i.wheelStartX,b=j.scrollTop-i.wheelStartY,c=b&&i.wheelDY&&b/i.wheelDY||a&&i.wheelDX&&a/i.wheelDX;i.wheelStartX=i.wheelStartY=null,c&&(Tb=(Tb*Sb+c)/(Sb+1),++Sb)}},200)):(i.wheelDX+=d,i.wheelDY+=f))}function Vb(a,b,c){if("string"==typeof b&&(b=Zc[b],!b))return!1;a.display.pollingFast&&Db(a)&&(a.display.pollingFast=!1);var d=a.doc,e=d.sel.shift,f=!1;try{Gb(a)&&(a.state.suppressEdits=!0),c&&(d.sel.shift=!1),f=b(a)!=Ge}finally{d.sel.shift=e,a.state.suppressEdits=!1}return f}function Wb(a){var b=a.state.keyMaps.slice(0);return b.push(a.options.keyMap),a.options.extraKeys&&b.unshift(a.options.extraKeys),b}function Yb(a,b){var c=_c(a.options.keyMap),e=c.auto;clearTimeout(Xb),e&&!bd(b)&&(Xb=setTimeout(function(){_c(a.options.keyMap)==c&&(a.options.keyMap=e.call?e.call(null,a):e)},50));var f=cd(b,!0),g=!1;if(!f)return!1;var h=Wb(a);return g=b.shiftKey?ad("Shift-"+f,h,function(b){return Vb(a,b,!0)})||ad(f,h,function(b){return"string"==typeof b&&/^go[A-Z]/.test(b)?Vb(a,b):void 0}):ad(f,h,function(b){return Vb(a,b)}),"stop"==g&&(g=!1),g&&(se(b),$(a),d&&(b.oldKeyCode=b.keyCode,b.keyCode=0)),g}function Zb(a,b,c){var d=ad("'"+c+"'",Wb(a),function(b){return Vb(a,b,!0)});return d&&(se(b),$(a)),d}function _b(a){var c=this;if(c.state.focused||bc(c),b&&27==a.keyCode&&(a.returnValue=!1),!c.options.onKeyEvent||!c.options.onKeyEvent(c,re(a))){var d=a.keyCode;c.doc.sel.shift=16==d||a.shiftKey;var e=Yb(c,a);h&&($b=e?d:null,!e&&88==d&&!hf&&(p?a.metaKey:a.ctrlKey)&&c.replaceSelection(""))}}function ac(a){var b=this;if(!b.options.onKeyEvent||!b.options.onKeyEvent(b,re(a))){var c=a.keyCode,d=a.charCode;if(h&&c==$b)return $b=null,se(a),void 0;if(!(h&&(!a.which||10>a.which)||j)||!Yb(b,a)){var e=String.fromCharCode(null==d?c:d);this.options.electricChars&&this.doc.mode.electricChars&&this.options.smartIndent&&!Gb(this)&&this.doc.mode.electricChars.indexOf(e)>-1&&setTimeout(xb(b,function(){Jc(b,b.doc.sel.to.line,"smart")}),75),Zb(b,a,e)||Cb(b)}}}function bc(a){"nocursor"!=a.options.readOnly&&(a.state.focused||(ze(a,"focus",a),a.state.focused=!0,-1==a.display.wrapper.className.search(/\bCodeMirror-focused\b/)&&(a.display.wrapper.className+=" CodeMirror-focused"),Eb(a,!0)),Bb(a),$(a))}function cc(a){a.state.focused&&(ze(a,"blur",a),a.state.focused=!1,a.display.wrapper.className=a.display.wrapper.className.replace(" CodeMirror-focused","")),clearInterval(a.display.blinker),setTimeout(function(){a.state.focused||(a.doc.sel.shift=!1)},150)}function ec(a,c){function k(){if(e.inputDiv.style.position="relative",e.input.style.cssText=j,d&&(e.scrollbarV.scrollTop=e.scroller.scrollTop=i),Bb(a),null!=e.input.selectionStart&&(!b||d)){clearTimeout(dc);var c=e.input.value=" "+(rc(f.from,f.to)?"":e.input.value),g=0;e.prevInput=" ",e.input.selectionStart=1,e.input.selectionEnd=c.length;var h=function(){" "==e.prevInput&&0==e.input.selectionStart?xb(a,Zc.selectAll)(a):10>g++?dc=setTimeout(h,500):Eb(a)};dc=setTimeout(h,200)}}var e=a.display,f=a.doc.sel;if(!Ib(e,c)){var g=Jb(a,c),i=e.scroller.scrollTop;if(g&&!h){(rc(f.from,f.to)||sc(g,f.from)||!sc(g,f.to))&&xb(a,Ac)(a.doc,g,g);var j=e.input.style.cssText;if(e.inputDiv.style.position="absolute",e.input.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(c.clientY-5)+"px; left: "+(c.clientX-5)+"px; z-index: 1000; background: white; outline: none;"+"border-width: 0; outline: none; overflow: hidden; opacity: .05; -ms-opacity: .05; filter: alpha(opacity=5);",Fb(a),Eb(a,!0),rc(f.from,f.to)&&(e.input.value=e.prevInput=" "),t){ue(c);var l=function(){ye(window,"mouseup",l),setTimeout(k,20)};xe(window,"mouseup",l)}else setTimeout(k,50)}}}function fc(a){return qc(a.from.line+a.text.length-1,Le(a.text).length+(1==a.text.length?a.from.ch:0))}function gc(a,b,c){if(!sc(b.from,c))return vc(a,c);var d=b.text.length-1-(b.to.line-b.from.line);if(c.line>b.to.line+d){var e=c.line-d,f=a.first+a.size-1;return e>f?qc(f,$d(a,f).text.length):wc(c,$d(a,e).text.length)}if(c.line==b.to.line+d)return wc(c,Le(b.text).length+(1==b.text.length?b.from.ch:0)+$d(a,b.to.line).text.length-b.to.ch);var g=c.line-b.from.line;return wc(c,b.text[g].length+(g?0:b.from.ch))}function hc(a,b,c){if(c&&"object"==typeof c)return{anchor:gc(a,b,c.anchor),head:gc(a,b,c.head)};if("start"==c)return{anchor:b.from,head:b.from};var d=fc(b);if("around"==c)return{anchor:b.from,head:d};if("end"==c)return{anchor:d,head:d};var e=function(a){if(sc(a,b.from))return a;if(!sc(b.to,a))return d;var c=a.line+b.text.length-(b.to.line-b.from.line)-1,e=a.ch;return a.line==b.to.line&&(e+=d.ch-b.to.ch),qc(c,e)};return{anchor:e(a.sel.anchor),head:e(a.sel.head)}}function ic(a,b){var c={canceled:!1,from:b.from,to:b.to,text:b.text,origin:b.origin,update:function(b,c,d,e){b&&(this.from=vc(a,b)),c&&(this.to=vc(a,c)),d&&(this.text=d),void 0!==e&&(this.origin=e)},cancel:function(){this.canceled=!0}};return ze(a,"beforeChange",a,c),a.cm&&ze(a.cm,"beforeChange",a.cm,c),c.canceled?null:{from:c.from,to:c.to,text:c.text,origin:c.origin}}function jc(a,b,c,d){if(a.cm){if(!a.cm.curOp)return xb(a.cm,jc)(a,b,c,d);if(a.cm.state.suppressEdits)return}if(!(Ee(a,"beforeChange")||a.cm&&Ee(a.cm,"beforeChange"))||(b=ic(a,b))){var e=u&&!d&&pd(a,b.from,b.to);if(e){for(var f=e.length-1;f>=1;--f)kc(a,{from:e[f].from,to:e[f].to,text:[""]});e.length&&kc(a,{from:e[0].from,to:e[0].to,text:b.text},c)}else kc(a,b,c)}}function kc(a,b,c){var d=hc(a,b,c);je(a,b,d,a.cm?a.cm.curOp.id:0/0),nc(a,b,d,nd(a,b));var e=[];Yd(a,function(a,c){c||-1!=Ne(e,a.history)||(pe(a.history,b),e.push(a.history)),nc(a,b,null,nd(a,b))})}function lc(a,b){var c=a.history,d=("undo"==b?c.done:c.undone).pop();if(d){c.dirtyCounter+="undo"==b?-1:1;var e={changes:[],anchorBefore:d.anchorAfter,headBefore:d.headAfter,anchorAfter:d.anchorBefore,headAfter:d.headBefore};("undo"==b?c.undone:c.done).push(e);for(var f=d.changes.length-1;f>=0;--f){var g=d.changes[f];g.origin=b,e.changes.push(ie(a,g));var h=f?hc(a,g,null):{anchor:d.anchorBefore,head:d.headBefore};nc(a,g,h,od(a,g));var i=[];Yd(a,function(a,b){b||-1!=Ne(i,a.history)||(pe(a.history,g),i.push(a.history)),nc(a,g,null,od(a,g))})}}}function mc(a,b){function c(a){return qc(a.line+b,a.ch)}a.first+=b,a.cm&&Ab(a.cm,a.first,a.first,b),a.sel.head=c(a.sel.head),a.sel.anchor=c(a.sel.anchor),a.sel.from=c(a.sel.from),a.sel.to=c(a.sel.to)}function nc(a,b,c,d){if(a.cm&&!a.cm.curOp)return xb(a.cm,nc)(a,b,c,d);if(b.to.linea.lastLine())){if(b.from.linef&&(b={from:b.from,to:qc(f,$d(a,f).text.length),text:[b.text[0]],origin:b.origin}),c||(c=hc(a,b,null)),a.cm?oc(a.cm,b,d,c):Rd(a,b,d,c)}}function oc(a,b,c,d){var e=a.doc,f=a.display,g=b.from,h=b.to,i=!1,j=g.line;a.options.lineWrapping||(j=ce(td(e,$d(e,g.line))),e.iter(j,h.line+1,function(a){return a==f.maxLine?(i=!0,!0):void 0})),Rd(e,b,c,d,A(a)),a.options.lineWrapping||(e.iter(j,g.line+b.text.length,function(a){var b=G(e,a);b>f.maxLineLength&&(f.maxLine=a,f.maxLineLength=b,f.maxLineChanged=!0,i=!1)}),i&&(a.curOp.updateMaxLine=!0)),e.frontier=Math.min(e.frontier,g.line),_(a,400);var k=b.text.length-(h.line-g.line)-1;if(Ab(a,g.line,h.line+1,k),Ee(a,"change")){var l={from:g,to:h,text:b.text,origin:b.origin};if(a.curOp.textChanged){for(var m=a.curOp.textChanged;m.next;m=m.next);m.next=l}else a.curOp.textChanged=l}}function pc(a,b,c,d,e){if(d||(d=c),sc(d,c)){var f=d;d=c,c=f}"string"==typeof b&&(b=ff(b)),jc(a,{from:c,to:d,text:b,origin:e},null)}function qc(a,b){return this instanceof qc?(this.line=a,this.ch=b,void 0):new qc(a,b)}function rc(a,b){return a.line==b.line&&a.ch==b.ch}function sc(a,b){return a.linec?qc(c,$d(a,c).text.length):wc(b,$d(a,b.line).text.length)}function wc(a,b){var c=a.ch;return null==c||c>b?qc(a.line,b):0>c?qc(a.line,0):a}function xc(a,b){return b>=a.first&&a.first+a.size>b}function yc(a,b,c,d){if(a.sel.shift||a.sel.extend){var e=a.sel.anchor;if(c){var f=sc(b,e);f!=sc(c,e)?(e=b,b=c):f!=sc(b,c)&&(b=c)}Ac(a,e,b,d)}else Ac(a,b,c||b,d);a.cm&&(a.cm.curOp.userSelChange=!0)}function zc(a,b,c){var d={anchor:b,head:c};return ze(a,"beforeSelectionChange",a,d),a.cm&&ze(a.cm,"beforeSelectionChange",a.cm,d),d.anchor=vc(a,d.anchor),d.head=vc(a,d.head),d}function Ac(a,b,c,d,e){if(!e&&Ee(a,"beforeSelectionChange")||a.cm&&Ee(a.cm,"beforeSelectionChange")){var f=zc(a,b,c);c=f.head,b=f.anchor}var g=a.sel;if(g.goalColumn=null,(e||!rc(b,g.anchor))&&(b=Cc(a,b,d,"push"!=e)),(e||!rc(c,g.head))&&(c=Cc(a,c,d,"push"!=e)),!rc(g.anchor,b)||!rc(g.head,c)){g.anchor=b,g.head=c;var h=sc(c,b);g.from=h?c:b,g.to=h?b:c,a.cm&&(a.cm.curOp.updateInput=a.cm.curOp.selectionChanged=!0),Ce(a,"cursorActivity",a)}}function Bc(a){Ac(a.doc,a.doc.sel.from,a.doc.sel.to,null,"push")}function Cc(a,b,c,d){var e=!1,f=b,g=c||1;a.cantEdit=!1;a:for(;;){var i,h=$d(a,f.line);if(h.markedSpans){for(var j=0;h.markedSpans.length>j;++j){var k=h.markedSpans[j],l=k.marker;if((null==k.from||(l.inclusiveLeft?k.from<=f.ch:k.from=f.ch:k.to>f.ch))){if(d&&l.clearOnEnter){(i||(i=[])).push(l);continue}if(!l.atomic)continue;var m=l.find()[0>g?"from":"to"];if(rc(m,f)&&(m.ch+=g,0>m.ch?m=m.line>a.first?vc(a,qc(m.line-1)):null:m.ch>h.text.length&&(m=m.linej;++j)i[j].clear()}return f}}function Dc(a){var b=Ec(a,a.doc.sel.head);if(a.state.focused){var c=a.display,d=$e(c.sizer),e=null;if(0>b.top+d.top?e=!0:b.bottom+d.top>(window.innerHeight||document.documentElement.clientHeight)&&(e=!1),null!=e&&!m){var f="none"==c.cursor.style.display;f&&(c.cursor.style.display="",c.cursor.style.left=b.left+"px",c.cursor.style.top=b.top-c.viewOffset+"px"),c.cursor.scrollIntoView(e),f&&(c.cursor.style.display="none")}}}function Ec(a,b){for(;;){var c=!1,d=nb(a,b),e=Gc(a,d.left,d.top,d.left,d.bottom),f=a.doc.scrollTop,g=a.doc.scrollLeft;if(null!=e.scrollTop&&(Qb(a,e.scrollTop),Math.abs(a.doc.scrollTop-f)>1&&(c=!0)),null!=e.scrollLeft&&(Rb(a,e.scrollLeft),Math.abs(a.doc.scrollLeft-g)>1&&(c=!0)),!c)return d}}function Fc(a,b,c,d,e){var f=Gc(a,b,c,d,e);null!=f.scrollTop&&Qb(a,f.scrollTop),null!=f.scrollLeft&&Rb(a,f.scrollLeft)}function Gc(a,b,c,d,e){var f=a.display,g=db(f);c+=g,e+=g;var h=f.scroller.clientHeight-Fe,i=f.scroller.scrollTop,j={},k=a.doc.height+2*g,l=g+10>c,m=e+g>k-10;i>c?j.scrollTop=l?0:Math.max(0,c):e>i+h&&(j.scrollTop=(m?k:e)-h);var n=f.scroller.clientWidth-Fe,o=f.scroller.scrollLeft;b+=f.gutters.offsetWidth,d+=f.gutters.offsetWidth;var p=f.gutters.offsetWidth,q=p+10>b;return o+p>b||q?(q&&(b=0),j.scrollLeft=Math.max(0,b-10-p)):d>n+o-3&&(j.scrollLeft=d+10-n),j}function Hc(a,b,c){a.curOp.updateScrollPos={scrollLeft:b,scrollTop:c}}function Ic(a,b,c){var d=a.curOp.updateScrollPos||(a.curOp.updateScrollPos={scrollLeft:a.doc.scrollLeft,scrollTop:a.doc.scrollTop}),e=a.display.scroller;d.scrollTop=Math.max(0,Math.min(e.scrollHeight-e.clientHeight,d.scrollTop+c)),d.scrollLeft=Math.max(0,Math.min(e.scrollWidth-e.clientWidth,d.scrollLeft+b))}function Jc(a,b,c,d){var e=a.doc;if(c||(c="add"),"smart"==c)if(a.doc.mode.indent)var f=cb(a,b);else c="prev";var k,g=a.options.tabSize,h=$d(e,b),i=Ie(h.text,null,g),j=h.text.match(/^\s*/)[0];if("smart"==c&&(k=a.doc.mode.indent(f,h.text.slice(j.length),h.text),k==Ge)){if(!d)return;c="prev"}"prev"==c?k=b>e.first?Ie($d(e,b-1).text,null,g):0:"add"==c?k=i+a.options.indentUnit:"subtract"==c&&(k=i-a.options.indentUnit),k=Math.max(0,k);var l="",m=0;if(a.options.indentWithTabs)for(var n=Math.floor(k/g);n;--n)m+=g,l+=" ";k>m&&(l+=Ke(k-m)),l!=j&&pc(a.doc,l,qc(b,0),qc(b,j.length),"+input"),h.stateAfter=null}function Kc(a,b,c){var d=b,e=b,f=a.doc;return"number"==typeof b?e=$d(f,uc(f,b)):d=ce(b),null==d?null:c(e,d)?(Ab(a,d,d+1),e):null}function Lc(a,b,c,d,e){function j(){var b=f+c;return a.first>b||b>=a.first+a.size?i=!1:(f=b,h=$d(a,b))}function k(a){var b=(e?rf:sf)(h,g,c,!0);if(null==b){if(a||!j())return i=!1;g=e?(0>c?of:nf)(h):0>c?h.text.length:0}else g=b;return!0}var f=b.line,g=b.ch,h=$d(a,f),i=!0;if("char"==d)k();else if("column"==d)k(!0);else if("word"==d||"wordBoundary"==d)for(var l=!1,m="wordBoundary"==d,n=null;!(0>c)||k();){var o=Te(h.text.charAt(g)),p=!1;if(m?null==n?n=o:p=n!=o:o?l=!0:p=l,p){0>c&&(c=1,k());break}if(c>0&&!k())break}var q=Cc(a,qc(f,g),c,!0);return i||(q.hitSide=!0),q}function Mc(a,b,c,d){var g,e=a.doc,f=b.left;if("page"==d){var h=Math.min(a.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight);g=b.top+c*(h-(0>c?1.5:.5)*sb(a.display))}else"line"==d&&(g=c>0?b.bottom+3:b.top-3);for(;;){var i=pb(a,f,g);if(!i.outside)break;if(0>c?0>=g:g>=e.height){i.hitSide=!0;break}g+=5*c}return i}function Nc(a,b){var c=b.ch,d=b.ch;if(a){b.after===!1||d==a.length?--c:++d;for(var e=a.charAt(c),f=Te(e)?Te:/\s/.test(e)?function(a){return/\s/.test(a)}:function(a){return!/\s/.test(a)&&!Te(a)};c>0&&f(a.charAt(c-1));)--c;for(;a.length>d&&f(a.charAt(d));)++d}return{from:qc(b.line,c),to:qc(b.line,d)}}function Oc(a,b){yc(a.doc,qc(b,0),vc(a.doc,qc(b+1,0)))}function Rc(a,b,c,d){w.defaults[a]=b,c&&(Pc[a]=d?function(a,b,d){d!=Sc&&c(a,b,d)}:c)}function Xc(a,b){if(b===!0)return b;if(a.copyState)return a.copyState(b);var c={};for(var d in b){var e=b[d];e instanceof Array&&(e=e.concat([])),c[d]=e}return c}function Yc(a,b,c){return a.startState?a.startState(b,c):!0}function _c(a){return"string"==typeof a?$c[a]:a}function ad(a,b,c){function d(b){b=_c(b);var e=b[a];if(e===!1)return"stop";if(null!=e&&c(e))return!0;if(b.nofallthrough)return"stop";var f=b.fallthrough;if(null==f)return!1;if("[object Array]"!=Object.prototype.toString.call(f))return d(f);for(var g=0,h=f.length;h>g;++g){var i=d(f[g]);if(i)return i}return!1}for(var e=0;b.length>e;++e){var f=d(b[e]);if(f)return f}}function bd(a){var b=jf[a.keyCode];return"Ctrl"==b||"Alt"==b||"Shift"==b||"Mod"==b}function cd(a,b){var c=jf[a.keyCode];return null==c||a.altGraphKey?!1:(a.altKey&&(c="Alt-"+c),(s?a.metaKey:a.ctrlKey)&&(c="Ctrl-"+c),(s?a.ctrlKey:a.metaKey)&&(c="Cmd-"+c),!b&&a.shiftKey&&(c="Shift-"+c),c)}function dd(a,b){this.pos=this.start=0,this.string=a,this.tabSize=b||8,this.lastColumnPos=this.lastColumnValue=0}function ed(a,b){this.lines=[],this.type=b,this.doc=a}function fd(a,b,c,d,e){if(d&&d.shared)return hd(a,b,c,d,e);if(a.cm&&!a.cm.curOp)return xb(a.cm,fd)(a,b,c,d,e);var f=new ed(a,e);if("range"==e&&!sc(b,c))return f;d&&Pe(d,f),f.replacedWith&&(f.collapsed=!0,f.replacedWith=We("span",[f.replacedWith],"CodeMirror-widget")),f.collapsed&&(v=!0);var i,j,l,g=b.line,h=0,k=a.cm;if(a.iter(g,c.line+1,function(d){k&&f.collapsed&&!k.options.lineWrapping&&td(a,d)==k.display.maxLine&&(l=!0);var e={from:null,to:null,marker:f};h+=d.text.length,g==b.line&&(e.from=b.ch,h-=b.ch),g==c.line&&(e.to=c.ch,h-=d.text.length-c.ch),f.collapsed&&(g==c.line&&(j=qd(d,c.ch)),g==b.line?i=qd(d,b.ch):be(d,0)),kd(d,e),++g}),f.collapsed&&a.iter(b.line,c.line+1,function(b){ud(a,b)&&be(b,0)}),f.readOnly&&(u=!0,(a.history.done.length||a.history.undone.length)&&a.clearHistory()),f.collapsed){if(i!=j)throw Error("Inserting collapsed marker overlapping an existing one");f.size=h,f.atomic=!0}return k&&(l&&(k.curOp.updateMaxLine=!0),(f.className||f.startStyle||f.endStyle||f.collapsed)&&Ab(k,b.line,c.line+1),f.atomic&&Bc(k)),f}function gd(a,b){this.markers=a,this.primary=b;for(var c=0,d=this;a.length>c;++c)a[c].parent=this,xe(a[c],"clear",function(){d.clear()})}function hd(a,b,c,d,e){d=Pe(d),d.shared=!1;var f=[fd(a,b,c,d,e)],g=f[0],h=d.replacedWith;return Yd(a,function(a){h&&(d.replacedWith=h.cloneNode(!0)),f.push(fd(a,vc(a,b),vc(a,c),d,e));for(var i=0;a.linked.length>i;++i)if(a.linked[i].isParent)return;g=Le(f)}),new gd(f,g)}function id(a,b){if(a)for(var c=0;a.length>c;++c){var d=a[c];if(d.marker==b)return d}}function jd(a,b){for(var c,d=0;a.length>d;++d)a[d]!=b&&(c||(c=[])).push(a[d]);return c}function kd(a,b){a.markedSpans=a.markedSpans?a.markedSpans.concat([b]):[b],b.marker.attachLine(a)}function ld(a,b,c){if(a)for(var e,d=0;a.length>d;++d){var f=a[d],g=f.marker,h=null==f.from||(g.inclusiveLeft?b>=f.from:b>f.from);if(h||"bookmark"==g.type&&f.from==b&&(!c||!f.marker.insertLeft)){var i=null==f.to||(g.inclusiveRight?f.to>=b:f.to>b);(e||(e=[])).push({from:f.from,to:i?null:f.to,marker:g})}}return e}function md(a,b,c){if(a)for(var e,d=0;a.length>d;++d){var f=a[d],g=f.marker,h=null==f.to||(g.inclusiveRight?f.to>=b:f.to>b);if(h||"bookmark"==g.type&&f.from==b&&(!c||f.marker.insertLeft)){var i=null==f.from||(g.inclusiveLeft?b>=f.from:b>f.from);(e||(e=[])).push({from:i?null:f.from-b,to:null==f.to?null:f.to-b,marker:g})}}return e}function nd(a,b){var c=xc(a,b.from.line)&&$d(a,b.from.line).markedSpans,d=xc(a,b.to.line)&&$d(a,b.to.line).markedSpans;if(!c&&!d)return null;var e=b.from.ch,f=b.to.ch,g=rc(b.from,b.to),h=ld(c,e,g),i=md(d,f,g),j=1==b.text.length,k=Le(b.text).length+(j?e:0);if(h)for(var l=0;h.length>l;++l){var m=h[l];if(null==m.to){var n=id(i,m.marker);n?j&&(m.to=null==n.to?null:n.to+k):m.to=e}}if(i)for(var l=0;i.length>l;++l){var m=i[l];if(null!=m.to&&(m.to+=k),null==m.from){var n=id(h,m.marker);n||(m.from=k,j&&(h||(h=[])).push(m))}else m.from+=k,j&&(h||(h=[])).push(m)}var o=[h];if(!j){var q,p=b.text.length-2;if(p>0&&h)for(var l=0;h.length>l;++l)null==h[l].to&&(q||(q=[])).push({from:null,to:null,marker:h[l].marker});for(var l=0;p>l;++l)o.push(q);o.push(i)}return o}function od(a,b){var c=le(a,b),d=nd(a,b);if(!c)return d;if(!d)return c;for(var e=0;c.length>e;++e){var f=c[e],g=d[e];if(f&&g)a:for(var h=0;g.length>h;++h){for(var i=g[h],j=0;f.length>j;++j)if(f[j].marker==i.marker)continue a;f.push(i)}else g&&(c[e]=g)}return c}function pd(a,b,c){var d=null;if(a.iter(b.line,c.line+1,function(a){if(a.markedSpans)for(var b=0;a.markedSpans.length>b;++b){var c=a.markedSpans[b].marker;!c.readOnly||d&&-1!=Ne(d,c)||(d||(d=[])).push(c)}}),!d)return null;for(var e=[{from:b,to:c}],f=0;d.length>f;++f)for(var g=d[f],h=g.find(),i=0;e.length>i;++i){var j=e[i];if(!sc(j.to,h.from)&&!sc(h.to,j.from)){var k=[i,1];(sc(j.from,h.from)||!g.inclusiveLeft&&rc(j.from,h.from))&&k.push({from:j.from,to:h.from}),(sc(h.to,j.to)||!g.inclusiveRight&&rc(j.to,h.to))&&k.push({from:h.to,to:j.to}),e.splice.apply(e,k),i+=k.length-1}}return e}function qd(a,b){var d,c=v&&a.markedSpans;if(c)for(var e,f=0;c.length>f;++f)e=c[f],e.marker.collapsed&&(null==e.from||b>e.from)&&(null==e.to||e.to>b)&&(!d||d.widthe;++e)if(d=c[e],d.marker.collapsed){if(null==d.from)return!0;if(0==d.from&&d.marker.inclusiveLeft&&vd(a,b,d))return!0}}function vd(a,b,c){if(null==c.to){var d=c.marker.find().to,e=$d(a,d.line);return vd(a,e,id(e.markedSpans,c.marker))}if(c.marker.inclusiveRight&&c.to==b.text.length)return!0;for(var f,g=0;b.markedSpans.length>g;++g)if(f=b.markedSpans[g],f.marker.collapsed&&f.from==c.to&&(f.marker.inclusiveLeft||c.marker.inclusiveRight)&&vd(a,b,f))return!0}function wd(a){var b=a.markedSpans;if(b){for(var c=0;b.length>c;++c)b[c].marker.detachLine(a);a.markedSpans=null}}function xd(a,b){if(b){for(var c=0;b.length>c;++c)b[c].marker.attachLine(a);a.markedSpans=b}}function zd(a){return function(){var b=!this.cm.curOp;b&&vb(this.cm);try{var c=a.apply(this,arguments)}finally{b&&wb(this.cm)}return c}}function Ad(a){return null!=a.height?a.height:(a.node.parentNode&&1==a.node.parentNode.nodeType||Ye(a.cm.display.measure,We("div",[a.node],null,"position: relative")),a.height=a.node.offsetHeight)}function Bd(a,b,c,d){var e=new yd(a,c,d);return e.noHScroll&&(a.display.alignWidgets=!0),Kc(a,b,function(b){if((b.widgets||(b.widgets=[])).push(e),e.line=b,!ud(a.doc,b)||e.showIfHidden){var c=ee(a,b)5e3&&(f=!1,i.pos=Math.min(b.length,i.start+5e4),j=null);var k=i.current();i.start=i.pos,f&&h==j?g+=k:(g&&e(g,h),g=k,h=j)}g&&e(g,h)}function Gd(a,b,c){var d=[a.state.modeGen];Fd(a,b.text,a.doc.mode,c,function(a,b){d.push(a,b)});for(var e=0;a.state.overlays.length>e;++e){var f=a.state.overlays[e],g=1;Fd(a,b.text,f.mode,!0,function(a,b){for(var c=g,e=a.length;e;){var h=d[g],i=h.length;e>=i?e-=i:(d.splice(g,1,h.slice(0,e),d[g+1],h.slice(e)),e=0),g+=2}if(b)if(f.opaque)d.splice(c,g-c,a,b),g=c+2;else for(;g>c;c+=2){var h=d[c+1];d[c+1]=h?h+" "+b:b}})}return d}function Hd(a,b){return b.styles&&b.styles[0]==a.state.modeGen||(b.styles=Gd(a,b,b.stateAfter=cb(a,ce(b)))),b.styles}function Id(a,b,c){var d=a.doc.mode,e=new dd(b.text,a.options.tabSize);for(""==b.text&&d.blankLine&&d.blankLine(c);!e.eol()&&5e3>=e.pos;)d.token(e,c),e.start=e.pos}function Kd(a){return a?Jd[a]||(Jd[a]="cm-"+a.replace(/ +/g," cm-")):null}function Ld(a,c,d){for(var e,g,h,f=c,i=!0;e=rd(f);)i=!1,f=$d(a.doc,e.find().from.line),g||(g=f);var j={pre:We("pre"),col:0,pos:0,display:!d,measure:null,addedOne:!1,cm:a};f.textClass&&(j.pre.className=f.textClass);do{j.measure=f==c&&d,j.pos=0,j.addToken=j.measure?Od:Nd,d&&h&&f!=c&&!j.addedOne&&(d[0]=j.pre.appendChild(ef(a.display.measure)),j.addedOne=!0);var k=Qd(f,j,Hd(a,f));h=f==g,k&&(f=$d(a.doc,k.to.line),i=!1)}while(k);d&&!j.addedOne&&(d[0]=j.pre.appendChild(i?We("span","\u00a0"):ef(a.display.measure))),j.pre.firstChild||ud(a.doc,c)||j.pre.appendChild(document.createTextNode("\u00a0"));var l;if(d&&b&&(l=fe(f))){var m=l.length-1;l[m].from==l[m].to&&--m;var n=l[m],o=l[m-1];if(n.from+1==n.to&&o&&n.levelh;++h){var i=c.charAt(h),j=0==h;i>="\ud800"&&"\udbff">i&&c.length-1>h?(i=c.slice(h,h+2),++h):h&&g&&af.test(c.slice(h-1,h+1))&&a.pre.appendChild(We("wbr"));var k=a.measure[a.pos]=Nd(a,i,d,j&&e,h==c.length-1&&f);b&&g&&" "==i&&h&&!/\s/.test(c.charAt(h-1))&&c.length-1>h&&!/\s/.test(c.charAt(h+1))&&(k.style.whiteSpace="normal"),a.pos+=i.length}c.length&&(a.addedOne=!0)}function Pd(a,b,c){c&&(a.display||(c=c.cloneNode(!0)),a.pre.appendChild(c),a.measure&&b&&(a.measure[a.pos]=c,a.addedOne=!0)),a.pos+=b}function Qd(a,b,c){var d=a.markedSpans;if(d)for(var j,l,m,n,o,f=a.text,g=f.length,h=0,e=1,i="",k=0;;){if(k==h){l=m=n="",o=null,k=1/0;for(var p=null,q=0;d.length>q;++q){var r=d[q],s=r.marker;h>=r.from&&(null==r.to||r.to>h)?(null!=r.to&&k>r.to&&(k=r.to,m=""),s.className&&(l+=" "+s.className),s.startStyle&&r.from==h&&(n+=" "+s.startStyle),s.endStyle&&r.to==k&&(m+=" "+s.endStyle),s.collapsed&&(!o||o.marker.widthh&&k>r.from&&(k=r.from),"bookmark"==s.type&&r.from==h&&s.replacedWith&&(p=s.replacedWith)}if(o&&(o.from||0)==h&&(Pd(b,(null==o.to?g:o.to)-h,null!=o.from&&o.marker.replacedWith),null==o.to))return o.marker.find();p&&!o&&Pd(b,0,p)}if(h>=g)break;for(var t=Math.min(g,k);;){if(i){var u=h+i.length;if(!o){var v=u>t?i.slice(0,t-h):i;b.addToken(b,v,j?j+l:l,n,h+v.length==k?m:"")}if(u>=t){i=i.slice(t-h),h=t;break}h=u,n=""}i=c[e++],j=Kd(c[e++])}}else for(var e=1;c.length>e;e+=2)b.addToken(b,c[e],Kd(c[e+1]))}function Rd(a,b,c,d,e){function f(a){return c?c[a]:null}var g=b.from,h=b.to,i=b.text,j=$d(a,g.line),k=$d(a,h.line),l=Le(i),m=f(i.length-1),n=h.line-g.line;if(0==g.ch&&0==h.ch&&""==l){for(var o=0,p=i.length-1,q=[];p>o;++o)q.push(Cd(i[o],f(o),e));Dd(k,k.text,m,e),n&&a.remove(g.line,n),q.length&&a.insert(g.line,q)}else if(j==k)if(1==i.length)Dd(j,j.text.slice(0,g.ch)+l+j.text.slice(h.ch),m,e);else{for(var q=[],o=1,p=i.length-1;p>o;++o)q.push(Cd(i[o],f(o),e));q.push(Cd(l+j.text.slice(h.ch),m,e)),Dd(j,j.text.slice(0,g.ch)+i[0],f(0),e),a.insert(g.line+1,q)}else if(1==i.length)Dd(j,j.text.slice(0,g.ch)+i[0]+k.text.slice(h.ch),f(0),e),a.remove(g.line+1,n);else{Dd(j,j.text.slice(0,g.ch)+i[0],f(0),e),Dd(k,l+k.text.slice(h.ch),m,e);for(var o=1,p=i.length-1,q=[];p>o;++o)q.push(Cd(i[o],f(o),e));n>1&&a.remove(g.line+1,n-1),a.insert(g.line+1,q)}Ce(a,"change",a,b),Ac(a,d.anchor,d.head,null,!0)}function Sd(a){this.lines=a,this.parent=null;for(var b=0,c=a.length,d=0;c>b;++b)a[b].parent=this,d+=a[b].height;this.height=d}function Td(a){this.children=a;for(var b=0,c=0,d=0,e=a.length;e>d;++d){var f=a[d];b+=f.chunkSize(),c+=f.height,f.parent=this}this.size=b,this.height=c,this.parent=null}function Yd(a,b,c){function d(a,e,f){if(a.linked)for(var g=0;a.linked.length>g;++g){var h=a.linked[g];if(h.doc!=e){var i=f&&h.sharedHist;(!c||i)&&(b(h.doc,i),d(h.doc,a,i))}}}d(a,null,!0)}function Zd(a,b){if(b.cm)throw Error("This document is already in use.");a.doc=b,b.cm=a,B(a),y(a),a.options.lineWrapping||H(a),a.options.mode=b.modeOption,Ab(a)}function $d(a,b){for(b-=a.first;!a.lines;)for(var c=0;;++c){var d=a.children[c],e=d.chunkSize();if(e>b){a=d;break}b-=e}return a.lines[b]}function _d(a,b,c){var d=[],e=b.line;return a.iter(b.line,c.line+1,function(a){var f=a.text;e==c.line&&(f=f.slice(0,c.ch)),e==b.line&&(f=f.slice(b.ch)),d.push(f),++e}),d}function ae(a,b,c){var d=[];return a.iter(b,c,function(a){d.push(a.text)}),d}function be(a,b){for(var c=b-a.height,d=a;d;d=d.parent)d.height+=c}function ce(a){if(null==a.parent)return null;for(var b=a.parent,c=Ne(b.lines,a),d=b.parent;d;b=d,d=d.parent)for(var e=0;d.children[e]!=b;++e)c+=d.children[e].chunkSize();return c+b.first}function de(a,b){var c=a.first;a:do{for(var d=0,e=a.children.length;e>d;++d){var f=a.children[d],g=f.height;if(g>b){a=f;continue a}b-=g,c+=f.chunkSize()}return c}while(!a.lines);for(var d=0,e=a.lines.length;e>d;++d){var h=a.lines[d],i=h.height;if(i>b)break;b-=i}return c+d}function ee(a,b){b=td(a.doc,b);for(var c=0,d=b.parent,e=0;d.lines.length>e;++e){var f=d.lines[e];if(f==b)break;c+=f.height}for(var g=d.parent;g;d=g,g=d.parent)for(var e=0;g.children.length>e;++e){var h=g.children[e];if(h==d)break;c+=h.height}return c}function fe(a){var b=a.order;return null==b&&(b=a.order=tf(a.text)),b}function ge(){return{done:[],undone:[],undoDepth:1/0,lastTime:0,lastOp:null,lastOrigin:null,dirtyCounter:0}}function he(a,b,c,d){var e=b["spans_"+a.id],f=0;a.iter(Math.max(a.first,c),Math.min(a.first+a.size,d),function(c){c.markedSpans&&((e||(e=b["spans_"+a.id]={}))[f]=c.markedSpans),++f})}function ie(a,b){var c={from:b.from,to:fc(b),text:_d(a,b.from,b.to)};return he(a,c,b.from.line,b.to.line+1),Yd(a,function(a){he(a,c,b.from.line,b.to.line+1)},!0),c}function je(a,b,c,d){var e=a.history;e.undone.length=0;var f=+new Date,g=Le(e.done);if(g&&(e.lastOp==d||e.lastOrigin==b.origin&&b.origin&&("+"==b.origin.charAt(0)&&e.lastTime>f-600||"*"==b.origin.charAt(0)))){var h=Le(g.changes);rc(b.from,b.to)&&rc(b.from,h.to)?h.to=fc(b):g.changes.push(ie(a,b)),g.anchorAfter=c.anchor,g.headAfter=c.head}else{for(g={changes:[ie(a,b)],anchorBefore:a.sel.anchor,headBefore:a.sel.head,anchorAfter:c.anchor,headAfter:c.head},e.done.push(g);e.done.length>e.undoDepth;)e.done.shift();0>e.dirtyCounter?e.dirtyCounter=0/0:e.dirtyCounter++}e.lastTime=f,e.lastOp=d,e.lastOrigin=b.origin}function ke(a){if(!a)return null;for(var c,b=0;a.length>b;++b)a[b].marker.explicitlyCleared?c||(c=a.slice(0,b)):c&&c.push(a[b]);return c?c.length?c:null:a}function le(a,b){var c=b["spans_"+a.id];if(!c)return null;for(var d=0,e=[];b.text.length>d;++d)e.push(ke(c[d]));return e}function me(a,b){for(var c=0,d=[];a.length>c;++c){var e=a[c],f=e.changes,g=[];d.push({changes:g,anchorBefore:e.anchorBefore,headBefore:e.headBefore,anchorAfter:e.anchorAfter,headAfter:e.headAfter});for(var h=0;f.length>h;++h){var j,i=f[h];if(g.push({from:i.from,to:i.to,text:i.text}),b)for(var k in i)(j=k.match(/^spans_(\d+)$/))&&Ne(b,Number(j[1]))>-1&&(Le(g)[k]=i[k],delete i[k])}}return d}function ne(a,b,c,d){a.line>c?a.line+=d:a.line>b&&(a.line=b,a.ch=0)}function oe(a,b,c,d){for(var e=0;a.length>e;++e){for(var f=a[e],g=!0,h=0;f.changes.length>h;++h){var i=f.changes[h];if(f.copied||(i.from=tc(i.from),i.to=tc(i.to)),i.from.line>c)i.from.line+=d,i.to.line+=d;else if(i.to.line>=b){g=!1;break}}f.copied||(f.anchorBefore=tc(f.anchorBefore),f.headBefore=tc(f.headBefore),f.anchorAfter=tc(f.anchorAfter),f.readAfter=tc(f.headAfter),f.copied=!0),g?(ne(f.anchorBefore),ne(f.headBefore),ne(f.anchorAfter),ne(f.headAfter)):(a.splice(0,e+1),e=0)}}function pe(a,b){var c=b.from.line,d=b.to.line,e=b.text.length-(d-c)-1;oe(a.done,c,d,e),oe(a.undone,c,d,e)}function qe(){ue(this)}function re(a){return a.stop||(a.stop=qe),a}function se(a){a.preventDefault?a.preventDefault():a.returnValue=!1}function te(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}function ue(a){se(a),te(a)}function ve(a){return a.target||a.srcElement}function we(a){var b=a.which;return null==b&&(1&a.button?b=1:2&a.button?b=3:4&a.button&&(b=2)),p&&a.ctrlKey&&1==b&&(b=3),b}function xe(a,b,c){if(a.addEventListener)a.addEventListener(b,c,!1);else if(a.attachEvent)a.attachEvent("on"+b,c);else{var d=a._handlers||(a._handlers={}),e=d[b]||(d[b]=[]);e.push(c)}}function ye(a,b,c){if(a.removeEventListener)a.removeEventListener(b,c,!1);else if(a.detachEvent)a.detachEvent("on"+b,c);else{var d=a._handlers&&a._handlers[b];if(!d)return;for(var e=0;d.length>e;++e)if(d[e]==c){d.splice(e,1);break}}}function ze(a,b){var c=a._handlers&&a._handlers[b];if(c)for(var d=Array.prototype.slice.call(arguments,2),e=0;c.length>e;++e)c[e].apply(null,d)}function Ce(a,b){function e(a){return function(){a.apply(null,d)}}var c=a._handlers&&a._handlers[b];if(c){var d=Array.prototype.slice.call(arguments,2);Ae||(++Be,Ae=[],setTimeout(De,0));for(var f=0;c.length>f;++f)Ae.push(e(c[f]))}}function De(){--Be;var a=Ae;Ae=null;for(var b=0;a.length>b;++b)a[b]()}function Ee(a,b){var c=a._handlers&&a._handlers[b];return c&&c.length>0 }function He(){this.id=null}function Ie(a,b,c,d,e){null==b&&(b=a.search(/[^\s\u00a0]/),-1==b&&(b=a.length));for(var f=d||0,g=e||0;b>f;++f)" "==a.charAt(f)?g+=c-g%c:++g;return g}function Ke(a){for(;a>=Je.length;)Je.push(Le(Je)+" ");return Je[a]}function Le(a){return a[a.length-1]}function Me(a){n?(a.selectionStart=0,a.selectionEnd=a.value.length):a.select()}function Ne(a,b){if(a.indexOf)return a.indexOf(b);for(var c=0,d=a.length;d>c;++c)if(a[c]==b)return c;return-1}function Oe(a,b){function c(){}c.prototype=a;var d=new c;return b&&Pe(b,d),d}function Pe(a,b){b||(b={});for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}function Qe(a){for(var b=[],c=0;a>c;++c)b.push(void 0);return b}function Re(a){var b=Array.prototype.slice.call(arguments,1);return function(){return a.apply(null,b)}}function Te(a){return/\w/.test(a)||a>"\u0080"&&(a.toUpperCase()!=a.toLowerCase()||Se.test(a))}function Ue(a){for(var b in a)if(a.hasOwnProperty(b)&&a[b])return!1;return!0}function We(a,b,c,d){var e=document.createElement(a);if(c&&(e.className=c),d&&(e.style.cssText=d),"string"==typeof b)Ze(e,b);else if(b)for(var f=0;b.length>f;++f)e.appendChild(b[f]);return e}function Xe(a){if(b)for(;a.firstChild;)a.removeChild(a.firstChild);else a.innerHTML="";return a}function Ye(a,b){return Xe(a).appendChild(b)}function Ze(a,b){d?(a.innerHTML="",a.appendChild(document.createTextNode(b))):a.textContent=b}function $e(a){return a.getBoundingClientRect()}function cf(a){if(null!=bf)return bf;var b=We("div",null,null,"width: 50px; height: 50px; overflow-x: scroll");return Ye(a,b),b.offsetWidth&&(bf=b.offsetHeight-b.clientHeight),bf||0}function ef(a){if(null==df){var b=We("span","\u200b");Ye(a,We("span",[b,document.createTextNode("x")])),0!=a.firstChild.offsetHeight&&(df=1>=b.offsetWidth&&b.offsetHeight>2&&!c)}return df?We("span","\u200b"):We("span","\u00a0",null,"display: inline-block; width: 1px; margin-right: -1px")}function kf(a,b,c,d){if(!a)return d(b,c,"ltr");for(var e=0;a.length>e;++e){var f=a[e];(c>f.from&&f.to>b||b==c&&f.to==b)&&d(Math.max(f.from,b),Math.min(f.to,c),1==f.level?"rtl":"ltr")}}function lf(a){return a.level%2?a.to:a.from}function mf(a){return a.level%2?a.from:a.to}function nf(a){var b=fe(a);return b?lf(b[0]):0}function of(a){var b=fe(a);return b?mf(Le(b)):a.text.length}function pf(a,b){var c=$d(a.doc,b),d=td(a.doc,c);d!=c&&(b=ce(d));var e=fe(d),f=e?e[0].level%2?of(d):nf(d):0;return qc(b,f)}function qf(a,b){for(var c,d;c=sd(d=$d(a.doc,b));)b=c.find().to.line;var e=fe(d),f=e?e[0].level%2?nf(d):of(d):d.text.length;return qc(b,f)}function rf(a,b,c,d){var e=fe(a);if(!e)return sf(a,b,c,d);for(var f=d?function(b,c){do b+=c;while(b>0&&Ve.test(a.text.charAt(b)));return b}:function(a,b){return a+b},g=e[0].level,h=0;e.length>h;++h){var i=e[h],j=i.level%2==g;if(b>i.from&&i.to>b||j&&(i.from==b||i.to==b))break}for(var k=f(b,i.level%2?-c:c);null!=k;)if(i.level%2==g){if(!(i.from>k||k>i.to))break;i=e[h+=c],k=i&&(c>0==i.level%2?f(i.to,-1):f(i.from,1))}else if(k==lf(i))i=e[--h],k=i&&mf(i);else{if(k!=mf(i))break;i=e[++h],k=i&&lf(i)}return 0>k||k>a.text.length?null:k}function sf(a,b,c,d){var e=b+c;if(d)for(;e>0&&Ve.test(a.text.charAt(e));)e+=c;return 0>e||e>a.text.length?null:e}var a=/gecko\/\d/i.test(navigator.userAgent),b=/MSIE \d/.test(navigator.userAgent),c=b&&(null==document.documentMode||8>document.documentMode),d=b&&(null==document.documentMode||9>document.documentMode),e=/WebKit\//.test(navigator.userAgent),f=e&&/Qt\/\d+\.\d+/.test(navigator.userAgent),g=/Chrome\//.test(navigator.userAgent),h=/Opera\//.test(navigator.userAgent),i=/Apple Computer/.test(navigator.vendor),j=/KHTML\//.test(navigator.userAgent),k=/Mac OS X 1\d\D([7-9]|\d\d)\D/.test(navigator.userAgent),l=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent),m=/PhantomJS/.test(navigator.userAgent),n=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent),o=n||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent),p=n||/Mac/.test(navigator.platform),q=/windows/i.test(navigator.platform),r=h&&navigator.userAgent.match(/Version\/(\d*\.\d*)/);r&&(r=Number(r[1]));var rb,Kb,Lb,s=p&&(f||h&&(null==r||12.11>r)),t=a||b&&!d,u=!1,v=!1,ub=0,Sb=0,Tb=null;b?Tb=-.53:a?Tb=15:g?Tb=-.7:i&&(Tb=-1/3);var Xb,dc,$b=null;w.Pos=qc,w.prototype={focus:function(){window.focus(),Fb(this),bc(this),Cb(this)},setOption:function(a,b){var c=this.options,d=c[a];(c[a]!=b||"mode"==a)&&(c[a]=b,Pc.hasOwnProperty(a)&&xb(this,Pc[a])(this,b,d))},getOption:function(a){return this.options[a]},getDoc:function(){return this.doc},addKeyMap:function(a){this.state.keyMaps.push(a)},removeKeyMap:function(a){for(var b=this.state.keyMaps,c=0;b.length>c;++c)if(("string"==typeof a?b[c].name:b[c])==a)return b.splice(c,1),!0},addOverlay:xb(null,function(a,b){var c=a.token?a:w.getMode(this.options,a);if(c.startState)throw Error("Overlays may not be stateful.");this.state.overlays.push({mode:c,modeSpec:a,opaque:b&&b.opaque}),this.state.modeGen++,Ab(this)}),removeOverlay:xb(null,function(a){for(var b=this.state.overlays,c=0;b.length>c;++c)if(b[c].modeSpec==a)return b.splice(c,1),this.state.modeGen++,Ab(this),void 0}),indentLine:xb(null,function(a,b,c){"string"!=typeof b&&(b=null==b?this.options.smartIndent?"smart":"prev":b?"add":"subtract"),xc(this.doc,a)&&Jc(this,a,b,c)}),indentSelection:xb(null,function(a){var b=this.doc.sel;if(rc(b.from,b.to))return Jc(this,b.from.line,a);for(var c=b.to.line-(b.to.ch?0:1),d=b.from.line;c>=d;++d)Jc(this,d,a)}),getTokenAt:function(a){var b=this.doc;a=vc(b,a);for(var c=cb(this,a.line),d=this.doc.mode,e=$d(b,a.line),f=new dd(e.text,this.options.tabSize);f.posi)&&a.top>b.offsetHeight?g=a.top-b.offsetHeight:i>=a.bottom+b.offsetHeight&&(g=a.bottom),h+b.offsetWidth>j&&(h=j-b.offsetWidth)}b.style.top=g+db(f)+"px",b.style.left=b.style.right="","right"==e?(h=f.sizer.clientWidth-b.offsetWidth,b.style.right="0px"):("left"==e?h=0:"middle"==e&&(h=(f.sizer.clientWidth-b.offsetWidth)/2),b.style.left=h+"px"),c&&Fc(this,h,g,h+b.offsetWidth,g+b.offsetHeight)},triggerOnKeyDown:xb(null,_b),execCommand:function(a){return Zc[a](this)},findPosH:function(a,b,c,d){var e=1;0>b&&(e=-1,b=-b);for(var f=0,g=vc(this.doc,a);b>f&&(g=Lc(this.doc,g,e,c,d),!g.hitSide);++f);return g},moveH:xb(null,function(a,b){var d,c=this.doc.sel;d=c.shift||c.extend||rc(c.from,c.to)?Lc(this.doc,c.head,a,b,this.options.rtlMoveVisually):0>a?c.from:c.to,yc(this.doc,d,d,a)}),deleteH:xb(null,function(a,b){var c=this.doc.sel;rc(c.from,c.to)?pc(this.doc,"",c.from,Lc(this.doc,c.head,a,b,!1),"+delete"):pc(this.doc,"",c.from,c.to,"+delete"),this.curOp.userSelChange=!0}),findPosV:function(a,b,c,d){var e=1,f=d;0>b&&(e=-1,b=-b);for(var g=0,h=vc(this.doc,a);b>g;++g){var i=nb(this,h,"div");if(null==f?f=i.left:i.left=f,h=Mc(this,i,e,c),h.hitSide)break}return h},moveV:xb(null,function(a,b){var c=this.doc.sel,d=nb(this,c.head,"div");null!=c.goalColumn&&(d.left=c.goalColumn);var e=Mc(this,d,a,b);"page"==b&&Ic(this,0,mb(this,e,"div").top-d.top),yc(this.doc,e,e,a),c.goalColumn=d.left}),toggleOverwrite:function(){(this.state.overwrite=!this.state.overwrite)?this.display.cursor.className+=" CodeMirror-overwrite":this.display.cursor.className=this.display.cursor.className.replace(" CodeMirror-overwrite","")},scrollTo:xb(null,function(a,b){Hc(this,a,b)}),getScrollInfo:function(){var a=this.display.scroller,b=Fe;return{left:a.scrollLeft,top:a.scrollTop,height:a.scrollHeight-b,width:a.scrollWidth-b,clientHeight:a.clientHeight-b,clientWidth:a.clientWidth-b}},scrollIntoView:function(a){"number"==typeof a&&(a=qc(a,0)),a&&null==a.line?Fc(this,a.left,a.top,a.right,a.bottom):(a=a?vc(this.doc,a):this.doc.sel.head,Ec(this,a))},setSize:function(a,b){function c(a){return"number"==typeof a||/^\d+$/.test(a+"")?a+"px":a}null!=a&&(this.display.wrapper.style.width=c(a)),null!=b&&(this.display.wrapper.style.height=c(b)),this.refresh()},on:function(a,b){xe(this,a,b)},off:function(a,b){ye(this,a,b)},operation:function(a){return zb(this,a)},refresh:xb(null,function(){kb(this),Hc(this,this.doc.scrollLeft,this.doc.scrollTop),Ab(this)}),swapDoc:xb(null,function(a){var b=this.doc;return b.cm=null,Zd(this,a),kb(this),Hc(this,a.scrollLeft,a.scrollTop),b}),getInputField:function(){return this.display.input},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}};var Pc=w.optionHandlers={},Qc=w.defaults={},Sc=w.Init={toString:function(){return"CodeMirror.Init"}};Rc("value","",function(a,b){a.setValue(b)},!0),Rc("mode",null,function(a,b){a.doc.modeOption=b,y(a)},!0),Rc("indentUnit",2,y,!0),Rc("indentWithTabs",!1),Rc("smartIndent",!0),Rc("tabSize",4,function(a){y(a),kb(a),Ab(a)},!0),Rc("electricChars",!0),Rc("rtlMoveVisually",!q),Rc("theme","default",function(a){D(a),E(a)},!0),Rc("keyMap","default",C),Rc("extraKeys",null),Rc("onKeyEvent",null),Rc("onDragEvent",null),Rc("lineWrapping",!1,z,!0),Rc("gutters",[],function(a){I(a.options),E(a)},!0),Rc("fixedGutter",!0,function(a,b){a.display.gutters.style.left=b?O(a.display)+"px":"0",a.refresh()},!0),Rc("lineNumbers",!1,function(a){I(a.options),E(a)},!0),Rc("firstLineNumber",1,E,!0),Rc("lineNumberFormatter",function(a){return a},E,!0),Rc("showCursorWhenSelecting",!1,X,!0),Rc("readOnly",!1,function(a,b){"nocursor"==b?(cc(a),a.display.input.blur()):b||Eb(a,!0)}),Rc("dragDrop",!0),Rc("cursorBlinkRate",530),Rc("cursorHeight",1),Rc("workTime",100),Rc("workDelay",100),Rc("flattenSpans",!0),Rc("pollInterval",100),Rc("undoDepth",40,function(a,b){a.doc.history.undoDepth=b}),Rc("viewportMargin",10,function(a){a.refresh()},!0),Rc("tabindex",null,function(a,b){a.display.input.tabIndex=b||""}),Rc("autofocus",null);var Tc=w.modes={},Uc=w.mimeModes={};w.defineMode=function(a,b){if(w.defaults.mode||"null"==a||(w.defaults.mode=a),arguments.length>2){b.dependencies=[];for(var c=2;arguments.length>c;++c)b.dependencies.push(arguments[c])}Tc[a]=b},w.defineMIME=function(a,b){Uc[a]=b},w.resolveMode=function(a){if("string"==typeof a&&Uc.hasOwnProperty(a))a=Uc[a];else if("string"==typeof a&&/^[\w\-]+\/[\w\-]+\+xml$/.test(a))return w.resolveMode("application/xml");return"string"==typeof a?{name:a}:a||{name:"null"}},w.getMode=function(a,b){b=w.resolveMode(b);var c=Tc[b.name];if(!c)return w.getMode(a,"text/plain");var d=c(a,b);if(Vc.hasOwnProperty(b.name)){var e=Vc[b.name];for(var f in e)e.hasOwnProperty(f)&&(d.hasOwnProperty(f)&&(d["_"+f]=d[f]),d[f]=e[f])}return d.name=b.name,d},w.defineMode("null",function(){return{token:function(a){a.skipToEnd()}}}),w.defineMIME("text/plain","null");var Vc=w.modeExtensions={};w.extendMode=function(a,b){var c=Vc.hasOwnProperty(a)?Vc[a]:Vc[a]={};Pe(b,c)},w.defineExtension=function(a,b){w.prototype[a]=b},w.defineOption=Rc;var Wc=[];w.defineInitHook=function(a){Wc.push(a)},w.copyState=Xc,w.startState=Yc,w.innerMode=function(a,b){for(;a.innerMode;){var c=a.innerMode(b);b=c.state,a=c.mode}return c||{mode:a,state:b}};var Zc=w.commands={selectAll:function(a){a.setSelection(qc(a.firstLine(),0),qc(a.lastLine()))},killLine:function(a){var b=a.getCursor(!0),c=a.getCursor(!1),d=!rc(b,c);d||a.getLine(b.line).length!=b.ch?a.replaceRange("",b,d?c:qc(b.line),"+delete"):a.replaceRange("",b,qc(b.line+1,0),"+delete")},deleteLine:function(a){var b=a.getCursor().line;a.replaceRange("",qc(b,0),qc(b),"+delete")},undo:function(a){a.undo()},redo:function(a){a.redo()},goDocStart:function(a){a.extendSelection(qc(a.firstLine(),0))},goDocEnd:function(a){a.extendSelection(qc(a.lastLine()))},goLineStart:function(a){a.extendSelection(pf(a,a.getCursor().line))},goLineStartSmart:function(a){var b=a.getCursor(),c=pf(a,b.line),d=a.getLineHandle(c.line),e=fe(d);if(e&&0!=e[0].level)a.extendSelection(c);else{var f=Math.max(0,d.text.search(/\S/)),g=b.line==c.line&&f>=b.ch&&b.ch;a.extendSelection(qc(c.line,g?0:f))}},goLineEnd:function(a){a.extendSelection(qf(a,a.getCursor().line))},goLineUp:function(a){a.moveV(-1,"line")},goLineDown:function(a){a.moveV(1,"line")},goPageUp:function(a){a.moveV(-1,"page")},goPageDown:function(a){a.moveV(1,"page")},goCharLeft:function(a){a.moveH(-1,"char")},goCharRight:function(a){a.moveH(1,"char")},goColumnLeft:function(a){a.moveH(-1,"column")},goColumnRight:function(a){a.moveH(1,"column")},goWordLeft:function(a){a.moveH(-1,"word")},goWordRight:function(a){a.moveH(1,"word")},goWordBoundaryLeft:function(a){a.moveH(-1,"wordBoundary")},goWordBoundaryRight:function(a){a.moveH(1,"wordBoundary")},delCharBefore:function(a){a.deleteH(-1,"char")},delCharAfter:function(a){a.deleteH(1,"char")},delWordBefore:function(a){a.deleteH(-1,"word")},delWordAfter:function(a){a.deleteH(1,"word")},indentAuto:function(a){a.indentSelection("smart")},indentMore:function(a){a.indentSelection("add")},indentLess:function(a){a.indentSelection("subtract")},insertTab:function(a){a.replaceSelection(" ","end","+input")},defaultTab:function(a){a.somethingSelected()?a.indentSelection("add"):a.replaceSelection(" ","end","+input")},transposeChars:function(a){var b=a.getCursor(),c=a.getLine(b.line);b.ch>0&&b.ch=this.string.length},sol:function(){return 0==this.pos},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){return this.posb},eatSpace:function(){for(var a=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>a},skipToEnd:function(){this.pos=this.string.length},skipTo:function(a){var b=this.string.indexOf(a,this.pos);return b>-1?(this.pos=b,!0):void 0},backUp:function(a){this.pos-=a},column:function(){return this.lastColumnPos0?null:(f&&b!==!1&&(this.pos+=f[0].length),f)}var d=function(a){return c?a.toLowerCase():a},e=this.string.substr(this.pos,a.length);return d(e)==d(a)?(b!==!1&&(this.pos+=a.length),!0):void 0},current:function(){return this.string.slice(this.start,this.pos)}},w.StringStream=dd,w.TextMarker=ed,ed.prototype.clear=function(){if(!this.explicitlyCleared){var a=this.doc.cm,b=a&&!a.curOp;b&&vb(a);for(var c=null,d=null,e=0;this.lines.length>e;++e){var f=this.lines[e],g=id(f.markedSpans,this);null!=g.to&&(d=ce(f)),f.markedSpans=jd(f.markedSpans,g),null!=g.from?c=ce(f):this.collapsed&&!ud(this.doc,f)&&a&&be(f,sb(a.display))}if(a&&this.collapsed&&!a.options.lineWrapping)for(var e=0;this.lines.length>e;++e){var h=td(a.doc,this.lines[e]),i=G(a.doc,h);i>a.display.maxLineLength&&(a.display.maxLine=h,a.display.maxLineLength=i,a.display.maxLineChanged=!0)}null!=c&&a&&Ab(a,c,d+1),this.lines.length=0,this.explicitlyCleared=!0,this.collapsed&&this.doc.cantEdit&&(this.doc.cantEdit=!1,a&&Bc(a)),b&&wb(a),Ce(this,"clear")}},ed.prototype.find=function(){for(var a,b,c=0;this.lines.length>c;++c){var d=this.lines[c],e=id(d.markedSpans,this);if(null!=e.from||null!=e.to){var f=ce(d);null!=e.from&&(a=qc(f,e.from)),null!=e.to&&(b=qc(f,e.to))}}return"bookmark"==this.type?a:a&&{from:a,to:b}},ed.prototype.getOptions=function(a){var b=this.replacedWith;return{className:this.className,inclusiveLeft:this.inclusiveLeft,inclusiveRight:this.inclusiveRight,atomic:this.atomic,collapsed:this.collapsed,clearOnEnter:this.clearOnEnter,replacedWith:a?b&&b.cloneNode(!0):b,readOnly:this.readOnly,startStyle:this.startStyle,endStyle:this.endStyle}},ed.prototype.attachLine=function(a){if(!this.lines.length&&this.doc.cm){var b=this.doc.cm.curOp;b.maybeHiddenMarkers&&-1!=Ne(b.maybeHiddenMarkers,this)||(b.maybeUnhiddenMarkers||(b.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(a)},ed.prototype.detachLine=function(a){if(this.lines.splice(Ne(this.lines,a),1),!this.lines.length&&this.doc.cm){var b=this.doc.cm.curOp;(b.maybeHiddenMarkers||(b.maybeHiddenMarkers=[])).push(this)}},w.SharedTextMarker=gd,gd.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var a=0;this.markers.length>a;++a)this.markers[a].clear();Ce(this,"clear")}},gd.prototype.find=function(){return this.primary.find()},gd.prototype.getOptions=function(a){var b=this.primary.getOptions(a);return b.shared=!0,b};var yd=w.LineWidget=function(a,b,c){for(var d in c)c.hasOwnProperty(d)&&(this[d]=c[d]);this.cm=a,this.node=b};yd.prototype.clear=zd(function(){var a=this.line.widgets,b=ce(this.line);if(null!=b&&a){for(var c=0;a.length>c;++c)a[c]==this&&a.splice(c--,1);a.length||(this.line.widgets=null),be(this.line,Math.max(0,this.line.height-Ad(this))),Ab(this.cm,b,b+1)}}),yd.prototype.changed=zd(function(){var a=this.height;this.height=null;var b=Ad(this)-a;if(b){be(this.line,this.line.height+b);var c=ce(this.line);Ab(this.cm,c,c+1)}});var Jd={},Md=/[\t\u0000-\u0019\u00ad\u200b\u2028\u2029\uFEFF]/g;Sd.prototype={chunkSize:function(){return this.lines.length},removeInner:function(a,b){for(var c=a,d=a+b;d>c;++c){var e=this.lines[c];this.height-=e.height,Ed(e),Ce(e,"delete")}this.lines.splice(a,b)},collapse:function(a){a.splice.apply(a,[a.length,0].concat(this.lines))},insertInner:function(a,b,c){this.height+=c,this.lines=this.lines.slice(0,a).concat(b).concat(this.lines.slice(a));for(var d=0,e=b.length;e>d;++d)b[d].parent=this},iterN:function(a,b,c){for(var d=a+b;d>a;++a)if(c(this.lines[a]))return!0}},Td.prototype={chunkSize:function(){return this.size},removeInner:function(a,b){this.size-=b;for(var c=0;this.children.length>c;++c){var d=this.children[c],e=d.chunkSize();if(e>a){var f=Math.min(b,e-a),g=d.height;if(d.removeInner(a,f),this.height-=g-d.height,e==f&&(this.children.splice(c--,1),d.parent=null),0==(b-=f))break;a=0}else a-=e}if(25>this.size-b){var h=[];this.collapse(h),this.children=[new Sd(h)],this.children[0].parent=this}},collapse:function(a){for(var b=0,c=this.children.length;c>b;++b)this.children[b].collapse(a)},insertInner:function(a,b,c){this.size+=b.length,this.height+=c;for(var d=0,e=this.children.length;e>d;++d){var f=this.children[d],g=f.chunkSize();if(g>=a){if(f.insertInner(a,b,c),f.lines&&f.lines.length>50){for(;f.lines.length>50;){var h=f.lines.splice(f.lines.length-25,25),i=new Sd(h);f.height-=i.height,this.children.splice(d+1,0,i),i.parent=this}this.maybeSpill()}break}a-=g}},maybeSpill:function(){if(!(10>=this.children.length)){var a=this;do{var b=a.children.splice(a.children.length-5,5),c=new Td(b);if(a.parent){a.size-=c.size,a.height-=c.height;var e=Ne(a.parent.children,a);a.parent.children.splice(e+1,0,c)}else{var d=new Td(a.children);d.parent=a,a.children=[d,c],a=d}c.parent=a.parent}while(a.children.length>10);a.parent.maybeSpill()}},iterN:function(a,b,c){for(var d=0,e=this.children.length;e>d;++d){var f=this.children[d],g=f.chunkSize();if(g>a){var h=Math.min(b,g-a);if(f.iterN(a,h,c))return!0;if(0==(b-=h))break;a=0}else a-=g}}};var Ud=0,Vd=w.Doc=function(a,b,c){if(!(this instanceof Vd))return new Vd(a,b,c);null==c&&(c=0),Td.call(this,[new Sd([Cd("",null)])]),this.first=c,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.history=ge(),this.frontier=c;var d=qc(c,0);this.sel={from:d,to:d,head:d,anchor:d,shift:!1,extend:!1,goalColumn:null},this.id=++Ud,this.modeOption=b,"string"==typeof a&&(a=ff(a)),Rd(this,{from:d,to:d,text:a},null,{head:d,anchor:d})};Vd.prototype=Oe(Td.prototype,{iter:function(a,b,c){c?this.iterN(a-this.first,b-a,c):this.iterN(this.first,this.first+this.size,a)},insert:function(a,b){for(var c=0,d=0,e=b.length;e>d;++d)c+=b[d].height;this.insertInner(a-this.first,b,c)},remove:function(a,b){this.removeInner(a-this.first,b)},getValue:function(a){var b=ae(this,this.first,this.first+this.size);return a===!1?b:b.join(a||"\n")},setValue:function(a){var b=qc(this.first,0),c=this.first+this.size-1;jc(this,{from:b,to:qc(c,$d(this,c).text.length),text:ff(a),origin:"setValue"},{head:b,anchor:b},!0)},replaceRange:function(a,b,c,d){b=vc(this,b),c=c?vc(this,c):b,pc(this,a,b,c,d)},getRange:function(a,b,c){var d=_d(this,vc(this,a),vc(this,b));return c===!1?d:d.join(c||"\n")},getLine:function(a){var b=this.getLineHandle(a);return b&&b.text},setLine:function(a,b){xc(this,a)&&pc(this,b,qc(a,0),vc(this,qc(a)))},removeLine:function(a){xc(this,a)&&pc(this,"",qc(a,0),vc(this,qc(a+1,0)))},getLineHandle:function(a){return xc(this,a)?$d(this,a):void 0},getLineNumber:function(a){return ce(a)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(a){return vc(this,a)},getCursor:function(a){var c,b=this.sel;return c=null==a||"head"==a?b.head:"anchor"==a?b.anchor:"end"==a||a===!1?b.to:b.from,tc(c)},somethingSelected:function(){return!rc(this.sel.head,this.sel.anchor)},setCursor:yb(function(a,b,c){var d=vc(this,"number"==typeof a?qc(a,b||0):a);c?yc(this,d):Ac(this,d,d)}),setSelection:yb(function(a,b){Ac(this,vc(this,a),vc(this,b||a))}),extendSelection:yb(function(a,b){yc(this,vc(this,a),b&&vc(this,b))}),getSelection:function(a){return this.getRange(this.sel.from,this.sel.to,a)},replaceSelection:function(a,b,c){jc(this,{from:this.sel.from,to:this.sel.to,text:ff(a),origin:c},b||"around")},undo:yb(function(){lc(this,"undo")}),redo:yb(function(){lc(this,"redo")}),setExtending:function(a){this.sel.extend=a},historySize:function(){var a=this.history;return{undo:a.done.length,redo:a.undone.length}},clearHistory:function(){this.history=ge()},markClean:function(){this.history.dirtyCounter=0,this.history.lastOp=this.history.lastOrigin=null},isClean:function(){return 0==this.history.dirtyCounter},getHistory:function(){return{done:me(this.history.done),undone:me(this.history.undone)}},setHistory:function(a){var b=this.history=ge();b.done=a.done.slice(0),b.undone=a.undone.slice(0)},markText:function(a,b,c){return fd(this,vc(this,a),vc(this,b),c,"range")},setBookmark:function(a,b){var c={replacedWith:b&&(null==b.nodeType?b.widget:b),insertLeft:b&&b.insertLeft};return a=vc(this,a),fd(this,a,a,c,"bookmark")},findMarksAt:function(a){a=vc(this,a);var b=[],c=$d(this,a.line).markedSpans;if(c)for(var d=0;c.length>d;++d){var e=c[d];(null==e.from||e.from<=a.ch)&&(null==e.to||e.to>=a.ch)&&b.push(e.marker.parent||e.marker)}return b},getAllMarks:function(){var a=[];return this.iter(function(b){var c=b.markedSpans;if(c)for(var d=0;c.length>d;++d)null!=c[d].from&&a.push(c[d].marker)}),a},posFromIndex:function(a){var b,c=this.first;return this.iter(function(d){var e=d.text.length+1;return e>a?(b=a,!0):(a-=e,++c,void 0)}),vc(this,qc(c,b))},indexFromPos:function(a){a=vc(this,a);var b=a.ch;return a.linea.ch?0:(this.iter(this.first,a.line,function(a){b+=a.text.length+1}),b)},copy:function(a){var b=new Vd(ae(this,this.first,this.first+this.size),this.modeOption,this.first);return b.scrollTop=this.scrollTop,b.scrollLeft=this.scrollLeft,b.sel={from:this.sel.from,to:this.sel.to,head:this.sel.head,anchor:this.sel.anchor,shift:this.sel.shift,extend:!1,goalColumn:this.sel.goalColumn},a&&(b.history.undoDepth=this.history.undoDepth,b.setHistory(this.getHistory())),b},linkedDoc:function(a){a||(a={});var b=this.first,c=this.first+this.size;null!=a.from&&a.from>b&&(b=a.from),null!=a.to&&c>a.to&&(c=a.to);var d=new Vd(ae(this,b,c),a.mode||this.modeOption,b);return a.sharedHist&&(d.history=this.history),(this.linked||(this.linked=[])).push({doc:d,sharedHist:a.sharedHist}),d.linked=[{doc:this,isParent:!0,sharedHist:a.sharedHist}],d},unlinkDoc:function(a){if(a instanceof w&&(a=a.doc),this.linked)for(var b=0;this.linked.length>b;++b){var c=this.linked[b];if(c.doc==a){this.linked.splice(b,1),a.unlinkDoc(this);break}}if(a.history==this.history){var d=[a.id];Yd(a,function(a){d.push(a.id)},!0),a.history=ge(),a.history.done=me(this.history.done,d),a.history.undone=me(this.history.undone,d)}},iterLinkedDocs:function(a){Yd(this,a)},getMode:function(){return this.mode},getEditor:function(){return this.cm}}),Vd.prototype.eachLine=Vd.prototype.iter;var Wd="iter insert remove copy getEditor".split(" ");for(var Xd in Vd.prototype)Vd.prototype.hasOwnProperty(Xd)&&0>Ne(Wd,Xd)&&(w.prototype[Xd]=function(a){return function(){return a.apply(this.doc,arguments)}}(Vd.prototype[Xd]));w.e_stop=ue,w.e_preventDefault=se,w.e_stopPropagation=te;var Ae,Be=0;w.on=xe,w.off=ye,w.signal=ze;var Fe=30,Ge=w.Pass={toString:function(){return"CodeMirror.Pass"}};He.prototype={set:function(a,b){clearTimeout(this.id),this.id=setTimeout(b,a)}},w.countColumn=Ie;var Je=[""],Se=/[\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc]/,Ve=/[\u0300-\u036F\u0483-\u0487\u0488-\u0489\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\uA66F\uA670-\uA672\uA674-\uA67D\uA69F\udc00-\udfff]/;w.replaceGetRect=function(a){$e=a};var _e=function(){if(d)return!1;var a=We("div");return"draggable"in a||"dragDrop"in a}(),af=/^$/;a?af=/$'/:i&&!/Version\/([6-9]|\d\d)\b/.test(navigator.userAgent)?af=/\-[^ \-?]|\?[^ !'\"\),.\-\/:;\?\]\}]/:e&&(af=/[~!#%&*)=+}\]|\"\.>,:;][({[<]|-[^\-?\.]|\?[\w~`@#$%\^&*(_=+{[|><]/);var bf,df,ff=3!="\n\nb".split(/\n/).length?function(a){for(var b=0,c=[],d=a.length;d>=b;){var e=a.indexOf("\n",b);-1==e&&(e=a.length);var f=a.slice(b,"\r"==a.charAt(e-1)?e-1:e),g=f.indexOf("\r");-1!=g?(c.push(f.slice(0,g)),b+=g+1):(c.push(f),b=e+1)}return c}:function(a){return a.split(/\r\n?|\n/)};w.splitLines=ff;var gf=window.getSelection?function(a){try{return a.selectionStart!=a.selectionEnd}catch(b){return!1}}:function(a){try{var b=a.ownerDocument.selection.createRange()}catch(c){}return b&&b.parentElement()==a?0!=b.compareEndPoints("StartToEnd",b):!1},hf=function(){var a=We("div");return"oncopy"in a?!0:(a.setAttribute("oncopy","return;"),"function"==typeof a.oncopy)}(),jf={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",91:"Mod",92:"Mod",93:"Mod",109:"-",107:"=",127:"Delete",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63276:"PageUp",63277:"PageDown",63275:"End",63273:"Home",63234:"Left",63232:"Up",63235:"Right",63233:"Down",63302:"Insert",63272:"Delete"}; w.keyNames=jf,function(){for(var a=0;10>a;a++)jf[a+48]=a+"";for(var a=65;90>=a;a++)jf[a]=String.fromCharCode(a);for(var a=1;12>=a;a++)jf[a+111]=jf[a+63235]="F"+a}();var tf=function(){function c(c){return 255>=c?a.charAt(c):c>=1424&&1524>=c?"R":c>=1536&&1791>=c?b.charAt(c-1536):c>=1792&&2220>=c?"r":"L"}var a="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL",b="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmmrrrrrrrrrrrrrrrrrr",d=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,e=/[stwN]/,f=/[LRr]/,g=/[Lb1n]/,h=/[1n]/,i="L";return function(a){if(!d.test(a))return!1;for(var l,b=a.length,j=[],k=0;b>k;++k)j.push(l=c(a.charCodeAt(k)));for(var k=0,m=i;b>k;++k){var l=j[k];"m"==l?j[k]=m:m=l}for(var k=0,n=i;b>k;++k){var l=j[k];"1"==l&&"r"==n?j[k]="n":f.test(l)&&(n=l,"r"==l&&(j[k]="R"))}for(var k=1,m=j[0];b-1>k;++k){var l=j[k];"+"==l&&"1"==m&&"1"==j[k+1]?j[k]="1":","!=l||m!=j[k+1]||"1"!=m&&"n"!=m||(j[k]=m),m=l}for(var k=0;b>k;++k){var l=j[k];if(","==l)j[k]="N";else if("%"==l){for(var o=k+1;b>o&&"%"==j[o];++o);for(var p=k&&"!"==j[k-1]||b-1>o&&"1"==j[o]?"1":"N",q=k;o>q;++q)j[q]=p;k=o-1}}for(var k=0,n=i;b>k;++k){var l=j[k];"L"==n&&"1"==l?j[k]="L":f.test(l)&&(n=l)}for(var k=0;b>k;++k)if(e.test(j[k])){for(var o=k+1;b>o&&e.test(j[o]);++o);for(var r="L"==(k?j[k-1]:i),s="L"==(b-1>o?j[o]:i),p=r||s?"L":"R",q=k;o>q;++q)j[q]=p;k=o-1}for(var u,t=[],k=0;b>k;)if(g.test(j[k])){var v=k;for(++k;b>k&&g.test(j[k]);++k);t.push({from:v,to:k,level:0})}else{var w=k,x=t.length;for(++k;b>k&&"L"!=j[k];++k);for(var q=w;k>q;)if(h.test(j[q])){q>w&&t.splice(x,0,{from:w,to:q,level:1});var y=q;for(++q;k>q&&h.test(j[q]);++q);t.splice(x,0,{from:y,to:q,level:2}),w=q}else++q;k>w&&t.splice(x,0,{from:w,to:k,level:1})}return 1==t[0].level&&(u=a.match(/^\s+/))&&(t[0].from=u[0].length,t.unshift({from:0,to:u[0].length,level:0})),1==Le(t).level&&(u=a.match(/\s+$/))&&(Le(t).to-=u[0].length,t.push({from:b-u[0].length,to:b,level:0})),t[0].level!=Le(t).level&&t.push({from:b,to:b,level:t[0].level}),t}}();return w.version="3.1 +",w}(),CodeMirror.defineMode("xml",function(a,b){function h(a,b){function c(c){return b.tokenize=c,c(a,b)}var d=a.next();if("<"==d){if(a.eat("!"))return a.eat("[")?a.match("CDATA[")?c(k("atom","]]>")):null:a.match("--")?c(k("comment","-->")):a.match("DOCTYPE",!0,!0)?(a.eatWhile(/[\w\._\-]/),c(l(1))):null;if(a.eat("?"))return a.eatWhile(/[\w\._\-]/),b.tokenize=k("meta","?>"),"meta";var e=a.eat("/");f="";for(var h;h=a.eat(/[^\s\u00a0=<>\"\'\/?]/);)f+=h;return f?(g=e?"closeTag":"openTag",b.tokenize=i,"tag"):"error"}if("&"==d){var j;return j=a.eat("#")?a.eat("x")?a.eatWhile(/[a-fA-F\d]/)&&a.eat(";"):a.eatWhile(/[\d]/)&&a.eat(";"):a.eatWhile(/[\w\.\-:]/)&&a.eat(";"),j?"atom":"error"}return a.eatWhile(/[^&<]/),null}function i(a,b){var c=a.next();return">"==c||"/"==c&&a.eat(">")?(b.tokenize=h,g=">"==c?"endTag":"selfcloseTag","tag"):"="==c?(g="equals",null):/[\'\"]/.test(c)?(b.tokenize=j(c),b.tokenize(a,b)):(a.eatWhile(/[^\s\u00a0=<>\"\']/),"word")}function j(a){return function(b,c){for(;!b.eol();)if(b.next()==a){c.tokenize=i;break}return"string"}}function k(a,b){return function(c,d){for(;!c.eol();){if(c.match(b)){d.tokenize=h;break}c.next()}return a}}function l(a){return function(b,c){for(var d;null!=(d=b.next());){if("<"==d)return c.tokenize=l(a+1),c.tokenize(b,c);if(">"==d){if(1==a){c.tokenize=h;break}return c.tokenize=l(a-1),c.tokenize(b,c)}}return"meta"}}function o(){for(var a=arguments.length-1;a>=0;a--)m.cc.push(arguments[a])}function p(){return o.apply(null,arguments),!0}function q(a,b){var c=d.doNotIndent.hasOwnProperty(a)||m.context&&m.context.noIndent;m.context={prev:m.context,tagName:a,indent:m.indented,startOfLine:b,noIndent:c}}function r(){m.context&&(m.context=m.context.prev)}function s(a){if("openTag"==a)return m.tagName=f,p(w,t(m.startOfLine));if("closeTag"==a){var b=!1;return m.context?m.context.tagName!=f&&(d.implicitlyClosed.hasOwnProperty(m.context.tagName.toLowerCase())&&r(),b=!m.context||m.context.tagName!=f):b=!0,b&&(n="error"),p(u(b))}return p()}function t(a){return function(b){var c=m.tagName;return m.tagName=null,"selfcloseTag"==b||"endTag"==b&&d.autoSelfClosers.hasOwnProperty(c.toLowerCase())?(v(c.toLowerCase()),p()):"endTag"==b?(v(c.toLowerCase()),q(c,a),p()):p()}}function u(a){return function(b){return a&&(n="error"),"endTag"==b?(r(),p()):(n="error",p(arguments.callee))}}function v(a){for(var b;;){if(!m.context)return;if(b=m.context.tagName.toLowerCase(),!d.contextGrabbers.hasOwnProperty(b)||!d.contextGrabbers[b].hasOwnProperty(a))return;r()}}function w(a){return"word"==a?(n="attribute",p(x,w)):"endTag"==a||"selfcloseTag"==a?o():(n="error",p(w))}function x(a){return"equals"==a?p(y,w):(d.allowMissing?"word"==a&&(n="attribute"):n="error","endTag"==a||"selfcloseTag"==a?o():p())}function y(a){return"string"==a?p(z):"word"==a&&d.allowUnquoted?(n="string",p()):(n="error","endTag"==a||"selfCloseTag"==a?o():p())}function z(a){return"string"==a?p(z):o()}var f,g,m,n,c=a.indentUnit,d=b.htmlMode?{autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0}:{autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1},e=b.alignCDATA;return{startState:function(){return{tokenize:h,cc:[],indented:0,startOfLine:!0,tagName:null,context:null}},token:function(a,b){if(a.sol()&&(b.startOfLine=!0,b.indented=a.indentation()),a.eatSpace())return null;n=g=f=null;var c=b.tokenize(a,b);if(b.type=g,(c||g)&&"comment"!=c)for(m=b;;){var d=b.cc.pop()||s;if(d(g||c))break}return b.startOfLine=!1,n||c},indent:function(a,b,d){var f=a.context;if(a.tokenize!=i&&a.tokenize!=h||f&&f.noIndent)return d?d.match(/^(\s*)/)[0].length:0;if(e&&/"==o.charAt(1)==h)k.push(n);else{if(k.pop()!=o.charAt(0))return{pos:g,match:!1};if(!k.length)return{pos:g,match:!0}}}}}}var c=a.getCursor(),e=a.getLineHandle(c.line),f=c.ch-1,g=f>=0&&d[e.text.charAt(f)]||d[e.text.charAt(++f)];if(!g)return null;for(var o,h=">"==g.charAt(1),i=h?1:-1,j=a.getTokenAt(b(c.line,f+1)).type,k=[e.text.charAt(f)],l=/[(){}[\]]/,n=c.line,p=h?Math.min(n+100,a.lineCount()):Math.max(-1,n-100);n!=p&&!(o=n==c.line?m(e,n,f):m(a.getLineHandle(n),n));n+=i);return{from:b(c.line,f),to:o&&b(n,o.pos),match:o&&o.match}}function f(d,f){var g=e(d);if(!(!g||d.getLine(g.from.line).length>c||g.to&&d.getLine(g.to.line).length>c)){var h=g.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket",i=d.markText(g.from,b(g.from.line,g.from.ch+1),{className:h}),j=g.to&&d.markText(g.to,b(g.to.line,g.to.ch+1),{className:h});a&&d.state.focused&&d.display.input.focus();var k=function(){d.operation(function(){i.clear(),j&&j.clear()})};return f?(setTimeout(k,800),void 0):k}}function h(a){a.operation(function(){g&&(g(),g=null),a.somethingSelected()||(g=f(a,!1))})}var a=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||8>document.documentMode),b=CodeMirror.Pos,c=1e3,d={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},g=null;CodeMirror.defineOption("matchBrackets",!1,function(a,b){b?a.on("cursorActivity",h):a.off("cursorActivity",h)}),CodeMirror.defineExtension("matchBrackets",function(){f(this,!0)}),CodeMirror.defineExtension("findMatchingBracket",function(){return e(this)})}(),function(){function b(a){for(var b={name:"autoCloseBrackets"},c=0;a.length>c;c+=2)(function(a,c){function d(a){var b=a.getCursor(),d=a.getRange(b,CodeMirror.Pos(b.line,b.ch+1));return d!=c?CodeMirror.Pass:(a.execCommand("goCharRight"),void 0)}b["'"+a+"'"]=function(b){if(a!=c||d(b)==CodeMirror.Pass){var e=b.getCursor("start"),f=CodeMirror.Pos(e.line,e.ch+1);b.replaceSelection(a+c,{head:f,anchor:f})}},a!=c&&(b["'"+c+"'"]=d)})(a.charAt(c),a.charAt(c+1));return b}var a="()[]{}''\"\"";CodeMirror.defineOption("autoCloseBrackets",!1,function(c,d,e){var f=e&&e!=CodeMirror.Init;d&&!f?c.addKeyMap(b("string"==typeof d?d:a)):!d&&f&&c.removeKeyMap("autoCloseBrackets")})}(),function(){function a(a){return"string"==typeof a?{token:function(b){return b.match(a)?"searching":(b.next(),b.skipTo(a.charAt(0))||b.skipToEnd(),void 0)}}:{token:function(b){if(b.match(a))return"searching";for(;!b.eol()&&(b.next(),!b.match(a,!1)););}}}function b(){this.posFrom=this.posTo=this.query=null,this.overlay=null}function c(a){return a._searchState||(a._searchState=new b)}function d(a,b,c){return a.getSearchCursor(b,c,"string"==typeof b&&b==b.toLowerCase())}function e(a,b,c,d){a.openDialog?a.openDialog(b,d):d(prompt(c,""))}function f(a,b,c,d){a.openConfirm?a.openConfirm(b,d):confirm(c)&&d[0]()}function g(a){var b=a.match(/^\/(.*)\/([a-z]*)$/);return b?RegExp(b[1],-1==b[2].indexOf("i")?"":"i"):a}function i(b,d){var f=c(b);return f.query?j(b,d):(e(b,h,"Search for:",function(c){b.operation(function(){c&&!f.query&&(f.query=g(c),b.removeOverlay(f.overlay),f.overlay=a(c),b.addOverlay(f.overlay),f.posFrom=f.posTo=b.getCursor(),j(b,d))})}),void 0)}function j(a,b){a.operation(function(){var e=c(a),f=d(a,e.query,b?e.posFrom:e.posTo);(f.find(b)||(f=d(a,e.query,b?CodeMirror.Pos(a.lastLine()):CodeMirror.Pos(a.firstLine(),0)),f.find(b)))&&(a.setSelection(f.from(),f.to()),e.posFrom=f.from(),e.posTo=f.to())})}function k(a){a.operation(function(){var b=c(a);b.query&&(b.query=null,a.removeOverlay(b.overlay))})}function o(a,b){e(a,l,"Replace:",function(c){c&&(c=g(c),e(a,m,"Replace with:",function(e){if(b)a.operation(function(){for(var b=d(a,c);b.findNext();)if("string"!=typeof c){var f=a.getRange(b.from(),b.to()).match(c);b.replace(e.replace(/\$(\d)/,function(a,b){return f[b]}))}else b.replace(e)});else{k(a);var g=d(a,c,a.getCursor()),h=function(){var e,b=g.from();!(e=g.findNext())&&(g=d(a,c),!(e=g.findNext())||b&&g.from().line==b.line&&g.from().ch==b.ch)||(a.setSelection(g.from(),g.to()),f(a,n,"Replace?",[function(){i(e)},h]))},i=function(a){g.replace("string"==typeof c?e:e.replace(/\$(\d)/,function(b,c){return a[c]})),h()};h()}}))})}var h='Search: (Use /re/ syntax for regexp search)',l='Replace: (Use /re/ syntax for regexp search)',m='With: ',n="Replace? ";CodeMirror.commands.find=function(a){k(a),i(a)},CodeMirror.commands.findNext=i,CodeMirror.commands.findPrev=function(a){i(a,!0)},CodeMirror.commands.clearSearch=k,CodeMirror.commands.replace=o,CodeMirror.commands.replaceAll=function(a){o(a,!0)}}();site_pro/codemirror-3.1/0000755000000000000000000000000012111430706014037 5ustar rootrootsite_pro/codemirror-3.1/bin/0000755000000000000000000000000012111430706014607 5ustar rootrootsite_pro/codemirror-3.1/bin/compress0000755000000000000000000000515412111430706016375 0ustar rootroot#!/usr/bin/env node // Compression helper for CodeMirror // // Example: // // bin/compress codemirror runmode javascript xml // // Will take lib/codemirror.js, addon/runmode/runmode.js, // mode/javascript/javascript.js, and mode/xml/xml.js, run them though // the online minifier at http://marijnhaverbeke.nl/uglifyjs, and spit // out the result. // // bin/compress codemirror --local /path/to/bin/UglifyJS // // Will use a local minifier instead of the online default one. // // Script files are specified without .js ending. Prefixing them with // their full (local) path is optional. So you may say lib/codemirror // or mode/xml/xml to be more precise. In fact, even the .js suffix // may be speficied, if wanted. "use strict"; var fs = require("fs"); function help(ok) { console.log("usage: " + process.argv[1] + " [--local /path/to/uglifyjs] files..."); process.exit(ok ? 0 : 1); } var local = null, args = null, files = [], blob = ""; for (var i = 2; i < process.argv.length; ++i) { var arg = process.argv[i]; if (arg == "--local" && i + 1 < process.argv.length) { var parts = process.argv[++i].split(/\s+/); local = parts[0]; args = parts.slice(1); } else if (arg == "--help") { help(true); } else if (arg[0] != "-") { files.push({name: arg, re: new RegExp("(?:\\/|^)" + arg + (/\.js$/.test(arg) ? "$" : "\\.js$"))}); } else help(false); } function walk(dir) { fs.readdirSync(dir).forEach(function(fname) { if (/^[_\.]/.test(fname)) return; var file = dir + fname; if (fs.statSync(file).isDirectory()) return walk(file + "/"); if (files.some(function(spec, i) { var match = spec.re.test(file); if (match) files.splice(i, 1); return match; })) { if (local) args.push(file); else blob += fs.readFileSync(file, "utf8"); } }); } walk("lib/"); walk("addon/"); walk("mode/"); if (!local && !blob) help(false); if (files.length) { console.log("Some speficied files were not found: " + files.map(function(a){return a.name;}).join(", ")); process.exit(1); } if (local) { require("child_process").spawn(local, args, {stdio: ["ignore", process.stdout, process.stderr]}); } else { var data = new Buffer("js_code=" + require("querystring").escape(blob), "utf8"); var req = require("http").request({ host: "marijnhaverbeke.nl", port: 80, method: "POST", path: "/uglifyjs", headers: {"content-type": "application/x-www-form-urlencoded", "content-length": data.length} }); req.on("response", function(resp) { resp.on("data", function (chunk) { process.stdout.write(chunk); }); }); req.end(data); } site_pro/codemirror-3.1/mode/0000755000000000000000000000000012111430706014763 5ustar rootrootsite_pro/codemirror-3.1/mode/q/0000755000000000000000000000000012111430706015223 5ustar rootrootsite_pro/codemirror-3.1/mode/q/index.html0000644000000000000000000002067412111430706017231 0ustar rootroot CodeMirror: Q mode

CodeMirror: Q mode

MIME type defined: text/x-q.

site_pro/codemirror-3.1/mode/q/q.js0000644000000000000000000001401512111430706016022 0ustar rootrootCodeMirror.defineMode("q",function(config){ var indentUnit=config.indentUnit, curPunc, keywords=buildRE(["abs","acos","aj","aj0","all","and","any","asc","asin","asof","atan","attr","avg","avgs","bin","by","ceiling","cols","cor","cos","count","cov","cross","csv","cut","delete","deltas","desc","dev","differ","distinct","div","do","each","ej","enlist","eval","except","exec","exit","exp","fby","fills","first","fkeys","flip","floor","from","get","getenv","group","gtime","hclose","hcount","hdel","hopen","hsym","iasc","idesc","if","ij","in","insert","inter","inv","key","keys","last","like","list","lj","load","log","lower","lsq","ltime","ltrim","mavg","max","maxs","mcount","md5","mdev","med","meta","min","mins","mmax","mmin","mmu","mod","msum","neg","next","not","null","or","over","parse","peach","pj","plist","prd","prds","prev","prior","rand","rank","ratios","raze","read0","read1","reciprocal","reverse","rload","rotate","rsave","rtrim","save","scan","select","set","setenv","show","signum","sin","sqrt","ss","ssr","string","sublist","sum","sums","sv","system","tables","tan","til","trim","txf","type","uj","ungroup","union","update","upper","upsert","value","var","view","views","vs","wavg","where","where","while","within","wj","wj1","wsum","xasc","xbar","xcol","xcols","xdesc","xexp","xgroup","xkey","xlog","xprev","xrank"]), E=/[|/&^!+:\\\-*%$=~#;@><,?_\'\"\[\(\]\)\s{}]/; function buildRE(w){return new RegExp("^("+w.join("|")+")$");} function tokenBase(stream,state){ var sol=stream.sol(),c=stream.next(); curPunc=null; if(sol) if(c=="/") return(state.tokenize=tokenLineComment)(stream,state); else if(c=="\\"){ if(stream.eol()||/\s/.test(stream.peek())) return stream.skipToEnd(),/^\\\s*$/.test(stream.current())?(state.tokenize=tokenCommentToEOF)(stream, state):state.tokenize=tokenBase,"comment"; else return state.tokenize=tokenBase,"builtin"; } if(/\s/.test(c)) return stream.peek()=="/"?(stream.skipToEnd(),"comment"):"whitespace"; if(c=='"') return(state.tokenize=tokenString)(stream,state); if(c=='`') return stream.eatWhile(/[A-Z|a-z|\d|_|:|\/|\.]/),"symbol"; if(("."==c&&/\d/.test(stream.peek()))||/\d/.test(c)){ var t=null; stream.backUp(1); if(stream.match(/^\d{4}\.\d{2}(m|\.\d{2}([D|T](\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)?)?)/) || stream.match(/^\d+D(\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)/) || stream.match(/^\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?/) || stream.match(/^\d+[ptuv]{1}/)) t="temporal"; else if(stream.match(/^0[NwW]{1}/) || stream.match(/^0x[\d|a-f|A-F]*/) || stream.match(/^[0|1]+[b]{1}/) || stream.match(/^\d+[chijn]{1}/) || stream.match(/-?\d*(\.\d*)?(e[+\-]?\d+)?(e|f)?/)) t="number"; return(t&&(!(c=stream.peek())||E.test(c)))?t:(stream.next(),"error"); } if(/[A-Z|a-z]|\./.test(c)) return stream.eatWhile(/[A-Z|a-z|\.|_|\d]/),keywords.test(stream.current())?"keyword":"variable"; if(/[|/&^!+:\\\-*%$=~#;@><\.,?_\']/.test(c)) return null; if(/[{}\(\[\]\)]/.test(c)) return null; return"error"; } function tokenLineComment(stream,state){ return stream.skipToEnd(),/\/\s*$/.test(stream.current())?(state.tokenize=tokenBlockComment)(stream,state):(state.tokenize=tokenBase),"comment"; } function tokenBlockComment(stream,state){ var f=stream.sol()&&stream.peek()=="\\"; stream.skipToEnd(); if(f&&/^\\\s*$/.test(stream.current())) state.tokenize=tokenBase; return"comment"; } function tokenCommentToEOF(stream){return stream.skipToEnd(),"comment";} function tokenString(stream,state){ var escaped=false,next,end=false; while((next=stream.next())){ if(next=="\""&&!escaped){end=true;break;} escaped=!escaped&&next=="\\"; } if(end)state.tokenize=tokenBase; return"string"; } function pushContext(state,type,col){state.context={prev:state.context,indent:state.indent,col:col,type:type};} function popContext(state){state.indent=state.context.indent;state.context=state.context.prev;} return{ startState:function(){ return{tokenize:tokenBase, context:null, indent:0, col:0}; }, token:function(stream,state){ if(stream.sol()){ if(state.context&&state.context.align==null) state.context.align=false; state.indent=stream.indentation(); } //if (stream.eatSpace()) return null; var style=state.tokenize(stream,state); if(style!="comment"&&state.context&&state.context.align==null&&state.context.type!="pattern"){ state.context.align=true; } if(curPunc=="(")pushContext(state,")",stream.column()); else if(curPunc=="[")pushContext(state,"]",stream.column()); else if(curPunc=="{")pushContext(state,"}",stream.column()); else if(/[\]\}\)]/.test(curPunc)){ while(state.context&&state.context.type=="pattern")popContext(state); if(state.context&&curPunc==state.context.type)popContext(state); } else if(curPunc=="."&&state.context&&state.context.type=="pattern")popContext(state); else if(/atom|string|variable/.test(style)&&state.context){ if(/[\}\]]/.test(state.context.type)) pushContext(state,"pattern",stream.column()); else if(state.context.type=="pattern"&&!state.context.align){ state.context.align=true; state.context.col=stream.column(); } } return style; }, indent:function(state,textAfter){ var firstChar=textAfter&&textAfter.charAt(0); var context=state.context; if(/[\]\}]/.test(firstChar)) while (context&&context.type=="pattern")context=context.prev; var closing=context&&firstChar==context.type; if(!context) return 0; else if(context.type=="pattern") return context.col; else if(context.align) return context.col+(closing?0:1); else return context.indent+(closing?0:indentUnit); } }; }); CodeMirror.defineMIME("text/x-q","q"); site_pro/codemirror-3.1/mode/properties/0000755000000000000000000000000012111430706017157 5ustar rootrootsite_pro/codemirror-3.1/mode/properties/index.html0000644000000000000000000000230012111430706021147 0ustar rootroot CodeMirror: Properties files mode

CodeMirror: Properties files mode

MIME types defined: text/x-properties, text/x-ini.

site_pro/codemirror-3.1/mode/properties/properties.js0000644000000000000000000000330612111430706021713 0ustar rootrootCodeMirror.defineMode("properties", function() { return { token: function(stream, state) { var sol = stream.sol() || state.afterSection; var eol = stream.eol(); state.afterSection = false; if (sol) { if (state.nextMultiline) { state.inMultiline = true; state.nextMultiline = false; } else { state.position = "def"; } } if (eol && ! state.nextMultiline) { state.inMultiline = false; state.position = "def"; } if (sol) { while(stream.eatSpace()); } var ch = stream.next(); if (sol && (ch === "#" || ch === "!" || ch === ";")) { state.position = "comment"; stream.skipToEnd(); return "comment"; } else if (sol && ch === "[") { state.afterSection = true; stream.skipTo("]"); stream.eat("]"); return "header"; } else if (ch === "=" || ch === ":") { state.position = "quote"; return null; } else if (ch === "\\" && state.position === "quote") { if (stream.next() !== "u") { // u = Unicode sequence \u1234 // Multiline value state.nextMultiline = true; } } return state.position; }, startState: function() { return { position : "def", // Current position, "def", "quote" or "comment" nextMultiline : false, // Is the next line multiline value inMultiline : false, // Is the current line a multiline value afterSection : false // Did we just open a section }; } }; }); CodeMirror.defineMIME("text/x-properties", "properties"); CodeMirror.defineMIME("text/x-ini", "properties"); site_pro/codemirror-3.1/mode/http/0000755000000000000000000000000012111430706015742 5ustar rootrootsite_pro/codemirror-3.1/mode/http/http.js0000644000000000000000000000443612111430706017266 0ustar rootrootCodeMirror.defineMode("http", function() { function failFirstLine(stream, state) { stream.skipToEnd(); state.cur = header; return "error"; } function start(stream, state) { if (stream.match(/^HTTP\/\d\.\d/)) { state.cur = responseStatusCode; return "keyword"; } else if (stream.match(/^[A-Z]+/) && /[ \t]/.test(stream.peek())) { state.cur = requestPath; return "keyword"; } else { return failFirstLine(stream, state); } } function responseStatusCode(stream, state) { var code = stream.match(/^\d+/); if (!code) return failFirstLine(stream, state); state.cur = responseStatusText; var status = Number(code[0]); if (status >= 100 && status < 200) { return "positive informational"; } else if (status >= 200 && status < 300) { return "positive success"; } else if (status >= 300 && status < 400) { return "positive redirect"; } else if (status >= 400 && status < 500) { return "negative client-error"; } else if (status >= 500 && status < 600) { return "negative server-error"; } else { return "error"; } } function responseStatusText(stream, state) { stream.skipToEnd(); state.cur = header; return null; } function requestPath(stream, state) { stream.eatWhile(/\S/); state.cur = requestProtocol; return "string-2"; } function requestProtocol(stream, state) { if (stream.match(/^HTTP\/\d\.\d$/)) { state.cur = header; return "keyword"; } else { return failFirstLine(stream, state); } } function header(stream) { if (stream.sol() && !stream.eat(/[ \t]/)) { if (stream.match(/^.*?:/)) { return "atom"; } else { stream.skipToEnd(); return "error"; } } else { stream.skipToEnd(); return "string"; } } function body(stream) { stream.skipToEnd(); return null; } return { token: function(stream, state) { var cur = state.cur; if (cur != header && cur != body && stream.eatSpace()) return null; return cur(stream, state); }, blankLine: function(state) { state.cur = body; }, startState: function() { return {cur: start}; } }; }); CodeMirror.defineMIME("message/http", "http"); site_pro/codemirror-3.1/mode/http/index.html0000644000000000000000000000204512111430706017740 0ustar rootroot CodeMirror: HTTP mode

CodeMirror: HTTP mode

MIME types defined: message/http.

site_pro/codemirror-3.1/mode/vb/0000755000000000000000000000000012111430706015372 5ustar rootrootsite_pro/codemirror-3.1/mode/vb/LICENSE.txt0000644000000000000000000000213112111430706017212 0ustar rootrootThe MIT License Copyright (c) 2012 Codility Limited, 107 Cheapside, London EC2V 6DN, UK Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. site_pro/codemirror-3.1/mode/vb/vb.js0000644000000000000000000002010112111430706016331 0ustar rootrootCodeMirror.defineMode("vb", function(conf, parserConf) { var ERRORCLASS = 'error'; function wordRegexp(words) { return new RegExp("^((" + words.join(")|(") + "))\\b", "i"); } var singleOperators = new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]"); var singleDelimiters = new RegExp('^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]'); var doubleOperators = new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"); var doubleDelimiters = new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"); var tripleDelimiters = new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"); var identifiers = new RegExp("^[_A-Za-z][_A-Za-z0-9]*"); var openingKeywords = ['class','module', 'sub','enum','select','while','if','function', 'get','set','property', 'try']; var middleKeywords = ['else','elseif','case', 'catch']; var endKeywords = ['next','loop']; var wordOperators = wordRegexp(['and', 'or', 'not', 'xor', 'in']); var commonkeywords = ['as', 'dim', 'break', 'continue','optional', 'then', 'until', 'goto', 'byval','byref','new','handles','property', 'return', 'const','private', 'protected', 'friend', 'public', 'shared', 'static', 'true','false']; var commontypes = ['integer','string','double','decimal','boolean','short','char', 'float','single']; var keywords = wordRegexp(commonkeywords); var types = wordRegexp(commontypes); var stringPrefixes = '"'; var opening = wordRegexp(openingKeywords); var middle = wordRegexp(middleKeywords); var closing = wordRegexp(endKeywords); var doubleClosing = wordRegexp(['end']); var doOpening = wordRegexp(['do']); var indentInfo = null; function indent(_stream, state) { state.currentIndent++; } function dedent(_stream, state) { state.currentIndent--; } // tokenizers function tokenBase(stream, state) { if (stream.eatSpace()) { return null; } var ch = stream.peek(); // Handle Comments if (ch === "'") { stream.skipToEnd(); return 'comment'; } // Handle Number Literals if (stream.match(/^((&H)|(&O))?[0-9\.a-f]/i, false)) { var floatLiteral = false; // Floats if (stream.match(/^\d*\.\d+F?/i)) { floatLiteral = true; } else if (stream.match(/^\d+\.\d*F?/)) { floatLiteral = true; } else if (stream.match(/^\.\d+F?/)) { floatLiteral = true; } if (floatLiteral) { // Float literals may be "imaginary" stream.eat(/J/i); return 'number'; } // Integers var intLiteral = false; // Hex if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; } // Octal else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; } // Decimal else if (stream.match(/^[1-9]\d*F?/)) { // Decimal literals may be "imaginary" stream.eat(/J/i); // TODO - Can you have imaginary longs? intLiteral = true; } // Zero by itself with no other piece of number. else if (stream.match(/^0(?![\dx])/i)) { intLiteral = true; } if (intLiteral) { // Integer literals may be "long" stream.eat(/L/i); return 'number'; } } // Handle Strings if (stream.match(stringPrefixes)) { state.tokenize = tokenStringFactory(stream.current()); return state.tokenize(stream, state); } // Handle operators and Delimiters if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) { return null; } if (stream.match(doubleOperators) || stream.match(singleOperators) || stream.match(wordOperators)) { return 'operator'; } if (stream.match(singleDelimiters)) { return null; } if (stream.match(doOpening)) { indent(stream,state); state.doInCurrentLine = true; return 'keyword'; } if (stream.match(opening)) { if (! state.doInCurrentLine) indent(stream,state); else state.doInCurrentLine = false; return 'keyword'; } if (stream.match(middle)) { return 'keyword'; } if (stream.match(doubleClosing)) { dedent(stream,state); dedent(stream,state); return 'keyword'; } if (stream.match(closing)) { dedent(stream,state); return 'keyword'; } if (stream.match(types)) { return 'keyword'; } if (stream.match(keywords)) { return 'keyword'; } if (stream.match(identifiers)) { return 'variable'; } // Handle non-detected items stream.next(); return ERRORCLASS; } function tokenStringFactory(delimiter) { var singleline = delimiter.length == 1; var OUTCLASS = 'string'; return function(stream, state) { while (!stream.eol()) { stream.eatWhile(/[^'"]/); if (stream.match(delimiter)) { state.tokenize = tokenBase; return OUTCLASS; } else { stream.eat(/['"]/); } } if (singleline) { if (parserConf.singleLineStringErrors) { return ERRORCLASS; } else { state.tokenize = tokenBase; } } return OUTCLASS; }; } function tokenLexer(stream, state) { var style = state.tokenize(stream, state); var current = stream.current(); // Handle '.' connected identifiers if (current === '.') { style = state.tokenize(stream, state); current = stream.current(); if (style === 'variable') { return 'variable'; } else { return ERRORCLASS; } } var delimiter_index = '[({'.indexOf(current); if (delimiter_index !== -1) { indent(stream, state ); } if (indentInfo === 'dedent') { if (dedent(stream, state)) { return ERRORCLASS; } } delimiter_index = '])}'.indexOf(current); if (delimiter_index !== -1) { if (dedent(stream, state)) { return ERRORCLASS; } } return style; } var external = { electricChars:"dDpPtTfFeE ", startState: function() { return { tokenize: tokenBase, lastToken: null, currentIndent: 0, nextLineIndent: 0, doInCurrentLine: false }; }, token: function(stream, state) { if (stream.sol()) { state.currentIndent += state.nextLineIndent; state.nextLineIndent = 0; state.doInCurrentLine = 0; } var style = tokenLexer(stream, state); state.lastToken = {style:style, content: stream.current()}; return style; }, indent: function(state, textAfter) { var trueText = textAfter.replace(/^\s+|\s+$/g, '') ; if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1); if(state.currentIndent < 0) return 0; return state.currentIndent * conf.indentUnit; } }; return external; }); CodeMirror.defineMIME("text/x-vb", "vb"); site_pro/codemirror-3.1/mode/vb/index.html0000644000000000000000000000557412111430706017402 0ustar rootroot CodeMirror: VB.NET mode

CodeMirror: VB.NET mode


  

MIME type defined: text/x-vb.

site_pro/codemirror-3.1/mode/ocaml/0000755000000000000000000000000012111430706016056 5ustar rootrootsite_pro/codemirror-3.1/mode/ocaml/ocaml.js0000644000000000000000000000520012111430706017504 0ustar rootrootCodeMirror.defineMode('ocaml', function() { var words = { 'true': 'atom', 'false': 'atom', 'let': 'keyword', 'rec': 'keyword', 'in': 'keyword', 'of': 'keyword', 'and': 'keyword', 'succ': 'keyword', 'if': 'keyword', 'then': 'keyword', 'else': 'keyword', 'for': 'keyword', 'to': 'keyword', 'while': 'keyword', 'do': 'keyword', 'done': 'keyword', 'fun': 'keyword', 'function': 'keyword', 'val': 'keyword', 'type': 'keyword', 'mutable': 'keyword', 'match': 'keyword', 'with': 'keyword', 'try': 'keyword', 'raise': 'keyword', 'begin': 'keyword', 'end': 'keyword', 'open': 'builtin', 'trace': 'builtin', 'ignore': 'builtin', 'exit': 'builtin', 'print_string': 'builtin', 'print_endline': 'builtin' }; function tokenBase(stream, state) { var ch = stream.next(); if (ch === '"') { state.tokenize = tokenString; return state.tokenize(stream, state); } if (ch === '(') { if (stream.eat('*')) { state.commentLevel++; state.tokenize = tokenComment; return state.tokenize(stream, state); } } if (ch === '~') { stream.eatWhile(/\w/); return 'variable-2'; } if (ch === '`') { stream.eatWhile(/\w/); return 'quote'; } if (/\d/.test(ch)) { stream.eatWhile(/[\d]/); if (stream.eat('.')) { stream.eatWhile(/[\d]/); } return 'number'; } if ( /[+\-*&%=<>!?|]/.test(ch)) { return 'operator'; } stream.eatWhile(/\w/); var cur = stream.current(); return words[cur] || 'variable'; } function tokenString(stream, state) { var next, end = false, escaped = false; while ((next = stream.next()) != null) { if (next === '"' && !escaped) { end = true; break; } escaped = !escaped && next === '\\'; } if (end && !escaped) { state.tokenize = tokenBase; } return 'string'; }; function tokenComment(stream, state) { var prev, next; while(state.commentLevel > 0 && (next = stream.next()) != null) { if (prev === '(' && next === '*') state.commentLevel++; if (prev === '*' && next === ')') state.commentLevel--; prev = next; } if (state.commentLevel <= 0) { state.tokenize = tokenBase; } return 'comment'; } return { startState: function() {return {tokenize: tokenBase, commentLevel: 0};}, token: function(stream, state) { if (stream.eatSpace()) return null; return state.tokenize(stream, state); } }; }); CodeMirror.defineMIME('text/x-ocaml', 'ocaml'); site_pro/codemirror-3.1/mode/ocaml/index.html0000644000000000000000000000654012111430706020060 0ustar rootroot CodeMirror: OCaml mode

CodeMirror: OCaml mode

MIME types defined: text/x-ocaml.

site_pro/codemirror-3.1/mode/css/0000755000000000000000000000000012111430706015553 5ustar rootrootsite_pro/codemirror-3.1/mode/css/css.js0000644000000000000000000005320112111430706016702 0ustar rootrootCodeMirror.defineMode("css", function(config) { var indentUnit = config.indentUnit, type; var atMediaTypes = keySet([ "all", "aural", "braille", "handheld", "print", "projection", "screen", "tty", "tv", "embossed" ]); var atMediaFeatures = keySet([ "width", "min-width", "max-width", "height", "min-height", "max-height", "device-width", "min-device-width", "max-device-width", "device-height", "min-device-height", "max-device-height", "aspect-ratio", "min-aspect-ratio", "max-aspect-ratio", "device-aspect-ratio", "min-device-aspect-ratio", "max-device-aspect-ratio", "color", "min-color", "max-color", "color-index", "min-color-index", "max-color-index", "monochrome", "min-monochrome", "max-monochrome", "resolution", "min-resolution", "max-resolution", "scan", "grid" ]); var propertyKeywords = keySet([ "align-content", "align-items", "align-self", "alignment-adjust", "alignment-baseline", "anchor-point", "animation", "animation-delay", "animation-direction", "animation-duration", "animation-iteration-count", "animation-name", "animation-play-state", "animation-timing-function", "appearance", "azimuth", "backface-visibility", "background", "background-attachment", "background-clip", "background-color", "background-image", "background-origin", "background-position", "background-repeat", "background-size", "baseline-shift", "binding", "bleed", "bookmark-label", "bookmark-level", "bookmark-state", "bookmark-target", "border", "border-bottom", "border-bottom-color", "border-bottom-left-radius", "border-bottom-right-radius", "border-bottom-style", "border-bottom-width", "border-collapse", "border-color", "border-image", "border-image-outset", "border-image-repeat", "border-image-slice", "border-image-source", "border-image-width", "border-left", "border-left-color", "border-left-style", "border-left-width", "border-radius", "border-right", "border-right-color", "border-right-style", "border-right-width", "border-spacing", "border-style", "border-top", "border-top-color", "border-top-left-radius", "border-top-right-radius", "border-top-style", "border-top-width", "border-width", "bottom", "box-decoration-break", "box-shadow", "box-sizing", "break-after", "break-before", "break-inside", "caption-side", "clear", "clip", "color", "color-profile", "column-count", "column-fill", "column-gap", "column-rule", "column-rule-color", "column-rule-style", "column-rule-width", "column-span", "column-width", "columns", "content", "counter-increment", "counter-reset", "crop", "cue", "cue-after", "cue-before", "cursor", "direction", "display", "dominant-baseline", "drop-initial-after-adjust", "drop-initial-after-align", "drop-initial-before-adjust", "drop-initial-before-align", "drop-initial-size", "drop-initial-value", "elevation", "empty-cells", "fit", "fit-position", "flex", "flex-basis", "flex-direction", "flex-flow", "flex-grow", "flex-shrink", "flex-wrap", "float", "float-offset", "font", "font-feature-settings", "font-family", "font-kerning", "font-language-override", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-synthesis", "font-variant", "font-variant-alternates", "font-variant-caps", "font-variant-east-asian", "font-variant-ligatures", "font-variant-numeric", "font-variant-position", "font-weight", "grid-cell", "grid-column", "grid-column-align", "grid-column-sizing", "grid-column-span", "grid-columns", "grid-flow", "grid-row", "grid-row-align", "grid-row-sizing", "grid-row-span", "grid-rows", "grid-template", "hanging-punctuation", "height", "hyphens", "icon", "image-orientation", "image-rendering", "image-resolution", "inline-box-align", "justify-content", "left", "letter-spacing", "line-break", "line-height", "line-stacking", "line-stacking-ruby", "line-stacking-shift", "line-stacking-strategy", "list-style", "list-style-image", "list-style-position", "list-style-type", "margin", "margin-bottom", "margin-left", "margin-right", "margin-top", "marker-offset", "marks", "marquee-direction", "marquee-loop", "marquee-play-count", "marquee-speed", "marquee-style", "max-height", "max-width", "min-height", "min-width", "move-to", "nav-down", "nav-index", "nav-left", "nav-right", "nav-up", "opacity", "order", "orphans", "outline", "outline-color", "outline-offset", "outline-style", "outline-width", "overflow", "overflow-style", "overflow-wrap", "overflow-x", "overflow-y", "padding", "padding-bottom", "padding-left", "padding-right", "padding-top", "page", "page-break-after", "page-break-before", "page-break-inside", "page-policy", "pause", "pause-after", "pause-before", "perspective", "perspective-origin", "pitch", "pitch-range", "play-during", "position", "presentation-level", "punctuation-trim", "quotes", "rendering-intent", "resize", "rest", "rest-after", "rest-before", "richness", "right", "rotation", "rotation-point", "ruby-align", "ruby-overhang", "ruby-position", "ruby-span", "size", "speak", "speak-as", "speak-header", "speak-numeral", "speak-punctuation", "speech-rate", "stress", "string-set", "tab-size", "table-layout", "target", "target-name", "target-new", "target-position", "text-align", "text-align-last", "text-decoration", "text-decoration-color", "text-decoration-line", "text-decoration-skip", "text-decoration-style", "text-emphasis", "text-emphasis-color", "text-emphasis-position", "text-emphasis-style", "text-height", "text-indent", "text-justify", "text-outline", "text-shadow", "text-space-collapse", "text-transform", "text-underline-position", "text-wrap", "top", "transform", "transform-origin", "transform-style", "transition", "transition-delay", "transition-duration", "transition-property", "transition-timing-function", "unicode-bidi", "vertical-align", "visibility", "voice-balance", "voice-duration", "voice-family", "voice-pitch", "voice-range", "voice-rate", "voice-stress", "voice-volume", "volume", "white-space", "widows", "width", "word-break", "word-spacing", "word-wrap", "z-index" ]); var colorKeywords = keySet([ "black", "silver", "gray", "white", "maroon", "red", "purple", "fuchsia", "green", "lime", "olive", "yellow", "navy", "blue", "teal", "aqua" ]); var valueKeywords = keySet([ "above", "absolute", "activeborder", "activecaption", "afar", "after-white-space", "ahead", "alias", "all", "all-scroll", "alternate", "always", "amharic", "amharic-abegede", "antialiased", "appworkspace", "arabic-indic", "armenian", "asterisks", "auto", "avoid", "background", "backwards", "baseline", "below", "bidi-override", "binary", "bengali", "blink", "block", "block-axis", "bold", "bolder", "border", "border-box", "both", "bottom", "break-all", "break-word", "button", "button-bevel", "buttonface", "buttonhighlight", "buttonshadow", "buttontext", "cambodian", "capitalize", "caps-lock-indicator", "caption", "captiontext", "caret", "cell", "center", "checkbox", "circle", "cjk-earthly-branch", "cjk-heavenly-stem", "cjk-ideographic", "clear", "clip", "close-quote", "col-resize", "collapse", "compact", "condensed", "contain", "content", "content-box", "context-menu", "continuous", "copy", "cover", "crop", "cross", "crosshair", "currentcolor", "cursive", "dashed", "decimal", "decimal-leading-zero", "default", "default-button", "destination-atop", "destination-in", "destination-out", "destination-over", "devanagari", "disc", "discard", "document", "dot-dash", "dot-dot-dash", "dotted", "double", "down", "e-resize", "ease", "ease-in", "ease-in-out", "ease-out", "element", "ellipsis", "embed", "end", "ethiopic", "ethiopic-abegede", "ethiopic-abegede-am-et", "ethiopic-abegede-gez", "ethiopic-abegede-ti-er", "ethiopic-abegede-ti-et", "ethiopic-halehame-aa-er", "ethiopic-halehame-aa-et", "ethiopic-halehame-am-et", "ethiopic-halehame-gez", "ethiopic-halehame-om-et", "ethiopic-halehame-sid-et", "ethiopic-halehame-so-et", "ethiopic-halehame-ti-er", "ethiopic-halehame-ti-et", "ethiopic-halehame-tig", "ew-resize", "expanded", "extra-condensed", "extra-expanded", "fantasy", "fast", "fill", "fixed", "flat", "footnotes", "forwards", "from", "geometricPrecision", "georgian", "graytext", "groove", "gujarati", "gurmukhi", "hand", "hangul", "hangul-consonant", "hebrew", "help", "hidden", "hide", "higher", "highlight", "highlighttext", "hiragana", "hiragana-iroha", "horizontal", "hsl", "hsla", "icon", "ignore", "inactiveborder", "inactivecaption", "inactivecaptiontext", "infinite", "infobackground", "infotext", "inherit", "initial", "inline", "inline-axis", "inline-block", "inline-table", "inset", "inside", "intrinsic", "invert", "italic", "justify", "kannada", "katakana", "katakana-iroha", "khmer", "landscape", "lao", "large", "larger", "left", "level", "lighter", "line-through", "linear", "lines", "list-item", "listbox", "listitem", "local", "logical", "loud", "lower", "lower-alpha", "lower-armenian", "lower-greek", "lower-hexadecimal", "lower-latin", "lower-norwegian", "lower-roman", "lowercase", "ltr", "malayalam", "match", "media-controls-background", "media-current-time-display", "media-fullscreen-button", "media-mute-button", "media-play-button", "media-return-to-realtime-button", "media-rewind-button", "media-seek-back-button", "media-seek-forward-button", "media-slider", "media-sliderthumb", "media-time-remaining-display", "media-volume-slider", "media-volume-slider-container", "media-volume-sliderthumb", "medium", "menu", "menulist", "menulist-button", "menulist-text", "menulist-textfield", "menutext", "message-box", "middle", "min-intrinsic", "mix", "mongolian", "monospace", "move", "multiple", "myanmar", "n-resize", "narrower", "navy", "ne-resize", "nesw-resize", "no-close-quote", "no-drop", "no-open-quote", "no-repeat", "none", "normal", "not-allowed", "nowrap", "ns-resize", "nw-resize", "nwse-resize", "oblique", "octal", "open-quote", "optimizeLegibility", "optimizeSpeed", "oriya", "oromo", "outset", "outside", "overlay", "overline", "padding", "padding-box", "painted", "paused", "persian", "plus-darker", "plus-lighter", "pointer", "portrait", "pre", "pre-line", "pre-wrap", "preserve-3d", "progress", "push-button", "radio", "read-only", "read-write", "read-write-plaintext-only", "relative", "repeat", "repeat-x", "repeat-y", "reset", "reverse", "rgb", "rgba", "ridge", "right", "round", "row-resize", "rtl", "run-in", "running", "s-resize", "sans-serif", "scroll", "scrollbar", "se-resize", "searchfield", "searchfield-cancel-button", "searchfield-decoration", "searchfield-results-button", "searchfield-results-decoration", "semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama", "single", "skip-white-space", "slide", "slider-horizontal", "slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "slow", "small", "small-caps", "small-caption", "smaller", "solid", "somali", "source-atop", "source-in", "source-out", "source-over", "space", "square", "square-button", "start", "static", "status-bar", "stretch", "stroke", "sub", "subpixel-antialiased", "super", "sw-resize", "table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row", "table-row-group", "telugu", "text", "text-bottom", "text-top", "textarea", "textfield", "thai", "thick", "thin", "threeddarkshadow", "threedface", "threedhighlight", "threedlightshadow", "threedshadow", "tibetan", "tigre", "tigrinya-er", "tigrinya-er-abegede", "tigrinya-et", "tigrinya-et-abegede", "to", "top", "transparent", "ultra-condensed", "ultra-expanded", "underline", "up", "upper-alpha", "upper-armenian", "upper-greek", "upper-hexadecimal", "upper-latin", "upper-norwegian", "upper-roman", "uppercase", "urdu", "url", "vertical", "vertical-text", "visible", "visibleFill", "visiblePainted", "visibleStroke", "visual", "w-resize", "wait", "wave", "white", "wider", "window", "windowframe", "windowtext", "x-large", "x-small", "xor", "xx-large", "xx-small", "yellow" ]); function keySet(array) { var keys = {}; for (var i = 0; i < array.length; ++i) keys[array[i]] = true; return keys; } function ret(style, tp) {type = tp; return style;} function tokenBase(stream, state) { var ch = stream.next(); if (ch == "@") {stream.eatWhile(/[\w\\\-]/); return ret("def", stream.current());} else if (ch == "/" && stream.eat("*")) { state.tokenize = tokenCComment; return tokenCComment(stream, state); } else if (ch == "<" && stream.eat("!")) { state.tokenize = tokenSGMLComment; return tokenSGMLComment(stream, state); } else if (ch == "=") ret(null, "compare"); else if ((ch == "~" || ch == "|") && stream.eat("=")) return ret(null, "compare"); else if (ch == "\"" || ch == "'") { state.tokenize = tokenString(ch); return state.tokenize(stream, state); } else if (ch == "#") { stream.eatWhile(/[\w\\\-]/); return ret("atom", "hash"); } else if (ch == "!") { stream.match(/^\s*\w*/); return ret("keyword", "important"); } else if (/\d/.test(ch)) { stream.eatWhile(/[\w.%]/); return ret("number", "unit"); } else if (ch === "-") { if (/\d/.test(stream.peek())) { stream.eatWhile(/[\w.%]/); return ret("number", "unit"); } else if (stream.match(/^[^-]+-/)) { return ret("meta", "meta"); } } else if (/[,+>*\/]/.test(ch)) { return ret(null, "select-op"); } else if (ch == "." && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) { return ret("qualifier", "qualifier"); } else if (ch == ":") { return ret("operator", ch); } else if (/[;{}\[\]\(\)]/.test(ch)) { return ret(null, ch); } else if (ch == "u" && stream.match("rl(")) { stream.backUp(1); state.tokenize = tokenParenthesized; return ret("property", "variable"); } else { stream.eatWhile(/[\w\\\-]/); return ret("property", "variable"); } } function tokenCComment(stream, state) { var maybeEnd = false, ch; while ((ch = stream.next()) != null) { if (maybeEnd && ch == "/") { state.tokenize = tokenBase; break; } maybeEnd = (ch == "*"); } return ret("comment", "comment"); } function tokenSGMLComment(stream, state) { var dashes = 0, ch; while ((ch = stream.next()) != null) { if (dashes >= 2 && ch == ">") { state.tokenize = tokenBase; break; } dashes = (ch == "-") ? dashes + 1 : 0; } return ret("comment", "comment"); } function tokenString(quote, nonInclusive) { return function(stream, state) { var escaped = false, ch; while ((ch = stream.next()) != null) { if (ch == quote && !escaped) break; escaped = !escaped && ch == "\\"; } if (!escaped) { if (nonInclusive) stream.backUp(1); state.tokenize = tokenBase; } return ret("string", "string"); }; } function tokenParenthesized(stream, state) { stream.next(); // Must be '(' if (!stream.match(/\s*[\"\']/, false)) state.tokenize = tokenString(")", true); else state.tokenize = tokenBase; return ret(null, "("); } return { startState: function(base) { return {tokenize: tokenBase, baseIndent: base || 0, stack: []}; }, token: function(stream, state) { // Use these terms when applicable (see http://www.xanthir.com/blog/b4E50) // // rule** or **ruleset: // A selector + braces combo, or an at-rule. // // declaration block: // A sequence of declarations. // // declaration: // A property + colon + value combo. // // property value: // The entire value of a property. // // component value: // A single piece of a property value. Like the 5px in // text-shadow: 0 0 5px blue;. Can also refer to things that are // multiple terms, like the 1-4 terms that make up the background-size // portion of the background shorthand. // // term: // The basic unit of author-facing CSS, like a single number (5), // dimension (5px), string ("foo"), or function. Officially defined // by the CSS 2.1 grammar (look for the 'term' production) // // // simple selector: // A single atomic selector, like a type selector, an attr selector, a // class selector, etc. // // compound selector: // One or more simple selectors without a combinator. div.example is // compound, div > .example is not. // // complex selector: // One or more compound selectors chained with combinators. // // combinator: // The parts of selectors that express relationships. There are four // currently - the space (descendant combinator), the greater-than // bracket (child combinator), the plus sign (next sibling combinator), // and the tilda (following sibling combinator). // // sequence of selectors: // One or more of the named type of selector chained with commas. if (state.tokenize == tokenBase && stream.eatSpace()) return null; var style = state.tokenize(stream, state); // Changing style returned based on context var context = state.stack[state.stack.length-1]; if (style == "property") { if (context == "propertyValue"){ if (valueKeywords[stream.current()]) { style = "string-2"; } else if (colorKeywords[stream.current()]) { style = "keyword"; } else { style = "variable-2"; } } else if (context == "rule") { if (!propertyKeywords[stream.current()]) { style += " error"; } } else if (!context || context == "@media{") { style = "tag"; } else if (context == "@media") { if (atMediaTypes[stream.current()]) { style = "attribute"; // Known attribute } else if (/^(only|not)$/i.test(stream.current())) { style = "keyword"; } else if (stream.current().toLowerCase() == "and") { style = "error"; // "and" is only allowed in @mediaType } else if (atMediaFeatures[stream.current()]) { style = "error"; // Known property, should be in @mediaType( } else { // Unknown, expecting keyword or attribute, assuming attribute style = "attribute error"; } } else if (context == "@mediaType") { if (atMediaTypes[stream.current()]) { style = "attribute"; } else if (stream.current().toLowerCase() == "and") { style = "operator"; } else if (/^(only|not)$/i.test(stream.current())) { style = "error"; // Only allowed in @media } else if (atMediaFeatures[stream.current()]) { style = "error"; // Known property, should be in parentheses } else { // Unknown attribute or property, but expecting property (preceded // by "and"). Should be in parentheses style = "error"; } } else if (context == "@mediaType(") { if (propertyKeywords[stream.current()]) { // do nothing, remains "property" } else if (atMediaTypes[stream.current()]) { style = "error"; // Known property, should be in parentheses } else if (stream.current().toLowerCase() == "and") { style = "operator"; } else if (/^(only|not)$/i.test(stream.current())) { style = "error"; // Only allowed in @media } else { style += " error"; } } else { style = "error"; } } else if (style == "atom") { if(!context || context == "@media{") { style = "builtin"; } else if (context == "propertyValue") { if (!/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(stream.current())) { style += " error"; } } else { style = "error"; } } else if (context == "@media" && type == "{") { style = "error"; } // Push/pop context stack if (type == "{") { if (context == "@media" || context == "@mediaType") { state.stack.pop(); state.stack[state.stack.length-1] = "@media{"; } else state.stack.push("rule"); } else if (type == "}") { state.stack.pop(); if (context == "propertyValue") state.stack.pop(); } else if (type == "@media") state.stack.push("@media"); else if (context == "@media" && /\b(keyword|attribute)\b/.test(style)) state.stack.push("@mediaType"); else if (context == "@mediaType" && stream.current() == ",") state.stack.pop(); else if (context == "@mediaType" && type == "(") state.stack.push("@mediaType("); else if (context == "@mediaType(" && type == ")") state.stack.pop(); else if (context == "rule" && type == ":") state.stack.push("propertyValue"); else if (context == "propertyValue" && type == ";") state.stack.pop(); return style; }, indent: function(state, textAfter) { var n = state.stack.length; if (/^\}/.test(textAfter)) n -= state.stack[state.stack.length-1] == "propertyValue" ? 2 : 1; return state.baseIndent + n * indentUnit; }, electricChars: "}" }; }); CodeMirror.defineMIME("text/css", "css"); site_pro/codemirror-3.1/mode/css/test.js0000644000000000000000000000761312111430706017077 0ustar rootroot(function() { var mode = CodeMirror.getMode({tabSize: 4}, "css"); function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 2)); } // Requires at least one media query MT("atMediaEmpty", "[def @media] [error {] }"); MT("atMediaMultiple", "[def @media] [keyword not] [attribute screen] [operator and] ([property color]), [keyword not] [attribute print] [operator and] ([property color]) { }"); MT("atMediaCheckStack", "[def @media] [attribute screen] { } [tag foo] { }"); MT("atMediaCheckStack", "[def @media] [attribute screen] ([property color]) { } [tag foo] { }"); MT("atMediaCheckStackInvalidAttribute", "[def @media] [attribute&error foobarhello] { } [tag foo] { }"); // Error, because "and" is only allowed immediately preceding a media expression MT("atMediaInvalidAttribute", "[def @media] [attribute&error foobarhello] { }"); // Error, because "and" is only allowed immediately preceding a media expression MT("atMediaInvalidAnd", "[def @media] [error and] [attribute screen] { }"); // Error, because "not" is only allowed as the first item in each media query MT("atMediaInvalidNot", "[def @media] [attribute screen] [error not] ([error not]) { }"); // Error, because "only" is only allowed as the first item in each media query MT("atMediaInvalidOnly", "[def @media] [attribute screen] [error only] ([error only]) { }"); // Error, because "foobarhello" is neither a known type or property, but // property was expected (after "and"), and it should be in parenthese. MT("atMediaUnknownType", "[def @media] [attribute screen] [operator and] [error foobarhello] { }"); // Error, because "color" is not a known type, but is a known property, and // should be in parentheses. MT("atMediaInvalidType", "[def @media] [attribute screen] [operator and] [error color] { }"); // Error, because "print" is not a known property, but is a known type, // and should not be in parenthese. MT("atMediaInvalidProperty", "[def @media] [attribute screen] [operator and] ([error print]) { }"); // Soft error, because "foobarhello" is not a known property or type. MT("atMediaUnknownProperty", "[def @media] [attribute screen] [operator and] ([property&error foobarhello]) { }"); MT("tagSelector", "[tag foo] { }"); MT("classSelector", "[qualifier .foo-bar_hello] { }"); MT("idSelector", "[builtin #foo] { [error #foo] }"); MT("tagSelectorUnclosed", "[tag foo] { [property margin][operator :] [number 0] } [tag bar] { }"); MT("tagStringNoQuotes", "[tag foo] { [property font-family][operator :] [variable-2 hello] [variable-2 world]; }"); MT("tagStringDouble", "[tag foo] { [property font-family][operator :] [string \"hello world\"]; }"); MT("tagStringSingle", "[tag foo] { [property font-family][operator :] [string 'hello world']; }"); MT("tagColorKeyword", "[tag foo] { [property color][operator :] [keyword black]; }"); MT("tagColorHex3", "[tag foo] { [property background][operator :] [atom #fff]; }"); MT("tagColorHex6", "[tag foo] { [property background][operator :] [atom #ffffff]; }"); MT("tagColorHex4", "[tag foo] { [property background][operator :] [atom&error #ffff]; }"); MT("tagColorHexInvalid", "[tag foo] { [property background][operator :] [atom&error #ffg]; }"); MT("tagNegativeNumber", "[tag foo] { [property margin][operator :] [number -5px]; }"); MT("tagPositiveNumber", "[tag foo] { [property padding][operator :] [number 5px]; }"); MT("tagVendor", "[tag foo] { [meta -foo-][property box-sizing][operator :] [meta -foo-][string-2 border-box]; }"); MT("tagBogusProperty", "[tag foo] { [property&error barhelloworld][operator :] [number 0]; }"); MT("tagTwoProperties", "[tag foo] { [property margin][operator :] [number 0]; [property padding][operator :] [number 0]; }"); })(); site_pro/codemirror-3.1/mode/css/index.html0000644000000000000000000000233512111430706017553 0ustar rootroot CodeMirror: CSS mode

CodeMirror: CSS mode

MIME types defined: text/css.

Parsing/Highlighting Tests: normal, verbose.

site_pro/codemirror-3.1/mode/php/0000755000000000000000000000000012111430706015552 5ustar rootrootsite_pro/codemirror-3.1/mode/php/index.html0000644000000000000000000000316512111430706017554 0ustar rootroot CodeMirror: PHP mode

CodeMirror: PHP mode

Simple HTML/PHP mode based on the C-like mode. Depends on XML, JavaScript, CSS, HTMLMixed, and C-like modes.

MIME types defined: application/x-httpd-php (HTML with PHP code), text/x-php (plain, non-wrapped PHP code).

site_pro/codemirror-3.1/mode/php/php.js0000644000000000000000000002757112111430706016713 0ustar rootroot(function() { function keywords(str) { var obj = {}, words = str.split(" "); for (var i = 0; i < words.length; ++i) obj[words[i]] = true; return obj; } function heredoc(delim) { return function(stream, state) { if (stream.match(delim)) state.tokenize = null; else stream.skipToEnd(); return "string"; }; } var phpConfig = { name: "clike", keywords: keywords("abstract and array as break case catch class clone const continue declare default " + "do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final " + "for foreach function global goto if implements interface instanceof namespace " + "new or private protected public static switch throw trait try use var while xor " + "die echo empty exit eval include include_once isset list require require_once return " + "print unset __halt_compiler self static parent"), blockKeywords: keywords("catch do else elseif for foreach if switch try while"), atoms: keywords("true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__"), builtin: keywords("func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport echo print global static exit array empty eval isset unset die include require include_once require_once"), multiLineStrings: true, hooks: { "$": function(stream) { stream.eatWhile(/[\w\$_]/); return "variable-2"; }, "<": function(stream, state) { if (stream.match(/<", false)) stream.next(); return "comment"; }, "/": function(stream) { if (stream.eat("/")) { while (!stream.eol() && !stream.match("?>", false)) stream.next(); return "comment"; } return false; } } }; CodeMirror.defineMode("php", function(config, parserConfig) { var htmlMode = CodeMirror.getMode(config, "text/html"); var phpMode = CodeMirror.getMode(config, phpConfig); function dispatch(stream, state) { var isPHP = state.curMode == phpMode; if (stream.sol() && state.pending != '"') state.pending = null; if (!isPHP) { if (stream.match(/^<\?\w*/)) { state.curMode = phpMode; state.curState = state.php; return "meta"; } if (state.pending == '"') { while (!stream.eol() && stream.next() != '"') {} var style = "string"; } else if (state.pending && stream.pos < state.pending.end) { stream.pos = state.pending.end; var style = state.pending.style; } else { var style = htmlMode.token(stream, state.curState); } state.pending = null; var cur = stream.current(), openPHP = cur.search(/<\?/); if (openPHP != -1) { if (style == "string" && /\"$/.test(cur) && !/\?>/.test(cur)) state.pending = '"'; else state.pending = {end: stream.pos, style: style}; stream.backUp(cur.length - openPHP); } return style; } else if (isPHP && state.php.tokenize == null && stream.match("?>")) { state.curMode = htmlMode; state.curState = state.html; return "meta"; } else { return phpMode.token(stream, state.curState); } } return { startState: function() { var html = CodeMirror.startState(htmlMode), php = CodeMirror.startState(phpMode); return {html: html, php: php, curMode: parserConfig.startOpen ? phpMode : htmlMode, curState: parserConfig.startOpen ? php : html, pending: null}; }, copyState: function(state) { var html = state.html, htmlNew = CodeMirror.copyState(htmlMode, html), php = state.php, phpNew = CodeMirror.copyState(phpMode, php), cur; if (state.curMode == htmlMode) cur = htmlNew; else cur = phpNew; return {html: htmlNew, php: phpNew, curMode: state.curMode, curState: cur, pending: state.pending}; }, token: dispatch, indent: function(state, textAfter) { if ((state.curMode != phpMode && /^\s*<\//.test(textAfter)) || (state.curMode == phpMode && /^\?>/.test(textAfter))) return htmlMode.indent(state.html, textAfter); return state.curMode.indent(state.curState, textAfter); }, electricChars: "/{}:", innerMode: function(state) { return {state: state.curState, mode: state.curMode}; } }; }, "htmlmixed", "clike"); CodeMirror.defineMIME("application/x-httpd-php", "php"); CodeMirror.defineMIME("application/x-httpd-php-open", {name: "php", startOpen: true}); CodeMirror.defineMIME("text/x-php", phpConfig); })(); site_pro/codemirror-3.1/mode/rpm/0000755000000000000000000000000012111430706015561 5ustar rootrootsite_pro/codemirror-3.1/mode/rpm/changes/0000755000000000000000000000000012111430706017171 5ustar rootrootsite_pro/codemirror-3.1/mode/rpm/changes/index.html0000644000000000000000000000337712111430706021200 0ustar rootroot CodeMirror: RPM changes mode

CodeMirror: RPM changes mode

MIME types defined: text/x-rpm-changes.

site_pro/codemirror-3.1/mode/rpm/changes/changes.js0000644000000000000000000000117412111430706021142 0ustar rootrootCodeMirror.defineMode("changes", function() { var headerSeperator = /^-+$/; var headerLine = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /; var simpleEmail = /^[\w+.-]+@[\w.-]+/; return { token: function(stream) { if (stream.sol()) { if (stream.match(headerSeperator)) { return 'tag'; } if (stream.match(headerLine)) { return 'tag'; } } if (stream.match(simpleEmail)) { return 'string'; } stream.next(); return null; } }; }); CodeMirror.defineMIME("text/x-rpm-changes", "changes"); site_pro/codemirror-3.1/mode/rpm/spec/0000755000000000000000000000000012111430706016513 5ustar rootrootsite_pro/codemirror-3.1/mode/rpm/spec/spec.js0000644000000000000000000000517012111430706020006 0ustar rootroot// Quick and dirty spec file highlighting CodeMirror.defineMode("spec", function() { var arch = /^(i386|i586|i686|x86_64|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/; var preamble = /^(Name|Version|Release|License|Summary|Url|Group|Source|BuildArch|BuildRequires|BuildRoot|AutoReqProv|Provides|Requires(\(\w+\))?|Obsoletes|Conflicts|Recommends|Source\d*|Patch\d*|ExclusiveArch|NoSource|Supplements):/; var section = /^%(debug_package|package|description|prep|build|install|files|clean|changelog|preun|postun|pre|post|triggerin|triggerun|pretrans|posttrans|verifyscript|check|triggerpostun|triggerprein|trigger)/; var control_flow_complex = /^%(ifnarch|ifarch|if)/; // rpm control flow macros var control_flow_simple = /^%(else|endif)/; // rpm control flow macros var operators = /^(\!|\?|\<\=|\<|\>\=|\>|\=\=|\&\&|\|\|)/; // operators in control flow macros return { startState: function () { return { controlFlow: false, macroParameters: false, section: false }; }, token: function (stream, state) { var ch = stream.peek(); if (ch == "#") { stream.skipToEnd(); return "comment"; } if (stream.sol()) { if (stream.match(preamble)) { return "preamble"; } if (stream.match(section)) { return "section"; } } if (stream.match(/^\$\w+/)) { return "def"; } // Variables like '$RPM_BUILD_ROOT' if (stream.match(/^\$\{\w+\}/)) { return "def"; } // Variables like '${RPM_BUILD_ROOT}' if (stream.match(control_flow_simple)) { return "keyword"; } if (stream.match(control_flow_complex)) { state.controlFlow = true; return "keyword"; } if (state.controlFlow) { if (stream.match(operators)) { return "operator"; } if (stream.match(/^(\d+)/)) { return "number"; } if (stream.eol()) { state.controlFlow = false; } } if (stream.match(arch)) { return "number"; } // Macros like '%make_install' or '%attr(0775,root,root)' if (stream.match(/^%[\w]+/)) { if (stream.match(/^\(/)) { state.macroParameters = true; } return "macro"; } if (state.macroParameters) { if (stream.match(/^\d+/)) { return "number";} if (stream.match(/^\)/)) { state.macroParameters = false; return "macro"; } } if (stream.match(/^%\{\??[\w \-]+\}/)) { return "macro"; } // Macros like '%{defined fedora}' //TODO: Include bash script sub-parser (CodeMirror supports that) stream.next(); return null; } }; }); CodeMirror.defineMIME("text/x-rpm-spec", "spec"); site_pro/codemirror-3.1/mode/rpm/spec/index.html0000644000000000000000000000573312111430706020520 0ustar rootroot CodeMirror: RPM spec mode

CodeMirror: RPM spec mode

MIME types defined: text/x-rpm-spec.

site_pro/codemirror-3.1/mode/rpm/spec/spec.css0000644000000000000000000000041312111430706020155 0ustar rootroot.cm-s-default span.cm-preamble {color: #b26818; font-weight: bold;} .cm-s-default span.cm-macro {color: #b218b2;} .cm-s-default span.cm-section {color: green; font-weight: bold;} .cm-s-default span.cm-script {color: red;} .cm-s-default span.cm-issue {color: yellow;} site_pro/codemirror-3.1/mode/smalltalk/0000755000000000000000000000000012111430706016747 5ustar rootrootsite_pro/codemirror-3.1/mode/smalltalk/index.html0000644000000000000000000000304512111430706020746 0ustar rootroot CodeMirror: Smalltalk mode

CodeMirror: Smalltalk mode

Simple Smalltalk mode.

MIME types defined: text/x-stsrc.

site_pro/codemirror-3.1/mode/smalltalk/smalltalk.js0000644000000000000000000000654712111430706021305 0ustar rootrootCodeMirror.defineMode('smalltalk', function(config) { var specialChars = /[+\-/\\*~<>=@%|&?!.:;^]/; var keywords = /true|false|nil|self|super|thisContext/; var Context = function(tokenizer, parent) { this.next = tokenizer; this.parent = parent; }; var Token = function(name, context, eos) { this.name = name; this.context = context; this.eos = eos; }; var State = function() { this.context = new Context(next, null); this.expectVariable = true; this.indentation = 0; this.userIndentationDelta = 0; }; State.prototype.userIndent = function(indentation) { this.userIndentationDelta = indentation > 0 ? (indentation / config.indentUnit - this.indentation) : 0; }; var next = function(stream, context, state) { var token = new Token(null, context, false); var aChar = stream.next(); if (aChar === '"') { token = nextComment(stream, new Context(nextComment, context)); } else if (aChar === '\'') { token = nextString(stream, new Context(nextString, context)); } else if (aChar === '#') { stream.eatWhile(/[^ .]/); token.name = 'string-2'; } else if (aChar === '$') { stream.eatWhile(/[^ ]/); token.name = 'string-2'; } else if (aChar === '|' && state.expectVariable) { token.context = new Context(nextTemporaries, context); } else if (/[\[\]{}()]/.test(aChar)) { token.name = 'bracket'; token.eos = /[\[{(]/.test(aChar); if (aChar === '[') { state.indentation++; } else if (aChar === ']') { state.indentation = Math.max(0, state.indentation - 1); } } else if (specialChars.test(aChar)) { stream.eatWhile(specialChars); token.name = 'operator'; token.eos = aChar !== ';'; // ; cascaded message expression } else if (/\d/.test(aChar)) { stream.eatWhile(/[\w\d]/); token.name = 'number'; } else if (/[\w_]/.test(aChar)) { stream.eatWhile(/[\w\d_]/); token.name = state.expectVariable ? (keywords.test(stream.current()) ? 'keyword' : 'variable') : null; } else { token.eos = state.expectVariable; } return token; }; var nextComment = function(stream, context) { stream.eatWhile(/[^"]/); return new Token('comment', stream.eat('"') ? context.parent : context, true); }; var nextString = function(stream, context) { stream.eatWhile(/[^']/); return new Token('string', stream.eat('\'') ? context.parent : context, false); }; var nextTemporaries = function(stream, context) { var token = new Token(null, context, false); var aChar = stream.next(); if (aChar === '|') { token.context = context.parent; token.eos = true; } else { stream.eatWhile(/[^|]/); token.name = 'variable'; } return token; }; return { startState: function() { return new State; }, token: function(stream, state) { state.userIndent(stream.indentation()); if (stream.eatSpace()) { return null; } var token = state.context.next(stream, state.context, state); state.context = token.context; state.expectVariable = token.eos; state.lastToken = token; return token.name; }, blankLine: function(state) { state.userIndent(0); }, indent: function(state, textAfter) { var i = state.context.next === next && textAfter && textAfter.charAt(0) === ']' ? -1 : state.userIndentationDelta; return (state.indentation + i) * config.indentUnit; }, electricChars: ']' }; }); CodeMirror.defineMIME('text/x-stsrc', {name: 'smalltalk'});site_pro/codemirror-3.1/mode/gfm/0000755000000000000000000000000012111430706015534 5ustar rootrootsite_pro/codemirror-3.1/mode/gfm/test.js0000644000000000000000000000361312111430706017054 0ustar rootroot(function() { var mode = CodeMirror.getMode({tabSize: 4}, "gfm"); function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } MT("emInWordAsterisk", "foo[em *bar*]hello"); MT("emInWordUnderscore", "foo_bar_hello"); MT("emStrongUnderscore", "[strong __][emstrong _foo__][em _] bar"); MT("fencedCodeBlocks", "[comment ```]", "[comment foo]", "", "[comment ```]", "bar"); MT("fencedCodeBlockModeSwitching", "[comment ```javascript]", "[variable foo]", "", "[comment ```]", "bar"); MT("SHA", "foo [link be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] bar"); MT("shortSHA", "foo [link be6a8cc] bar"); MT("tooShortSHA", "foo be6a8c bar"); MT("longSHA", "foo be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd22 bar"); MT("badSHA", "foo be6a8cc1c1ecfe9489fb51e4869af15a13fc2cg2 bar"); MT("userSHA", "foo [link bar@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] hello"); MT("userProjectSHA", "foo [link bar/hello@be6a8cc1c1ecfe9489fb51e4869af15a13fc2cd2] world"); MT("num", "foo [link #1] bar"); MT("badNum", "foo #1bar hello"); MT("userNum", "foo [link bar#1] hello"); MT("userProjectNum", "foo [link bar/hello#1] world"); MT("vanillaLink", "foo [link http://www.example.com/] bar"); MT("vanillaLinkPunctuation", "foo [link http://www.example.com/]. bar"); MT("vanillaLinkExtension", "foo [link http://www.example.com/index.html] bar"); MT("notALink", "[comment ```css]", "[tag foo] {[property color][operator :][keyword black];}", "[comment ```][link http://www.example.com/]"); MT("notALink", "[comment ``foo `bar` http://www.example.com/``] hello"); MT("notALink", "[comment `foo]", "[link http://www.example.com/]", "[comment `foo]", "", "[link http://www.example.com/]"); })(); site_pro/codemirror-3.1/mode/gfm/index.html0000644000000000000000000000376112111430706017540 0ustar rootroot CodeMirror: GFM mode

CodeMirror: GFM mode

Optionally depends on other modes for properly highlighted code blocks.

Parsing/Highlighting Tests: normal, verbose.

site_pro/codemirror-3.1/mode/gfm/gfm.js0000644000000000000000000000547712111430706016660 0ustar rootrootCodeMirror.defineMode("gfm", function(config) { var codeDepth = 0; function blankLine(state) { state.code = false; return null; } var gfmOverlay = { startState: function() { return { code: false, codeBlock: false, ateSpace: false }; }, copyState: function(s) { return { code: s.code, codeBlock: s.codeBlock, ateSpace: s.ateSpace }; }, token: function(stream, state) { // Hack to prevent formatting override inside code blocks (block and inline) if (state.codeBlock) { if (stream.match(/^```/)) { state.codeBlock = false; return null; } stream.skipToEnd(); return null; } if (stream.sol()) { state.code = false; } if (stream.sol() && stream.match(/^```/)) { stream.skipToEnd(); state.codeBlock = true; return null; } // If this block is changed, it may need to be updated in Markdown mode if (stream.peek() === '`') { stream.next(); var before = stream.pos; stream.eatWhile('`'); var difference = 1 + stream.pos - before; if (!state.code) { codeDepth = difference; state.code = true; } else { if (difference === codeDepth) { // Must be exact state.code = false; } } return null; } else if (state.code) { stream.next(); return null; } // Check if space. If so, links can be formatted later on if (stream.eatSpace()) { state.ateSpace = true; return null; } if (stream.sol() || state.ateSpace) { state.ateSpace = false; if(stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?:[a-f0-9]{7,40}\b)/)) { // User/Project@SHA // User@SHA // SHA return "link"; } else if (stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/)) { // User/Project#Num // User#Num // #Num return "link"; } } if (stream.match(/^((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/i)) { // URLs // Taken from http://daringfireball.net/2010/07/improved_regex_for_matching_urls // And then (issue #1160) simplified to make it not crash the Chrome Regexp engine return "link"; } stream.next(); return null; }, blankLine: blankLine }; CodeMirror.defineMIME("gfmBase", { name: "markdown", underscoresBreakWords: false, fencedCodeBlocks: true }); return CodeMirror.overlayMode(CodeMirror.getMode(config, "gfmBase"), gfmOverlay); }, "markdown"); site_pro/codemirror-3.1/mode/groovy/0000755000000000000000000000000012111430706016310 5ustar rootrootsite_pro/codemirror-3.1/mode/groovy/groovy.js0000644000000000000000000001575112111430706020204 0ustar rootrootCodeMirror.defineMode("groovy", function(config) { function words(str) { var obj = {}, words = str.split(" "); for (var i = 0; i < words.length; ++i) obj[words[i]] = true; return obj; } var keywords = words( "abstract as assert boolean break byte case catch char class const continue def default " + "do double else enum extends final finally float for goto if implements import in " + "instanceof int interface long native new package private protected public return " + "short static strictfp super switch synchronized threadsafe throw throws transient " + "try void volatile while"); var blockKeywords = words("catch class do else finally for if switch try while enum interface def"); var atoms = words("null true false this"); var curPunc; function tokenBase(stream, state) { var ch = stream.next(); if (ch == '"' || ch == "'") { return startString(ch, stream, state); } if (/[\[\]{}\(\),;\:\.]/.test(ch)) { curPunc = ch; return null; } if (/\d/.test(ch)) { stream.eatWhile(/[\w\.]/); if (stream.eat(/eE/)) { stream.eat(/\+\-/); stream.eatWhile(/\d/); } return "number"; } if (ch == "/") { if (stream.eat("*")) { state.tokenize.push(tokenComment); return tokenComment(stream, state); } if (stream.eat("/")) { stream.skipToEnd(); return "comment"; } if (expectExpression(state.lastToken)) { return startString(ch, stream, state); } } if (ch == "-" && stream.eat(">")) { curPunc = "->"; return null; } if (/[+\-*&%=<>!?|\/~]/.test(ch)) { stream.eatWhile(/[+\-*&%=<>|~]/); return "operator"; } stream.eatWhile(/[\w\$_]/); if (ch == "@") { stream.eatWhile(/[\w\$_\.]/); return "meta"; } if (state.lastToken == ".") return "property"; if (stream.eat(":")) { curPunc = "proplabel"; return "property"; } var cur = stream.current(); if (atoms.propertyIsEnumerable(cur)) { return "atom"; } if (keywords.propertyIsEnumerable(cur)) { if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; return "keyword"; } return "variable"; } tokenBase.isBase = true; function startString(quote, stream, state) { var tripleQuoted = false; if (quote != "/" && stream.eat(quote)) { if (stream.eat(quote)) tripleQuoted = true; else return "string"; } function t(stream, state) { var escaped = false, next, end = !tripleQuoted; while ((next = stream.next()) != null) { if (next == quote && !escaped) { if (!tripleQuoted) { break; } if (stream.match(quote + quote)) { end = true; break; } } if (quote == '"' && next == "$" && !escaped && stream.eat("{")) { state.tokenize.push(tokenBaseUntilBrace()); return "string"; } escaped = !escaped && next == "\\"; } if (end) state.tokenize.pop(); return "string"; } state.tokenize.push(t); return t(stream, state); } function tokenBaseUntilBrace() { var depth = 1; function t(stream, state) { if (stream.peek() == "}") { depth--; if (depth == 0) { state.tokenize.pop(); return state.tokenize[state.tokenize.length-1](stream, state); } } else if (stream.peek() == "{") { depth++; } return tokenBase(stream, state); } t.isBase = true; return t; } function tokenComment(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "/" && maybeEnd) { state.tokenize.pop(); break; } maybeEnd = (ch == "*"); } return "comment"; } function expectExpression(last) { return !last || last == "operator" || last == "->" || /[\.\[\{\(,;:]/.test(last) || last == "newstatement" || last == "keyword" || last == "proplabel"; } function Context(indented, column, type, align, prev) { this.indented = indented; this.column = column; this.type = type; this.align = align; this.prev = prev; } function pushContext(state, col, type) { return state.context = new Context(state.indented, col, type, null, state.context); } function popContext(state) { var t = state.context.type; if (t == ")" || t == "]" || t == "}") state.indented = state.context.indented; return state.context = state.context.prev; } // Interface return { startState: function(basecolumn) { return { tokenize: [tokenBase], context: new Context((basecolumn || 0) - config.indentUnit, 0, "top", false), indented: 0, startOfLine: true, lastToken: null }; }, token: function(stream, state) { var ctx = state.context; if (stream.sol()) { if (ctx.align == null) ctx.align = false; state.indented = stream.indentation(); state.startOfLine = true; // Automatic semicolon insertion if (ctx.type == "statement" && !expectExpression(state.lastToken)) { popContext(state); ctx = state.context; } } if (stream.eatSpace()) return null; curPunc = null; var style = state.tokenize[state.tokenize.length-1](stream, state); if (style == "comment") return style; if (ctx.align == null) ctx.align = true; if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state); // Handle indentation for {x -> \n ... } else if (curPunc == "->" && ctx.type == "statement" && ctx.prev.type == "}") { popContext(state); state.context.align = false; } else if (curPunc == "{") pushContext(state, stream.column(), "}"); else if (curPunc == "[") pushContext(state, stream.column(), "]"); else if (curPunc == "(") pushContext(state, stream.column(), ")"); else if (curPunc == "}") { while (ctx.type == "statement") ctx = popContext(state); if (ctx.type == "}") ctx = popContext(state); while (ctx.type == "statement") ctx = popContext(state); } else if (curPunc == ctx.type) popContext(state); else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement")) pushContext(state, stream.column(), "statement"); state.startOfLine = false; state.lastToken = curPunc || style; return style; }, indent: function(state, textAfter) { if (!state.tokenize[state.tokenize.length-1].isBase) return 0; var firstChar = textAfter && textAfter.charAt(0), ctx = state.context; if (ctx.type == "statement" && !expectExpression(state.lastToken)) ctx = ctx.prev; var closing = firstChar == ctx.type; if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : config.indentUnit); else if (ctx.align) return ctx.column + (closing ? 0 : 1); else return ctx.indented + (closing ? 0 : config.indentUnit); }, electricChars: "{}" }; }); CodeMirror.defineMIME("text/x-groovy", "groovy"); site_pro/codemirror-3.1/mode/groovy/index.html0000644000000000000000000000347112111430706020312 0ustar rootroot CodeMirror: Groovy mode

CodeMirror: Groovy mode

MIME types defined: text/x-groovy

site_pro/codemirror-3.1/mode/python/0000755000000000000000000000000012111430706016304 5ustar rootrootsite_pro/codemirror-3.1/mode/python/LICENSE.txt0000644000000000000000000000206312111430706020130 0ustar rootrootThe MIT License Copyright (c) 2010 Timothy Farrell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.site_pro/codemirror-3.1/mode/python/python.js0000644000000000000000000003017212111430706020166 0ustar rootrootCodeMirror.defineMode("python", function(conf, parserConf) { var ERRORCLASS = 'error'; function wordRegexp(words) { return new RegExp("^((" + words.join(")|(") + "))\\b"); } var singleOperators = parserConf.singleOperators || new RegExp("^[\\+\\-\\*/%&|\\^~<>!]"); var singleDelimiters = parserConf.singleDelimiters || new RegExp('^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]'); var doubleOperators = parserConf.doubleOperators || new RegExp("^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"); var doubleDelimiters = parserConf.doubleDelimiters || new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"); var tripleDelimiters = parserConf.tripleDelimiters || new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"); var identifiers = parserConf.identifiers|| new RegExp("^[_A-Za-z][_A-Za-z0-9]*"); var wordOperators = wordRegexp(['and', 'or', 'not', 'is', 'in']); var commonkeywords = ['as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'lambda', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']; var commonBuiltins = ['abs', 'all', 'any', 'bin', 'bool', 'bytearray', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip', '__import__', 'NotImplemented', 'Ellipsis', '__debug__']; var py2 = {'builtins': ['apply', 'basestring', 'buffer', 'cmp', 'coerce', 'execfile', 'file', 'intern', 'long', 'raw_input', 'reduce', 'reload', 'unichr', 'unicode', 'xrange', 'False', 'True', 'None'], 'keywords': ['exec', 'print']}; var py3 = {'builtins': ['ascii', 'bytes', 'exec', 'print'], 'keywords': ['nonlocal', 'False', 'True', 'None']}; if (!!parserConf.version && parseInt(parserConf.version, 10) === 3) { commonkeywords = commonkeywords.concat(py3.keywords); commonBuiltins = commonBuiltins.concat(py3.builtins); var stringPrefixes = new RegExp("^(([rb]|(br))?('{3}|\"{3}|['\"]))", "i"); } else { commonkeywords = commonkeywords.concat(py2.keywords); commonBuiltins = commonBuiltins.concat(py2.builtins); var stringPrefixes = new RegExp("^(([rub]|(ur)|(br))?('{3}|\"{3}|['\"]))", "i"); } var keywords = wordRegexp(commonkeywords); var builtins = wordRegexp(commonBuiltins); var indentInfo = null; // tokenizers function tokenBase(stream, state) { // Handle scope changes if (stream.sol()) { var scopeOffset = state.scopes[0].offset; if (stream.eatSpace()) { var lineOffset = stream.indentation(); if (lineOffset > scopeOffset) { indentInfo = 'indent'; } else if (lineOffset < scopeOffset) { indentInfo = 'dedent'; } return null; } else { if (scopeOffset > 0) { dedent(stream, state); } } } if (stream.eatSpace()) { return null; } var ch = stream.peek(); // Handle Comments if (ch === '#') { stream.skipToEnd(); return 'comment'; } // Handle Number Literals if (stream.match(/^[0-9\.]/, false)) { var floatLiteral = false; // Floats if (stream.match(/^\d*\.\d+(e[\+\-]?\d+)?/i)) { floatLiteral = true; } if (stream.match(/^\d+\.\d*/)) { floatLiteral = true; } if (stream.match(/^\.\d+/)) { floatLiteral = true; } if (floatLiteral) { // Float literals may be "imaginary" stream.eat(/J/i); return 'number'; } // Integers var intLiteral = false; // Hex if (stream.match(/^0x[0-9a-f]+/i)) { intLiteral = true; } // Binary if (stream.match(/^0b[01]+/i)) { intLiteral = true; } // Octal if (stream.match(/^0o[0-7]+/i)) { intLiteral = true; } // Decimal if (stream.match(/^[1-9]\d*(e[\+\-]?\d+)?/)) { // Decimal literals may be "imaginary" stream.eat(/J/i); // TODO - Can you have imaginary longs? intLiteral = true; } // Zero by itself with no other piece of number. if (stream.match(/^0(?![\dx])/i)) { intLiteral = true; } if (intLiteral) { // Integer literals may be "long" stream.eat(/L/i); return 'number'; } } // Handle Strings if (stream.match(stringPrefixes)) { state.tokenize = tokenStringFactory(stream.current()); return state.tokenize(stream, state); } // Handle operators and Delimiters if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) { return null; } if (stream.match(doubleOperators) || stream.match(singleOperators) || stream.match(wordOperators)) { return 'operator'; } if (stream.match(singleDelimiters)) { return null; } if (stream.match(keywords)) { return 'keyword'; } if (stream.match(builtins)) { return 'builtin'; } if (stream.match(identifiers)) { return 'variable'; } // Handle non-detected items stream.next(); return ERRORCLASS; } function tokenStringFactory(delimiter) { while ('rub'.indexOf(delimiter.charAt(0).toLowerCase()) >= 0) { delimiter = delimiter.substr(1); } var singleline = delimiter.length == 1; var OUTCLASS = 'string'; function tokenString(stream, state) { while (!stream.eol()) { stream.eatWhile(/[^'"\\]/); if (stream.eat('\\')) { stream.next(); if (singleline && stream.eol()) { return OUTCLASS; } } else if (stream.match(delimiter)) { state.tokenize = tokenBase; return OUTCLASS; } else { stream.eat(/['"]/); } } if (singleline) { if (parserConf.singleLineStringErrors) { return ERRORCLASS; } else { state.tokenize = tokenBase; } } return OUTCLASS; } tokenString.isString = true; return tokenString; } function indent(stream, state, type) { type = type || 'py'; var indentUnit = 0; if (type === 'py') { if (state.scopes[0].type !== 'py') { state.scopes[0].offset = stream.indentation(); return; } for (var i = 0; i < state.scopes.length; ++i) { if (state.scopes[i].type === 'py') { indentUnit = state.scopes[i].offset + conf.indentUnit; break; } } } else { indentUnit = stream.column() + stream.current().length; } state.scopes.unshift({ offset: indentUnit, type: type }); } function dedent(stream, state, type) { type = type || 'py'; if (state.scopes.length == 1) return; if (state.scopes[0].type === 'py') { var _indent = stream.indentation(); var _indent_index = -1; for (var i = 0; i < state.scopes.length; ++i) { if (_indent === state.scopes[i].offset) { _indent_index = i; break; } } if (_indent_index === -1) { return true; } while (state.scopes[0].offset !== _indent) { state.scopes.shift(); } return false; } else { if (type === 'py') { state.scopes[0].offset = stream.indentation(); return false; } else { if (state.scopes[0].type != type) { return true; } state.scopes.shift(); return false; } } } function tokenLexer(stream, state) { indentInfo = null; var style = state.tokenize(stream, state); var current = stream.current(); // Handle '.' connected identifiers if (current === '.') { style = stream.match(identifiers, false) ? null : ERRORCLASS; if (style === null && state.lastToken === 'meta') { // Apply 'meta' style to '.' connected identifiers when // appropriate. style = 'meta'; } return style; } // Handle decorators if (current === '@') { return stream.match(identifiers, false) ? 'meta' : ERRORCLASS; } if ((style === 'variable' || style === 'builtin') && state.lastToken === 'meta') { style = 'meta'; } // Handle scope changes. if (current === 'pass' || current === 'return') { state.dedent += 1; } if (current === 'lambda') state.lambda = true; if ((current === ':' && !state.lambda && state.scopes[0].type == 'py') || indentInfo === 'indent') { indent(stream, state); } var delimiter_index = '[({'.indexOf(current); if (delimiter_index !== -1) { indent(stream, state, '])}'.slice(delimiter_index, delimiter_index+1)); } if (indentInfo === 'dedent') { if (dedent(stream, state)) { return ERRORCLASS; } } delimiter_index = '])}'.indexOf(current); if (delimiter_index !== -1) { if (dedent(stream, state, current)) { return ERRORCLASS; } } if (state.dedent > 0 && stream.eol() && state.scopes[0].type == 'py') { if (state.scopes.length > 1) state.scopes.shift(); state.dedent -= 1; } return style; } var external = { startState: function(basecolumn) { return { tokenize: tokenBase, scopes: [{offset:basecolumn || 0, type:'py'}], lastToken: null, lambda: false, dedent: 0 }; }, token: function(stream, state) { var style = tokenLexer(stream, state); state.lastToken = style; if (stream.eol() && stream.lambda) { state.lambda = false; } return style; }, indent: function(state) { if (state.tokenize != tokenBase) { return state.tokenize.isString ? CodeMirror.Pass : 0; } return state.scopes[0].offset; } }; return external; }); CodeMirror.defineMIME("text/x-python", "python"); site_pro/codemirror-3.1/mode/python/index.html0000644000000000000000000000766612111430706020320 0ustar rootroot CodeMirror: Python mode

CodeMirror: Python mode

Configuration Options:

  • version - 2/3 - The version of Python to recognize. Default is 2.
  • singleLineStringErrors - true/false - If you have a single-line string that is not terminated at the end of the line, this will show subsequent lines as errors if true, otherwise it will consider the newline as the end of the string. Default is false.

Advanced Configuration Options:

Usefull for superset of python syntax like Enthought enaml, IPython magics and questionmark help

  • singleOperators - RegEx - Regular Expression for single operator matching, default :
    ^[\\+\\-\\*/%&|\\^~<>!]
  • singleDelimiters - RegEx - Regular Expression for single delimiter matching, default :
    ^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]
  • doubleOperators - RegEx - Regular Expression for double operators matching, default :
    ^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))
  • doubleDelimiters - RegEx - Regular Expressoin for double delimiters matching, default :
    ^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))
  • tripleDelimiters - RegEx - Regular Expression for triple delimiters matching, default :
    ^((//=)|(>>=)|(<<=)|(\\*\\*=))
  • identifiers - RegEx - Regular Expression for identifier, default :
    ^[_A-Za-z][_A-Za-z0-9]*

MIME types defined: text/x-python.

site_pro/codemirror-3.1/mode/ecl/0000755000000000000000000000000012111430706015526 5ustar rootrootsite_pro/codemirror-3.1/mode/ecl/index.html0000644000000000000000000000204312111430706017522 0ustar rootroot CodeMirror: ECL mode

CodeMirror: ECL mode

Based on CodeMirror's clike mode. For more information see HPCC Systems web site.

MIME types defined: text/x-ecl.

site_pro/codemirror-3.1/mode/ecl/ecl.js0000644000000000000000000002014412111430706016630 0ustar rootrootCodeMirror.defineMode("ecl", function(config) { function words(str) { var obj = {}, words = str.split(" "); for (var i = 0; i < words.length; ++i) obj[words[i]] = true; return obj; } function metaHook(stream, state) { if (!state.startOfLine) return false; stream.skipToEnd(); return "meta"; } var indentUnit = config.indentUnit; var keyword = words("abs acos allnodes ascii asin asstring atan atan2 ave case choose choosen choosesets clustersize combine correlation cos cosh count covariance cron dataset dedup define denormalize distribute distributed distribution ebcdic enth error evaluate event eventextra eventname exists exp failcode failmessage fetch fromunicode getisvalid global graph group hash hash32 hash64 hashcrc hashmd5 having if index intformat isvalid iterate join keyunicode length library limit ln local log loop map matched matchlength matchposition matchtext matchunicode max merge mergejoin min nolocal nonempty normalize parse pipe power preload process project pull random range rank ranked realformat recordof regexfind regexreplace regroup rejected rollup round roundup row rowdiff sample set sin sinh sizeof soapcall sort sorted sqrt stepped stored sum table tan tanh thisnode topn tounicode transfer trim truncate typeof ungroup unicodeorder variance which workunit xmldecode xmlencode xmltext xmlunicode"); var variable = words("apply assert build buildindex evaluate fail keydiff keypatch loadxml nothor notify output parallel sequential soapcall wait"); var variable_2 = words("__compressed__ all and any as atmost before beginc++ best between case const counter csv descend encrypt end endc++ endmacro except exclusive expire export extend false few first flat from full function group header heading hole ifblock import in interface joined keep keyed last left limit load local locale lookup macro many maxcount maxlength min skew module named nocase noroot noscan nosort not of only opt or outer overwrite packed partition penalty physicallength pipe quote record relationship repeat return right scan self separator service shared skew skip sql store terminator thor threshold token transform trim true type unicodeorder unsorted validate virtual whole wild within xml xpath"); var variable_3 = words("ascii big_endian boolean data decimal ebcdic integer pattern qstring real record rule set of string token udecimal unicode unsigned varstring varunicode"); var builtin = words("checkpoint deprecated failcode failmessage failure global independent onwarning persist priority recovery stored success wait when"); var blockKeywords = words("catch class do else finally for if switch try while"); var atoms = words("true false null"); var hooks = {"#": metaHook}; var multiLineStrings; var isOperatorChar = /[+\-*&%=<>!?|\/]/; var curPunc; function tokenBase(stream, state) { var ch = stream.next(); if (hooks[ch]) { var result = hooks[ch](stream, state); if (result !== false) return result; } if (ch == '"' || ch == "'") { state.tokenize = tokenString(ch); return state.tokenize(stream, state); } if (/[\[\]{}\(\),;\:\.]/.test(ch)) { curPunc = ch; return null; } if (/\d/.test(ch)) { stream.eatWhile(/[\w\.]/); return "number"; } if (ch == "/") { if (stream.eat("*")) { state.tokenize = tokenComment; return tokenComment(stream, state); } if (stream.eat("/")) { stream.skipToEnd(); return "comment"; } } if (isOperatorChar.test(ch)) { stream.eatWhile(isOperatorChar); return "operator"; } stream.eatWhile(/[\w\$_]/); var cur = stream.current().toLowerCase(); if (keyword.propertyIsEnumerable(cur)) { if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; return "keyword"; } else if (variable.propertyIsEnumerable(cur)) { if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; return "variable"; } else if (variable_2.propertyIsEnumerable(cur)) { if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; return "variable-2"; } else if (variable_3.propertyIsEnumerable(cur)) { if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; return "variable-3"; } else if (builtin.propertyIsEnumerable(cur)) { if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; return "builtin"; } else { //Data types are of from KEYWORD## var i = cur.length - 1; while(i >= 0 && (!isNaN(cur[i]) || cur[i] == '_')) --i; if (i > 0) { var cur2 = cur.substr(0, i + 1); if (variable_3.propertyIsEnumerable(cur2)) { if (blockKeywords.propertyIsEnumerable(cur2)) curPunc = "newstatement"; return "variable-3"; } } } if (atoms.propertyIsEnumerable(cur)) return "atom"; return null; } function tokenString(quote) { return function(stream, state) { var escaped = false, next, end = false; while ((next = stream.next()) != null) { if (next == quote && !escaped) {end = true; break;} escaped = !escaped && next == "\\"; } if (end || !(escaped || multiLineStrings)) state.tokenize = tokenBase; return "string"; }; } function tokenComment(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "/" && maybeEnd) { state.tokenize = tokenBase; break; } maybeEnd = (ch == "*"); } return "comment"; } function Context(indented, column, type, align, prev) { this.indented = indented; this.column = column; this.type = type; this.align = align; this.prev = prev; } function pushContext(state, col, type) { return state.context = new Context(state.indented, col, type, null, state.context); } function popContext(state) { var t = state.context.type; if (t == ")" || t == "]" || t == "}") state.indented = state.context.indented; return state.context = state.context.prev; } // Interface return { startState: function(basecolumn) { return { tokenize: null, context: new Context((basecolumn || 0) - indentUnit, 0, "top", false), indented: 0, startOfLine: true }; }, token: function(stream, state) { var ctx = state.context; if (stream.sol()) { if (ctx.align == null) ctx.align = false; state.indented = stream.indentation(); state.startOfLine = true; } if (stream.eatSpace()) return null; curPunc = null; var style = (state.tokenize || tokenBase)(stream, state); if (style == "comment" || style == "meta") return style; if (ctx.align == null) ctx.align = true; if ((curPunc == ";" || curPunc == ":") && ctx.type == "statement") popContext(state); else if (curPunc == "{") pushContext(state, stream.column(), "}"); else if (curPunc == "[") pushContext(state, stream.column(), "]"); else if (curPunc == "(") pushContext(state, stream.column(), ")"); else if (curPunc == "}") { while (ctx.type == "statement") ctx = popContext(state); if (ctx.type == "}") ctx = popContext(state); while (ctx.type == "statement") ctx = popContext(state); } else if (curPunc == ctx.type) popContext(state); else if (ctx.type == "}" || ctx.type == "top" || (ctx.type == "statement" && curPunc == "newstatement")) pushContext(state, stream.column(), "statement"); state.startOfLine = false; return style; }, indent: function(state, textAfter) { if (state.tokenize != tokenBase && state.tokenize != null) return 0; var ctx = state.context, firstChar = textAfter && textAfter.charAt(0); if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev; var closing = firstChar == ctx.type; if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : indentUnit); else if (ctx.align) return ctx.column + (closing ? 0 : 1); else return ctx.indented + (closing ? 0 : indentUnit); }, electricChars: "{}" }; }); CodeMirror.defineMIME("text/x-ecl", "ecl"); site_pro/codemirror-3.1/mode/sparql/0000755000000000000000000000000012111430706016265 5ustar rootrootsite_pro/codemirror-3.1/mode/sparql/sparql.js0000644000000000000000000001076312111430706020134 0ustar rootrootCodeMirror.defineMode("sparql", function(config) { var indentUnit = config.indentUnit; var curPunc; function wordRegexp(words) { return new RegExp("^(?:" + words.join("|") + ")$", "i"); } var ops = wordRegexp(["str", "lang", "langmatches", "datatype", "bound", "sameterm", "isiri", "isuri", "isblank", "isliteral", "union", "a"]); var keywords = wordRegexp(["base", "prefix", "select", "distinct", "reduced", "construct", "describe", "ask", "from", "named", "where", "order", "limit", "offset", "filter", "optional", "graph", "by", "asc", "desc"]); var operatorChars = /[*+\-<>=&|]/; function tokenBase(stream, state) { var ch = stream.next(); curPunc = null; if (ch == "$" || ch == "?") { stream.match(/^[\w\d]*/); return "variable-2"; } else if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) { stream.match(/^[^\s\u00a0>]*>?/); return "atom"; } else if (ch == "\"" || ch == "'") { state.tokenize = tokenLiteral(ch); return state.tokenize(stream, state); } else if (/[{}\(\),\.;\[\]]/.test(ch)) { curPunc = ch; return null; } else if (ch == "#") { stream.skipToEnd(); return "comment"; } else if (operatorChars.test(ch)) { stream.eatWhile(operatorChars); return null; } else if (ch == ":") { stream.eatWhile(/[\w\d\._\-]/); return "atom"; } else { stream.eatWhile(/[_\w\d]/); if (stream.eat(":")) { stream.eatWhile(/[\w\d_\-]/); return "atom"; } var word = stream.current(); if (ops.test(word)) return null; else if (keywords.test(word)) return "keyword"; else return "variable"; } } function tokenLiteral(quote) { return function(stream, state) { var escaped = false, ch; while ((ch = stream.next()) != null) { if (ch == quote && !escaped) { state.tokenize = tokenBase; break; } escaped = !escaped && ch == "\\"; } return "string"; }; } function pushContext(state, type, col) { state.context = {prev: state.context, indent: state.indent, col: col, type: type}; } function popContext(state) { state.indent = state.context.indent; state.context = state.context.prev; } return { startState: function() { return {tokenize: tokenBase, context: null, indent: 0, col: 0}; }, token: function(stream, state) { if (stream.sol()) { if (state.context && state.context.align == null) state.context.align = false; state.indent = stream.indentation(); } if (stream.eatSpace()) return null; var style = state.tokenize(stream, state); if (style != "comment" && state.context && state.context.align == null && state.context.type != "pattern") { state.context.align = true; } if (curPunc == "(") pushContext(state, ")", stream.column()); else if (curPunc == "[") pushContext(state, "]", stream.column()); else if (curPunc == "{") pushContext(state, "}", stream.column()); else if (/[\]\}\)]/.test(curPunc)) { while (state.context && state.context.type == "pattern") popContext(state); if (state.context && curPunc == state.context.type) popContext(state); } else if (curPunc == "." && state.context && state.context.type == "pattern") popContext(state); else if (/atom|string|variable/.test(style) && state.context) { if (/[\}\]]/.test(state.context.type)) pushContext(state, "pattern", stream.column()); else if (state.context.type == "pattern" && !state.context.align) { state.context.align = true; state.context.col = stream.column(); } } return style; }, indent: function(state, textAfter) { var firstChar = textAfter && textAfter.charAt(0); var context = state.context; if (/[\]\}]/.test(firstChar)) while (context && context.type == "pattern") context = context.prev; var closing = context && firstChar == context.type; if (!context) return 0; else if (context.type == "pattern") return context.col; else if (context.align) return context.col + (closing ? 0 : 1); else return context.indent + (closing ? 0 : indentUnit); } }; }); CodeMirror.defineMIME("application/x-sparql-query", "sparql"); site_pro/codemirror-3.1/mode/sparql/index.html0000644000000000000000000000240512111430706020263 0ustar rootroot CodeMirror: SPARQL mode

CodeMirror: SPARQL mode

MIME types defined: application/x-sparql-query.

site_pro/codemirror-3.1/mode/shell/0000755000000000000000000000000012111430706016072 5ustar rootrootsite_pro/codemirror-3.1/mode/shell/shell.js0000644000000000000000000000620612111430706017543 0ustar rootrootCodeMirror.defineMode('shell', function() { var words = {}; function define(style, string) { var split = string.split(' '); for(var i = 0; i < split.length; i++) { words[split[i]] = style; } }; // Atoms define('atom', 'true false'); // Keywords define('keyword', 'if then do else elif while until for in esac fi fin ' + 'fil done exit set unset export function'); // Commands define('builtin', 'ab awk bash beep cat cc cd chown chmod chroot clear cp ' + 'curl cut diff echo find gawk gcc get git grep kill killall ln ls make ' + 'mkdir openssl mv nc node npm ping ps restart rm rmdir sed service sh ' + 'shopt shred source sort sleep ssh start stop su sudo tee telnet top ' + 'touch vi vim wall wc wget who write yes zsh'); function tokenBase(stream, state) { var sol = stream.sol(); var ch = stream.next(); if (ch === '\'' || ch === '"' || ch === '`') { state.tokens.unshift(tokenString(ch)); return tokenize(stream, state); } if (ch === '#') { if (sol && stream.eat('!')) { stream.skipToEnd(); return 'meta'; // 'comment'? } stream.skipToEnd(); return 'comment'; } if (ch === '$') { state.tokens.unshift(tokenDollar); return tokenize(stream, state); } if (ch === '+' || ch === '=') { return 'operator'; } if (ch === '-') { stream.eat('-'); stream.eatWhile(/\w/); return 'attribute'; } if (/\d/.test(ch)) { stream.eatWhile(/\d/); if(!/\w/.test(stream.peek())) { return 'number'; } } stream.eatWhile(/\w/); var cur = stream.current(); if (stream.peek() === '=' && /\w+/.test(cur)) return 'def'; return words.hasOwnProperty(cur) ? words[cur] : null; } function tokenString(quote) { return function(stream, state) { var next, end = false, escaped = false; while ((next = stream.next()) != null) { if (next === quote && !escaped) { end = true; break; } if (next === '$' && !escaped && quote !== '\'') { escaped = true; stream.backUp(1); state.tokens.unshift(tokenDollar); break; } escaped = !escaped && next === '\\'; } if (end || !escaped) { state.tokens.shift(); } return (quote === '`' || quote === ')' ? 'quote' : 'string'); }; }; var tokenDollar = function(stream, state) { if (state.tokens.length > 1) stream.eat('$'); var ch = stream.next(), hungry = /\w/; if (ch === '{') hungry = /[^}]/; if (ch === '(') { state.tokens[0] = tokenString(')'); return tokenize(stream, state); } if (!/\d/.test(ch)) { stream.eatWhile(hungry); stream.eat('}'); } state.tokens.shift(); return 'def'; }; function tokenize(stream, state) { return (state.tokens[0] || tokenBase) (stream, state); }; return { startState: function() {return {tokens:[]};}, token: function(stream, state) { if (stream.eatSpace()) return null; return tokenize(stream, state); } }; }); CodeMirror.defineMIME('text/x-sh', 'shell'); site_pro/codemirror-3.1/mode/shell/index.html0000644000000000000000000000245712111430706020077 0ustar rootroot CodeMirror: Shell mode

CodeMirror: Shell mode

MIME types defined: text/x-sh.

site_pro/codemirror-3.1/mode/htmlmixed/0000755000000000000000000000000012111430706016756 5ustar rootrootsite_pro/codemirror-3.1/mode/htmlmixed/index.html0000644000000000000000000000513512111430706020757 0ustar rootroot CodeMirror: HTML mixed mode

CodeMirror: HTML mixed mode

The HTML mixed mode depends on the XML, JavaScript, and CSS modes.

It takes an optional mode configuration option, scriptTypes, which can be used to add custom behavior for specific <script type="..."> tags. If given, it should hold an array of {matches, mode} objects, where matches is a string or regexp that matches the script type, and mode is either null, for script types that should stay in HTML mode, or a mode spec corresponding to the mode that should be used for the script.

MIME types defined: text/html (redefined, only takes effect if you load this parser after the XML parser).

site_pro/codemirror-3.1/mode/htmlmixed/htmlmixed.js0000644000000000000000000001007012111430706021305 0ustar rootrootCodeMirror.defineMode("htmlmixed", function(config, parserConfig) { var htmlMode = CodeMirror.getMode(config, {name: "xml", htmlMode: true}); var cssMode = CodeMirror.getMode(config, "css"); var scriptTypes = [], scriptTypesConf = parserConfig && parserConfig.scriptTypes; scriptTypes.push({matches: /^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i, mode: CodeMirror.getMode(config, "javascript")}); if (scriptTypesConf) for (var i = 0; i < scriptTypesConf.length; ++i) { var conf = scriptTypesConf[i]; scriptTypes.push({matches: conf.matches, mode: conf.mode && CodeMirror.getMode(config, conf.mode)}); } scriptTypes.push({matches: /./, mode: CodeMirror.getMode(config, "text/plain")}); function html(stream, state) { var tagName = state.htmlState.tagName; var style = htmlMode.token(stream, state.htmlState); if (tagName == "script" && /\btag\b/.test(style) && stream.current() == ">") { // Script block: mode to change to depends on type attribute var scriptType = stream.string.slice(Math.max(0, stream.pos - 100), stream.pos).match(/\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i); scriptType = scriptType ? scriptType[1] : ""; if (scriptType && /[\"\']/.test(scriptType.charAt(0))) scriptType = scriptType.slice(1, scriptType.length - 1); for (var i = 0; i < scriptTypes.length; ++i) { var tp = scriptTypes[i]; if (typeof tp.matches == "string" ? scriptType == tp.matches : tp.matches.test(scriptType)) { if (tp.mode) { state.token = script; state.localMode = tp.mode; state.localState = tp.mode.startState && tp.mode.startState(htmlMode.indent(state.htmlState, "")); } break; } } } else if (tagName == "style" && /\btag\b/.test(style) && stream.current() == ">") { state.token = css; state.localMode = cssMode; state.localState = cssMode.startState(htmlMode.indent(state.htmlState, "")); } return style; } function maybeBackup(stream, pat, style) { var cur = stream.current(); var close = cur.search(pat), m; if (close > -1) stream.backUp(cur.length - close); else if (m = cur.match(/<\/?$/)) { stream.backUp(cur.length); if (!stream.match(pat, false)) stream.match(cur[0]); } return style; } function script(stream, state) { if (stream.match(/^<\/\s*script\s*>/i, false)) { state.token = html; state.localState = state.localMode = null; return html(stream, state); } return maybeBackup(stream, /<\/\s*script\s*>/, state.localMode.token(stream, state.localState)); } function css(stream, state) { if (stream.match(/^<\/\s*style\s*>/i, false)) { state.token = html; state.localState = state.localMode = null; return html(stream, state); } return maybeBackup(stream, /<\/\s*style\s*>/, cssMode.token(stream, state.localState)); } return { startState: function() { var state = htmlMode.startState(); return {token: html, localMode: null, localState: null, htmlState: state}; }, copyState: function(state) { if (state.localState) var local = CodeMirror.copyState(state.localMode, state.localState); return {token: state.token, localMode: state.localMode, localState: local, htmlState: CodeMirror.copyState(htmlMode, state.htmlState)}; }, token: function(stream, state) { return state.token(stream, state); }, indent: function(state, textAfter) { if (!state.localMode || /^\s*<\//.test(textAfter)) return htmlMode.indent(state.htmlState, textAfter); else if (state.localMode.indent) return state.localMode.indent(state.localState, textAfter); else return CodeMirror.Pass; }, electricChars: "/{}:", innerMode: function(state) { return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode}; } }; }, "xml", "javascript", "css"); CodeMirror.defineMIME("text/html", "htmlmixed"); site_pro/codemirror-3.1/mode/clojure/0000755000000000000000000000000012111430706016426 5ustar rootrootsite_pro/codemirror-3.1/mode/clojure/index.html0000644000000000000000000000373012111430706020426 0ustar rootroot CodeMirror: Clojure mode

CodeMirror: Clojure mode

MIME types defined: text/x-clojure.

site_pro/codemirror-3.1/mode/clojure/clojure.js0000644000000000000000000003025012111430706020427 0ustar rootroot/** * Author: Hans Engel * Branched from CodeMirror's Scheme mode (by Koh Zi Han, based on implementation by Koh Zi Chun) */ CodeMirror.defineMode("clojure", function () { var BUILTIN = "builtin", COMMENT = "comment", STRING = "string", ATOM = "atom", NUMBER = "number", BRACKET = "bracket", KEYWORD = "keyword"; var INDENT_WORD_SKIP = 2; function makeKeywords(str) { var obj = {}, words = str.split(" "); for (var i = 0; i < words.length; ++i) obj[words[i]] = true; return obj; } var atoms = makeKeywords("true false nil"); var keywords = makeKeywords( "defn defn- def def- defonce defmulti defmethod defmacro defstruct deftype defprotocol defrecord defproject deftest slice defalias defhinted defmacro- defn-memo defnk defnk defonce- defunbound defunbound- defvar defvar- let letfn do case cond condp for loop recur when when-not when-let when-first if if-let if-not . .. -> ->> doto and or dosync doseq dotimes dorun doall load import unimport ns in-ns refer try catch finally throw with-open with-local-vars binding gen-class gen-and-load-class gen-and-save-class handler-case handle"); var builtins = makeKeywords( "* *1 *2 *3 *agent* *allow-unresolved-vars* *assert *clojure-version* *command-line-args* *compile-files* *compile-path* *e *err* *file* *flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* *print-dup* *print-length* *print-level* *print-meta* *print-readably* *read-eval* *source-path* *use-context-classloader* *warn-on-reflection* + - / < <= = == > >= accessor aclone agent agent-errors aget alength alias all-ns alter alter-meta! alter-var-root amap ancestors and apply areduce array-map aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short assert assoc assoc! assoc-in associative? atom await await-for await1 bases bean bigdec bigint binding bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor boolean boolean-array booleans bound-fn bound-fn* butlast byte byte-array bytes case cast char char-array char-escape-string char-name-string char? chars chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? class class? clear-agent-errors clojure-version coll? comment commute comp comparator compare compare-and-set! compile complement concat cond condp conj conj! cons constantly construct-proxy contains? count counted? create-ns create-struct cycle dec decimal? declare definline defmacro defmethod defmulti defn defn- defonce defstruct delay delay? deliver deref derive descendants destructure disj disj! dissoc dissoc! distinct distinct? doall doc dorun doseq dosync dotimes doto double double-array doubles drop drop-last drop-while empty empty? ensure enumeration-seq eval even? every? extend extend-protocol extend-type extends? extenders false? ffirst file-seq filter find find-doc find-ns find-var first float float-array float? floats flush fn fn? fnext for force format future future-call future-cancel future-cancelled? future-done? future? gen-class gen-interface gensym get get-in get-method get-proxy-class get-thread-bindings get-validator hash hash-map hash-set identical? identity if-let if-not ifn? import in-ns inc init-proxy instance? int int-array integer? interleave intern interpose into into-array ints io! isa? iterate iterator-seq juxt key keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list list* list? load load-file load-reader load-string loaded-libs locking long long-array longs loop macroexpand macroexpand-1 make-array make-hierarchy map map? mapcat max max-key memfn memoize merge merge-with meta method-sig methods min min-key mod name namespace neg? newline next nfirst nil? nnext not not-any? not-empty not-every? not= ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? or parents partial partition pcalls peek persistent! pmap pop pop! pop-thread-bindings pos? pr pr-str prefer-method prefers primitives-classnames print print-ctor print-doc print-dup print-method print-namespace-doc print-simple print-special-doc print-str printf println println-str prn prn-str promise proxy proxy-call-with-super proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot rand rand-int range ratio? rational? rationalize re-find re-groups re-matcher re-matches re-pattern re-seq read read-line read-string reify reduce ref ref-history-count ref-max-history ref-min-history ref-set refer refer-clojure release-pending-sends rem remove remove-method remove-ns repeat repeatedly replace replicate require reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq rsubseq satisfies? second select-keys send send-off seq seq? seque sequence sequential? set set-validator! set? short short-array shorts shutdown-agents slurp some sort sort-by sorted-map sorted-map-by sorted-set sorted-set-by sorted? special-form-anchor special-symbol? split-at split-with str stream? string? struct struct-map subs subseq subvec supers swap! symbol symbol? sync syntax-symbol-anchor take take-last take-nth take-while test the-ns time to-array to-array-2d trampoline transient tree-seq true? type unchecked-add unchecked-dec unchecked-divide unchecked-inc unchecked-multiply unchecked-negate unchecked-remainder unchecked-subtract underive unquote unquote-splicing update-in update-proxy use val vals var-get var-set var? vary-meta vec vector vector? when when-first when-let when-not while with-bindings with-bindings* with-in-str with-loading-context with-local-vars with-meta with-open with-out-str with-precision xml-seq"); var indentKeys = makeKeywords( // Built-ins "ns fn def defn defmethod bound-fn if if-not case condp when while when-not when-first do future comment doto locking proxy with-open with-precision reify deftype defrecord defprotocol extend extend-protocol extend-type try catch " + // Binding forms "let letfn binding loop for doseq dotimes when-let if-let " + // Data structures "defstruct struct-map assoc " + // clojure.test "testing deftest " + // contrib "handler-case handle dotrace deftrace"); var tests = { digit: /\d/, digit_or_colon: /[\d:]/, hex: /[0-9a-f]/i, sign: /[+-]/, exponent: /e/i, keyword_char: /[^\s\(\[\;\)\]]/, basic: /[\w\$_\-]/, lang_keyword: /[\w*+!\-_?:\/]/ }; function stateStack(indent, type, prev) { // represents a state stack object this.indent = indent; this.type = type; this.prev = prev; } function pushStack(state, indent, type) { state.indentStack = new stateStack(indent, type, state.indentStack); } function popStack(state) { state.indentStack = state.indentStack.prev; } function isNumber(ch, stream){ // hex if ( ch === '0' && stream.eat(/x/i) ) { stream.eatWhile(tests.hex); return true; } // leading sign if ( ( ch == '+' || ch == '-' ) && ( tests.digit.test(stream.peek()) ) ) { stream.eat(tests.sign); ch = stream.next(); } if ( tests.digit.test(ch) ) { stream.eat(ch); stream.eatWhile(tests.digit); if ( '.' == stream.peek() ) { stream.eat('.'); stream.eatWhile(tests.digit); } if ( stream.eat(tests.exponent) ) { stream.eat(tests.sign); stream.eatWhile(tests.digit); } return true; } return false; } return { startState: function () { return { indentStack: null, indentation: 0, mode: false }; }, token: function (stream, state) { if (state.indentStack == null && stream.sol()) { // update indentation, but only if indentStack is empty state.indentation = stream.indentation(); } // skip spaces if (stream.eatSpace()) { return null; } var returnType = null; switch(state.mode){ case "string": // multi-line string parsing mode var next, escaped = false; while ((next = stream.next()) != null) { if (next == "\"" && !escaped) { state.mode = false; break; } escaped = !escaped && next == "\\"; } returnType = STRING; // continue on in string mode break; default: // default parsing mode var ch = stream.next(); if (ch == "\"") { state.mode = "string"; returnType = STRING; } else if (ch == "'" && !( tests.digit_or_colon.test(stream.peek()) )) { returnType = ATOM; } else if (ch == ";") { // comment stream.skipToEnd(); // rest of the line is a comment returnType = COMMENT; } else if (isNumber(ch,stream)){ returnType = NUMBER; } else if (ch == "(" || ch == "[" || ch == "{" ) { var keyWord = '', indentTemp = stream.column(), letter; /** Either (indent-word .. (non-indent-word .. (;something else, bracket, etc. */ if (ch == "(") while ((letter = stream.eat(tests.keyword_char)) != null) { keyWord += letter; } if (keyWord.length > 0 && (indentKeys.propertyIsEnumerable(keyWord) || /^(?:def|with)/.test(keyWord))) { // indent-word pushStack(state, indentTemp + INDENT_WORD_SKIP, ch); } else { // non-indent word // we continue eating the spaces stream.eatSpace(); if (stream.eol() || stream.peek() == ";") { // nothing significant after // we restart indentation 1 space after pushStack(state, indentTemp + 1, ch); } else { pushStack(state, indentTemp + stream.current().length, ch); // else we match } } stream.backUp(stream.current().length - 1); // undo all the eating returnType = BRACKET; } else if (ch == ")" || ch == "]" || ch == "}") { returnType = BRACKET; if (state.indentStack != null && state.indentStack.type == (ch == ")" ? "(" : (ch == "]" ? "[" :"{"))) { popStack(state); } } else if ( ch == ":" ) { stream.eatWhile(tests.lang_keyword); return ATOM; } else { stream.eatWhile(tests.basic); if (keywords && keywords.propertyIsEnumerable(stream.current())) { returnType = KEYWORD; } else if (builtins && builtins.propertyIsEnumerable(stream.current())) { returnType = BUILTIN; } else if (atoms && atoms.propertyIsEnumerable(stream.current())) { returnType = ATOM; } else returnType = null; } } return returnType; }, indent: function (state) { if (state.indentStack == null) return state.indentation; return state.indentStack.indent; } }; }); CodeMirror.defineMIME("text/x-clojure", "clojure"); site_pro/codemirror-3.1/mode/pascal/0000755000000000000000000000000012111430706016226 5ustar rootrootsite_pro/codemirror-3.1/mode/pascal/index.html0000644000000000000000000000212212111430706020220 0ustar rootroot CodeMirror: Pascal mode

CodeMirror: Pascal mode

MIME types defined: text/x-pascal.

site_pro/codemirror-3.1/mode/pascal/LICENSE0000644000000000000000000000206612111430706017237 0ustar rootrootCopyright (c) 2011 souceLair Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. site_pro/codemirror-3.1/mode/pascal/pascal.js0000644000000000000000000000504212111430706020030 0ustar rootrootCodeMirror.defineMode("pascal", function() { function words(str) { var obj = {}, words = str.split(" "); for (var i = 0; i < words.length; ++i) obj[words[i]] = true; return obj; } var keywords = words("and array begin case const div do downto else end file for forward integer " + "boolean char function goto if in label mod nil not of or packed procedure " + "program record repeat set string then to type until var while with"); var atoms = {"null": true}; var isOperatorChar = /[+\-*&%=<>!?|\/]/; function tokenBase(stream, state) { var ch = stream.next(); if (ch == "#" && state.startOfLine) { stream.skipToEnd(); return "meta"; } if (ch == '"' || ch == "'") { state.tokenize = tokenString(ch); return state.tokenize(stream, state); } if (ch == "(" && stream.eat("*")) { state.tokenize = tokenComment; return tokenComment(stream, state); } if (/[\[\]{}\(\),;\:\.]/.test(ch)) { return null; } if (/\d/.test(ch)) { stream.eatWhile(/[\w\.]/); return "number"; } if (ch == "/") { if (stream.eat("/")) { stream.skipToEnd(); return "comment"; } } if (isOperatorChar.test(ch)) { stream.eatWhile(isOperatorChar); return "operator"; } stream.eatWhile(/[\w\$_]/); var cur = stream.current(); if (keywords.propertyIsEnumerable(cur)) return "keyword"; if (atoms.propertyIsEnumerable(cur)) return "atom"; return "variable"; } function tokenString(quote) { return function(stream, state) { var escaped = false, next, end = false; while ((next = stream.next()) != null) { if (next == quote && !escaped) {end = true; break;} escaped = !escaped && next == "\\"; } if (end || !escaped) state.tokenize = null; return "string"; }; } function tokenComment(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == ")" && maybeEnd) { state.tokenize = null; break; } maybeEnd = (ch == "*"); } return "comment"; } // Interface return { startState: function() { return {tokenize: null}; }, token: function(stream, state) { if (stream.eatSpace()) return null; var style = (state.tokenize || tokenBase)(stream, state); if (style == "comment" || style == "meta") return style; return style; }, electricChars: "{}" }; }); CodeMirror.defineMIME("text/x-pascal", "pascal"); site_pro/codemirror-3.1/mode/yaml/0000755000000000000000000000000012111430706015725 5ustar rootrootsite_pro/codemirror-3.1/mode/yaml/index.html0000644000000000000000000000335312111430706017726 0ustar rootroot CodeMirror: YAML mode

CodeMirror: YAML mode

MIME types defined: text/x-yaml.

site_pro/codemirror-3.1/mode/yaml/yaml.js0000644000000000000000000000516512111430706017234 0ustar rootrootCodeMirror.defineMode("yaml", function() { var cons = ['true', 'false', 'on', 'off', 'yes', 'no']; var keywordRegex = new RegExp("\\b(("+cons.join(")|(")+"))$", 'i'); return { token: function(stream, state) { var ch = stream.peek(); var esc = state.escaped; state.escaped = false; /* comments */ if (ch == "#") { stream.skipToEnd(); return "comment"; } if (state.literal && stream.indentation() > state.keyCol) { stream.skipToEnd(); return "string"; } else if (state.literal) { state.literal = false; } if (stream.sol()) { state.keyCol = 0; state.pair = false; state.pairStart = false; /* document start */ if(stream.match(/---/)) { return "def"; } /* document end */ if (stream.match(/\.\.\./)) { return "def"; } /* array list item */ if (stream.match(/\s*-\s+/)) { return 'meta'; } } /* pairs (associative arrays) -> key */ if (!state.pair && stream.match(/^\s*([a-z0-9\._-])+(?=\s*:)/i)) { state.pair = true; state.keyCol = stream.indentation(); return "atom"; } if (state.pair && stream.match(/^:\s*/)) { state.pairStart = true; return 'meta'; } /* inline pairs/lists */ if (stream.match(/^(\{|\}|\[|\])/)) { if (ch == '{') state.inlinePairs++; else if (ch == '}') state.inlinePairs--; else if (ch == '[') state.inlineList++; else state.inlineList--; return 'meta'; } /* list seperator */ if (state.inlineList > 0 && !esc && ch == ',') { stream.next(); return 'meta'; } /* pairs seperator */ if (state.inlinePairs > 0 && !esc && ch == ',') { state.keyCol = 0; state.pair = false; state.pairStart = false; stream.next(); return 'meta'; } /* start of value of a pair */ if (state.pairStart) { /* block literals */ if (stream.match(/^\s*(\||\>)\s*/)) { state.literal = true; return 'meta'; }; /* references */ if (stream.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i)) { return 'variable-2'; } /* numbers */ if (state.inlinePairs == 0 && stream.match(/^\s*-?[0-9\.\,]+\s?$/)) { return 'number'; } if (state.inlinePairs > 0 && stream.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/)) { return 'number'; } /* keywords */ if (stream.match(keywordRegex)) { return 'keyword'; } } /* nothing found, continue */ state.pairStart = false; state.escaped = (ch == '\\'); stream.next(); return null; }, startState: function() { return { pair: false, pairStart: false, keyCol: 0, inlinePairs: 0, inlineList: 0, literal: false, escaped: false }; } }; }); CodeMirror.defineMIME("text/x-yaml", "yaml"); site_pro/codemirror-3.1/mode/htmlembedded/0000755000000000000000000000000012111430706017401 5ustar rootrootsite_pro/codemirror-3.1/mode/htmlembedded/index.html0000644000000000000000000000324512111430706021402 0ustar rootroot CodeMirror: Html Embedded Scripts mode

CodeMirror: Html Embedded Scripts mode

Mode for html embedded scripts like JSP and ASP.NET. Depends on HtmlMixed which in turn depends on JavaScript, CSS and XML.
Other dependancies include those of the scriping language chosen.

MIME types defined: application/x-aspx (ASP.NET), application/x-ejs (Embedded Javascript), application/x-jsp (JavaServer Pages)

site_pro/codemirror-3.1/mode/htmlembedded/htmlembedded.js0000644000000000000000000000511512111430706022357 0ustar rootrootCodeMirror.defineMode("htmlembedded", function(config, parserConfig) { //config settings var scriptStartRegex = parserConfig.scriptStartRegex || /^<%/i, scriptEndRegex = parserConfig.scriptEndRegex || /^%>/i; //inner modes var scriptingMode, htmlMixedMode; //tokenizer when in html mode function htmlDispatch(stream, state) { if (stream.match(scriptStartRegex, false)) { state.token=scriptingDispatch; return scriptingMode.token(stream, state.scriptState); } else return htmlMixedMode.token(stream, state.htmlState); } //tokenizer when in scripting mode function scriptingDispatch(stream, state) { if (stream.match(scriptEndRegex, false)) { state.token=htmlDispatch; return htmlMixedMode.token(stream, state.htmlState); } else return scriptingMode.token(stream, state.scriptState); } return { startState: function() { scriptingMode = scriptingMode || CodeMirror.getMode(config, parserConfig.scriptingModeSpec); htmlMixedMode = htmlMixedMode || CodeMirror.getMode(config, "htmlmixed"); return { token : parserConfig.startOpen ? scriptingDispatch : htmlDispatch, htmlState : CodeMirror.startState(htmlMixedMode), scriptState : CodeMirror.startState(scriptingMode) }; }, token: function(stream, state) { return state.token(stream, state); }, indent: function(state, textAfter) { if (state.token == htmlDispatch) return htmlMixedMode.indent(state.htmlState, textAfter); else if (scriptingMode.indent) return scriptingMode.indent(state.scriptState, textAfter); }, copyState: function(state) { return { token : state.token, htmlState : CodeMirror.copyState(htmlMixedMode, state.htmlState), scriptState : CodeMirror.copyState(scriptingMode, state.scriptState) }; }, electricChars: "/{}:", innerMode: function(state) { if (state.token == scriptingDispatch) return {state: state.scriptState, mode: scriptingMode}; else return {state: state.htmlState, mode: htmlMixedMode}; } }; }, "htmlmixed"); CodeMirror.defineMIME("application/x-ejs", { name: "htmlembedded", scriptingModeSpec:"javascript"}); CodeMirror.defineMIME("application/x-aspx", { name: "htmlembedded", scriptingModeSpec:"text/x-csharp"}); CodeMirror.defineMIME("application/x-jsp", { name: "htmlembedded", scriptingModeSpec:"text/x-java"}); CodeMirror.defineMIME("application/x-erb", { name: "htmlembedded", scriptingModeSpec:"ruby"}); site_pro/codemirror-3.1/mode/ruby/0000755000000000000000000000000012111430706015744 5ustar rootrootsite_pro/codemirror-3.1/mode/ruby/ruby.js0000644000000000000000000001616312111430706017272 0ustar rootrootCodeMirror.defineMode("ruby", function(config) { function wordObj(words) { var o = {}; for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true; return o; } var keywords = wordObj([ "alias", "and", "BEGIN", "begin", "break", "case", "class", "def", "defined?", "do", "else", "elsif", "END", "end", "ensure", "false", "for", "if", "in", "module", "next", "not", "or", "redo", "rescue", "retry", "return", "self", "super", "then", "true", "undef", "unless", "until", "when", "while", "yield", "nil", "raise", "throw", "catch", "fail", "loop", "callcc", "caller", "lambda", "proc", "public", "protected", "private", "require", "load", "require_relative", "extend", "autoload" ]); var indentWords = wordObj(["def", "class", "case", "for", "while", "do", "module", "then", "catch", "loop", "proc", "begin"]); var dedentWords = wordObj(["end", "until"]); var matching = {"[": "]", "{": "}", "(": ")"}; var curPunc; function chain(newtok, stream, state) { state.tokenize.push(newtok); return newtok(stream, state); } function tokenBase(stream, state) { curPunc = null; if (stream.sol() && stream.match("=begin") && stream.eol()) { state.tokenize.push(readBlockComment); return "comment"; } if (stream.eatSpace()) return null; var ch = stream.next(), m; if (ch == "`" || ch == "'" || ch == '"' || (ch == "/" && !stream.eol() && stream.peek() != " ")) { return chain(readQuoted(ch, "string", ch == '"' || ch == "`"), stream, state); } else if (ch == "%") { var style, embed = false; if (stream.eat("s")) style = "atom"; else if (stream.eat(/[WQ]/)) { style = "string"; embed = true; } else if (stream.eat(/[wxqr]/)) style = "string"; var delim = stream.eat(/[^\w\s]/); if (!delim) return "operator"; if (matching.propertyIsEnumerable(delim)) delim = matching[delim]; return chain(readQuoted(delim, style, embed, true), stream, state); } else if (ch == "#") { stream.skipToEnd(); return "comment"; } else if (ch == "<" && (m = stream.match(/^<-?[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/))) { return chain(readHereDoc(m[1]), stream, state); } else if (ch == "0") { if (stream.eat("x")) stream.eatWhile(/[\da-fA-F]/); else if (stream.eat("b")) stream.eatWhile(/[01]/); else stream.eatWhile(/[0-7]/); return "number"; } else if (/\d/.test(ch)) { stream.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/); return "number"; } else if (ch == "?") { while (stream.match(/^\\[CM]-/)) {} if (stream.eat("\\")) stream.eatWhile(/\w/); else stream.next(); return "string"; } else if (ch == ":") { if (stream.eat("'")) return chain(readQuoted("'", "atom", false), stream, state); if (stream.eat('"')) return chain(readQuoted('"', "atom", true), stream, state); stream.eatWhile(/[\w\?]/); return "atom"; } else if (ch == "@") { stream.eat("@"); stream.eatWhile(/[\w\?]/); return "variable-2"; } else if (ch == "$") { stream.next(); stream.eatWhile(/[\w\?]/); return "variable-3"; } else if (/\w/.test(ch)) { stream.eatWhile(/[\w\?]/); if (stream.eat(":")) return "atom"; return "ident"; } else if (ch == "|" && (state.varList || state.lastTok == "{" || state.lastTok == "do")) { curPunc = "|"; return null; } else if (/[\(\)\[\]{}\\;]/.test(ch)) { curPunc = ch; return null; } else if (ch == "-" && stream.eat(">")) { return "arrow"; } else if (/[=+\-\/*:\.^%<>~|]/.test(ch)) { stream.eatWhile(/[=+\-\/*:\.^%<>~|]/); return "operator"; } else { return null; } } function tokenBaseUntilBrace() { var depth = 1; return function(stream, state) { if (stream.peek() == "}") { depth--; if (depth == 0) { state.tokenize.pop(); return state.tokenize[state.tokenize.length-1](stream, state); } } else if (stream.peek() == "{") { depth++; } return tokenBase(stream, state); }; } function readQuoted(quote, style, embed, unescaped) { return function(stream, state) { var escaped = false, ch; while ((ch = stream.next()) != null) { if (ch == quote && (unescaped || !escaped)) { state.tokenize.pop(); break; } if (embed && ch == "#" && !escaped && stream.eat("{")) { state.tokenize.push(tokenBaseUntilBrace(arguments.callee)); break; } escaped = !escaped && ch == "\\"; } return style; }; } function readHereDoc(phrase) { return function(stream, state) { if (stream.match(phrase)) state.tokenize.pop(); else stream.skipToEnd(); return "string"; }; } function readBlockComment(stream, state) { if (stream.sol() && stream.match("=end") && stream.eol()) state.tokenize.pop(); stream.skipToEnd(); return "comment"; } return { startState: function() { return {tokenize: [tokenBase], indented: 0, context: {type: "top", indented: -config.indentUnit}, continuedLine: false, lastTok: null, varList: false}; }, token: function(stream, state) { if (stream.sol()) state.indented = stream.indentation(); var style = state.tokenize[state.tokenize.length-1](stream, state), kwtype; if (style == "ident") { var word = stream.current(); style = keywords.propertyIsEnumerable(stream.current()) ? "keyword" : /^[A-Z]/.test(word) ? "tag" : (state.lastTok == "def" || state.lastTok == "class" || state.varList) ? "def" : "variable"; if (indentWords.propertyIsEnumerable(word)) kwtype = "indent"; else if (dedentWords.propertyIsEnumerable(word)) kwtype = "dedent"; else if ((word == "if" || word == "unless") && stream.column() == stream.indentation()) kwtype = "indent"; } if (curPunc || (style && style != "comment")) state.lastTok = word || curPunc || style; if (curPunc == "|") state.varList = !state.varList; if (kwtype == "indent" || /[\(\[\{]/.test(curPunc)) state.context = {prev: state.context, type: curPunc || style, indented: state.indented}; else if ((kwtype == "dedent" || /[\)\]\}]/.test(curPunc)) && state.context.prev) state.context = state.context.prev; if (stream.eol()) state.continuedLine = (curPunc == "\\" || style == "operator"); return style; }, indent: function(state, textAfter) { if (state.tokenize[state.tokenize.length-1] != tokenBase) return 0; var firstChar = textAfter && textAfter.charAt(0); var ct = state.context; var closing = ct.type == matching[firstChar] || ct.type == "keyword" && /^(?:end|until|else|elsif|when|rescue)\b/.test(textAfter); return ct.indented + (closing ? 0 : config.indentUnit) + (state.continuedLine ? config.indentUnit : 0); }, electricChars: "}de" // enD and rescuE }; }); CodeMirror.defineMIME("text/x-ruby", "ruby"); site_pro/codemirror-3.1/mode/ruby/index.html0000644000000000000000000001257512111430706017753 0ustar rootroot CodeMirror: Ruby mode

CodeMirror: Ruby mode

MIME types defined: text/x-ruby.

Development of the CodeMirror Ruby mode was kindly sponsored by Ubalo, who hold the license.

site_pro/codemirror-3.1/mode/ruby/LICENSE0000644000000000000000000000271712111430706016760 0ustar rootrootCopyright (c) 2011, Ubalo, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the Ubalo, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UBALO, INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. site_pro/codemirror-3.1/mode/javascript/0000755000000000000000000000000012111430706017131 5ustar rootrootsite_pro/codemirror-3.1/mode/javascript/javascript.js0000644000000000000000000003514212111430706021642 0ustar rootroot// TODO actually recognize syntax of TypeScript constructs CodeMirror.defineMode("javascript", function(config, parserConfig) { var indentUnit = config.indentUnit; var jsonMode = parserConfig.json; var isTS = parserConfig.typescript; // Tokenizer var keywords = function(){ function kw(type) {return {type: type, style: "keyword"};} var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"); var operator = kw("operator"), atom = {type: "atom", style: "atom"}; var jsKeywords = { "if": A, "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B, "return": C, "break": C, "continue": C, "new": C, "delete": C, "throw": C, "var": kw("var"), "const": kw("var"), "let": kw("var"), "function": kw("function"), "catch": kw("catch"), "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"), "in": operator, "typeof": operator, "instanceof": operator, "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom }; // Extend the 'normal' keywords with the TypeScript language extensions if (isTS) { var type = {type: "variable", style: "variable-3"}; var tsKeywords = { // object-like things "interface": kw("interface"), "class": kw("class"), "extends": kw("extends"), "constructor": kw("constructor"), // scope modifiers "public": kw("public"), "private": kw("private"), "protected": kw("protected"), "static": kw("static"), "super": kw("super"), // types "string": type, "number": type, "bool": type, "any": type }; for (var attr in tsKeywords) { jsKeywords[attr] = tsKeywords[attr]; } } return jsKeywords; }(); var isOperatorChar = /[+\-*&%=<>!?|]/; function chain(stream, state, f) { state.tokenize = f; return f(stream, state); } function nextUntilUnescaped(stream, end) { var escaped = false, next; while ((next = stream.next()) != null) { if (next == end && !escaped) return false; escaped = !escaped && next == "\\"; } return escaped; } // Used as scratch variables to communicate multiple values without // consing up tons of objects. var type, content; function ret(tp, style, cont) { type = tp; content = cont; return style; } function jsTokenBase(stream, state) { var ch = stream.next(); if (ch == '"' || ch == "'") return chain(stream, state, jsTokenString(ch)); else if (/[\[\]{}\(\),;\:\.]/.test(ch)) return ret(ch); else if (ch == "0" && stream.eat(/x/i)) { stream.eatWhile(/[\da-f]/i); return ret("number", "number"); } else if (/\d/.test(ch) || ch == "-" && stream.eat(/\d/)) { stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/); return ret("number", "number"); } else if (ch == "/") { if (stream.eat("*")) { return chain(stream, state, jsTokenComment); } else if (stream.eat("/")) { stream.skipToEnd(); return ret("comment", "comment"); } else if (state.lastType == "operator" || state.lastType == "keyword c" || /^[\[{}\(,;:]$/.test(state.lastType)) { nextUntilUnescaped(stream, "/"); stream.eatWhile(/[gimy]/); // 'y' is "sticky" option in Mozilla return ret("regexp", "string-2"); } else { stream.eatWhile(isOperatorChar); return ret("operator", null, stream.current()); } } else if (ch == "#") { stream.skipToEnd(); return ret("error", "error"); } else if (isOperatorChar.test(ch)) { stream.eatWhile(isOperatorChar); return ret("operator", null, stream.current()); } else { stream.eatWhile(/[\w\$_]/); var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word]; return (known && state.lastType != ".") ? ret(known.type, known.style, word) : ret("variable", "variable", word); } } function jsTokenString(quote) { return function(stream, state) { if (!nextUntilUnescaped(stream, quote)) state.tokenize = jsTokenBase; return ret("string", "string"); }; } function jsTokenComment(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "/" && maybeEnd) { state.tokenize = jsTokenBase; break; } maybeEnd = (ch == "*"); } return ret("comment", "comment"); } // Parser var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true}; function JSLexical(indented, column, type, align, prev, info) { this.indented = indented; this.column = column; this.type = type; this.prev = prev; this.info = info; if (align != null) this.align = align; } function inScope(state, varname) { for (var v = state.localVars; v; v = v.next) if (v.name == varname) return true; } function parseJS(state, style, type, content, stream) { var cc = state.cc; // Communicate our context to the combinators. // (Less wasteful than consing up a hundred closures on every call.) cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; if (!state.lexical.hasOwnProperty("align")) state.lexical.align = true; while(true) { var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement; if (combinator(type, content)) { while(cc.length && cc[cc.length - 1].lex) cc.pop()(); if (cx.marked) return cx.marked; if (type == "variable" && inScope(state, content)) return "variable-2"; return style; } } } // Combinator utils var cx = {state: null, column: null, marked: null, cc: null}; function pass() { for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]); } function cont() { pass.apply(null, arguments); return true; } function register(varname) { function inList(list) { for (var v = list; v; v = v.next) if (v.name == varname) return true; return false; } var state = cx.state; if (state.context) { cx.marked = "def"; if (inList(state.localVars)) return; state.localVars = {name: varname, next: state.localVars}; } else { if (inList(state.globalVars)) return; state.globalVars = {name: varname, next: state.globalVars}; } } // Combinators var defaultVars = {name: "this", next: {name: "arguments"}}; function pushcontext() { cx.state.context = {prev: cx.state.context, vars: cx.state.localVars}; cx.state.localVars = defaultVars; } function popcontext() { cx.state.localVars = cx.state.context.vars; cx.state.context = cx.state.context.prev; } function pushlex(type, info) { var result = function() { var state = cx.state; state.lexical = new JSLexical(state.indented, cx.stream.column(), type, null, state.lexical, info); }; result.lex = true; return result; } function poplex() { var state = cx.state; if (state.lexical.prev) { if (state.lexical.type == ")") state.indented = state.lexical.indented; state.lexical = state.lexical.prev; } } poplex.lex = true; function expect(wanted) { return function(type) { if (type == wanted) return cont(); else if (wanted == ";") return pass(); else return cont(arguments.callee); }; } function statement(type) { if (type == "var") return cont(pushlex("vardef"), vardef1, expect(";"), poplex); if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex); if (type == "keyword b") return cont(pushlex("form"), statement, poplex); if (type == "{") return cont(pushlex("}"), block, poplex); if (type == ";") return cont(); if (type == "function") return cont(functiondef); if (type == "for") return cont(pushlex("form"), expect("("), pushlex(")"), forspec1, expect(")"), poplex, statement, poplex); if (type == "variable") return cont(pushlex("stat"), maybelabel); if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"), block, poplex, poplex); if (type == "case") return cont(expression, expect(":")); if (type == "default") return cont(expect(":")); if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"), statement, poplex, popcontext); return pass(pushlex("stat"), expression, expect(";"), poplex); } function expression(type) { if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator); if (type == "function") return cont(functiondef); if (type == "keyword c") return cont(maybeexpression); if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeoperator); if (type == "operator") return cont(expression); if (type == "[") return cont(pushlex("]"), commasep(expression, "]"), poplex, maybeoperator); if (type == "{") return cont(pushlex("}"), commasep(objprop, "}"), poplex, maybeoperator); return cont(); } function maybeexpression(type) { if (type.match(/[;\}\)\],]/)) return pass(); return pass(expression); } function maybeoperator(type, value) { if (type == "operator") { if (/\+\+|--/.test(value)) return cont(maybeoperator); if (value == "?") return cont(expression, expect(":"), expression); return cont(expression); } if (type == ";") return; if (type == "(") return cont(pushlex(")"), commasep(expression, ")"), poplex, maybeoperator); if (type == ".") return cont(property, maybeoperator); if (type == "[") return cont(pushlex("]"), expression, expect("]"), poplex, maybeoperator); } function maybelabel(type) { if (type == ":") return cont(poplex, statement); return pass(maybeoperator, expect(";"), poplex); } function property(type) { if (type == "variable") {cx.marked = "property"; return cont();} } function objprop(type) { if (type == "variable") cx.marked = "property"; else if (type == "number" || type == "string") cx.marked = type + " property"; if (atomicTypes.hasOwnProperty(type)) return cont(expect(":"), expression); } function commasep(what, end) { function proceed(type) { if (type == ",") return cont(what, proceed); if (type == end) return cont(); return cont(expect(end)); } return function(type) { if (type == end) return cont(); else return pass(what, proceed); }; } function block(type) { if (type == "}") return cont(); return pass(statement, block); } function maybetype(type) { if (type == ":") return cont(typedef); return pass(); } function typedef(type) { if (type == "variable"){cx.marked = "variable-3"; return cont();} return pass(); } function vardef1(type, value) { if (type == "variable") { register(value); return isTS ? cont(maybetype, vardef2) : cont(vardef2); } return pass(); } function vardef2(type, value) { if (value == "=") return cont(expression, vardef2); if (type == ",") return cont(vardef1); } function forspec1(type) { if (type == "var") return cont(vardef1, expect(";"), forspec2); if (type == ";") return cont(forspec2); if (type == "variable") return cont(formaybein); return cont(forspec2); } function formaybein(_type, value) { if (value == "in") return cont(expression); return cont(maybeoperator, forspec2); } function forspec2(type, value) { if (type == ";") return cont(forspec3); if (value == "in") return cont(expression); return cont(expression, expect(";"), forspec3); } function forspec3(type) { if (type != ")") cont(expression); } function functiondef(type, value) { if (type == "variable") {register(value); return cont(functiondef);} if (type == "(") return cont(pushlex(")"), pushcontext, commasep(funarg, ")"), poplex, statement, popcontext); } function funarg(type, value) { if (type == "variable") {register(value); return isTS ? cont(maybetype) : cont();} } // Interface return { startState: function(basecolumn) { return { tokenize: jsTokenBase, lastType: null, cc: [], lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false), localVars: parserConfig.localVars, globalVars: parserConfig.globalVars, context: parserConfig.localVars && {vars: parserConfig.localVars}, indented: 0 }; }, token: function(stream, state) { if (stream.sol()) { if (!state.lexical.hasOwnProperty("align")) state.lexical.align = false; state.indented = stream.indentation(); } if (stream.eatSpace()) return null; var style = state.tokenize(stream, state); if (type == "comment") return style; state.lastType = type; return parseJS(state, style, type, content, stream); }, indent: function(state, textAfter) { if (state.tokenize == jsTokenComment) return CodeMirror.Pass; if (state.tokenize != jsTokenBase) return 0; var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical; if (lexical.type == "stat" && firstChar == "}") lexical = lexical.prev; var type = lexical.type, closing = firstChar == type; if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? 4 : 0); else if (type == "form" && firstChar == "{") return lexical.indented; else if (type == "form") return lexical.indented + indentUnit; else if (type == "stat") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? indentUnit : 0); else if (lexical.info == "switch" && !closing) return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit); else if (lexical.align) return lexical.column + (closing ? 0 : 1); else return lexical.indented + (closing ? 0 : indentUnit); }, electricChars: ":{}", jsonMode: jsonMode }; }); CodeMirror.defineMIME("text/javascript", "javascript"); CodeMirror.defineMIME("text/ecmascript", "javascript"); CodeMirror.defineMIME("application/javascript", "javascript"); CodeMirror.defineMIME("application/ecmascript", "javascript"); CodeMirror.defineMIME("application/json", {name: "javascript", json: true}); CodeMirror.defineMIME("text/typescript", { name: "javascript", typescript: true }); CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript: true }); site_pro/codemirror-3.1/mode/javascript/index.html0000644000000000000000000000576712111430706021145 0ustar rootroot CodeMirror: JavaScript mode

CodeMirror: JavaScript mode

JavaScript mode supports a two configuration options:

  • json which will set the mode to expect JSON data rather than a JavaScript program.
  • typescript which will activate additional syntax highlighting and some other things for TypeScript code (demo).

MIME types defined: text/javascript, application/json, text/typescript, application/typescript.

site_pro/codemirror-3.1/mode/javascript/typescript.html0000644000000000000000000000227112111430706022227 0ustar rootroot CodeMirror: TypeScript mode

CodeMirror: TypeScript mode

This is a specialization of the JavaScript mode.

site_pro/codemirror-3.1/mode/d/0000755000000000000000000000000012111430706015206 5ustar rootrootsite_pro/codemirror-3.1/mode/d/index.html0000755000000000000000000001357112111430706017215 0ustar rootroot CodeMirror: D mode

CodeMirror: D mode

Simple mode that handle D-Syntax (DLang Homepage).

MIME types defined: text/x-d .

site_pro/codemirror-3.1/mode/d/d.js0000755000000000000000000001571212111430706016000 0ustar rootrootCodeMirror.defineMode("d", function(config, parserConfig) { var indentUnit = config.indentUnit, statementIndentUnit = parserConfig.statementIndentUnit || indentUnit, keywords = parserConfig.keywords || {}, builtin = parserConfig.builtin || {}, blockKeywords = parserConfig.blockKeywords || {}, atoms = parserConfig.atoms || {}, hooks = parserConfig.hooks || {}, multiLineStrings = parserConfig.multiLineStrings; var isOperatorChar = /[+\-*&%=<>!?|\/]/; var curPunc; function tokenBase(stream, state) { var ch = stream.next(); if (hooks[ch]) { var result = hooks[ch](stream, state); if (result !== false) return result; } if (ch == '"' || ch == "'" || ch == "`") { state.tokenize = tokenString(ch); return state.tokenize(stream, state); } if (/[\[\]{}\(\),;\:\.]/.test(ch)) { curPunc = ch; return null; } if (/\d/.test(ch)) { stream.eatWhile(/[\w\.]/); return "number"; } if (ch == "/") { if (stream.eat("+")) { state.tokenize = tokenComment; return tokenNestedComment(stream, state); } if (stream.eat("*")) { state.tokenize = tokenComment; return tokenComment(stream, state); } if (stream.eat("/")) { stream.skipToEnd(); return "comment"; } } if (isOperatorChar.test(ch)) { stream.eatWhile(isOperatorChar); return "operator"; } stream.eatWhile(/[\w\$_]/); var cur = stream.current(); if (keywords.propertyIsEnumerable(cur)) { if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; return "keyword"; } if (builtin.propertyIsEnumerable(cur)) { if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; return "builtin"; } if (atoms.propertyIsEnumerable(cur)) return "atom"; return "variable"; } function tokenString(quote) { return function(stream, state) { var escaped = false, next, end = false; while ((next = stream.next()) != null) { if (next == quote && !escaped) {end = true; break;} escaped = !escaped && next == "\\"; } if (end || !(escaped || multiLineStrings)) state.tokenize = null; return "string"; }; } function tokenComment(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "/" && maybeEnd) { state.tokenize = null; break; } maybeEnd = (ch == "*"); } return "comment"; } function tokenNestedComment(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "/" && maybeEnd) { state.tokenize = null; break; } maybeEnd = (ch == "+"); } return "comment"; } function Context(indented, column, type, align, prev) { this.indented = indented; this.column = column; this.type = type; this.align = align; this.prev = prev; } function pushContext(state, col, type) { var indent = state.indented; if (state.context && state.context.type == "statement") indent = state.context.indented; return state.context = new Context(indent, col, type, null, state.context); } function popContext(state) { var t = state.context.type; if (t == ")" || t == "]" || t == "}") state.indented = state.context.indented; return state.context = state.context.prev; } // Interface return { startState: function(basecolumn) { return { tokenize: null, context: new Context((basecolumn || 0) - indentUnit, 0, "top", false), indented: 0, startOfLine: true }; }, token: function(stream, state) { var ctx = state.context; if (stream.sol()) { if (ctx.align == null) ctx.align = false; state.indented = stream.indentation(); state.startOfLine = true; } if (stream.eatSpace()) return null; curPunc = null; var style = (state.tokenize || tokenBase)(stream, state); if (style == "comment" || style == "meta") return style; if (ctx.align == null) ctx.align = true; if ((curPunc == ";" || curPunc == ":" || curPunc == ",") && ctx.type == "statement") popContext(state); else if (curPunc == "{") pushContext(state, stream.column(), "}"); else if (curPunc == "[") pushContext(state, stream.column(), "]"); else if (curPunc == "(") pushContext(state, stream.column(), ")"); else if (curPunc == "}") { while (ctx.type == "statement") ctx = popContext(state); if (ctx.type == "}") ctx = popContext(state); while (ctx.type == "statement") ctx = popContext(state); } else if (curPunc == ctx.type) popContext(state); else if (((ctx.type == "}" || ctx.type == "top") && curPunc != ';') || (ctx.type == "statement" && curPunc == "newstatement")) pushContext(state, stream.column(), "statement"); state.startOfLine = false; return style; }, indent: function(state, textAfter) { if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass; var ctx = state.context, firstChar = textAfter && textAfter.charAt(0); if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev; var closing = firstChar == ctx.type; if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit); else if (ctx.align) return ctx.column + (closing ? 0 : 1); else return ctx.indented + (closing ? 0 : indentUnit); }, electricChars: "{}" }; }); (function() { function words(str) { var obj = {}, words = str.split(" "); for (var i = 0; i < words.length; ++i) obj[words[i]] = true; return obj; } var blockKeywords = "body catch class do else enum for foreach foreach_reverse if in interface mixin " + "out scope struct switch try union unittest version while with"; CodeMirror.defineMIME("text/x-d", { name: "d", keywords: words("abstract alias align asm assert auto break case cast cdouble cent cfloat const continue " + "debug default delegate delete deprecated export extern final finally function goto immutable " + "import inout invariant is lazy macro module new nothrow override package pragma private " + "protected public pure ref return shared short static super synchronized template this " + "throw typedef typeid typeof volatile __FILE__ __LINE__ __gshared __traits __vector __parameters " + blockKeywords), blockKeywords: words(blockKeywords), builtin: words("bool byte char creal dchar double float idouble ifloat int ireal long real short ubyte " + "ucent uint ulong ushort wchar wstring void size_t sizediff_t"), atoms: words("exit failure success true false null"), hooks: { "@": function(stream, _state) { stream.eatWhile(/[\w\$_]/); return "meta"; } } }); }()); site_pro/codemirror-3.1/mode/commonlisp/0000755000000000000000000000000012111430706017143 5ustar rootrootsite_pro/codemirror-3.1/mode/commonlisp/index.html0000644000000000000000000001432512111430706021145 0ustar rootroot CodeMirror: Common Lisp mode

CodeMirror: Common Lisp mode

MIME types defined: text/x-common-lisp.

site_pro/codemirror-3.1/mode/commonlisp/commonlisp.js0000644000000000000000000000671612111430706021673 0ustar rootrootCodeMirror.defineMode("commonlisp", function (config) { var assumeBody = /^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/; var numLiteral = /^(?:[+\-]?(?:\d+|\d*\.\d+)(?:[efd][+\-]?\d+)?|[+\-]?\d+(?:\/[+\-]?\d+)?|#b[+\-]?[01]+|#o[+\-]?[0-7]+|#x[+\-]?[\da-f]+)/; var symbol = /[^\s'`,@()\[\]";]/; var type; function readSym(stream) { var ch; while (ch = stream.next()) { if (ch == "\\") stream.next(); else if (!symbol.test(ch)) { stream.backUp(1); break; } } return stream.current(); } function base(stream, state) { if (stream.eatSpace()) {type = "ws"; return null;} if (stream.match(numLiteral)) return "number"; var ch = stream.next(); if (ch == "\\") ch = stream.next(); if (ch == '"') return (state.tokenize = inString)(stream, state); else if (ch == "(") { type = "open"; return "bracket"; } else if (ch == ")" || ch == "]") { type = "close"; return "bracket"; } else if (ch == ";") { stream.skipToEnd(); type = "ws"; return "comment"; } else if (/['`,@]/.test(ch)) return null; else if (ch == "|") { if (stream.skipTo("|")) { stream.next(); return "symbol"; } else { stream.skipToEnd(); return "error"; } } else if (ch == "#") { var ch = stream.next(); if (ch == "[") { type = "open"; return "bracket"; } else if (/[+\-=\.']/.test(ch)) return null; else if (/\d/.test(ch) && stream.match(/^\d*#/)) return null; else if (ch == "|") return (state.tokenize = inComment)(stream, state); else if (ch == ":") { readSym(stream); return "meta"; } else return "error"; } else { var name = readSym(stream); if (name == ".") return null; type = "symbol"; if (name == "nil" || name == "t") return "atom"; if (name.charAt(0) == ":") return "keyword"; if (name.charAt(0) == "&") return "variable-2"; return "variable"; } } function inString(stream, state) { var escaped = false, next; while (next = stream.next()) { if (next == '"' && !escaped) { state.tokenize = base; break; } escaped = !escaped && next == "\\"; } return "string"; } function inComment(stream, state) { var next, last; while (next = stream.next()) { if (next == "#" && last == "|") { state.tokenize = base; break; } last = next; } type = "ws"; return "comment"; } return { startState: function () { return {ctx: {prev: null, start: 0, indentTo: 0}, tokenize: base}; }, token: function (stream, state) { if (stream.sol() && typeof state.ctx.indentTo != "number") state.ctx.indentTo = state.ctx.start + 1; type = null; var style = state.tokenize(stream, state); if (type != "ws") { if (state.ctx.indentTo == null) { if (type == "symbol" && assumeBody.test(stream.current())) state.ctx.indentTo = state.ctx.start + config.indentUnit; else state.ctx.indentTo = "next"; } else if (state.ctx.indentTo == "next") { state.ctx.indentTo = stream.column(); } } if (type == "open") state.ctx = {prev: state.ctx, start: stream.column(), indentTo: null}; else if (type == "close") state.ctx = state.ctx.prev || state.ctx; return style; }, indent: function (state, _textAfter) { var i = state.ctx.indentTo; return typeof i == "number" ? i : state.ctx.start + 1; } }; }); CodeMirror.defineMIME("text/x-common-lisp", "commonlisp"); site_pro/codemirror-3.1/mode/stex/0000755000000000000000000000000012111430706015746 5ustar rootrootsite_pro/codemirror-3.1/mode/stex/test.js0000644000000000000000000000451712111430706017272 0ustar rootroot(function() { var mode = CodeMirror.getMode({tabSize: 4}, "stex"); function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } MT("word", "foo"); MT("twoWords", "foo bar"); MT("beginEndDocument", "[tag \\begin][bracket {][atom document][bracket }]", "[tag \\end][bracket {][atom document][bracket }]"); MT("beginEndEquation", "[tag \\begin][bracket {][atom equation][bracket }]", " E=mc^2", "[tag \\end][bracket {][atom equation][bracket }]"); MT("beginModule", "[tag \\begin][bracket {][atom module][bracket }[[]]]"); MT("beginModuleId", "[tag \\begin][bracket {][atom module][bracket }[[]id=bbt-size[bracket ]]]"); MT("importModule", "[tag \\importmodule][bracket [[][string b-b-t][bracket ]]{][builtin b-b-t][bracket }]"); MT("importModulePath", "[tag \\importmodule][bracket [[][tag \\KWARCslides][bracket {][string dmath/en/cardinality][bracket }]]{][builtin card][bracket }]"); MT("psForPDF", "[tag \\PSforPDF][bracket [[][atom 1][bracket ]]{]#1[bracket }]"); MT("comment", "[comment % foo]"); MT("tagComment", "[tag \\item][comment % bar]"); MT("commentTag", " [comment % \\item]"); MT("commentLineBreak", "[comment %]", "foo"); MT("tagErrorCurly", "[tag \\begin][error }][bracket {]"); MT("tagErrorSquare", "[tag \\item][error ]]][bracket {]"); MT("commentCurly", "[comment % }]"); MT("tagHash", "the [tag \\#] key"); MT("tagNumber", "a [tag \\$][atom 5] stetson"); MT("tagPercent", "[atom 100][tag \\%] beef"); MT("tagAmpersand", "L [tag \\&] N"); MT("tagUnderscore", "foo[tag \\_]bar"); MT("tagBracketOpen", "[tag \\emph][bracket {][tag \\{][bracket }]"); MT("tagBracketClose", "[tag \\emph][bracket {][tag \\}][bracket }]"); MT("tagLetterNumber", "section [tag \\S][atom 1]"); MT("textTagNumber", "para [tag \\P][atom 2]"); MT("thinspace", "x[tag \\,]y"); MT("thickspace", "x[tag \\;]y"); MT("negativeThinspace", "x[tag \\!]y"); MT("periodNotSentence", "J.\\ L.\\ is"); MT("periodSentence", "X[tag \\@]. The"); MT("italicCorrection", "[bracket {][tag \\em] If[tag \\/][bracket }] I"); MT("tagBracket", "[tag \\newcommand][bracket {][tag \\pop][bracket }]"); })(); site_pro/codemirror-3.1/mode/stex/index.html0000644000000000000000000000733612111430706017754 0ustar rootroot CodeMirror: sTeX mode

CodeMirror: sTeX mode

MIME types defined: text/x-stex.

Parsing/Highlighting Tests: normal, verbose.

site_pro/codemirror-3.1/mode/stex/stex.js0000644000000000000000000001044712111430706017275 0ustar rootroot/* * Author: Constantin Jucovschi (c.jucovschi@jacobs-university.de) * Licence: MIT */ CodeMirror.defineMode("stex", function() { function pushCommand(state, command) { state.cmdState.push(command); } function peekCommand(state) { if (state.cmdState.length>0) return state.cmdState[state.cmdState.length-1]; else return null; } function popCommand(state) { if (state.cmdState.length>0) { var plug = state.cmdState.pop(); plug.closeBracket(); } } function applyMostPowerful(state) { var context = state.cmdState; for (var i = context.length - 1; i >= 0; i--) { var plug = context[i]; if (plug.name=="DEFAULT") continue; return plug.styleIdentifier(); } return null; } function addPluginPattern(pluginName, cmdStyle, brackets, styles) { return function () { this.name=pluginName; this.bracketNo = 0; this.style=cmdStyle; this.styles = styles; this.brackets = brackets; this.styleIdentifier = function() { if (this.bracketNo<=this.styles.length) return this.styles[this.bracketNo-1]; else return null; }; this.openBracket = function() { this.bracketNo++; return "bracket"; }; this.closeBracket = function() {}; }; } var plugins = new Array(); plugins["importmodule"] = addPluginPattern("importmodule", "tag", "{[", ["string", "builtin"]); plugins["documentclass"] = addPluginPattern("documentclass", "tag", "{[", ["", "atom"]); plugins["usepackage"] = addPluginPattern("documentclass", "tag", "[", ["atom"]); plugins["begin"] = addPluginPattern("documentclass", "tag", "[", ["atom"]); plugins["end"] = addPluginPattern("documentclass", "tag", "[", ["atom"]); plugins["DEFAULT"] = function () { this.name="DEFAULT"; this.style="tag"; this.styleIdentifier = this.openBracket = this.closeBracket = function() {}; }; function setState(state, f) { state.f = f; } function normal(source, state) { if (source.match(/^\\[a-zA-Z@]+/)) { var cmdName = source.current(); cmdName = cmdName.substr(1, cmdName.length-1); var plug; if (plugins.hasOwnProperty(cmdName)) { plug = plugins[cmdName]; } else { plug = plugins["DEFAULT"]; } plug = new plug(); pushCommand(state, plug); setState(state, beginParams); return plug.style; } // escape characters if (source.match(/^\\[$&%#{}_]/)) { return "tag"; } // white space control characters if (source.match(/^\\[,;!\/]/)) { return "tag"; } var ch = source.next(); if (ch == "%") { // special case: % at end of its own line; stay in same state if (!source.eol()) { setState(state, inCComment); } return "comment"; } else if (ch=='}' || ch==']') { plug = peekCommand(state); if (plug) { plug.closeBracket(ch); setState(state, beginParams); } else return "error"; return "bracket"; } else if (ch=='{' || ch=='[') { plug = plugins["DEFAULT"]; plug = new plug(); pushCommand(state, plug); return "bracket"; } else if (/\d/.test(ch)) { source.eatWhile(/[\w.%]/); return "atom"; } else { source.eatWhile(/[\w-_]/); return applyMostPowerful(state); } } function inCComment(source, state) { source.skipToEnd(); setState(state, normal); return "comment"; } function beginParams(source, state) { var ch = source.peek(); if (ch == '{' || ch == '[') { var lastPlug = peekCommand(state); lastPlug.openBracket(ch); source.eat(ch); setState(state, normal); return "bracket"; } if (/[ \t\r]/.test(ch)) { source.eat(ch); return null; } setState(state, normal); lastPlug = peekCommand(state); if (lastPlug) { popCommand(state); } return normal(source, state); } return { startState: function() { return { f:normal, cmdState:[] }; }, copyState: function(s) { return { f: s.f, cmdState: s.cmdState.slice(0, s.cmdState.length) }; }, token: function(stream, state) { var t = state.f(stream, state); return t; } }; }); CodeMirror.defineMIME("text/x-stex", "stex"); CodeMirror.defineMIME("text/x-latex", "stex"); site_pro/codemirror-3.1/mode/meta.js0000644000000000000000000001004112111430706016243 0ustar rootrootCodeMirror.modeInfo = [ {name: 'APL', mime: 'text/apl', mode: 'apl'}, {name: 'Asterisk', mime: 'text/x-asterisk', mode: 'asterisk'}, {name: 'C', mime: 'text/x-csrc', mode: 'clike'}, {name: 'C++', mime: 'text/x-c++src', mode: 'clike'}, {name: 'Java', mime: 'text/x-java', mode: 'clike'}, {name: 'C#', mime: 'text/x-csharp', mode: 'clike'}, {name: 'Scala', mime: 'text/x-scala', mode: 'clike'}, {name: 'Clojure', mime: 'text/x-clojure', mode: 'clojure'}, {name: 'CoffeeScript', mime: 'text/x-coffeescript', mode: 'coffeescript'}, {name: 'Common Lisp', mime: 'text/x-common-lisp', mode: 'commonlisp'}, {name: 'CSS', mime: 'text/css', mode: 'css'}, {name: 'D', mime: 'text/x-d', mode: 'd'}, {name: 'diff', mime: 'text/x-diff', mode: 'diff'}, {name: 'ECL', mime: 'text/x-ecl', mode: 'ecl'}, {name: 'Erlang', mime: 'text/x-erlang', mode: 'erlang'}, {name: 'GitHub Flavored Markdown', mode: 'gfm'}, {name: 'GO', mime: 'text/x-go', mode: 'go'}, {name: 'Groovy', mime: 'text/x-groovy', mode: 'groovy'}, {name: 'Haskell', mime: 'text/x-haskell', mode: 'haskell'}, {name: 'Haxe', mime: 'text/x-haxe', mode: 'haxe'}, {name: 'ASP.NET', mime: 'application/x-aspx', mode: 'htmlembedded'}, {name: 'Embedded Javascript', mime: 'application/x-ejs', mode: 'htmlembedded'}, {name: 'JavaServer Pages', mime: 'application/x-jsp', mode: 'htmlembedded'}, {name: 'HTML', mime: 'text/html', mode: 'htmlmixed'}, {name: 'HTTP', mime: 'message/http', mode: 'http'}, {name: 'JavaScript', mime: 'text/javascript', mode: 'javascript'}, {name: 'JSON', mime: 'application/json', mode: 'javascript'}, {name: 'TypeScript', mime: 'application/typescript', mode: 'javascript'}, {name: 'Jinja2', mime: 'jinja2', mode: 'jinja2'}, {name: 'LESS', mime: 'text/x-less', mode: 'less'}, {name: 'Lua', mime: 'text/x-lua', mode: 'lua'}, {name: 'Markdown (GitHub-flavour)', mime: 'text/x-markdown', mode: 'markdown'}, {name: 'NTriples', mime: 'text/n-triples', mode: 'ntriples'}, {name: 'OCaml', mime: 'text/x-ocaml', mode: 'ocaml'}, {name: 'Pascal', mime: 'text/x-pascal', mode: 'pascal'}, {name: 'Perl', mime: 'text/x-perl', mode: 'perl'}, {name: 'PHP', mime: 'text/x-php', mode: 'php'}, {name: 'PHP(HTML)', mime: 'application/x-httpd-php', mode: 'php'}, {name: 'Pig', mime: 'text/x-pig', mode: 'pig'}, {name: 'Plain Text', mime: 'text/plain', mode: 'null'}, {name: 'Properties files', mime: 'text/x-properties', mode: 'clike'}, {name: 'Python', mime: 'text/x-python', mode: 'python'}, {name: 'R', mime: 'text/x-rsrc', mode: 'r'}, {name: 'reStructuredText', mime: 'text/x-rst', mode: 'rst'}, {name: 'Ruby', mime: 'text/x-ruby', mode: 'ruby'}, {name: 'Rust', mime: 'text/x-rustsrc', mode: 'rust'}, {name: 'Sass', mime: 'text/x-sass', mode: 'sass'}, {name: 'Scheme', mime: 'text/x-scheme', mode: 'scheme'}, {name: 'Shell', mime: 'text/x-sh', mode: 'shell'}, {name: 'Sieve', mime: 'application/sieve', mode: 'sieve'}, {name: 'Smalltalk', mime: 'text/x-stsrc', mode: 'smalltalk'}, {name: 'Smarty', mime: 'text/x-smarty', mode: 'smarty'}, {name: 'SPARQL', mime: 'application/x-sparql-query', mode: 'sparql'}, {name: 'SQL', mime: 'text/x-sql', mode: 'sql'}, {name: 'MySQL', mime: 'text/x-mysql', mode: 'sql'}, {name: 'MariaDB', mime: 'text/x-mariadb', mode: 'sql'}, {name: 'PL/SQL', mime: 'text/x-plsql', mode: 'sql'}, {name: 'sTeX', mime: 'text/x-stex', mode: 'stex'}, {name: 'LaTeX', mime: 'text/x-latex', mode: 'stex'}, {name: 'TiddlyWiki ', mime: 'text/x-tiddlywiki', mode: 'tiddlywiki'}, {name: 'Tiki wiki', mime: 'text/tiki', mode: 'tiki'}, {name: 'VB.NET', mime: 'text/x-vb', mode: 'vb'}, {name: 'VBScript', mime: 'text/vbscript', mode: 'vbscript'}, {name: 'Velocity', mime: 'text/velocity', mode: 'velocity'}, {name: 'Verilog', mime: 'text/x-verilog', mode: 'verilog'}, {name: 'XML', mime: 'application/xml', mode: 'xml'}, {name: 'HTML', mime: 'text/html', mode: 'xml'}, {name: 'XQuery', mime: 'application/xquery', mode: 'xquery'}, {name: 'YAML', mime: 'text/x-yaml', mode: 'yaml'}, {name: 'Z80', mime: 'text/x-z80', mode: 'z80'} ]; site_pro/codemirror-3.1/mode/turtle/0000755000000000000000000000000012111430706016302 5ustar rootrootsite_pro/codemirror-3.1/mode/turtle/turtle.js0000644000000000000000000001022712111430706020161 0ustar rootrootCodeMirror.defineMode("turtle", function(config) { var indentUnit = config.indentUnit; var curPunc; function wordRegexp(words) { return new RegExp("^(?:" + words.join("|") + ")$", "i"); } var ops = wordRegexp([]); var keywords = wordRegexp(["@prefix", "@base", "a"]); var operatorChars = /[*+\-<>=&|]/; function tokenBase(stream, state) { var ch = stream.next(); curPunc = null; if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) { stream.match(/^[^\s\u00a0>]*>?/); return "atom"; } else if (ch == "\"" || ch == "'") { state.tokenize = tokenLiteral(ch); return state.tokenize(stream, state); } else if (/[{}\(\),\.;\[\]]/.test(ch)) { curPunc = ch; return null; } else if (ch == "#") { stream.skipToEnd(); return "comment"; } else if (operatorChars.test(ch)) { stream.eatWhile(operatorChars); return null; } else if (ch == ":") { return "operator"; } else { stream.eatWhile(/[_\w\d]/); if(stream.peek() == ":") { return "variable-3"; } else { var word = stream.current(); if(keywords.test(word)) { return "meta"; } if(ch >= "A" && ch <= "Z") { return "comment"; } else { return "keyword"; } } var word = stream.current(); if (ops.test(word)) return null; else if (keywords.test(word)) return "meta"; else return "variable"; } } function tokenLiteral(quote) { return function(stream, state) { var escaped = false, ch; while ((ch = stream.next()) != null) { if (ch == quote && !escaped) { state.tokenize = tokenBase; break; } escaped = !escaped && ch == "\\"; } return "string"; }; } function pushContext(state, type, col) { state.context = {prev: state.context, indent: state.indent, col: col, type: type}; } function popContext(state) { state.indent = state.context.indent; state.context = state.context.prev; } return { startState: function() { return {tokenize: tokenBase, context: null, indent: 0, col: 0}; }, token: function(stream, state) { if (stream.sol()) { if (state.context && state.context.align == null) state.context.align = false; state.indent = stream.indentation(); } if (stream.eatSpace()) return null; var style = state.tokenize(stream, state); if (style != "comment" && state.context && state.context.align == null && state.context.type != "pattern") { state.context.align = true; } if (curPunc == "(") pushContext(state, ")", stream.column()); else if (curPunc == "[") pushContext(state, "]", stream.column()); else if (curPunc == "{") pushContext(state, "}", stream.column()); else if (/[\]\}\)]/.test(curPunc)) { while (state.context && state.context.type == "pattern") popContext(state); if (state.context && curPunc == state.context.type) popContext(state); } else if (curPunc == "." && state.context && state.context.type == "pattern") popContext(state); else if (/atom|string|variable/.test(style) && state.context) { if (/[\}\]]/.test(state.context.type)) pushContext(state, "pattern", stream.column()); else if (state.context.type == "pattern" && !state.context.align) { state.context.align = true; state.context.col = stream.column(); } } return style; }, indent: function(state, textAfter) { var firstChar = textAfter && textAfter.charAt(0); var context = state.context; if (/[\]\}]/.test(firstChar)) while (context && context.type == "pattern") context = context.prev; var closing = context && firstChar == context.type; if (!context) return 0; else if (context.type == "pattern") return context.col; else if (context.align) return context.col + (closing ? 0 : 1); else return context.indent + (closing ? 0 : indentUnit); } }; }); CodeMirror.defineMIME("text/turtle", "turtle"); site_pro/codemirror-3.1/mode/turtle/index.html0000644000000000000000000000222012111430706020273 0ustar rootroot CodeMirror: Turtle mode

CodeMirror: Turtle mode

MIME types defined: text/turtle.

site_pro/codemirror-3.1/mode/xml/0000755000000000000000000000000012111430706015563 5ustar rootrootsite_pro/codemirror-3.1/mode/xml/index.html0000644000000000000000000000315412111430706017563 0ustar rootroot CodeMirror: XML mode

CodeMirror: XML mode

The XML mode supports two configuration parameters:

htmlMode (boolean)
This switches the mode to parse HTML instead of XML. This means attributes do not have to be quoted, and some elements (such as br) do not require a closing tag.
alignCDATA (boolean)
Setting this to true will force the opening tag of CDATA blocks to not be indented.

MIME types defined: application/xml, text/html.

site_pro/codemirror-3.1/mode/xml/xml.js0000644000000000000000000002355712111430706016735 0ustar rootrootCodeMirror.defineMode("xml", function(config, parserConfig) { var indentUnit = config.indentUnit; var Kludges = parserConfig.htmlMode ? { autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true, 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true, 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true, 'track': true, 'wbr': true}, implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true, 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true, 'th': true, 'tr': true}, contextGrabbers: { 'dd': {'dd': true, 'dt': true}, 'dt': {'dd': true, 'dt': true}, 'li': {'li': true}, 'option': {'option': true, 'optgroup': true}, 'optgroup': {'optgroup': true}, 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true, 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true, 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true, 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true, 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true}, 'rp': {'rp': true, 'rt': true}, 'rt': {'rp': true, 'rt': true}, 'tbody': {'tbody': true, 'tfoot': true}, 'td': {'td': true, 'th': true}, 'tfoot': {'tbody': true}, 'th': {'td': true, 'th': true}, 'thead': {'tbody': true, 'tfoot': true}, 'tr': {'tr': true} }, doNotIndent: {"pre": true}, allowUnquoted: true, allowMissing: true } : { autoSelfClosers: {}, implicitlyClosed: {}, contextGrabbers: {}, doNotIndent: {}, allowUnquoted: false, allowMissing: false }; var alignCDATA = parserConfig.alignCDATA; // Return variables for tokenizers var tagName, type; function inText(stream, state) { function chain(parser) { state.tokenize = parser; return parser(stream, state); } var ch = stream.next(); if (ch == "<") { if (stream.eat("!")) { if (stream.eat("[")) { if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>")); else return null; } else if (stream.match("--")) return chain(inBlock("comment", "-->")); else if (stream.match("DOCTYPE", true, true)) { stream.eatWhile(/[\w\._\-]/); return chain(doctype(1)); } else return null; } else if (stream.eat("?")) { stream.eatWhile(/[\w\._\-]/); state.tokenize = inBlock("meta", "?>"); return "meta"; } else { var isClose = stream.eat("/"); tagName = ""; var c; while ((c = stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) tagName += c; if (!tagName) return "error"; type = isClose ? "closeTag" : "openTag"; state.tokenize = inTag; return "tag"; } } else if (ch == "&") { var ok; if (stream.eat("#")) { if (stream.eat("x")) { ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";"); } else { ok = stream.eatWhile(/[\d]/) && stream.eat(";"); } } else { ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";"); } return ok ? "atom" : "error"; } else { stream.eatWhile(/[^&<]/); return null; } } function inTag(stream, state) { var ch = stream.next(); if (ch == ">" || (ch == "/" && stream.eat(">"))) { state.tokenize = inText; type = ch == ">" ? "endTag" : "selfcloseTag"; return "tag"; } else if (ch == "=") { type = "equals"; return null; } else if (/[\'\"]/.test(ch)) { state.tokenize = inAttribute(ch); return state.tokenize(stream, state); } else { stream.eatWhile(/[^\s\u00a0=<>\"\']/); return "word"; } } function inAttribute(quote) { return function(stream, state) { while (!stream.eol()) { if (stream.next() == quote) { state.tokenize = inTag; break; } } return "string"; }; } function inBlock(style, terminator) { return function(stream, state) { while (!stream.eol()) { if (stream.match(terminator)) { state.tokenize = inText; break; } stream.next(); } return style; }; } function doctype(depth) { return function(stream, state) { var ch; while ((ch = stream.next()) != null) { if (ch == "<") { state.tokenize = doctype(depth + 1); return state.tokenize(stream, state); } else if (ch == ">") { if (depth == 1) { state.tokenize = inText; break; } else { state.tokenize = doctype(depth - 1); return state.tokenize(stream, state); } } } return "meta"; }; } var curState, setStyle; function pass() { for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]); } function cont() { pass.apply(null, arguments); return true; } function pushContext(tagName, startOfLine) { var noIndent = Kludges.doNotIndent.hasOwnProperty(tagName) || (curState.context && curState.context.noIndent); curState.context = { prev: curState.context, tagName: tagName, indent: curState.indented, startOfLine: startOfLine, noIndent: noIndent }; } function popContext() { if (curState.context) curState.context = curState.context.prev; } function element(type) { if (type == "openTag") { curState.tagName = tagName; return cont(attributes, endtag(curState.startOfLine)); } else if (type == "closeTag") { var err = false; if (curState.context) { if (curState.context.tagName != tagName) { if (Kludges.implicitlyClosed.hasOwnProperty(curState.context.tagName.toLowerCase())) { popContext(); } err = !curState.context || curState.context.tagName != tagName; } } else { err = true; } if (err) setStyle = "error"; return cont(endclosetag(err)); } return cont(); } function endtag(startOfLine) { return function(type) { var tagName = curState.tagName; curState.tagName = null; if (type == "selfcloseTag" || (type == "endTag" && Kludges.autoSelfClosers.hasOwnProperty(tagName.toLowerCase()))) { maybePopContext(tagName.toLowerCase()); return cont(); } if (type == "endTag") { maybePopContext(tagName.toLowerCase()); pushContext(tagName, startOfLine); return cont(); } return cont(); }; } function endclosetag(err) { return function(type) { if (err) setStyle = "error"; if (type == "endTag") { popContext(); return cont(); } setStyle = "error"; return cont(arguments.callee); }; } function maybePopContext(nextTagName) { var parentTagName; while (true) { if (!curState.context) { return; } parentTagName = curState.context.tagName.toLowerCase(); if (!Kludges.contextGrabbers.hasOwnProperty(parentTagName) || !Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) { return; } popContext(); } } function attributes(type) { if (type == "word") {setStyle = "attribute"; return cont(attribute, attributes);} if (type == "endTag" || type == "selfcloseTag") return pass(); setStyle = "error"; return cont(attributes); } function attribute(type) { if (type == "equals") return cont(attvalue, attributes); if (!Kludges.allowMissing) setStyle = "error"; else if (type == "word") setStyle = "attribute"; return (type == "endTag" || type == "selfcloseTag") ? pass() : cont(); } function attvalue(type) { if (type == "string") return cont(attvaluemaybe); if (type == "word" && Kludges.allowUnquoted) {setStyle = "string"; return cont();} setStyle = "error"; return (type == "endTag" || type == "selfCloseTag") ? pass() : cont(); } function attvaluemaybe(type) { if (type == "string") return cont(attvaluemaybe); else return pass(); } return { startState: function() { return {tokenize: inText, cc: [], indented: 0, startOfLine: true, tagName: null, context: null}; }, token: function(stream, state) { if (stream.sol()) { state.startOfLine = true; state.indented = stream.indentation(); } if (stream.eatSpace()) return null; setStyle = type = tagName = null; var style = state.tokenize(stream, state); state.type = type; if ((style || type) && style != "comment") { curState = state; while (true) { var comb = state.cc.pop() || element; if (comb(type || style)) break; } } state.startOfLine = false; return setStyle || style; }, indent: function(state, textAfter, fullLine) { var context = state.context; if ((state.tokenize != inTag && state.tokenize != inText) || context && context.noIndent) return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0; if (alignCDATA && / CodeMirror: Diff mode

CodeMirror: Diff mode

MIME types defined: text/x-diff.

site_pro/codemirror-3.1/mode/z80/0000755000000000000000000000000012111430706015404 5ustar rootrootsite_pro/codemirror-3.1/mode/z80/index.html0000644000000000000000000000204112111430706017376 0ustar rootroot CodeMirror: Z80 assembly mode

CodeMirror: Z80 assembly mode

MIME type defined: text/x-z80.

site_pro/codemirror-3.1/mode/z80/z80.js0000644000000000000000000000421212111430706016362 0ustar rootrootCodeMirror.defineMode('z80', function() { var keywords1 = /^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i; var keywords2 = /^(call|j[pr]|ret[in]?)\b/i; var keywords3 = /^b_?(call|jump)\b/i; var variables1 = /^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i; var variables2 = /^(n?[zc]|p[oe]?|m)\b/i; var errors = /^([hl][xy]|i[xy][hl]|slia|sll)\b/i; var numbers = /^([\da-f]+h|[0-7]+o|[01]+b|\d+)\b/i; return {startState: function() { return {context: 0}; }, token: function(stream, state) { if (!stream.column()) state.context = 0; if (stream.eatSpace()) return null; var w; if (stream.eatWhile(/\w/)) { w = stream.current(); if (stream.indentation()) { if (state.context == 1 && variables1.test(w)) return 'variable-2'; if (state.context == 2 && variables2.test(w)) return 'variable-3'; if (keywords1.test(w)) { state.context = 1; return 'keyword'; } else if (keywords2.test(w)) { state.context = 2; return 'keyword'; } else if (keywords3.test(w)) { state.context = 3; return 'keyword'; } if (errors.test(w)) return 'error'; } else if (numbers.test(w)) { return 'number'; } else { return null; } } else if (stream.eat(';')) { stream.skipToEnd(); return 'comment'; } else if (stream.eat('"')) { while (w = stream.next()) { if (w == '"') break; if (w == '\\') stream.next(); } return 'string'; } else if (stream.eat('\'')) { if (stream.match(/\\?.'/)) return 'number'; } else if (stream.eat('.') || stream.sol() && stream.eat('#')) { state.context = 4; if (stream.eatWhile(/\w/)) return 'def'; } else if (stream.eat('$')) { if (stream.eatWhile(/[\da-f]/i)) return 'number'; } else if (stream.eat('%')) { if (stream.eatWhile(/[01]/)) return 'number'; } else { stream.next(); } return null; }}; }); CodeMirror.defineMIME("text/x-z80", "z80"); site_pro/codemirror-3.1/mode/smarty/0000755000000000000000000000000012111430706016302 5ustar rootrootsite_pro/codemirror-3.1/mode/smarty/smarty.js0000644000000000000000000000740012111430706020160 0ustar rootrootCodeMirror.defineMode("smarty", function(config) { var keyFuncs = ["debug", "extends", "function", "include", "literal"]; var last; var regs = { operatorChars: /[+\-*&%=<>!?]/, validIdentifier: /[a-zA-Z0-9\_]/, stringChar: /[\'\"]/ }; var leftDelim = (typeof config.mode.leftDelimiter != 'undefined') ? config.mode.leftDelimiter : "{"; var rightDelim = (typeof config.mode.rightDelimiter != 'undefined') ? config.mode.rightDelimiter : "}"; function ret(style, lst) { last = lst; return style; } function tokenizer(stream, state) { function chain(parser) { state.tokenize = parser; return parser(stream, state); } if (stream.match(leftDelim, true)) { if (stream.eat("*")) { return chain(inBlock("comment", "*" + rightDelim)); } else { state.tokenize = inSmarty; return "tag"; } } else { // I'd like to do an eatWhile() here, but I can't get it to eat only up to the rightDelim string/char stream.next(); return null; } } function inSmarty(stream, state) { if (stream.match(rightDelim, true)) { state.tokenize = tokenizer; return ret("tag", null); } var ch = stream.next(); if (ch == "$") { stream.eatWhile(regs.validIdentifier); return ret("variable-2", "variable"); } else if (ch == ".") { return ret("operator", "property"); } else if (regs.stringChar.test(ch)) { state.tokenize = inAttribute(ch); return ret("string", "string"); } else if (regs.operatorChars.test(ch)) { stream.eatWhile(regs.operatorChars); return ret("operator", "operator"); } else if (ch == "[" || ch == "]") { return ret("bracket", "bracket"); } else if (/\d/.test(ch)) { stream.eatWhile(/\d/); return ret("number", "number"); } else { if (state.last == "variable") { if (ch == "@") { stream.eatWhile(regs.validIdentifier); return ret("property", "property"); } else if (ch == "|") { stream.eatWhile(regs.validIdentifier); return ret("qualifier", "modifier"); } } else if (state.last == "whitespace") { stream.eatWhile(regs.validIdentifier); return ret("attribute", "modifier"); } else if (state.last == "property") { stream.eatWhile(regs.validIdentifier); return ret("property", null); } else if (/\s/.test(ch)) { last = "whitespace"; return null; } var str = ""; if (ch != "/") { str += ch; } var c = ""; while ((c = stream.eat(regs.validIdentifier))) { str += c; } var i, j; for (i=0, j=keyFuncs.length; i CodeMirror: Smarty mode

CodeMirror: Smarty mode


A plain text/Smarty mode which allows for custom delimiter tags (defaults to { and }).

MIME types defined: text/x-smarty

site_pro/codemirror-3.1/mode/rust/0000755000000000000000000000000012111430706015760 5ustar rootrootsite_pro/codemirror-3.1/mode/rust/rust.js0000644000000000000000000003612512111430706017322 0ustar rootrootCodeMirror.defineMode("rust", function() { var indentUnit = 4, altIndentUnit = 2; var valKeywords = { "if": "if-style", "while": "if-style", "else": "else-style", "do": "else-style", "ret": "else-style", "fail": "else-style", "break": "atom", "cont": "atom", "const": "let", "resource": "fn", "let": "let", "fn": "fn", "for": "for", "alt": "alt", "iface": "iface", "impl": "impl", "type": "type", "enum": "enum", "mod": "mod", "as": "op", "true": "atom", "false": "atom", "assert": "op", "check": "op", "claim": "op", "native": "ignore", "unsafe": "ignore", "import": "else-style", "export": "else-style", "copy": "op", "log": "op", "log_err": "op", "use": "op", "bind": "op", "self": "atom" }; var typeKeywords = function() { var keywords = {"fn": "fn", "block": "fn", "obj": "obj"}; var atoms = "bool uint int i8 i16 i32 i64 u8 u16 u32 u64 float f32 f64 str char".split(" "); for (var i = 0, e = atoms.length; i < e; ++i) keywords[atoms[i]] = "atom"; return keywords; }(); var operatorChar = /[+\-*&%=<>!?|\.@]/; // Tokenizer // Used as scratch variable to communicate multiple values without // consing up tons of objects. var tcat, content; function r(tc, style) { tcat = tc; return style; } function tokenBase(stream, state) { var ch = stream.next(); if (ch == '"') { state.tokenize = tokenString; return state.tokenize(stream, state); } if (ch == "'") { tcat = "atom"; if (stream.eat("\\")) { if (stream.skipTo("'")) { stream.next(); return "string"; } else { return "error"; } } else { stream.next(); return stream.eat("'") ? "string" : "error"; } } if (ch == "/") { if (stream.eat("/")) { stream.skipToEnd(); return "comment"; } if (stream.eat("*")) { state.tokenize = tokenComment(1); return state.tokenize(stream, state); } } if (ch == "#") { if (stream.eat("[")) { tcat = "open-attr"; return null; } stream.eatWhile(/\w/); return r("macro", "meta"); } if (ch == ":" && stream.match(":<")) { return r("op", null); } if (ch.match(/\d/) || (ch == "." && stream.eat(/\d/))) { var flp = false; if (!stream.match(/^x[\da-f]+/i) && !stream.match(/^b[01]+/)) { stream.eatWhile(/\d/); if (stream.eat(".")) { flp = true; stream.eatWhile(/\d/); } if (stream.match(/^e[+\-]?\d+/i)) { flp = true; } } if (flp) stream.match(/^f(?:32|64)/); else stream.match(/^[ui](?:8|16|32|64)/); return r("atom", "number"); } if (ch.match(/[()\[\]{}:;,]/)) return r(ch, null); if (ch == "-" && stream.eat(">")) return r("->", null); if (ch.match(operatorChar)) { stream.eatWhile(operatorChar); return r("op", null); } stream.eatWhile(/\w/); content = stream.current(); if (stream.match(/^::\w/)) { stream.backUp(1); return r("prefix", "variable-2"); } if (state.keywords.propertyIsEnumerable(content)) return r(state.keywords[content], content.match(/true|false/) ? "atom" : "keyword"); return r("name", "variable"); } function tokenString(stream, state) { var ch, escaped = false; while (ch = stream.next()) { if (ch == '"' && !escaped) { state.tokenize = tokenBase; return r("atom", "string"); } escaped = !escaped && ch == "\\"; } // Hack to not confuse the parser when a string is split in // pieces. return r("op", "string"); } function tokenComment(depth) { return function(stream, state) { var lastCh = null, ch; while (ch = stream.next()) { if (ch == "/" && lastCh == "*") { if (depth == 1) { state.tokenize = tokenBase; break; } else { state.tokenize = tokenComment(depth - 1); return state.tokenize(stream, state); } } if (ch == "*" && lastCh == "/") { state.tokenize = tokenComment(depth + 1); return state.tokenize(stream, state); } lastCh = ch; } return "comment"; }; } // Parser var cx = {state: null, stream: null, marked: null, cc: null}; function pass() { for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]); } function cont() { pass.apply(null, arguments); return true; } function pushlex(type, info) { var result = function() { var state = cx.state; state.lexical = {indented: state.indented, column: cx.stream.column(), type: type, prev: state.lexical, info: info}; }; result.lex = true; return result; } function poplex() { var state = cx.state; if (state.lexical.prev) { if (state.lexical.type == ")") state.indented = state.lexical.indented; state.lexical = state.lexical.prev; } } function typecx() { cx.state.keywords = typeKeywords; } function valcx() { cx.state.keywords = valKeywords; } poplex.lex = typecx.lex = valcx.lex = true; function commasep(comb, end) { function more(type) { if (type == ",") return cont(comb, more); if (type == end) return cont(); return cont(more); } return function(type) { if (type == end) return cont(); return pass(comb, more); }; } function stat_of(comb, tag) { return cont(pushlex("stat", tag), comb, poplex, block); } function block(type) { if (type == "}") return cont(); if (type == "let") return stat_of(letdef1, "let"); if (type == "fn") return stat_of(fndef); if (type == "type") return cont(pushlex("stat"), tydef, endstatement, poplex, block); if (type == "enum") return stat_of(enumdef); if (type == "mod") return stat_of(mod); if (type == "iface") return stat_of(iface); if (type == "impl") return stat_of(impl); if (type == "open-attr") return cont(pushlex("]"), commasep(expression, "]"), poplex); if (type == "ignore" || type.match(/[\]\);,]/)) return cont(block); return pass(pushlex("stat"), expression, poplex, endstatement, block); } function endstatement(type) { if (type == ";") return cont(); return pass(); } function expression(type) { if (type == "atom" || type == "name") return cont(maybeop); if (type == "{") return cont(pushlex("}"), exprbrace, poplex); if (type.match(/[\[\(]/)) return matchBrackets(type, expression); if (type.match(/[\]\)\};,]/)) return pass(); if (type == "if-style") return cont(expression, expression); if (type == "else-style" || type == "op") return cont(expression); if (type == "for") return cont(pattern, maybetype, inop, expression, expression); if (type == "alt") return cont(expression, altbody); if (type == "fn") return cont(fndef); if (type == "macro") return cont(macro); return cont(); } function maybeop(type) { if (content == ".") return cont(maybeprop); if (content == "::<"){return cont(typarams, maybeop);} if (type == "op" || content == ":") return cont(expression); if (type == "(" || type == "[") return matchBrackets(type, expression); return pass(); } function maybeprop() { if (content.match(/^\w+$/)) {cx.marked = "variable"; return cont(maybeop);} return pass(expression); } function exprbrace(type) { if (type == "op") { if (content == "|") return cont(blockvars, poplex, pushlex("}", "block"), block); if (content == "||") return cont(poplex, pushlex("}", "block"), block); } if (content == "mutable" || (content.match(/^\w+$/) && cx.stream.peek() == ":" && !cx.stream.match("::", false))) return pass(record_of(expression)); return pass(block); } function record_of(comb) { function ro(type) { if (content == "mutable" || content == "with") {cx.marked = "keyword"; return cont(ro);} if (content.match(/^\w*$/)) {cx.marked = "variable"; return cont(ro);} if (type == ":") return cont(comb, ro); if (type == "}") return cont(); return cont(ro); } return ro; } function blockvars(type) { if (type == "name") {cx.marked = "def"; return cont(blockvars);} if (type == "op" && content == "|") return cont(); return cont(blockvars); } function letdef1(type) { if (type.match(/[\]\)\};]/)) return cont(); if (content == "=") return cont(expression, letdef2); if (type == ",") return cont(letdef1); return pass(pattern, maybetype, letdef1); } function letdef2(type) { if (type.match(/[\]\)\};,]/)) return pass(letdef1); else return pass(expression, letdef2); } function maybetype(type) { if (type == ":") return cont(typecx, rtype, valcx); return pass(); } function inop(type) { if (type == "name" && content == "in") {cx.marked = "keyword"; return cont();} return pass(); } function fndef(type) { if (content == "@" || content == "~") {cx.marked = "keyword"; return cont(fndef);} if (type == "name") {cx.marked = "def"; return cont(fndef);} if (content == "<") return cont(typarams, fndef); if (type == "{") return pass(expression); if (type == "(") return cont(pushlex(")"), commasep(argdef, ")"), poplex, fndef); if (type == "->") return cont(typecx, rtype, valcx, fndef); if (type == ";") return cont(); return cont(fndef); } function tydef(type) { if (type == "name") {cx.marked = "def"; return cont(tydef);} if (content == "<") return cont(typarams, tydef); if (content == "=") return cont(typecx, rtype, valcx); return cont(tydef); } function enumdef(type) { if (type == "name") {cx.marked = "def"; return cont(enumdef);} if (content == "<") return cont(typarams, enumdef); if (content == "=") return cont(typecx, rtype, valcx, endstatement); if (type == "{") return cont(pushlex("}"), typecx, enumblock, valcx, poplex); return cont(enumdef); } function enumblock(type) { if (type == "}") return cont(); if (type == "(") return cont(pushlex(")"), commasep(rtype, ")"), poplex, enumblock); if (content.match(/^\w+$/)) cx.marked = "def"; return cont(enumblock); } function mod(type) { if (type == "name") {cx.marked = "def"; return cont(mod);} if (type == "{") return cont(pushlex("}"), block, poplex); return pass(); } function iface(type) { if (type == "name") {cx.marked = "def"; return cont(iface);} if (content == "<") return cont(typarams, iface); if (type == "{") return cont(pushlex("}"), block, poplex); return pass(); } function impl(type) { if (content == "<") return cont(typarams, impl); if (content == "of" || content == "for") {cx.marked = "keyword"; return cont(rtype, impl);} if (type == "name") {cx.marked = "def"; return cont(impl);} if (type == "{") return cont(pushlex("}"), block, poplex); return pass(); } function typarams() { if (content == ">") return cont(); if (content == ",") return cont(typarams); if (content == ":") return cont(rtype, typarams); return pass(rtype, typarams); } function argdef(type) { if (type == "name") {cx.marked = "def"; return cont(argdef);} if (type == ":") return cont(typecx, rtype, valcx); return pass(); } function rtype(type) { if (type == "name") {cx.marked = "variable-3"; return cont(rtypemaybeparam); } if (content == "mutable") {cx.marked = "keyword"; return cont(rtype);} if (type == "atom") return cont(rtypemaybeparam); if (type == "op" || type == "obj") return cont(rtype); if (type == "fn") return cont(fntype); if (type == "{") return cont(pushlex("{"), record_of(rtype), poplex); return matchBrackets(type, rtype); } function rtypemaybeparam() { if (content == "<") return cont(typarams); return pass(); } function fntype(type) { if (type == "(") return cont(pushlex("("), commasep(rtype, ")"), poplex, fntype); if (type == "->") return cont(rtype); return pass(); } function pattern(type) { if (type == "name") {cx.marked = "def"; return cont(patternmaybeop);} if (type == "atom") return cont(patternmaybeop); if (type == "op") return cont(pattern); if (type.match(/[\]\)\};,]/)) return pass(); return matchBrackets(type, pattern); } function patternmaybeop(type) { if (type == "op" && content == ".") return cont(); if (content == "to") {cx.marked = "keyword"; return cont(pattern);} else return pass(); } function altbody(type) { if (type == "{") return cont(pushlex("}", "alt"), altblock1, poplex); return pass(); } function altblock1(type) { if (type == "}") return cont(); if (type == "|") return cont(altblock1); if (content == "when") {cx.marked = "keyword"; return cont(expression, altblock2);} if (type.match(/[\]\);,]/)) return cont(altblock1); return pass(pattern, altblock2); } function altblock2(type) { if (type == "{") return cont(pushlex("}", "alt"), block, poplex, altblock1); else return pass(altblock1); } function macro(type) { if (type.match(/[\[\(\{]/)) return matchBrackets(type, expression); return pass(); } function matchBrackets(type, comb) { if (type == "[") return cont(pushlex("]"), commasep(comb, "]"), poplex); if (type == "(") return cont(pushlex(")"), commasep(comb, ")"), poplex); if (type == "{") return cont(pushlex("}"), commasep(comb, "}"), poplex); return cont(); } function parse(state, stream, style) { var cc = state.cc; // Communicate our context to the combinators. // (Less wasteful than consing up a hundred closures on every call.) cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; while (true) { var combinator = cc.length ? cc.pop() : block; if (combinator(tcat)) { while(cc.length && cc[cc.length - 1].lex) cc.pop()(); return cx.marked || style; } } } return { startState: function() { return { tokenize: tokenBase, cc: [], lexical: {indented: -indentUnit, column: 0, type: "top", align: false}, keywords: valKeywords, indented: 0 }; }, token: function(stream, state) { if (stream.sol()) { if (!state.lexical.hasOwnProperty("align")) state.lexical.align = false; state.indented = stream.indentation(); } if (stream.eatSpace()) return null; tcat = content = null; var style = state.tokenize(stream, state); if (style == "comment") return style; if (!state.lexical.hasOwnProperty("align")) state.lexical.align = true; if (tcat == "prefix") return style; if (!content) content = stream.current(); return parse(state, stream, style); }, indent: function(state, textAfter) { if (state.tokenize != tokenBase) return 0; var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, type = lexical.type, closing = firstChar == type; if (type == "stat") return lexical.indented + indentUnit; if (lexical.align) return lexical.column + (closing ? 0 : 1); return lexical.indented + (closing ? 0 : (lexical.info == "alt" ? altIndentUnit : indentUnit)); }, electricChars: "{}" }; }); CodeMirror.defineMIME("text/x-rustsrc", "rust"); site_pro/codemirror-3.1/mode/rust/index.html0000644000000000000000000000205512111430706017757 0ustar rootroot CodeMirror: Rust mode

CodeMirror: Rust mode

MIME types defined: text/x-rustsrc.

site_pro/codemirror-3.1/mode/haxe/0000755000000000000000000000000012111430706015710 5ustar rootrootsite_pro/codemirror-3.1/mode/haxe/haxe.js0000644000000000000000000003543712111430706017207 0ustar rootrootCodeMirror.defineMode("haxe", function(config, parserConfig) { var indentUnit = config.indentUnit; // Tokenizer var keywords = function(){ function kw(type) {return {type: type, style: "keyword"};} var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"); var operator = kw("operator"), atom = {type: "atom", style: "atom"}, attribute = {type:"attribute", style: "attribute"}; var type = kw("typedef"); return { "if": A, "while": A, "else": B, "do": B, "try": B, "return": C, "break": C, "continue": C, "new": C, "throw": C, "var": kw("var"), "inline":attribute, "static": attribute, "using":kw("import"), "public": attribute, "private": attribute, "cast": kw("cast"), "import": kw("import"), "macro": kw("macro"), "function": kw("function"), "catch": kw("catch"), "untyped": kw("untyped"), "callback": kw("cb"), "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"), "in": operator, "never": kw("property_access"), "trace":kw("trace"), "class": type, "enum":type, "interface":type, "typedef":type, "extends":type, "implements":type, "dynamic":type, "true": atom, "false": atom, "null": atom }; }(); var isOperatorChar = /[+\-*&%=<>!?|]/; function chain(stream, state, f) { state.tokenize = f; return f(stream, state); } function nextUntilUnescaped(stream, end) { var escaped = false, next; while ((next = stream.next()) != null) { if (next == end && !escaped) return false; escaped = !escaped && next == "\\"; } return escaped; } // Used as scratch variables to communicate multiple values without // consing up tons of objects. var type, content; function ret(tp, style, cont) { type = tp; content = cont; return style; } function haxeTokenBase(stream, state) { var ch = stream.next(); if (ch == '"' || ch == "'") return chain(stream, state, haxeTokenString(ch)); else if (/[\[\]{}\(\),;\:\.]/.test(ch)) return ret(ch); else if (ch == "0" && stream.eat(/x/i)) { stream.eatWhile(/[\da-f]/i); return ret("number", "number"); } else if (/\d/.test(ch) || ch == "-" && stream.eat(/\d/)) { stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/); return ret("number", "number"); } else if (state.reAllowed && (ch == "~" && stream.eat(/\//))) { nextUntilUnescaped(stream, "/"); stream.eatWhile(/[gimsu]/); return ret("regexp", "string-2"); } else if (ch == "/") { if (stream.eat("*")) { return chain(stream, state, haxeTokenComment); } else if (stream.eat("/")) { stream.skipToEnd(); return ret("comment", "comment"); } else { stream.eatWhile(isOperatorChar); return ret("operator", null, stream.current()); } } else if (ch == "#") { stream.skipToEnd(); return ret("conditional", "meta"); } else if (ch == "@") { stream.eat(/:/); stream.eatWhile(/[\w_]/); return ret ("metadata", "meta"); } else if (isOperatorChar.test(ch)) { stream.eatWhile(isOperatorChar); return ret("operator", null, stream.current()); } else { var word; if(/[A-Z]/.test(ch)) { stream.eatWhile(/[\w_<>]/); word = stream.current(); return ret("type", "variable-3", word); } else { stream.eatWhile(/[\w_]/); var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word]; return (known && state.kwAllowed) ? ret(known.type, known.style, word) : ret("variable", "variable", word); } } } function haxeTokenString(quote) { return function(stream, state) { if (!nextUntilUnescaped(stream, quote)) state.tokenize = haxeTokenBase; return ret("string", "string"); }; } function haxeTokenComment(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "/" && maybeEnd) { state.tokenize = haxeTokenBase; break; } maybeEnd = (ch == "*"); } return ret("comment", "comment"); } // Parser var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true}; function HaxeLexical(indented, column, type, align, prev, info) { this.indented = indented; this.column = column; this.type = type; this.prev = prev; this.info = info; if (align != null) this.align = align; } function inScope(state, varname) { for (var v = state.localVars; v; v = v.next) if (v.name == varname) return true; } function parseHaxe(state, style, type, content, stream) { var cc = state.cc; // Communicate our context to the combinators. // (Less wasteful than consing up a hundred closures on every call.) cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; if (!state.lexical.hasOwnProperty("align")) state.lexical.align = true; while(true) { var combinator = cc.length ? cc.pop() : statement; if (combinator(type, content)) { while(cc.length && cc[cc.length - 1].lex) cc.pop()(); if (cx.marked) return cx.marked; if (type == "variable" && inScope(state, content)) return "variable-2"; if (type == "variable" && imported(state, content)) return "variable-3"; return style; } } } function imported(state, typename) { if (/[a-z]/.test(typename.charAt(0))) return false; var len = state.importedtypes.length; for (var i = 0; i= 0; i--) cx.cc.push(arguments[i]); } function cont() { pass.apply(null, arguments); return true; } function register(varname) { var state = cx.state; if (state.context) { cx.marked = "def"; for (var v = state.localVars; v; v = v.next) if (v.name == varname) return; state.localVars = {name: varname, next: state.localVars}; } } // Combinators var defaultVars = {name: "this", next: null}; function pushcontext() { if (!cx.state.context) cx.state.localVars = defaultVars; cx.state.context = {prev: cx.state.context, vars: cx.state.localVars}; } function popcontext() { cx.state.localVars = cx.state.context.vars; cx.state.context = cx.state.context.prev; } function pushlex(type, info) { var result = function() { var state = cx.state; state.lexical = new HaxeLexical(state.indented, cx.stream.column(), type, null, state.lexical, info); }; result.lex = true; return result; } function poplex() { var state = cx.state; if (state.lexical.prev) { if (state.lexical.type == ")") state.indented = state.lexical.indented; state.lexical = state.lexical.prev; } } poplex.lex = true; function expect(wanted) { return function(type) { if (type == wanted) return cont(); else if (wanted == ";") return pass(); else return cont(arguments.callee); }; } function statement(type) { if (type == "@") return cont(metadef); if (type == "var") return cont(pushlex("vardef"), vardef1, expect(";"), poplex); if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex); if (type == "keyword b") return cont(pushlex("form"), statement, poplex); if (type == "{") return cont(pushlex("}"), pushcontext, block, poplex, popcontext); if (type == ";") return cont(); if (type == "attribute") return cont(maybeattribute); if (type == "function") return cont(functiondef); if (type == "for") return cont(pushlex("form"), expect("("), pushlex(")"), forspec1, expect(")"), poplex, statement, poplex); if (type == "variable") return cont(pushlex("stat"), maybelabel); if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"), block, poplex, poplex); if (type == "case") return cont(expression, expect(":")); if (type == "default") return cont(expect(":")); if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"), statement, poplex, popcontext); if (type == "import") return cont(importdef, expect(";")); if (type == "typedef") return cont(typedef); return pass(pushlex("stat"), expression, expect(";"), poplex); } function expression(type) { if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator); if (type == "function") return cont(functiondef); if (type == "keyword c") return cont(maybeexpression); if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeoperator); if (type == "operator") return cont(expression); if (type == "[") return cont(pushlex("]"), commasep(expression, "]"), poplex, maybeoperator); if (type == "{") return cont(pushlex("}"), commasep(objprop, "}"), poplex, maybeoperator); return cont(); } function maybeexpression(type) { if (type.match(/[;\}\)\],]/)) return pass(); return pass(expression); } function maybeoperator(type, value) { if (type == "operator" && /\+\+|--/.test(value)) return cont(maybeoperator); if (type == "operator" || type == ":") return cont(expression); if (type == ";") return; if (type == "(") return cont(pushlex(")"), commasep(expression, ")"), poplex, maybeoperator); if (type == ".") return cont(property, maybeoperator); if (type == "[") return cont(pushlex("]"), expression, expect("]"), poplex, maybeoperator); } function maybeattribute(type) { if (type == "attribute") return cont(maybeattribute); if (type == "function") return cont(functiondef); if (type == "var") return cont(vardef1); } function metadef(type) { if(type == ":") return cont(metadef); if(type == "variable") return cont(metadef); if(type == "(") return cont(pushlex(")"), comasep(metaargs, ")"), poplex, statement); } function metaargs(type) { if(type == "variable") return cont(); } function importdef (type, value) { if(type == "variable" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); } else if(type == "variable" || type == "property" || type == ".") return cont(importdef); } function typedef (type, value) { if(type == "variable" && /[A-Z]/.test(value.charAt(0))) { registerimport(value); return cont(); } } function maybelabel(type) { if (type == ":") return cont(poplex, statement); return pass(maybeoperator, expect(";"), poplex); } function property(type) { if (type == "variable") {cx.marked = "property"; return cont();} } function objprop(type) { if (type == "variable") cx.marked = "property"; if (atomicTypes.hasOwnProperty(type)) return cont(expect(":"), expression); } function commasep(what, end) { function proceed(type) { if (type == ",") return cont(what, proceed); if (type == end) return cont(); return cont(expect(end)); } return function(type) { if (type == end) return cont(); else return pass(what, proceed); }; } function block(type) { if (type == "}") return cont(); return pass(statement, block); } function vardef1(type, value) { if (type == "variable"){register(value); return cont(typeuse, vardef2);} return cont(); } function vardef2(type, value) { if (value == "=") return cont(expression, vardef2); if (type == ",") return cont(vardef1); } function forspec1(type, value) { if (type == "variable") { register(value); } return cont(pushlex(")"), pushcontext, forin, expression, poplex, statement, popcontext); } function forin(_type, value) { if (value == "in") return cont(); } function functiondef(type, value) { if (type == "variable") {register(value); return cont(functiondef);} if (value == "new") return cont(functiondef); if (type == "(") return cont(pushlex(")"), pushcontext, commasep(funarg, ")"), poplex, typeuse, statement, popcontext); } function typeuse(type) { if(type == ":") return cont(typestring); } function typestring(type) { if(type == "type") return cont(); if(type == "variable") return cont(); if(type == "{") return cont(pushlex("}"), commasep(typeprop, "}"), poplex); } function typeprop(type) { if(type == "variable") return cont(typeuse); } function funarg(type, value) { if (type == "variable") {register(value); return cont(typeuse);} } // Interface return { startState: function(basecolumn) { var defaulttypes = ["Int", "Float", "String", "Void", "Std", "Bool", "Dynamic", "Array"]; return { tokenize: haxeTokenBase, reAllowed: true, kwAllowed: true, cc: [], lexical: new HaxeLexical((basecolumn || 0) - indentUnit, 0, "block", false), localVars: parserConfig.localVars, importedtypes: defaulttypes, context: parserConfig.localVars && {vars: parserConfig.localVars}, indented: 0 }; }, token: function(stream, state) { if (stream.sol()) { if (!state.lexical.hasOwnProperty("align")) state.lexical.align = false; state.indented = stream.indentation(); } if (stream.eatSpace()) return null; var style = state.tokenize(stream, state); if (type == "comment") return style; state.reAllowed = !!(type == "operator" || type == "keyword c" || type.match(/^[\[{}\(,;:]$/)); state.kwAllowed = type != '.'; return parseHaxe(state, style, type, content, stream); }, indent: function(state, textAfter) { if (state.tokenize != haxeTokenBase) return 0; var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical; if (lexical.type == "stat" && firstChar == "}") lexical = lexical.prev; var type = lexical.type, closing = firstChar == type; if (type == "vardef") return lexical.indented + 4; else if (type == "form" && firstChar == "{") return lexical.indented; else if (type == "stat" || type == "form") return lexical.indented + indentUnit; else if (lexical.info == "switch" && !closing) return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit); else if (lexical.align) return lexical.column + (closing ? 0 : 1); else return lexical.indented + (closing ? 0 : indentUnit); }, electricChars: "{}" }; }); CodeMirror.defineMIME("text/x-haxe", "haxe"); site_pro/codemirror-3.1/mode/haxe/index.html0000644000000000000000000000345212111430706017711 0ustar rootroot CodeMirror: Haxe mode

CodeMirror: Haxe mode

MIME types defined: text/x-haxe.

site_pro/codemirror-3.1/mode/haskell/0000755000000000000000000000000012111430706016406 5ustar rootrootsite_pro/codemirror-3.1/mode/haskell/index.html0000644000000000000000000000351512111430706020407 0ustar rootroot CodeMirror: Haskell mode

CodeMirror: Haskell mode

MIME types defined: text/x-haskell.

site_pro/codemirror-3.1/mode/haskell/haskell.js0000644000000000000000000001645212111430706020377 0ustar rootrootCodeMirror.defineMode("haskell", function() { function switchState(source, setState, f) { setState(f); return f(source, setState); } // These should all be Unicode extended, as per the Haskell 2010 report var smallRE = /[a-z_]/; var largeRE = /[A-Z]/; var digitRE = /[0-9]/; var hexitRE = /[0-9A-Fa-f]/; var octitRE = /[0-7]/; var idRE = /[a-z_A-Z0-9']/; var symbolRE = /[-!#$%&*+.\/<=>?@\\^|~:]/; var specialRE = /[(),;[\]`{}]/; var whiteCharRE = /[ \t\v\f]/; // newlines are handled in tokenizer function normal(source, setState) { if (source.eatWhile(whiteCharRE)) { return null; } var ch = source.next(); if (specialRE.test(ch)) { if (ch == '{' && source.eat('-')) { var t = "comment"; if (source.eat('#')) { t = "meta"; } return switchState(source, setState, ncomment(t, 1)); } return null; } if (ch == '\'') { if (source.eat('\\')) { source.next(); // should handle other escapes here } else { source.next(); } if (source.eat('\'')) { return "string"; } return "error"; } if (ch == '"') { return switchState(source, setState, stringLiteral); } if (largeRE.test(ch)) { source.eatWhile(idRE); if (source.eat('.')) { return "qualifier"; } return "variable-2"; } if (smallRE.test(ch)) { source.eatWhile(idRE); return "variable"; } if (digitRE.test(ch)) { if (ch == '0') { if (source.eat(/[xX]/)) { source.eatWhile(hexitRE); // should require at least 1 return "integer"; } if (source.eat(/[oO]/)) { source.eatWhile(octitRE); // should require at least 1 return "number"; } } source.eatWhile(digitRE); var t = "number"; if (source.eat('.')) { t = "number"; source.eatWhile(digitRE); // should require at least 1 } if (source.eat(/[eE]/)) { t = "number"; source.eat(/[-+]/); source.eatWhile(digitRE); // should require at least 1 } return t; } if (symbolRE.test(ch)) { if (ch == '-' && source.eat(/-/)) { source.eatWhile(/-/); if (!source.eat(symbolRE)) { source.skipToEnd(); return "comment"; } } var t = "variable"; if (ch == ':') { t = "variable-2"; } source.eatWhile(symbolRE); return t; } return "error"; } function ncomment(type, nest) { if (nest == 0) { return normal; } return function(source, setState) { var currNest = nest; while (!source.eol()) { var ch = source.next(); if (ch == '{' && source.eat('-')) { ++currNest; } else if (ch == '-' && source.eat('}')) { --currNest; if (currNest == 0) { setState(normal); return type; } } } setState(ncomment(type, currNest)); return type; }; } function stringLiteral(source, setState) { while (!source.eol()) { var ch = source.next(); if (ch == '"') { setState(normal); return "string"; } if (ch == '\\') { if (source.eol() || source.eat(whiteCharRE)) { setState(stringGap); return "string"; } if (source.eat('&')) { } else { source.next(); // should handle other escapes here } } } setState(normal); return "error"; } function stringGap(source, setState) { if (source.eat('\\')) { return switchState(source, setState, stringLiteral); } source.next(); setState(normal); return "error"; } var wellKnownWords = (function() { var wkw = {}; function setType(t) { return function () { for (var i = 0; i < arguments.length; i++) wkw[arguments[i]] = t; }; } setType("keyword")( "case", "class", "data", "default", "deriving", "do", "else", "foreign", "if", "import", "in", "infix", "infixl", "infixr", "instance", "let", "module", "newtype", "of", "then", "type", "where", "_"); setType("keyword")( "\.\.", ":", "::", "=", "\\", "\"", "<-", "->", "@", "~", "=>"); setType("builtin")( "!!", "$!", "$", "&&", "+", "++", "-", ".", "/", "/=", "<", "<=", "=<<", "==", ">", ">=", ">>", ">>=", "^", "^^", "||", "*", "**"); setType("builtin")( "Bool", "Bounded", "Char", "Double", "EQ", "Either", "Enum", "Eq", "False", "FilePath", "Float", "Floating", "Fractional", "Functor", "GT", "IO", "IOError", "Int", "Integer", "Integral", "Just", "LT", "Left", "Maybe", "Monad", "Nothing", "Num", "Ord", "Ordering", "Rational", "Read", "ReadS", "Real", "RealFloat", "RealFrac", "Right", "Show", "ShowS", "String", "True"); setType("builtin")( "abs", "acos", "acosh", "all", "and", "any", "appendFile", "asTypeOf", "asin", "asinh", "atan", "atan2", "atanh", "break", "catch", "ceiling", "compare", "concat", "concatMap", "const", "cos", "cosh", "curry", "cycle", "decodeFloat", "div", "divMod", "drop", "dropWhile", "either", "elem", "encodeFloat", "enumFrom", "enumFromThen", "enumFromThenTo", "enumFromTo", "error", "even", "exp", "exponent", "fail", "filter", "flip", "floatDigits", "floatRadix", "floatRange", "floor", "fmap", "foldl", "foldl1", "foldr", "foldr1", "fromEnum", "fromInteger", "fromIntegral", "fromRational", "fst", "gcd", "getChar", "getContents", "getLine", "head", "id", "init", "interact", "ioError", "isDenormalized", "isIEEE", "isInfinite", "isNaN", "isNegativeZero", "iterate", "last", "lcm", "length", "lex", "lines", "log", "logBase", "lookup", "map", "mapM", "mapM_", "max", "maxBound", "maximum", "maybe", "min", "minBound", "minimum", "mod", "negate", "not", "notElem", "null", "odd", "or", "otherwise", "pi", "pred", "print", "product", "properFraction", "putChar", "putStr", "putStrLn", "quot", "quotRem", "read", "readFile", "readIO", "readList", "readLn", "readParen", "reads", "readsPrec", "realToFrac", "recip", "rem", "repeat", "replicate", "return", "reverse", "round", "scaleFloat", "scanl", "scanl1", "scanr", "scanr1", "seq", "sequence", "sequence_", "show", "showChar", "showList", "showParen", "showString", "shows", "showsPrec", "significand", "signum", "sin", "sinh", "snd", "span", "splitAt", "sqrt", "subtract", "succ", "sum", "tail", "take", "takeWhile", "tan", "tanh", "toEnum", "toInteger", "toRational", "truncate", "uncurry", "undefined", "unlines", "until", "unwords", "unzip", "unzip3", "userError", "words", "writeFile", "zip", "zip3", "zipWith", "zipWith3"); return wkw; })(); return { startState: function () { return { f: normal }; }, copyState: function (s) { return { f: s.f }; }, token: function(stream, state) { var t = state.f(stream, function(s) { state.f = s; }); var w = stream.current(); return (w in wellKnownWords) ? wellKnownWords[w] : t; } }; }); CodeMirror.defineMIME("text/x-haskell", "haskell"); site_pro/codemirror-3.1/mode/coffeescript/0000755000000000000000000000000012111430706017437 5ustar rootrootsite_pro/codemirror-3.1/mode/coffeescript/index.html0000644000000000000000000005312312111430706021440 0ustar rootroot CodeMirror: CoffeeScript mode

CodeMirror: CoffeeScript mode

MIME types defined: text/x-coffeescript.

The CoffeeScript mode was written by Jeff Pickhardt (license).

site_pro/codemirror-3.1/mode/coffeescript/LICENSE0000644000000000000000000000217712111430706020453 0ustar rootrootThe MIT License Copyright (c) 2011 Jeff Pickhardt Modified from the Python CodeMirror mode, Copyright (c) 2010 Timothy Farrell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.site_pro/codemirror-3.1/mode/coffeescript/coffeescript.js0000644000000000000000000002522712111430706022461 0ustar rootroot/** * Link to the project's GitHub page: * https://github.com/pickhardt/coffeescript-codemirror-mode */ CodeMirror.defineMode('coffeescript', function(conf) { var ERRORCLASS = 'error'; function wordRegexp(words) { return new RegExp("^((" + words.join(")|(") + "))\\b"); } var singleOperators = new RegExp("^[\\+\\-\\*/%&|\\^~<>!\?]"); var singleDelimiters = new RegExp('^[\\(\\)\\[\\]\\{\\},:`=;\\.]'); var doubleOperators = new RegExp("^((\->)|(\=>)|(\\+\\+)|(\\+\\=)|(\\-\\-)|(\\-\\=)|(\\*\\*)|(\\*\\=)|(\\/\\/)|(\\/\\=)|(==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//))"); var doubleDelimiters = new RegExp("^((\\.\\.)|(\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"); var tripleDelimiters = new RegExp("^((\\.\\.\\.)|(//=)|(>>=)|(<<=)|(\\*\\*=))"); var identifiers = new RegExp("^[_A-Za-z$][_A-Za-z$0-9]*"); var properties = new RegExp("^(@|this\.)[_A-Za-z$][_A-Za-z$0-9]*"); var wordOperators = wordRegexp(['and', 'or', 'not', 'is', 'isnt', 'in', 'instanceof', 'typeof']); var indentKeywords = ['for', 'while', 'loop', 'if', 'unless', 'else', 'switch', 'try', 'catch', 'finally', 'class']; var commonKeywords = ['break', 'by', 'continue', 'debugger', 'delete', 'do', 'in', 'of', 'new', 'return', 'then', 'this', 'throw', 'when', 'until']; var keywords = wordRegexp(indentKeywords.concat(commonKeywords)); indentKeywords = wordRegexp(indentKeywords); var stringPrefixes = new RegExp("^('{3}|\"{3}|['\"])"); var regexPrefixes = new RegExp("^(/{3}|/)"); var commonConstants = ['Infinity', 'NaN', 'undefined', 'null', 'true', 'false', 'on', 'off', 'yes', 'no']; var constants = wordRegexp(commonConstants); // Tokenizers function tokenBase(stream, state) { // Handle scope changes if (stream.sol()) { var scopeOffset = state.scopes[0].offset; if (stream.eatSpace()) { var lineOffset = stream.indentation(); if (lineOffset > scopeOffset) { return 'indent'; } else if (lineOffset < scopeOffset) { return 'dedent'; } return null; } else { if (scopeOffset > 0) { dedent(stream, state); } } } if (stream.eatSpace()) { return null; } var ch = stream.peek(); // Handle docco title comment (single line) if (stream.match("####")) { stream.skipToEnd(); return 'comment'; } // Handle multi line comments if (stream.match("###")) { state.tokenize = longComment; return state.tokenize(stream, state); } // Single line comment if (ch === '#') { stream.skipToEnd(); return 'comment'; } // Handle number literals if (stream.match(/^-?[0-9\.]/, false)) { var floatLiteral = false; // Floats if (stream.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)) { floatLiteral = true; } if (stream.match(/^-?\d+\.\d*/)) { floatLiteral = true; } if (stream.match(/^-?\.\d+/)) { floatLiteral = true; } if (floatLiteral) { // prevent from getting extra . on 1.. if (stream.peek() == "."){ stream.backUp(1); } return 'number'; } // Integers var intLiteral = false; // Hex if (stream.match(/^-?0x[0-9a-f]+/i)) { intLiteral = true; } // Decimal if (stream.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)) { intLiteral = true; } // Zero by itself with no other piece of number. if (stream.match(/^-?0(?![\dx])/i)) { intLiteral = true; } if (intLiteral) { return 'number'; } } // Handle strings if (stream.match(stringPrefixes)) { state.tokenize = tokenFactory(stream.current(), 'string'); return state.tokenize(stream, state); } // Handle regex literals if (stream.match(regexPrefixes)) { if (stream.current() != '/' || stream.match(/^.*\//, false)) { // prevent highlight of division state.tokenize = tokenFactory(stream.current(), 'string-2'); return state.tokenize(stream, state); } else { stream.backUp(1); } } // Handle operators and delimiters if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) { return 'punctuation'; } if (stream.match(doubleOperators) || stream.match(singleOperators) || stream.match(wordOperators)) { return 'operator'; } if (stream.match(singleDelimiters)) { return 'punctuation'; } if (stream.match(constants)) { return 'atom'; } if (stream.match(keywords)) { return 'keyword'; } if (stream.match(identifiers)) { return 'variable'; } if (stream.match(properties)) { return 'property'; } // Handle non-detected items stream.next(); return ERRORCLASS; } function tokenFactory(delimiter, outclass) { var singleline = delimiter.length == 1; return function(stream, state) { while (!stream.eol()) { stream.eatWhile(/[^'"\/\\]/); if (stream.eat('\\')) { stream.next(); if (singleline && stream.eol()) { return outclass; } } else if (stream.match(delimiter)) { state.tokenize = tokenBase; return outclass; } else { stream.eat(/['"\/]/); } } if (singleline) { if (conf.mode.singleLineStringErrors) { outclass = ERRORCLASS; } else { state.tokenize = tokenBase; } } return outclass; }; } function longComment(stream, state) { while (!stream.eol()) { stream.eatWhile(/[^#]/); if (stream.match("###")) { state.tokenize = tokenBase; break; } stream.eatWhile("#"); } return "comment"; } function indent(stream, state, type) { type = type || 'coffee'; var indentUnit = 0; if (type === 'coffee') { for (var i = 0; i < state.scopes.length; i++) { if (state.scopes[i].type === 'coffee') { indentUnit = state.scopes[i].offset + conf.indentUnit; break; } } } else { indentUnit = stream.column() + stream.current().length; } state.scopes.unshift({ offset: indentUnit, type: type }); } function dedent(stream, state) { if (state.scopes.length == 1) return; if (state.scopes[0].type === 'coffee') { var _indent = stream.indentation(); var _indent_index = -1; for (var i = 0; i < state.scopes.length; ++i) { if (_indent === state.scopes[i].offset) { _indent_index = i; break; } } if (_indent_index === -1) { return true; } while (state.scopes[0].offset !== _indent) { state.scopes.shift(); } return false; } else { state.scopes.shift(); return false; } } function tokenLexer(stream, state) { var style = state.tokenize(stream, state); var current = stream.current(); // Handle '.' connected identifiers if (current === '.') { style = state.tokenize(stream, state); current = stream.current(); if (style === 'variable') { return 'variable'; } else { return ERRORCLASS; } } // Handle scope changes. if (current === 'return') { state.dedent += 1; } if (((current === '->' || current === '=>') && !state.lambda && state.scopes[0].type == 'coffee' && stream.peek() === '') || style === 'indent') { indent(stream, state); } var delimiter_index = '[({'.indexOf(current); if (delimiter_index !== -1) { indent(stream, state, '])}'.slice(delimiter_index, delimiter_index+1)); } if (indentKeywords.exec(current)){ indent(stream, state); } if (current == 'then'){ dedent(stream, state); } if (style === 'dedent') { if (dedent(stream, state)) { return ERRORCLASS; } } delimiter_index = '])}'.indexOf(current); if (delimiter_index !== -1) { if (dedent(stream, state)) { return ERRORCLASS; } } if (state.dedent > 0 && stream.eol() && state.scopes[0].type == 'coffee') { if (state.scopes.length > 1) state.scopes.shift(); state.dedent -= 1; } return style; } var external = { startState: function(basecolumn) { return { tokenize: tokenBase, scopes: [{offset:basecolumn || 0, type:'coffee'}], lastToken: null, lambda: false, dedent: 0 }; }, token: function(stream, state) { var style = tokenLexer(stream, state); state.lastToken = {style:style, content: stream.current()}; if (stream.eol() && stream.lambda) { state.lambda = false; } return style; }, indent: function(state) { if (state.tokenize != tokenBase) { return 0; } return state.scopes[0].offset; } }; return external; }); CodeMirror.defineMIME('text/x-coffeescript', 'coffeescript'); site_pro/codemirror-3.1/mode/sql/0000755000000000000000000000000012111430706015562 5ustar rootrootsite_pro/codemirror-3.1/mode/sql/index.html0000644000000000000000000000432312111430706017561 0ustar rootroot SQL Mode for CodeMirror

SQL Mode for CodeMirror

MIME types defined: text/x-sql, text/x-mysql, text/x-mariadb, text/x-plsql.

Tests: normal, verbose.

site_pro/codemirror-3.1/mode/sql/sql.js0000644000000000000000000004361512111430706016730 0ustar rootrootCodeMirror.defineMode("sql", function(config, parserConfig) { "use strict"; var client = parserConfig.client || {}, atoms = parserConfig.atoms || {"false": true, "true": true, "null": true}, builtin = parserConfig.builtin || {}, keywords = parserConfig.keywords, operatorChars = parserConfig.operatorChars || /^[*+\-%<>!=&|~^]/, support = parserConfig.support || {}, hooks = parserConfig.hooks || {}, dateSQL = parserConfig.dateSQL || {"date" : true, "time" : true, "timestamp" : true}; function tokenBase(stream, state) { var ch = stream.next(); // call hooks from the mime type if (hooks[ch]) { var result = hooks[ch](stream, state); if (result !== false) return result; } if ((ch == "0" && stream.match(/^[xX][0-9a-fA-F]+/)) || (ch == "x" || ch == "X") && stream.match(/^'[0-9a-fA-F]+'/)) { // hex return "number"; } else if (((ch == "b" || ch == "B") && stream.match(/^'[01]+'/)) || (ch == "0" && stream.match(/^b[01]+/))) { // bitstring return "number"; } else if (ch.charCodeAt(0) > 47 && ch.charCodeAt(0) < 58) { // numbers stream.match(/^[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/); return "number"; } else if (ch == "?" && (stream.eatSpace() || stream.eol() || stream.eat(";"))) { // placeholders return "variable-3"; } else if (ch == '"' || ch == "'") { // strings state.tokenize = tokenLiteral(ch); return state.tokenize(stream, state); } else if (/^[\(\),\;\[\]]/.test(ch)) { // no highlightning return null; } else if (ch == "#" || (ch == "-" && stream.eat("-") && stream.eat(" "))) { // 1-line comments stream.skipToEnd(); return "comment"; } else if (ch == "/" && stream.eat("*")) { // multi-line comments state.tokenize = tokenComment; return state.tokenize(stream, state); } else if (ch == ".") { // .1 for 0.1 if (stream.match(/^[0-9eE]+/) && support.zerolessFloat == true) { return "number"; } // .table_name (ODBC) if (stream.match(/^[a-zA-Z_]+/) && support.ODBCdotTable == true) { return "variable-2"; } } else if (operatorChars.test(ch)) { // operators stream.eatWhile(operatorChars); return null; } else if (ch == '{' && (stream.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || stream.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/))) { // dates (weird ODBC syntax) return "number"; } else { stream.eatWhile(/^[_\w\d]/); var word = stream.current().toLowerCase(); // dates (standard SQL syntax) if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+"[^"]*"/))) return "number"; if (atoms.hasOwnProperty(word)) return "atom"; if (builtin.hasOwnProperty(word)) return "builtin"; if (keywords.hasOwnProperty(word)) return "keyword"; if (client.hasOwnProperty(word)) return "string-2"; return null; } } // 'string', with char specified in quote escaped by '\' function tokenLiteral(quote) { return function(stream, state) { var escaped = false, ch; while ((ch = stream.next()) != null) { if (ch == quote && !escaped) { state.tokenize = tokenBase; break; } escaped = !escaped && ch == "\\"; } return "string"; }; } function tokenComment(stream, state) { while (true) { if (stream.skipTo("*")) { stream.next(); if (stream.eat("/")) { state.tokenize = tokenBase; break; } } else { stream.skipToEnd(); break; } } return "comment"; } function pushContext(stream, state, type) { state.context = { prev: state.context, indent: stream.indentation(), col: stream.column(), type: type }; } function popContext(state) { state.indent = state.context.indent; state.context = state.context.prev; } return { startState: function() { return {tokenize: tokenBase, context: null}; }, token: function(stream, state) { if (stream.sol()) { if (state.context && state.context.align == null) state.context.align = false; } if (stream.eatSpace()) return null; var style = state.tokenize(stream, state); if (style == "comment") return style; if (state.context && state.context.align == null) state.context.align = true; var tok = stream.current(); if (tok == "(") pushContext(stream, state, ")"); else if (tok == "[") pushContext(stream, state, "]"); else if (state.context && state.context.type == tok) popContext(state); return style; }, indent: function(state, textAfter) { var cx = state.context; if (!cx) return CodeMirror.Pass; if (cx.align) return cx.col + (textAfter.charAt(0) == cx.type ? 0 : 1); else return cx.indent + config.indentUnit; } }; }); (function() { "use strict"; // `identifier` function hookIdentifier(stream) { var escaped = false, ch; while ((ch = stream.next()) != null) { if (ch == "`" && !escaped) return "variable-2"; escaped = !escaped && ch == "`"; } return null; } // variable token function hookVar(stream) { // variables // @@ and prefix if (stream.eat("@")) { stream.match(/^session\./); stream.match(/^local\./); stream.match(/^global\./); } if (stream.eat("'")) { stream.match(/^.*'/); return "variable-2"; } else if (stream.eat('"')) { stream.match(/^.*"/); return "variable-2"; } else if (stream.eat("`")) { stream.match(/^.*`/); return "variable-2"; } else if (stream.match(/^[0-9a-zA-Z$\.\_]+/)) { return "variable-2"; } return null; }; // short client keyword token function hookClient(stream) { // \g, etc return stream.match(/^[a-zA-Z]\b/) ? "variable-2" : null; } var sqlKeywords = "alter and as asc between by count create delete desc distinct drop from having in insert into is join like not on or order select set table union update values where "; function set(str) { var obj = {}, words = str.split(" "); for (var i = 0; i < words.length; ++i) obj[words[i]] = true; return obj; } CodeMirror.defineMIME("text/x-sql", { name: "sql", keywords: set(sqlKeywords + "begin"), builtin: set("bool boolean bit blob enum long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision real date datetime year unsigned signed decimal numeric"), atoms: set("false true null unknown"), operatorChars: /^[*+\-%<>!=]/, dateSQL: set("date time timestamp"), support: set("ODBCdotTable") }); CodeMirror.defineMIME("text/x-mysql", { name: "sql", client: set("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"), keywords: set(sqlKeywords + "accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general global grant grants group groupby_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"), builtin: set("bool boolean bit blob decimal double enum float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"), atoms: set("false true null unknown"), operatorChars: /^[*+\-%<>!=&|^]/, dateSQL: set("date time timestamp"), support: set("ODBCdotTable zerolessFloat"), hooks: { "@": hookVar, "`": hookIdentifier, "\\": hookClient } }); CodeMirror.defineMIME("text/x-mariadb", { name: "sql", client: set("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"), keywords: set(sqlKeywords + "accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated global grant grants group groupby_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"), builtin: set("bool boolean bit blob decimal double enum float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"), atoms: set("false true null unknown"), operatorChars: /^[*+\-%<>!=&|^]/, dateSQL: set("date time timestamp"), support: set("ODBCdotTable zerolessFloat"), hooks: { "@": hookVar, "`": hookIdentifier, "\\": hookClient } }); // this is based on Peter Raganitsch's 'plsql' mode CodeMirror.defineMIME("text/x-plsql", { name: "sql", client: set("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"), keywords: set("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"), functions: set("abs acos add_months ascii asin atan atan2 average bfilename ceil chartorowid chr concat convert cos cosh count decode deref dual dump dup_val_on_index empty error exp false floor found glb greatest hextoraw initcap instr instrb isopen last_day least lenght lenghtb ln lower lpad ltrim lub make_ref max min mod months_between new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null nvl others power rawtohex reftohex round rowcount rowidtochar rpad rtrim sign sin sinh soundex sqlcode sqlerrm sqrt stddev substr substrb sum sysdate tan tanh to_char to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid upper user userenv variance vsize"), builtin: set("bfile blob character clob dec float int integer mlslabel natural naturaln nchar nclob number numeric nvarchar2 real rowtype signtype smallint string varchar varchar2"), operatorChars: /^[*+\-%<>!=~]/, dateSQL: set("date time timestamp") }); }()); site_pro/codemirror-3.1/mode/xquery/0000755000000000000000000000000012111430706016320 5ustar rootrootsite_pro/codemirror-3.1/mode/xquery/test.js0000644000000000000000000001156412111430706017644 0ustar rootroot// Don't take these too seriously -- the expected results appear to be // based on the results of actual runs without any serious manual // verification. If a change you made causes them to fail, the test is // as likely to wrong as the code. (function() { var mode = CodeMirror.getMode({tabSize: 4}, "xquery"); function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } MT("eviltest", "[keyword xquery] [keyword version] [variable "1][keyword .][atom 0][keyword -][variable ml"][def&variable ;] [comment (: this is : a \"comment\" :)]", " [keyword let] [variable $let] [keyword :=] [variable <x] [variable attr][keyword =][variable "value">"test"<func>][def&variable ;function]() [variable $var] {[keyword function]()} {[variable $var]}[variable <][keyword /][variable func><][keyword /][variable x>]", " [keyword let] [variable $joe][keyword :=][atom 1]", " [keyword return] [keyword element] [variable element] {", " [keyword attribute] [variable attribute] { [atom 1] },", " [keyword element] [variable test] { [variable 'a'] }, [keyword attribute] [variable foo] { [variable "bar"] },", " [def&variable fn:doc]()[[ [variable foo][keyword /][variable @bar] [keyword eq] [variable $let] ]],", " [keyword //][variable x] } [comment (: a more 'evil' test :)]", " [comment (: Modified Blakeley example (: with nested comment :) ... :)]", " [keyword declare] [keyword private] [keyword function] [def&variable local:declare]() {()}[variable ;]", " [keyword declare] [keyword private] [keyword function] [def&variable local:private]() {()}[variable ;]", " [keyword declare] [keyword private] [keyword function] [def&variable local:function]() {()}[variable ;]", " [keyword declare] [keyword private] [keyword function] [def&variable local:local]() {()}[variable ;]", " [keyword let] [variable $let] [keyword :=] [variable <let>let] [variable $let] [keyword :=] [variable "let"<][keyword /let][variable >]", " [keyword return] [keyword element] [variable element] {", " [keyword attribute] [variable attribute] { [keyword try] { [def&variable xdmp:version]() } [keyword catch]([variable $e]) { [def&variable xdmp:log]([variable $e]) } },", " [keyword attribute] [variable fn:doc] { [variable "bar"] [variable castable] [keyword as] [atom xs:string] },", " [keyword element] [variable text] { [keyword text] { [variable "text"] } },", " [def&variable fn:doc]()[[ [qualifier child::][variable eq][keyword /]([variable @bar] [keyword |] [qualifier attribute::][variable attribute]) [keyword eq] [variable $let] ]],", " [keyword //][variable fn:doc]", " }"); MT("testEmptySequenceKeyword", "[string \"foo\"] [keyword instance] [keyword of] [keyword empty-sequence]()"); MT("testMultiAttr", "[tag

][variable hello] [variable world][tag

]"); MT("test namespaced variable", "[keyword declare] [keyword namespace] [variable e] [keyword =] [string \"http://example.com/ANamespace\"][variable ;declare] [keyword variable] [variable $e:exampleComThisVarIsNotRecognized] [keyword as] [keyword element]([keyword *]) [variable external;]"); MT("test EQName variable", "[keyword declare] [keyword variable] [variable $\"http://www.example.com/ns/my\":var] [keyword :=] [atom 12][variable ;]", "[tag ]{[variable $\"http://www.example.com/ns/my\":var]}[tag ]"); MT("test EQName function", "[keyword declare] [keyword function] [def&variable \"http://www.example.com/ns/my\":fn] ([variable $a] [keyword as] [atom xs:integer]) [keyword as] [atom xs:integer] {", " [variable $a] [keyword +] [atom 2]", "}[variable ;]", "[tag ]{[def&variable \"http://www.example.com/ns/my\":fn]([atom 12])}[tag ]"); MT("test EQName function with single quotes", "[keyword declare] [keyword function] [def&variable 'http://www.example.com/ns/my':fn] ([variable $a] [keyword as] [atom xs:integer]) [keyword as] [atom xs:integer] {", " [variable $a] [keyword +] [atom 2]", "}[variable ;]", "[tag ]{[def&variable 'http://www.example.com/ns/my':fn]([atom 12])}[tag ]"); MT("testProcessingInstructions", "[def&variable data]([comment&meta ]) [keyword instance] [keyword of] [atom xs:string]"); MT("testQuoteEscapeDouble", "[keyword let] [variable $rootfolder] [keyword :=] [string \"c:\\builds\\winnt\\HEAD\\qa\\scripts\\\"]", "[keyword let] [variable $keysfolder] [keyword :=] [def&variable concat]([variable $rootfolder], [string \"keys\\\"])"); })(); site_pro/codemirror-3.1/mode/xquery/index.html0000644000000000000000000002231112111430706020314 0ustar rootroot CodeMirror: XQuery mode

CodeMirror: XQuery mode

MIME types defined: application/xquery.

Development of the CodeMirror XQuery mode was sponsored by MarkLogic and developed by Mike Brevoort.

site_pro/codemirror-3.1/mode/xquery/LICENSE0000644000000000000000000000212512111430706017325 0ustar rootrootCopyright (C) 2011 by MarkLogic Corporation Author: Mike Brevoort Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.site_pro/codemirror-3.1/mode/xquery/xquery.js0000644000000000000000000003707412111430706020226 0ustar rootroot/* Copyright (C) 2011 by MarkLogic Corporation Author: Mike Brevoort Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ CodeMirror.defineMode("xquery", function() { // The keywords object is set to the result of this self executing // function. Each keyword is a property of the keywords object whose // value is {type: atype, style: astyle} var keywords = function(){ // conveinence functions used to build keywords object function kw(type) {return {type: type, style: "keyword"};} var A = kw("keyword a") , B = kw("keyword b") , C = kw("keyword c") , operator = kw("operator") , atom = {type: "atom", style: "atom"} , punctuation = {type: "punctuation", style: null} , qualifier = {type: "axis_specifier", style: "qualifier"}; // kwObj is what is return from this function at the end var kwObj = { 'if': A, 'switch': A, 'while': A, 'for': A, 'else': B, 'then': B, 'try': B, 'finally': B, 'catch': B, 'element': C, 'attribute': C, 'let': C, 'implements': C, 'import': C, 'module': C, 'namespace': C, 'return': C, 'super': C, 'this': C, 'throws': C, 'where': C, 'private': C, ',': punctuation, 'null': atom, 'fn:false()': atom, 'fn:true()': atom }; // a list of 'basic' keywords. For each add a property to kwObj with the value of // {type: basic[i], style: "keyword"} e.g. 'after' --> {type: "after", style: "keyword"} var basic = ['after','ancestor','ancestor-or-self','and','as','ascending','assert','attribute','before', 'by','case','cast','child','comment','declare','default','define','descendant','descendant-or-self', 'descending','document','document-node','element','else','eq','every','except','external','following', 'following-sibling','follows','for','function','if','import','in','instance','intersect','item', 'let','module','namespace','node','node','of','only','or','order','parent','precedes','preceding', 'preceding-sibling','processing-instruction','ref','return','returns','satisfies','schema','schema-element', 'self','some','sortby','stable','text','then','to','treat','typeswitch','union','variable','version','where', 'xquery', 'empty-sequence']; for(var i=0, l=basic.length; i < l; i++) { kwObj[basic[i]] = kw(basic[i]);}; // a list of types. For each add a property to kwObj with the value of // {type: "atom", style: "atom"} var types = ['xs:string', 'xs:float', 'xs:decimal', 'xs:double', 'xs:integer', 'xs:boolean', 'xs:date', 'xs:dateTime', 'xs:time', 'xs:duration', 'xs:dayTimeDuration', 'xs:time', 'xs:yearMonthDuration', 'numeric', 'xs:hexBinary', 'xs:base64Binary', 'xs:anyURI', 'xs:QName', 'xs:byte','xs:boolean','xs:anyURI','xf:yearMonthDuration']; for(var i=0, l=types.length; i < l; i++) { kwObj[types[i]] = atom;}; // each operator will add a property to kwObj with value of {type: "operator", style: "keyword"} var operators = ['eq', 'ne', 'lt', 'le', 'gt', 'ge', ':=', '=', '>', '>=', '<', '<=', '.', '|', '?', 'and', 'or', 'div', 'idiv', 'mod', '*', '/', '+', '-']; for(var i=0, l=operators.length; i < l; i++) { kwObj[operators[i]] = operator;}; // each axis_specifiers will add a property to kwObj with value of {type: "axis_specifier", style: "qualifier"} var axis_specifiers = ["self::", "attribute::", "child::", "descendant::", "descendant-or-self::", "parent::", "ancestor::", "ancestor-or-self::", "following::", "preceding::", "following-sibling::", "preceding-sibling::"]; for(var i=0, l=axis_specifiers.length; i < l; i++) { kwObj[axis_specifiers[i]] = qualifier; }; return kwObj; }(); // Used as scratch variables to communicate multiple values without // consing up tons of objects. var type, content; function ret(tp, style, cont) { type = tp; content = cont; return style; } function chain(stream, state, f) { state.tokenize = f; return f(stream, state); } // the primary mode tokenizer function tokenBase(stream, state) { var ch = stream.next(), mightBeFunction = false, isEQName = isEQNameAhead(stream); // an XML tag (if not in some sub, chained tokenizer) if (ch == "<") { if(stream.match("!--", true)) return chain(stream, state, tokenXMLComment); if(stream.match("![CDATA", false)) { state.tokenize = tokenCDATA; return ret("tag", "tag"); } if(stream.match("?", false)) { return chain(stream, state, tokenPreProcessing); } var isclose = stream.eat("/"); stream.eatSpace(); var tagName = "", c; while ((c = stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) tagName += c; return chain(stream, state, tokenTag(tagName, isclose)); } // start code block else if(ch == "{") { pushStateStack(state,{ type: "codeblock"}); return ret("", null); } // end code block else if(ch == "}") { popStateStack(state); return ret("", null); } // if we're in an XML block else if(isInXmlBlock(state)) { if(ch == ">") return ret("tag", "tag"); else if(ch == "/" && stream.eat(">")) { popStateStack(state); return ret("tag", "tag"); } else return ret("word", "variable"); } // if a number else if (/\d/.test(ch)) { stream.match(/^\d*(?:\.\d*)?(?:E[+\-]?\d+)?/); return ret("number", "atom"); } // comment start else if (ch === "(" && stream.eat(":")) { pushStateStack(state, { type: "comment"}); return chain(stream, state, tokenComment); } // quoted string else if ( !isEQName && (ch === '"' || ch === "'")) return chain(stream, state, tokenString(ch)); // variable else if(ch === "$") { return chain(stream, state, tokenVariable); } // assignment else if(ch ===":" && stream.eat("=")) { return ret("operator", "keyword"); } // open paren else if(ch === "(") { pushStateStack(state, { type: "paren"}); return ret("", null); } // close paren else if(ch === ")") { popStateStack(state); return ret("", null); } // open paren else if(ch === "[") { pushStateStack(state, { type: "bracket"}); return ret("", null); } // close paren else if(ch === "]") { popStateStack(state); return ret("", null); } else { var known = keywords.propertyIsEnumerable(ch) && keywords[ch]; // if there's a EQName ahead, consume the rest of the string portion, it's likely a function if(isEQName && ch === '\"') while(stream.next() !== '"'){} if(isEQName && ch === '\'') while(stream.next() !== '\''){} // gobble up a word if the character is not known if(!known) stream.eatWhile(/[\w\$_-]/); // gobble a colon in the case that is a lib func type call fn:doc var foundColon = stream.eat(":"); // if there's not a second colon, gobble another word. Otherwise, it's probably an axis specifier // which should get matched as a keyword if(!stream.eat(":") && foundColon) { stream.eatWhile(/[\w\$_-]/); } // if the next non whitespace character is an open paren, this is probably a function (if not a keyword of other sort) if(stream.match(/^[ \t]*\(/, false)) { mightBeFunction = true; } // is the word a keyword? var word = stream.current(); known = keywords.propertyIsEnumerable(word) && keywords[word]; // if we think it's a function call but not yet known, // set style to variable for now for lack of something better if(mightBeFunction && !known) known = {type: "function_call", style: "variable def"}; // if the previous word was element, attribute, axis specifier, this word should be the name of that if(isInXmlConstructor(state)) { popStateStack(state); return ret("word", "variable", word); } // as previously checked, if the word is element,attribute, axis specifier, call it an "xmlconstructor" and // push the stack so we know to look for it on the next word if(word == "element" || word == "attribute" || known.type == "axis_specifier") pushStateStack(state, {type: "xmlconstructor"}); // if the word is known, return the details of that else just call this a generic 'word' return known ? ret(known.type, known.style, word) : ret("word", "variable", word); } } // handle comments, including nested function tokenComment(stream, state) { var maybeEnd = false, maybeNested = false, nestedCount = 0, ch; while (ch = stream.next()) { if (ch == ")" && maybeEnd) { if(nestedCount > 0) nestedCount--; else { popStateStack(state); break; } } else if(ch == ":" && maybeNested) { nestedCount++; } maybeEnd = (ch == ":"); maybeNested = (ch == "("); } return ret("comment", "comment"); } // tokenizer for string literals // optionally pass a tokenizer function to set state.tokenize back to when finished function tokenString(quote, f) { return function(stream, state) { var ch; if(isInString(state) && stream.current() == quote) { popStateStack(state); if(f) state.tokenize = f; return ret("string", "string"); } pushStateStack(state, { type: "string", name: quote, tokenize: tokenString(quote, f) }); // if we're in a string and in an XML block, allow an embedded code block if(stream.match("{", false) && isInXmlAttributeBlock(state)) { state.tokenize = tokenBase; return ret("string", "string"); } while (ch = stream.next()) { if (ch == quote) { popStateStack(state); if(f) state.tokenize = f; break; } else { // if we're in a string and in an XML block, allow an embedded code block in an attribute if(stream.match("{", false) && isInXmlAttributeBlock(state)) { state.tokenize = tokenBase; return ret("string", "string"); } } } return ret("string", "string"); }; } // tokenizer for variables function tokenVariable(stream, state) { var isVariableChar = /[\w\$_-]/; // a variable may start with a quoted EQName so if the next character is quote, consume to the next quote if(stream.eat("\"")) { while(stream.next() !== '\"'){}; stream.eat(":"); } else { stream.eatWhile(isVariableChar); if(!stream.match(":=", false)) stream.eat(":"); } stream.eatWhile(isVariableChar); state.tokenize = tokenBase; return ret("variable", "variable"); } // tokenizer for XML tags function tokenTag(name, isclose) { return function(stream, state) { stream.eatSpace(); if(isclose && stream.eat(">")) { popStateStack(state); state.tokenize = tokenBase; return ret("tag", "tag"); } // self closing tag without attributes? if(!stream.eat("/")) pushStateStack(state, { type: "tag", name: name, tokenize: tokenBase}); if(!stream.eat(">")) { state.tokenize = tokenAttribute; return ret("tag", "tag"); } else { state.tokenize = tokenBase; } return ret("tag", "tag"); }; } // tokenizer for XML attributes function tokenAttribute(stream, state) { var ch = stream.next(); if(ch == "/" && stream.eat(">")) { if(isInXmlAttributeBlock(state)) popStateStack(state); if(isInXmlBlock(state)) popStateStack(state); return ret("tag", "tag"); } if(ch == ">") { if(isInXmlAttributeBlock(state)) popStateStack(state); return ret("tag", "tag"); } if(ch == "=") return ret("", null); // quoted string if (ch == '"' || ch == "'") return chain(stream, state, tokenString(ch, tokenAttribute)); if(!isInXmlAttributeBlock(state)) pushStateStack(state, { type: "attribute", name: name, tokenize: tokenAttribute}); stream.eat(/[a-zA-Z_:]/); stream.eatWhile(/[-a-zA-Z0-9_:.]/); stream.eatSpace(); // the case where the attribute has not value and the tag was closed if(stream.match(">", false) || stream.match("/", false)) { popStateStack(state); state.tokenize = tokenBase; } return ret("attribute", "attribute"); } // handle comments, including nested function tokenXMLComment(stream, state) { var ch; while (ch = stream.next()) { if (ch == "-" && stream.match("->", true)) { state.tokenize = tokenBase; return ret("comment", "comment"); } } } // handle CDATA function tokenCDATA(stream, state) { var ch; while (ch = stream.next()) { if (ch == "]" && stream.match("]", true)) { state.tokenize = tokenBase; return ret("comment", "comment"); } } } // handle preprocessing instructions function tokenPreProcessing(stream, state) { var ch; while (ch = stream.next()) { if (ch == "?" && stream.match(">", true)) { state.tokenize = tokenBase; return ret("comment", "comment meta"); } } } // functions to test the current context of the state function isInXmlBlock(state) { return isIn(state, "tag"); } function isInXmlAttributeBlock(state) { return isIn(state, "attribute"); } function isInXmlConstructor(state) { return isIn(state, "xmlconstructor"); } function isInString(state) { return isIn(state, "string"); } function isEQNameAhead(stream) { // assume we've already eaten a quote (") if(stream.current() === '"') return stream.match(/^[^\"]+\"\:/, false); else if(stream.current() === '\'') return stream.match(/^[^\"]+\'\:/, false); else return false; } function isIn(state, type) { return (state.stack.length && state.stack[state.stack.length - 1].type == type); } function pushStateStack(state, newState) { state.stack.push(newState); } function popStateStack(state) { state.stack.pop(); var reinstateTokenize = state.stack.length && state.stack[state.stack.length-1].tokenize; state.tokenize = reinstateTokenize || tokenBase; } // the interface for the mode API return { startState: function() { return { tokenize: tokenBase, cc: [], stack: [] }; }, token: function(stream, state) { if (stream.eatSpace()) return null; var style = state.tokenize(stream, state); return style; } }; }); CodeMirror.defineMIME("application/xquery", "xquery"); site_pro/codemirror-3.1/mode/clike/0000755000000000000000000000000012111430706016052 5ustar rootrootsite_pro/codemirror-3.1/mode/clike/scala.html0000644000000000000000000006734712111430706020044 0ustar rootroot CodeMirror: C-like mode
site_pro/codemirror-3.1/mode/clike/index.html0000644000000000000000000000610712111430706020053 0ustar rootroot CodeMirror: C-like mode

CodeMirror: C-like mode

Simple mode that tries to handle C-like languages as well as it can. Takes two configuration parameters: keywords, an object whose property names are the keywords in the language, and useCPP, which determines whether C preprocessor directives are recognized.

MIME types defined: text/x-csrc (C code), text/x-c++src (C++ code), text/x-java (Java code), text/x-csharp (C#).

site_pro/codemirror-3.1/mode/clike/clike.js0000644000000000000000000002620512111430706017504 0ustar rootrootCodeMirror.defineMode("clike", function(config, parserConfig) { var indentUnit = config.indentUnit, statementIndentUnit = parserConfig.statementIndentUnit || indentUnit, dontAlignCalls = parserConfig.dontAlignCalls, keywords = parserConfig.keywords || {}, builtin = parserConfig.builtin || {}, blockKeywords = parserConfig.blockKeywords || {}, atoms = parserConfig.atoms || {}, hooks = parserConfig.hooks || {}, multiLineStrings = parserConfig.multiLineStrings; var isOperatorChar = /[+\-*&%=<>!?|\/]/; var curPunc; function tokenBase(stream, state) { var ch = stream.next(); if (hooks[ch]) { var result = hooks[ch](stream, state); if (result !== false) return result; } if (ch == '"' || ch == "'") { state.tokenize = tokenString(ch); return state.tokenize(stream, state); } if (/[\[\]{}\(\),;\:\.]/.test(ch)) { curPunc = ch; return null; } if (/\d/.test(ch)) { stream.eatWhile(/[\w\.]/); return "number"; } if (ch == "/") { if (stream.eat("*")) { state.tokenize = tokenComment; return tokenComment(stream, state); } if (stream.eat("/")) { stream.skipToEnd(); return "comment"; } } if (isOperatorChar.test(ch)) { stream.eatWhile(isOperatorChar); return "operator"; } stream.eatWhile(/[\w\$_]/); var cur = stream.current(); if (keywords.propertyIsEnumerable(cur)) { if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; return "keyword"; } if (builtin.propertyIsEnumerable(cur)) { if (blockKeywords.propertyIsEnumerable(cur)) curPunc = "newstatement"; return "builtin"; } if (atoms.propertyIsEnumerable(cur)) return "atom"; return "variable"; } function tokenString(quote) { return function(stream, state) { var escaped = false, next, end = false; while ((next = stream.next()) != null) { if (next == quote && !escaped) {end = true; break;} escaped = !escaped && next == "\\"; } if (end || !(escaped || multiLineStrings)) state.tokenize = null; return "string"; }; } function tokenComment(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "/" && maybeEnd) { state.tokenize = null; break; } maybeEnd = (ch == "*"); } return "comment"; } function Context(indented, column, type, align, prev) { this.indented = indented; this.column = column; this.type = type; this.align = align; this.prev = prev; } function pushContext(state, col, type) { var indent = state.indented; if (state.context && state.context.type == "statement") indent = state.context.indented; return state.context = new Context(indent, col, type, null, state.context); } function popContext(state) { var t = state.context.type; if (t == ")" || t == "]" || t == "}") state.indented = state.context.indented; return state.context = state.context.prev; } // Interface return { startState: function(basecolumn) { return { tokenize: null, context: new Context((basecolumn || 0) - indentUnit, 0, "top", false), indented: 0, startOfLine: true }; }, token: function(stream, state) { var ctx = state.context; if (stream.sol()) { if (ctx.align == null) ctx.align = false; state.indented = stream.indentation(); state.startOfLine = true; } if (stream.eatSpace()) return null; curPunc = null; var style = (state.tokenize || tokenBase)(stream, state); if (style == "comment" || style == "meta") return style; if (ctx.align == null) ctx.align = true; if ((curPunc == ";" || curPunc == ":" || curPunc == ",") && ctx.type == "statement") popContext(state); else if (curPunc == "{") pushContext(state, stream.column(), "}"); else if (curPunc == "[") pushContext(state, stream.column(), "]"); else if (curPunc == "(") pushContext(state, stream.column(), ")"); else if (curPunc == "}") { while (ctx.type == "statement") ctx = popContext(state); if (ctx.type == "}") ctx = popContext(state); while (ctx.type == "statement") ctx = popContext(state); } else if (curPunc == ctx.type) popContext(state); else if (((ctx.type == "}" || ctx.type == "top") && curPunc != ';') || (ctx.type == "statement" && curPunc == "newstatement")) pushContext(state, stream.column(), "statement"); state.startOfLine = false; return style; }, indent: function(state, textAfter) { if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass; var ctx = state.context, firstChar = textAfter && textAfter.charAt(0); if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev; var closing = firstChar == ctx.type; if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit); else if (dontAlignCalls && ctx.type == ")" && !closing) return ctx.indented + statementIndentUnit; else if (ctx.align) return ctx.column + (closing ? 0 : 1); else return ctx.indented + (closing ? 0 : indentUnit); }, electricChars: "{}" }; }); (function() { function words(str) { var obj = {}, words = str.split(" "); for (var i = 0; i < words.length; ++i) obj[words[i]] = true; return obj; } var cKeywords = "auto if break int case long char register continue return default short do sizeof " + "double static else struct entry switch extern typedef float union for unsigned " + "goto while enum void const signed volatile"; function cppHook(stream, state) { if (!state.startOfLine) return false; for (;;) { if (stream.skipTo("\\")) { stream.next(); if (stream.eol()) { state.tokenize = cppHook; break; } } else { stream.skipToEnd(); state.tokenize = null; break; } } return "meta"; } // C#-style strings where "" escapes a quote. function tokenAtString(stream, state) { var next; while ((next = stream.next()) != null) { if (next == '"' && !stream.eat('"')) { state.tokenize = null; break; } } return "string"; } function mimes(ms, mode) { for (var i = 0; i < ms.length; ++i) CodeMirror.defineMIME(ms[i], mode); } mimes(["text/x-csrc", "text/x-c", "text/x-chdr"], { name: "clike", keywords: words(cKeywords), blockKeywords: words("case do else for if switch while struct"), atoms: words("null"), hooks: {"#": cppHook} }); mimes(["text/x-c++src", "text/x-c++hdr"], { name: "clike", keywords: words(cKeywords + " asm dynamic_cast namespace reinterpret_cast try bool explicit new " + "static_cast typeid catch operator template typename class friend private " + "this using const_cast inline public throw virtual delete mutable protected " + "wchar_t"), blockKeywords: words("catch class do else finally for if struct switch try while"), atoms: words("true false null"), hooks: {"#": cppHook} }); CodeMirror.defineMIME("text/x-java", { name: "clike", keywords: words("abstract assert boolean break byte case catch char class const continue default " + "do double else enum extends final finally float for goto if implements import " + "instanceof int interface long native new package private protected public " + "return short static strictfp super switch synchronized this throw throws transient " + "try void volatile while"), blockKeywords: words("catch class do else finally for if switch try while"), atoms: words("true false null"), hooks: { "@": function(stream) { stream.eatWhile(/[\w\$_]/); return "meta"; } } }); CodeMirror.defineMIME("text/x-csharp", { name: "clike", keywords: words("abstract as base break case catch checked class const continue" + " default delegate do else enum event explicit extern finally fixed for" + " foreach goto if implicit in interface internal is lock namespace new" + " operator out override params private protected public readonly ref return sealed" + " sizeof stackalloc static struct switch this throw try typeof unchecked" + " unsafe using virtual void volatile while add alias ascending descending dynamic from get" + " global group into join let orderby partial remove select set value var yield"), blockKeywords: words("catch class do else finally for foreach if struct switch try while"), builtin: words("Boolean Byte Char DateTime DateTimeOffset Decimal Double" + " Guid Int16 Int32 Int64 Object SByte Single String TimeSpan UInt16 UInt32" + " UInt64 bool byte char decimal double short int long object" + " sbyte float string ushort uint ulong"), atoms: words("true false null"), hooks: { "@": function(stream, state) { if (stream.eat('"')) { state.tokenize = tokenAtString; return tokenAtString(stream, state); } stream.eatWhile(/[\w\$_]/); return "meta"; } } }); CodeMirror.defineMIME("text/x-scala", { name: "clike", keywords: words( /* scala */ "abstract case catch class def do else extends false final finally for forSome if " + "implicit import lazy match new null object override package private protected return " + "sealed super this throw trait try trye type val var while with yield _ : = => <- <: " + "<% >: # @ " + /* package scala */ "assert assume require print println printf readLine readBoolean readByte readShort " + "readChar readInt readLong readFloat readDouble " + "AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either " + "Enumeration Equiv Error Exception Fractional Function IndexedSeq Integral Iterable " + "Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering " + "Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder " + "StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector :: #:: " + /* package java.lang */ "Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable " + "Compiler Double Exception Float Integer Long Math Number Object Package Pair Process " + "Runtime Runnable SecurityManager Short StackTraceElement StrictMath String " + "StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void" ), blockKeywords: words("catch class do else finally for forSome if match switch try while"), atoms: words("true false null"), hooks: { "@": function(stream) { stream.eatWhile(/[\w\$_]/); return "meta"; } } }); }()); site_pro/codemirror-3.1/mode/erlang/0000755000000000000000000000000012111430706016233 5ustar rootrootsite_pro/codemirror-3.1/mode/erlang/index.html0000644000000000000000000000346412111430706020237 0ustar rootroot CodeMirror: Erlang mode

CodeMirror: Erlang mode

MIME types defined: text/x-erlang.

site_pro/codemirror-3.1/mode/erlang/erlang.js0000644000000000000000000003175712111430706020056 0ustar rootroot// block; "begin", "case", "fun", "if", "receive", "try": closed by "end" // block internal; "after", "catch", "of" // guard; "when", closed by "->" // "->" opens a clause, closed by ";" or "." // "<<" opens a binary, closed by ">>" // "," appears in arglists, lists, tuples and terminates lines of code // "." resets indentation to 0 // obsolete; "cond", "let", "query" CodeMirror.defineMIME("text/x-erlang", "erlang"); CodeMirror.defineMode("erlang", function(cmCfg) { function rval(state,stream,type) { // distinguish between "." as terminator and record field operator if (type == "record") { state.context = "record"; }else{ state.context = false; } // remember last significant bit on last line for indenting if (type != "whitespace" && type != "comment") { state.lastToken = stream.current(); } // erlang -> CodeMirror tag switch (type) { case "atom": return "atom"; case "attribute": return "attribute"; case "builtin": return "builtin"; case "comment": return "comment"; case "fun": return "meta"; case "function": return "tag"; case "guard": return "property"; case "keyword": return "keyword"; case "macro": return "variable-2"; case "number": return "number"; case "operator": return "operator"; case "record": return "bracket"; case "string": return "string"; case "type": return "def"; case "variable": return "variable"; case "error": return "error"; case "separator": return null; case "open_paren": return null; case "close_paren": return null; default: return null; } } var typeWords = [ "-type", "-spec", "-export_type", "-opaque"]; var keywordWords = [ "after","begin","catch","case","cond","end","fun","if", "let","of","query","receive","try","when"]; var separatorWords = [ "->",";",":",".",","]; var operatorWords = [ "and","andalso","band","bnot","bor","bsl","bsr","bxor", "div","not","or","orelse","rem","xor"]; var symbolWords = [ "+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-"]; var openParenWords = [ "<<","(","[","{"]; var closeParenWords = [ "}","]",")",">>"]; var guardWords = [ "is_atom","is_binary","is_bitstring","is_boolean","is_float", "is_function","is_integer","is_list","is_number","is_pid", "is_port","is_record","is_reference","is_tuple", "atom","binary","bitstring","boolean","function","integer","list", "number","pid","port","record","reference","tuple"]; var bifWords = [ "abs","adler32","adler32_combine","alive","apply","atom_to_binary", "atom_to_list","binary_to_atom","binary_to_existing_atom", "binary_to_list","binary_to_term","bit_size","bitstring_to_list", "byte_size","check_process_code","contact_binary","crc32", "crc32_combine","date","decode_packet","delete_module", "disconnect_node","element","erase","exit","float","float_to_list", "garbage_collect","get","get_keys","group_leader","halt","hd", "integer_to_list","internal_bif","iolist_size","iolist_to_binary", "is_alive","is_atom","is_binary","is_bitstring","is_boolean", "is_float","is_function","is_integer","is_list","is_number","is_pid", "is_port","is_process_alive","is_record","is_reference","is_tuple", "length","link","list_to_atom","list_to_binary","list_to_bitstring", "list_to_existing_atom","list_to_float","list_to_integer", "list_to_pid","list_to_tuple","load_module","make_ref","module_loaded", "monitor_node","node","node_link","node_unlink","nodes","notalive", "now","open_port","pid_to_list","port_close","port_command", "port_connect","port_control","pre_loaded","process_flag", "process_info","processes","purge_module","put","register", "registered","round","self","setelement","size","spawn","spawn_link", "spawn_monitor","spawn_opt","split_binary","statistics", "term_to_binary","time","throw","tl","trunc","tuple_size", "tuple_to_list","unlink","unregister","whereis"]; // ignored for indenting purposes var ignoreWords = [ ",", ":", "catch", "after", "of", "cond", "let", "query"]; var smallRE = /[a-z_]/; var largeRE = /[A-Z_]/; var digitRE = /[0-9]/; var octitRE = /[0-7]/; var anumRE = /[a-z_A-Z0-9]/; var symbolRE = /[\+\-\*\/<>=\|:]/; var openParenRE = /[<\(\[\{]/; var closeParenRE = /[>\)\]\}]/; var sepRE = /[\->\.,:;]/; function isMember(element,list) { return (-1 < list.indexOf(element)); } function isPrev(stream,string) { var start = stream.start; var len = string.length; if (len <= start) { var word = stream.string.slice(start-len,start); return word == string; }else{ return false; } } function tokenize(stream, state) { if (stream.eatSpace()) { return rval(state,stream,"whitespace"); } // attributes and type specs if ((peekToken(state).token == "" || peekToken(state).token == ".") && stream.peek() == '-') { stream.next(); if (stream.eat(smallRE) && stream.eatWhile(anumRE)) { if (isMember(stream.current(),typeWords)) { return rval(state,stream,"type"); }else{ return rval(state,stream,"attribute"); } } stream.backUp(1); } var ch = stream.next(); // comment if (ch == '%') { stream.skipToEnd(); return rval(state,stream,"comment"); } // macro if (ch == '?') { stream.eatWhile(anumRE); return rval(state,stream,"macro"); } // record if ( ch == "#") { stream.eatWhile(anumRE); return rval(state,stream,"record"); } // char if ( ch == "$") { if (stream.next() == "\\") { if (!stream.eatWhile(octitRE)) { stream.next(); } } return rval(state,stream,"string"); } // quoted atom if (ch == '\'') { if (singleQuote(stream)) { return rval(state,stream,"atom"); }else{ return rval(state,stream,"error"); } } // string if (ch == '"') { if (doubleQuote(stream)) { return rval(state,stream,"string"); }else{ return rval(state,stream,"error"); } } // variable if (largeRE.test(ch)) { stream.eatWhile(anumRE); return rval(state,stream,"variable"); } // atom/keyword/BIF/function if (smallRE.test(ch)) { stream.eatWhile(anumRE); if (stream.peek() == "/") { stream.next(); if (stream.eatWhile(digitRE)) { return rval(state,stream,"fun"); // f/0 style fun }else{ stream.backUp(1); return rval(state,stream,"atom"); } } var w = stream.current(); if (isMember(w,keywordWords)) { pushToken(state,stream); return rval(state,stream,"keyword"); } if (stream.peek() == "(") { // 'put' and 'erlang:put' are bifs, 'foo:put' is not if (isMember(w,bifWords) && (!isPrev(stream,":") || isPrev(stream,"erlang:"))) { return rval(state,stream,"builtin"); }else{ return rval(state,stream,"function"); } } if (isMember(w,guardWords)) { return rval(state,stream,"guard"); } if (isMember(w,operatorWords)) { return rval(state,stream,"operator"); } if (stream.peek() == ":") { if (w == "erlang") { return rval(state,stream,"builtin"); } else { return rval(state,stream,"function"); } } return rval(state,stream,"atom"); } // number if (digitRE.test(ch)) { stream.eatWhile(digitRE); if (stream.eat('#')) { stream.eatWhile(digitRE); // 16#10 style integer } else { if (stream.eat('.')) { // float stream.eatWhile(digitRE); } if (stream.eat(/[eE]/)) { stream.eat(/[-+]/); // float with exponent stream.eatWhile(digitRE); } } return rval(state,stream,"number"); // normal integer } // open parens if (nongreedy(stream,openParenRE,openParenWords)) { pushToken(state,stream); return rval(state,stream,"open_paren"); } // close parens if (nongreedy(stream,closeParenRE,closeParenWords)) { pushToken(state,stream); return rval(state,stream,"close_paren"); } // separators if (greedy(stream,sepRE,separatorWords)) { // distinguish between "." as terminator and record field operator if (state.context == false) { pushToken(state,stream); } return rval(state,stream,"separator"); } // operators if (greedy(stream,symbolRE,symbolWords)) { return rval(state,stream,"operator"); } return rval(state,stream,null); } function nongreedy(stream,re,words) { if (stream.current().length == 1 && re.test(stream.current())) { stream.backUp(1); while (re.test(stream.peek())) { stream.next(); if (isMember(stream.current(),words)) { return true; } } stream.backUp(stream.current().length-1); } return false; } function greedy(stream,re,words) { if (stream.current().length == 1 && re.test(stream.current())) { while (re.test(stream.peek())) { stream.next(); } while (0 < stream.current().length) { if (isMember(stream.current(),words)) { return true; }else{ stream.backUp(1); } } stream.next(); } return false; } function doubleQuote(stream) { return quote(stream, '"', '\\'); } function singleQuote(stream) { return quote(stream,'\'','\\'); } function quote(stream,quoteChar,escapeChar) { while (!stream.eol()) { var ch = stream.next(); if (ch == quoteChar) { return true; }else if (ch == escapeChar) { stream.next(); } } return false; } function Token(stream) { this.token = stream ? stream.current() : ""; this.column = stream ? stream.column() : 0; this.indent = stream ? stream.indentation() : 0; } function myIndent(state,textAfter) { var indent = cmCfg.indentUnit; var outdentWords = ["after","catch"]; var token = (peekToken(state)).token; var wordAfter = takewhile(textAfter,/[^a-z]/); if (isMember(token,openParenWords)) { return (peekToken(state)).column+token.length; }else if (token == "." || token == ""){ return 0; }else if (token == "->") { if (wordAfter == "end") { return peekToken(state,2).column; }else if (peekToken(state,2).token == "fun") { return peekToken(state,2).column+indent; }else{ return (peekToken(state)).indent+indent; } }else if (isMember(wordAfter,outdentWords)) { return (peekToken(state)).indent; }else{ return (peekToken(state)).column+indent; } } function takewhile(str,re) { var m = str.match(re); return m ? str.slice(0,m.index) : str; } function popToken(state) { return state.tokenStack.pop(); } function peekToken(state,depth) { var len = state.tokenStack.length; var dep = (depth ? depth : 1); if (len < dep) { return new Token; }else{ return state.tokenStack[len-dep]; } } function pushToken(state,stream) { var token = stream.current(); var prev_token = peekToken(state).token; if (isMember(token,ignoreWords)) { return false; }else if (drop_both(prev_token,token)) { popToken(state); return false; }else if (drop_first(prev_token,token)) { popToken(state); return pushToken(state,stream); }else{ state.tokenStack.push(new Token(stream)); return true; } } function drop_first(open, close) { switch (open+" "+close) { case "when ->": return true; case "-> end": return true; case "-> .": return true; case ". .": return true; default: return false; } } function drop_both(open, close) { switch (open+" "+close) { case "( )": return true; case "[ ]": return true; case "{ }": return true; case "<< >>": return true; case "begin end": return true; case "case end": return true; case "fun end": return true; case "if end": return true; case "receive end": return true; case "try end": return true; case "-> ;": return true; default: return false; } } return { startState: function() { return {tokenStack: [], context: false, lastToken: null}; }, token: function(stream, state) { return tokenize(stream, state); }, indent: function(state, textAfter) { // console.log(state.tokenStack); return myIndent(state,textAfter); } }; }); site_pro/codemirror-3.1/mode/apl/0000755000000000000000000000000012111430706015537 5ustar rootrootsite_pro/codemirror-3.1/mode/apl/index.html0000644000000000000000000000350012111430706017532 0ustar rootroot CodeMirror: APL mode

CodeMirror: APL mode

Simple mode that tries to handle APL as well as it can.

It attempts to label functions/operators based upon monadic/dyadic usage (but this is far from fully fleshed out). This means there are meaningful classnames so hover states can have popups etc.

MIME types defined: text/apl (APL code)

site_pro/codemirror-3.1/mode/apl/apl.js0000644000000000000000000001033012111430706016646 0ustar rootrootCodeMirror.defineMode("apl", function() { var builtInOps = { ".": "innerProduct", "\\": "scan", "/": "reduce", "⌿": "reduce1Axis", "⍀": "scan1Axis", "¨": "each", "⍣": "power" }; var builtInFuncs = { "+": ["conjugate", "add"], "−": ["negate", "subtract"], "×": ["signOf", "multiply"], "÷": ["reciprocal", "divide"], "⌈": ["ceiling", "greaterOf"], "⌊": ["floor", "lesserOf"], "∣": ["absolute", "residue"], "⍳": ["indexGenerate", "indexOf"], "?": ["roll", "deal"], "⋆": ["exponentiate", "toThePowerOf"], "⍟": ["naturalLog", "logToTheBase"], "○": ["piTimes", "circularFuncs"], "!": ["factorial", "binomial"], "⌹": ["matrixInverse", "matrixDivide"], "<": [null, "lessThan"], "≤": [null, "lessThanOrEqual"], "=": [null, "equals"], ">": [null, "greaterThan"], "≥": [null, "greaterThanOrEqual"], "≠": [null, "notEqual"], "≡": ["depth", "match"], "≢": [null, "notMatch"], "∈": ["enlist", "membership"], "⍷": [null, "find"], "∪": ["unique", "union"], "∩": [null, "intersection"], "∼": ["not", "without"], "∨": [null, "or"], "∧": [null, "and"], "⍱": [null, "nor"], "⍲": [null, "nand"], "⍴": ["shapeOf", "reshape"], ",": ["ravel", "catenate"], "⍪": [null, "firstAxisCatenate"], "⌽": ["reverse", "rotate"], "⊖": ["axis1Reverse", "axis1Rotate"], "⍉": ["transpose", null], "↑": ["first", "take"], "↓": [null, "drop"], "⊂": ["enclose", "partitionWithAxis"], "⊃": ["diclose", "pick"], "⌷": [null, "index"], "⍋": ["gradeUp", null], "⍒": ["gradeDown", null], "⊤": ["encode", null], "⊥": ["decode", null], "⍕": ["format", "formatByExample"], "⍎": ["execute", null], "⊣": ["stop", "left"], "⊢": ["pass", "right"] }; var isOperator = /[\.\/⌿⍀¨⍣]/; var isNiladic = /⍬/; var isFunction = /[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/; var isArrow = /←/; var isComment = /[⍝#].*$/; var stringEater = function(type) { var prev; prev = false; return function(c) { prev = c; if (c === type) { return prev === "\\"; } return true; }; }; return { startState: function() { return { prev: false, func: false, op: false, string: false, escape: false }; }, token: function(stream, state) { var ch, funcName, word; if (stream.eatSpace()) { return null; } ch = stream.next(); if (ch === '"' || ch === "'") { stream.eatWhile(stringEater(ch)); stream.next(); state.prev = true; return "string"; } if (/[\[{\(]/.test(ch)) { state.prev = false; return null; } if (/[\]}\)]/.test(ch)) { state.prev = true; return null; } if (isNiladic.test(ch)) { state.prev = false; return "niladic"; } if (/[¯\d]/.test(ch)) { if (state.func) { state.func = false; state.prev = false; } else { state.prev = true; } stream.eatWhile(/[\w\.]/); return "number"; } if (isOperator.test(ch)) { return "operator apl-" + builtInOps[ch]; } if (isArrow.test(ch)) { return "apl-arrow"; } if (isFunction.test(ch)) { funcName = "apl-"; if (builtInFuncs[ch] != null) { if (state.prev) { funcName += builtInFuncs[ch][1]; } else { funcName += builtInFuncs[ch][0]; } } state.func = true; state.prev = false; return "function " + funcName; } if (isComment.test(ch)) { stream.skipToEnd(); return "comment"; } if (ch === "∘" && stream.peek() === ".") { stream.next(); return "function jot-dot"; } stream.eatWhile(/[\w\$_]/); word = stream.current(); state.prev = true; return "keyword"; } }; }); CodeMirror.defineMIME("text/apl", "apl"); site_pro/codemirror-3.1/mode/ntriples/0000755000000000000000000000000012111430706016623 5ustar rootrootsite_pro/codemirror-3.1/mode/ntriples/index.html0000644000000000000000000000200112111430706020611 0ustar rootroot CodeMirror: NTriples mode

CodeMirror: NTriples mode

MIME types defined: text/n-triples.

site_pro/codemirror-3.1/mode/ntriples/ntriples.js0000644000000000000000000001415512111430706021027 0ustar rootroot/********************************************************** * This script provides syntax highlighting support for * the Ntriples format. * Ntriples format specification: * http://www.w3.org/TR/rdf-testcases/#ntriples ***********************************************************/ /* The following expression defines the defined ASF grammar transitions. pre_subject -> { ( writing_subject_uri | writing_bnode_uri ) -> pre_predicate -> writing_predicate_uri -> pre_object -> writing_object_uri | writing_object_bnode | ( writing_object_literal -> writing_literal_lang | writing_literal_type ) -> post_object -> BEGIN } otherwise { -> ERROR } */ CodeMirror.defineMode("ntriples", function() { var Location = { PRE_SUBJECT : 0, WRITING_SUB_URI : 1, WRITING_BNODE_URI : 2, PRE_PRED : 3, WRITING_PRED_URI : 4, PRE_OBJ : 5, WRITING_OBJ_URI : 6, WRITING_OBJ_BNODE : 7, WRITING_OBJ_LITERAL : 8, WRITING_LIT_LANG : 9, WRITING_LIT_TYPE : 10, POST_OBJ : 11, ERROR : 12 }; function transitState(currState, c) { var currLocation = currState.location; var ret; // Opening. if (currLocation == Location.PRE_SUBJECT && c == '<') ret = Location.WRITING_SUB_URI; else if(currLocation == Location.PRE_SUBJECT && c == '_') ret = Location.WRITING_BNODE_URI; else if(currLocation == Location.PRE_PRED && c == '<') ret = Location.WRITING_PRED_URI; else if(currLocation == Location.PRE_OBJ && c == '<') ret = Location.WRITING_OBJ_URI; else if(currLocation == Location.PRE_OBJ && c == '_') ret = Location.WRITING_OBJ_BNODE; else if(currLocation == Location.PRE_OBJ && c == '"') ret = Location.WRITING_OBJ_LITERAL; // Closing. else if(currLocation == Location.WRITING_SUB_URI && c == '>') ret = Location.PRE_PRED; else if(currLocation == Location.WRITING_BNODE_URI && c == ' ') ret = Location.PRE_PRED; else if(currLocation == Location.WRITING_PRED_URI && c == '>') ret = Location.PRE_OBJ; else if(currLocation == Location.WRITING_OBJ_URI && c == '>') ret = Location.POST_OBJ; else if(currLocation == Location.WRITING_OBJ_BNODE && c == ' ') ret = Location.POST_OBJ; else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '"') ret = Location.POST_OBJ; else if(currLocation == Location.WRITING_LIT_LANG && c == ' ') ret = Location.POST_OBJ; else if(currLocation == Location.WRITING_LIT_TYPE && c == '>') ret = Location.POST_OBJ; // Closing typed and language literal. else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '@') ret = Location.WRITING_LIT_LANG; else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '^') ret = Location.WRITING_LIT_TYPE; // Spaces. else if( c == ' ' && ( currLocation == Location.PRE_SUBJECT || currLocation == Location.PRE_PRED || currLocation == Location.PRE_OBJ || currLocation == Location.POST_OBJ ) ) ret = currLocation; // Reset. else if(currLocation == Location.POST_OBJ && c == '.') ret = Location.PRE_SUBJECT; // Error else ret = Location.ERROR; currState.location=ret; } return { startState: function() { return { location : Location.PRE_SUBJECT, uris : [], anchors : [], bnodes : [], langs : [], types : [] }; }, token: function(stream, state) { var ch = stream.next(); if(ch == '<') { transitState(state, ch); var parsedURI = ''; stream.eatWhile( function(c) { if( c != '#' && c != '>' ) { parsedURI += c; return true; } return false;} ); state.uris.push(parsedURI); if( stream.match('#', false) ) return 'variable'; stream.next(); transitState(state, '>'); return 'variable'; } if(ch == '#') { var parsedAnchor = ''; stream.eatWhile(function(c) { if(c != '>' && c != ' ') { parsedAnchor+= c; return true; } return false;}); state.anchors.push(parsedAnchor); return 'variable-2'; } if(ch == '>') { transitState(state, '>'); return 'variable'; } if(ch == '_') { transitState(state, ch); var parsedBNode = ''; stream.eatWhile(function(c) { if( c != ' ' ) { parsedBNode += c; return true; } return false;}); state.bnodes.push(parsedBNode); stream.next(); transitState(state, ' '); return 'builtin'; } if(ch == '"') { transitState(state, ch); stream.eatWhile( function(c) { return c != '"'; } ); stream.next(); if( stream.peek() != '@' && stream.peek() != '^' ) { transitState(state, '"'); } return 'string'; } if( ch == '@' ) { transitState(state, '@'); var parsedLang = ''; stream.eatWhile(function(c) { if( c != ' ' ) { parsedLang += c; return true; } return false;}); state.langs.push(parsedLang); stream.next(); transitState(state, ' '); return 'string-2'; } if( ch == '^' ) { stream.next(); transitState(state, '^'); var parsedType = ''; stream.eatWhile(function(c) { if( c != '>' ) { parsedType += c; return true; } return false;} ); state.types.push(parsedType); stream.next(); transitState(state, '>'); return 'variable'; } if( ch == ' ' ) { transitState(state, ch); } if( ch == '.' ) { transitState(state, ch); } } }; }); CodeMirror.defineMIME("text/n-triples", "ntriples"); site_pro/codemirror-3.1/mode/tiki/0000755000000000000000000000000012111430706015723 5ustar rootrootsite_pro/codemirror-3.1/mode/tiki/index.html0000644000000000000000000000266012111430706017724 0ustar rootroot CodeMirror: Tiki wiki mode

CodeMirror: Tiki wiki mode

site_pro/codemirror-3.1/mode/tiki/tiki.js0000644000000000000000000001711212111430706017223 0ustar rootrootCodeMirror.defineMode('tiki', function(config) { function inBlock(style, terminator, returnTokenizer) { return function(stream, state) { while (!stream.eol()) { if (stream.match(terminator)) { state.tokenize = inText; break; } stream.next(); } if (returnTokenizer) state.tokenize = returnTokenizer; return style; }; } function inLine(style) { return function(stream, state) { while(!stream.eol()) { stream.next(); } state.tokenize = inText; return style; }; } function inText(stream, state) { function chain(parser) { state.tokenize = parser; return parser(stream, state); } var sol = stream.sol(); var ch = stream.next(); //non start of line switch (ch) { //switch is generally much faster than if, so it is used here case "{": //plugin stream.eat("/"); stream.eatSpace(); var tagName = ""; var c; while ((c = stream.eat(/[^\s\u00a0=\"\'\/?(}]/))) tagName += c; state.tokenize = inPlugin; return "tag"; break; case "_": //bold if (stream.eat("_")) { return chain(inBlock("strong", "__", inText)); } break; case "'": //italics if (stream.eat("'")) { // Italic text return chain(inBlock("em", "''", inText)); } break; case "(":// Wiki Link if (stream.eat("(")) { return chain(inBlock("variable-2", "))", inText)); } break; case "[":// Weblink return chain(inBlock("variable-3", "]", inText)); break; case "|": //table if (stream.eat("|")) { return chain(inBlock("comment", "||")); } break; case "-": if (stream.eat("=")) {//titleBar return chain(inBlock("header string", "=-", inText)); } else if (stream.eat("-")) {//deleted return chain(inBlock("error tw-deleted", "--", inText)); } break; case "=": //underline if (stream.match("==")) { return chain(inBlock("tw-underline", "===", inText)); } break; case ":": if (stream.eat(":")) { return chain(inBlock("comment", "::")); } break; case "^": //box return chain(inBlock("tw-box", "^")); break; case "~": //np if (stream.match("np~")) { return chain(inBlock("meta", "~/np~")); } break; } //start of line types if (sol) { switch (ch) { case "!": //header at start of line if (stream.match('!!!!!')) { return chain(inLine("header string")); } else if (stream.match('!!!!')) { return chain(inLine("header string")); } else if (stream.match('!!!')) { return chain(inLine("header string")); } else if (stream.match('!!')) { return chain(inLine("header string")); } else { return chain(inLine("header string")); } break; case "*": //unordered list line item, or
  • at start of line case "#": //ordered list line item, or
  • at start of line case "+": //ordered list line item, or
  • at start of line return chain(inLine("tw-listitem bracket")); break; } } //stream.eatWhile(/[&{]/); was eating up plugins, turned off to act less like html and more like tiki return null; } var indentUnit = config.indentUnit; // Return variables for tokenizers var pluginName, type; function inPlugin(stream, state) { var ch = stream.next(); var peek = stream.peek(); if (ch == "}") { state.tokenize = inText; //type = ch == ")" ? "endPlugin" : "selfclosePlugin"; inPlugin return "tag"; } else if (ch == "(" || ch == ")") { return "bracket"; } else if (ch == "=") { type = "equals"; if (peek == ">") { ch = stream.next(); peek = stream.peek(); } //here we detect values directly after equal character with no quotes if (!/[\'\"]/.test(peek)) { state.tokenize = inAttributeNoQuote(); } //end detect values return "operator"; } else if (/[\'\"]/.test(ch)) { state.tokenize = inAttribute(ch); return state.tokenize(stream, state); } else { stream.eatWhile(/[^\s\u00a0=\"\'\/?]/); return "keyword"; } } function inAttribute(quote) { return function(stream, state) { while (!stream.eol()) { if (stream.next() == quote) { state.tokenize = inPlugin; break; } } return "string"; }; } function inAttributeNoQuote() { return function(stream, state) { while (!stream.eol()) { var ch = stream.next(); var peek = stream.peek(); if (ch == " " || ch == "," || /[ )}]/.test(peek)) { state.tokenize = inPlugin; break; } } return "string"; }; } var curState, setStyle; function pass() { for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]); } function cont() { pass.apply(null, arguments); return true; } function pushContext(pluginName, startOfLine) { var noIndent = curState.context && curState.context.noIndent; curState.context = { prev: curState.context, pluginName: pluginName, indent: curState.indented, startOfLine: startOfLine, noIndent: noIndent }; } function popContext() { if (curState.context) curState.context = curState.context.prev; } function element(type) { if (type == "openPlugin") {curState.pluginName = pluginName; return cont(attributes, endplugin(curState.startOfLine));} else if (type == "closePlugin") { var err = false; if (curState.context) { err = curState.context.pluginName != pluginName; popContext(); } else { err = true; } if (err) setStyle = "error"; return cont(endcloseplugin(err)); } else if (type == "string") { if (!curState.context || curState.context.name != "!cdata") pushContext("!cdata"); if (curState.tokenize == inText) popContext(); return cont(); } else return cont(); } function endplugin(startOfLine) { return function(type) { if ( type == "selfclosePlugin" || type == "endPlugin" ) return cont(); if (type == "endPlugin") {pushContext(curState.pluginName, startOfLine); return cont();} return cont(); }; } function endcloseplugin(err) { return function(type) { if (err) setStyle = "error"; if (type == "endPlugin") return cont(); return pass(); }; } function attributes(type) { if (type == "keyword") {setStyle = "attribute"; return cont(attributes);} if (type == "equals") return cont(attvalue, attributes); return pass(); } function attvalue(type) { if (type == "keyword") {setStyle = "string"; return cont();} if (type == "string") return cont(attvaluemaybe); return pass(); } function attvaluemaybe(type) { if (type == "string") return cont(attvaluemaybe); else return pass(); } return { startState: function() { return {tokenize: inText, cc: [], indented: 0, startOfLine: true, pluginName: null, context: null}; }, token: function(stream, state) { if (stream.sol()) { state.startOfLine = true; state.indented = stream.indentation(); } if (stream.eatSpace()) return null; setStyle = type = pluginName = null; var style = state.tokenize(stream, state); if ((style || type) && style != "comment") { curState = state; while (true) { var comb = state.cc.pop() || element; if (comb(type || style)) break; } } state.startOfLine = false; return setStyle || style; }, indent: function(state, textAfter) { var context = state.context; if (context && context.noIndent) return 0; if (context && /^{\//.test(textAfter)) context = context.prev; while (context && !context.startOfLine) context = context.prev; if (context) return context.indent + indentUnit; else return 0; }, electricChars: "/" }; }); //I figure, why not CodeMirror.defineMIME("text/tiki", "tiki"); site_pro/codemirror-3.1/mode/tiki/tiki.css0000644000000000000000000000067612111430706017406 0ustar rootroot.cm-tw-syntaxerror { color: #FFFFFF; background-color: #990000; } .cm-tw-deleted { text-decoration: line-through; } .cm-tw-header5 { font-weight: bold; } .cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/ padding-left: 10px; } .cm-tw-box { border-top-width: 0px ! important; border-style: solid; border-width: 1px; border-color: inherit; } .cm-tw-underline { text-decoration: underline; }site_pro/codemirror-3.1/mode/sass/0000755000000000000000000000000012111430706015734 5ustar rootrootsite_pro/codemirror-3.1/mode/sass/sass.js0000644000000000000000000002127112111430706017246 0ustar rootrootCodeMirror.defineMode("sass", function(config) { var tokenRegexp = function(words){ return new RegExp("^" + words.join("|")); }; var tags = ["&", "a","abbr","acronym","address","applet","area","article","aside","audio","b","base","basefont","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","command","datalist","dd","del","details","dfn","dir","div","dl","dt","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","keygen","kbd","label","legend","li","link","map","mark","menu","meta","meter","nav","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strike","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","tt","u","ul","var","video","wbr"]; var keywords = ["true", "false", "null", "auto"]; var keywordsRegexp = new RegExp("^" + keywords.join("|")); var operators = ["\\(", "\\)", "=", ">", "<", "==", ">=", "<=", "\\+", "-", "\\!=", "/", "\\*", "%", "and", "or", "not"]; var opRegexp = tokenRegexp(operators); function htmlTag(val){ for(var i=0; i CodeMirror: Sass mode

    CodeMirror: Sass mode

    MIME types defined: text/x-sass.

    site_pro/codemirror-3.1/mode/vbscript/0000755000000000000000000000000012111430706016617 5ustar rootrootsite_pro/codemirror-3.1/mode/vbscript/index.html0000644000000000000000000000220712111430706020615 0ustar rootroot CodeMirror: VBScript mode

    CodeMirror: VBScript mode

    MIME types defined: text/vbscript.

    site_pro/codemirror-3.1/mode/vbscript/vbscript.js0000644000000000000000000000154312111430706021014 0ustar rootrootCodeMirror.defineMode("vbscript", function() { var regexVBScriptKeyword = /^(?:Call|Case|CDate|Clear|CInt|CLng|Const|CStr|Description|Dim|Do|Each|Else|ElseIf|End|Err|Error|Exit|False|For|Function|If|LCase|Loop|LTrim|Next|Nothing|Now|Number|On|Preserve|Quit|ReDim|Resume|RTrim|Select|Set|Sub|Then|To|Trim|True|UBound|UCase|Until|VbCr|VbCrLf|VbLf|VbTab)$/im; return { token: function(stream) { if (stream.eatSpace()) return null; var ch = stream.next(); if (ch == "'") { stream.skipToEnd(); return "comment"; } if (ch == '"') { stream.skipTo('"'); return "string"; } if (/\w/.test(ch)) { stream.eatWhile(/\w/); if (regexVBScriptKeyword.test(stream.current())) return "keyword"; } return null; } }; }); CodeMirror.defineMIME("text/vbscript", "vbscript"); site_pro/codemirror-3.1/mode/tiddlywiki/0000755000000000000000000000000012111430706017140 5ustar rootrootsite_pro/codemirror-3.1/mode/tiddlywiki/tiddlywiki.js0000644000000000000000000002113712111430706021657 0ustar rootroot/*** |''Name''|tiddlywiki.js| |''Description''|Enables TiddlyWikiy syntax highlighting using CodeMirror| |''Author''|PMario| |''Version''|0.1.7| |''Status''|''stable''| |''Source''|[[GitHub|https://github.com/pmario/CodeMirror2/blob/tw-syntax/mode/tiddlywiki]]| |''Documentation''|http://codemirror.tiddlyspace.com/| |''License''|[[MIT License|http://www.opensource.org/licenses/mit-license.php]]| |''CoreVersion''|2.5.0| |''Requires''|codemirror.js| |''Keywords''|syntax highlighting color code mirror codemirror| ! Info CoreVersion parameter is needed for TiddlyWiki only! ***/ //{{{ CodeMirror.defineMode("tiddlywiki", function () { // Tokenizer var textwords = {}; var keywords = function () { function kw(type) { return { type: type, style: "macro"}; } return { "allTags": kw('allTags'), "closeAll": kw('closeAll'), "list": kw('list'), "newJournal": kw('newJournal'), "newTiddler": kw('newTiddler'), "permaview": kw('permaview'), "saveChanges": kw('saveChanges'), "search": kw('search'), "slider": kw('slider'), "tabs": kw('tabs'), "tag": kw('tag'), "tagging": kw('tagging'), "tags": kw('tags'), "tiddler": kw('tiddler'), "timeline": kw('timeline'), "today": kw('today'), "version": kw('version'), "option": kw('option'), "with": kw('with'), "filter": kw('filter') }; }(); var isSpaceName = /[\w_\-]/i, reHR = /^\-\-\-\-+$/, //
    reWikiCommentStart = /^\/\*\*\*$/, // /*** reWikiCommentStop = /^\*\*\*\/$/, // ***/ reBlockQuote = /^<<<$/, reJsCodeStart = /^\/\/\{\{\{$/, // //{{{ js block start reJsCodeStop = /^\/\/\}\}\}$/, // //}}} js stop reXmlCodeStart = /^$/, // xml block start reXmlCodeStop = /^$/, // xml stop reCodeBlockStart = /^\{\{\{$/, // {{{ TW text div block start reCodeBlockStop = /^\}\}\}$/, // }}} TW text stop reUntilCodeStop = /.*?\}\}\}/; function chain(stream, state, f) { state.tokenize = f; return f(stream, state); } // Used as scratch variables to communicate multiple values without // consing up tons of objects. var type, content; function ret(tp, style, cont) { type = tp; content = cont; return style; } function jsTokenBase(stream, state) { var sol = stream.sol(), ch; state.block = false; // indicates the start of a code block. ch = stream.peek(); // don't eat, to make matching simpler // check start of blocks if (sol && /[<\/\*{}\-]/.test(ch)) { if (stream.match(reCodeBlockStart)) { state.block = true; return chain(stream, state, twTokenCode); } if (stream.match(reBlockQuote)) { return ret('quote', 'quote'); } if (stream.match(reWikiCommentStart) || stream.match(reWikiCommentStop)) { return ret('code', 'comment'); } if (stream.match(reJsCodeStart) || stream.match(reJsCodeStop) || stream.match(reXmlCodeStart) || stream.match(reXmlCodeStop)) { return ret('code', 'comment'); } if (stream.match(reHR)) { return ret('hr', 'hr'); } } // sol ch = stream.next(); if (sol && /[\/\*!#;:>|]/.test(ch)) { if (ch == "!") { // tw header stream.skipToEnd(); return ret("header", "header"); } if (ch == "*") { // tw list stream.eatWhile('*'); return ret("list", "comment"); } if (ch == "#") { // tw numbered list stream.eatWhile('#'); return ret("list", "comment"); } if (ch == ";") { // definition list, term stream.eatWhile(';'); return ret("list", "comment"); } if (ch == ":") { // definition list, description stream.eatWhile(':'); return ret("list", "comment"); } if (ch == ">") { // single line quote stream.eatWhile(">"); return ret("quote", "quote"); } if (ch == '|') { return ret('table', 'header'); } } if (ch == '{' && stream.match(/\{\{/)) { return chain(stream, state, twTokenCode); } // rudimentary html:// file:// link matching. TW knows much more ... if (/[hf]/i.test(ch)) { if (/[ti]/i.test(stream.peek()) && stream.match(/\b(ttps?|tp|ile):\/\/[\-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i)) { return ret("link", "link"); } } // just a little string indicator, don't want to have the whole string covered if (ch == '"') { return ret('string', 'string'); } if (ch == '~') { // _no_ CamelCase indicator should be bold return ret('text', 'brace'); } if (/[\[\]]/.test(ch)) { // check for [[..]] if (stream.peek() == ch) { stream.next(); return ret('brace', 'brace'); } } if (ch == "@") { // check for space link. TODO fix @@...@@ highlighting stream.eatWhile(isSpaceName); return ret("link", "link"); } if (/\d/.test(ch)) { // numbers stream.eatWhile(/\d/); return ret("number", "number"); } if (ch == "/") { // tw invisible comment if (stream.eat("%")) { return chain(stream, state, twTokenComment); } else if (stream.eat("/")) { // return chain(stream, state, twTokenEm); } } if (ch == "_") { // tw underline if (stream.eat("_")) { return chain(stream, state, twTokenUnderline); } } // strikethrough and mdash handling if (ch == "-") { if (stream.eat("-")) { // if strikethrough looks ugly, change CSS. if (stream.peek() != ' ') return chain(stream, state, twTokenStrike); // mdash if (stream.peek() == ' ') return ret('text', 'brace'); } } if (ch == "'") { // tw bold if (stream.eat("'")) { return chain(stream, state, twTokenStrong); } } if (ch == "<") { // tw macro if (stream.eat("<")) { return chain(stream, state, twTokenMacro); } } else { return ret(ch); } // core macro handling stream.eatWhile(/[\w\$_]/); var word = stream.current(), known = textwords.propertyIsEnumerable(word) && textwords[word]; return known ? ret(known.type, known.style, word) : ret("text", null, word); } // jsTokenBase() // tw invisible comment function twTokenComment(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "/" && maybeEnd) { state.tokenize = jsTokenBase; break; } maybeEnd = (ch == "%"); } return ret("comment", "comment"); } // tw strong / bold function twTokenStrong(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "'" && maybeEnd) { state.tokenize = jsTokenBase; break; } maybeEnd = (ch == "'"); } return ret("text", "strong"); } // tw code function twTokenCode(stream, state) { var ch, sb = state.block; if (sb && stream.current()) { return ret("code", "comment"); } if (!sb && stream.match(reUntilCodeStop)) { state.tokenize = jsTokenBase; return ret("code", "comment"); } if (sb && stream.sol() && stream.match(reCodeBlockStop)) { state.tokenize = jsTokenBase; return ret("code", "comment"); } ch = stream.next(); return (sb) ? ret("code", "comment") : ret("code", "comment"); } // tw em / italic function twTokenEm(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "/" && maybeEnd) { state.tokenize = jsTokenBase; break; } maybeEnd = (ch == "/"); } return ret("text", "em"); } // tw underlined text function twTokenUnderline(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "_" && maybeEnd) { state.tokenize = jsTokenBase; break; } maybeEnd = (ch == "_"); } return ret("text", "underlined"); } // tw strike through text looks ugly // change CSS if needed function twTokenStrike(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "-" && maybeEnd) { state.tokenize = jsTokenBase; break; } maybeEnd = (ch == "-"); } return ret("text", "strikethrough"); } // macro function twTokenMacro(stream, state) { var ch, word, known; if (stream.current() == '<<') { return ret('brace', 'macro'); } ch = stream.next(); if (!ch) { state.tokenize = jsTokenBase; return ret(ch); } if (ch == ">") { if (stream.peek() == '>') { stream.next(); state.tokenize = jsTokenBase; return ret("brace", "macro"); } } stream.eatWhile(/[\w\$_]/); word = stream.current(); known = keywords.propertyIsEnumerable(word) && keywords[word]; if (known) { return ret(known.type, known.style, word); } else { return ret("macro", null, word); } } // Interface return { startState: function () { return { tokenize: jsTokenBase, indented: 0, level: 0 }; }, token: function (stream, state) { if (stream.eatSpace()) return null; var style = state.tokenize(stream, state); return style; }, electricChars: "" }; }); CodeMirror.defineMIME("text/x-tiddlywiki", "tiddlywiki"); //}}} site_pro/codemirror-3.1/mode/tiddlywiki/index.html0000644000000000000000000001026412111430706021140 0ustar rootroot CodeMirror: TiddlyWiki mode

    CodeMirror: TiddlyWiki mode

    TiddlyWiki mode supports a single configuration.

    MIME types defined: text/x-tiddlywiki.

    site_pro/codemirror-3.1/mode/tiddlywiki/tiddlywiki.css0000644000000000000000000000033412111430706022027 0ustar rootrootspan.cm-underlined { text-decoration: underline; } span.cm-strikethrough { text-decoration: line-through; } span.cm-brace { color: #170; font-weight: bold; } span.cm-table { color: blue; font-weight: bold; } site_pro/codemirror-3.1/mode/jinja2/0000755000000000000000000000000012111430706016140 5ustar rootrootsite_pro/codemirror-3.1/mode/jinja2/jinja2.js0000644000000000000000000000252212111430706017654 0ustar rootrootCodeMirror.defineMode("jinja2", function() { var keywords = ["block", "endblock", "for", "endfor", "in", "true", "false", "loop", "none", "self", "super", "if", "as", "not", "and", "else", "import", "with", "without", "context"]; keywords = new RegExp("^((" + keywords.join(")|(") + "))\\b"); function tokenBase (stream, state) { var ch = stream.next(); if (ch == "{") { if (ch = stream.eat(/\{|%|#/)) { stream.eat("-"); state.tokenize = inTag(ch); return "tag"; } } } function inTag (close) { if (close == "{") { close = "}"; } return function (stream, state) { var ch = stream.next(); if ((ch == close || (ch == "-" && stream.eat(close))) && stream.eat("}")) { state.tokenize = tokenBase; return "tag"; } if (stream.match(keywords)) { return "keyword"; } return close == "#" ? "comment" : "string"; }; } return { startState: function () { return {tokenize: tokenBase}; }, token: function (stream, state) { return state.tokenize(stream, state); } }; }); site_pro/codemirror-3.1/mode/jinja2/index.html0000644000000000000000000000205312111430706020135 0ustar rootroot CodeMirror: Jinja2 mode

    CodeMirror: Jinja2 mode

    site_pro/codemirror-3.1/mode/rst/0000755000000000000000000000000012111430706015573 5ustar rootrootsite_pro/codemirror-3.1/mode/rst/rst.js0000644000000000000000000001771212111430706016751 0ustar rootrootCodeMirror.defineMode('rst', function(config, options) { function setState(state, fn, ctx) { state.fn = fn; setCtx(state, ctx); } function setCtx(state, ctx) { state.ctx = ctx || {}; } function setNormal(state, ch) { if (ch && (typeof ch !== 'string')) { var str = ch.current(); ch = str[str.length-1]; } setState(state, normal, {back: ch}); } function hasMode(mode) { return mode && CodeMirror.modes.hasOwnProperty(mode); } function getMode(mode) { if (hasMode(mode)) { return CodeMirror.getMode(config, mode); } else { return null; } } var verbatimMode = getMode(options.verbatim); var pythonMode = getMode('python'); var reSection = /^[!"#$%&'()*+,-./:;<=>?@[\\\]^_`{|}~]/; var reDirective = /^\s*\w([-:.\w]*\w)?::(\s|$)/; var reHyperlink = /^\s*_[\w-]+:(\s|$)/; var reFootnote = /^\s*\[(\d+|#)\](\s|$)/; var reCitation = /^\s*\[[A-Za-z][\w-]*\](\s|$)/; var reFootnoteRef = /^\[(\d+|#)\]_/; var reCitationRef = /^\[[A-Za-z][\w-]*\]_/; var reDirectiveMarker = /^\.\.(\s|$)/; var reVerbatimMarker = /^::\s*$/; var rePreInline = /^[-\s"([{/:.,;!?\\_]/; var reExamples = /^\s+(>>>|In \[\d+\]:)\s/; function normal(stream, state) { var ch, sol, i; if (stream.eat(/\\/)) { ch = stream.next(); setNormal(state, ch); return null; } sol = stream.sol(); if (sol && (ch = stream.eat(reSection))) { for (i = 0; stream.eat(ch); i++); if (i >= 3 && stream.match(/^\s*$/)) { setNormal(state, null); return 'header'; } else { stream.backUp(i + 1); } } if (sol && stream.match(reDirectiveMarker)) { if (!stream.eol()) { setState(state, directive); } return 'meta'; } if (stream.match(reVerbatimMarker)) { if (!verbatimMode) { setState(state, verbatim); } else { var mode = verbatimMode; setState(state, verbatim, { mode: mode, local: mode.startState() }); } return 'meta'; } if (sol && stream.match(reExamples, false)) { if (!pythonMode) { setState(state, verbatim); return 'meta'; } else { var mode = pythonMode; setState(state, verbatim, { mode: mode, local: mode.startState() }); return null; } } function testBackward(re) { return sol || !state.ctx.back || re.test(state.ctx.back); } function testForward(re) { return stream.eol() || stream.match(re, false); } function testInline(re) { return stream.match(re) && testBackward(/\W/) && testForward(/\W/); } if (testInline(reFootnoteRef)) { setNormal(state, stream); return 'footnote'; } if (testInline(reCitationRef)) { setNormal(state, stream); return 'citation'; } ch = stream.next(); if (testBackward(rePreInline)) { if ((ch === ':' || ch === '|') && stream.eat(/\S/)) { var token; if (ch === ':') { token = 'builtin'; } else { token = 'atom'; } setState(state, inline, { ch: ch, wide: false, prev: null, token: token }); return token; } if (ch === '*' || ch === '`') { var orig = ch, wide = false; ch = stream.next(); if (ch == orig) { wide = true; ch = stream.next(); } if (ch && !/\s/.test(ch)) { var token; if (orig === '*') { token = wide ? 'strong' : 'em'; } else { token = wide ? 'string' : 'string-2'; } setState(state, inline, { ch: orig, // inline() has to know what to search for wide: wide, // are we looking for `ch` or `chch` prev: null, // terminator must not be preceeded with whitespace token: token // I don't want to recompute this all the time }); return token; } } } setNormal(state, ch); return null; } function inline(stream, state) { var ch = stream.next(), token = state.ctx.token; function finish(ch) { state.ctx.prev = ch; return token; } if (ch != state.ctx.ch) { return finish(ch); } if (/\s/.test(state.ctx.prev)) { return finish(ch); } if (state.ctx.wide) { ch = stream.next(); if (ch != state.ctx.ch) { return finish(ch); } } if (!stream.eol() && !rePostInline.test(stream.peek())) { if (state.ctx.wide) { stream.backUp(1); } return finish(ch); } setState(state, normal); setNormal(state, ch); return token; } function directive(stream, state) { var token = null; if (stream.match(reDirective)) { token = 'attribute'; } else if (stream.match(reHyperlink)) { token = 'link'; } else if (stream.match(reFootnote)) { token = 'quote'; } else if (stream.match(reCitation)) { token = 'quote'; } else { stream.eatSpace(); if (stream.eol()) { setNormal(state, stream); return null; } else { stream.skipToEnd(); setState(state, comment); return 'comment'; } } // FIXME this is unreachable setState(state, body, {start: true}); return token; } function body(stream, state) { var token = 'body'; if (!state.ctx.start || stream.sol()) { return block(stream, state, token); } stream.skipToEnd(); setCtx(state); return token; } function comment(stream, state) { return block(stream, state, 'comment'); } function verbatim(stream, state) { if (!verbatimMode) { return block(stream, state, 'meta'); } else { if (stream.sol()) { if (!stream.eatSpace()) { setNormal(state, stream); } return null; } return verbatimMode.token(stream, state.ctx.local); } } function block(stream, state, token) { if (stream.eol() || stream.eatSpace()) { stream.skipToEnd(); return token; } else { setNormal(state, stream); return null; } } return { startState: function() { return {fn: normal, ctx: {}}; }, copyState: function(state) { return {fn: state.fn, ctx: state.ctx}; }, token: function(stream, state) { var token = state.fn(stream, state); return token; } }; }, "python"); CodeMirror.defineMIME("text/x-rst", "rst"); site_pro/codemirror-3.1/mode/rst/index.html0000644000000000000000000004230512111430706017574 0ustar rootroot CodeMirror: reStructuredText mode

    CodeMirror: reStructuredText mode

    The reStructuredText mode supports one configuration parameter:

    verbatim (string)
    A name or MIME type of a mode that will be used for highlighting verbatim blocks. By default, reStructuredText mode uses uniform color for whole block of verbatim text if no mode is given.

    If python mode is available, it will be used for highlighting blocks containing Python/IPython terminal sessions (blocks starting with >>> (for Python) or In [num]: (for IPython).

    MIME types defined: text/x-rst.

    site_pro/codemirror-3.1/mode/scheme/0000755000000000000000000000000012111430706016227 5ustar rootrootsite_pro/codemirror-3.1/mode/scheme/index.html0000644000000000000000000000426112111430706020227 0ustar rootroot CodeMirror: Scheme mode

    CodeMirror: Scheme mode

    MIME types defined: text/x-scheme.

    site_pro/codemirror-3.1/mode/scheme/scheme.js0000644000000000000000000003114712111430706020037 0ustar rootroot/** * Author: Koh Zi Han, based on implementation by Koh Zi Chun */ CodeMirror.defineMode("scheme", function () { var BUILTIN = "builtin", COMMENT = "comment", STRING = "string", ATOM = "atom", NUMBER = "number", BRACKET = "bracket"; var INDENT_WORD_SKIP = 2; function makeKeywords(str) { var obj = {}, words = str.split(" "); for (var i = 0; i < words.length; ++i) obj[words[i]] = true; return obj; } var keywords = makeKeywords("λ case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"); var indentKeys = makeKeywords("define let letrec let* lambda"); function stateStack(indent, type, prev) { // represents a state stack object this.indent = indent; this.type = type; this.prev = prev; } function pushStack(state, indent, type) { state.indentStack = new stateStack(indent, type, state.indentStack); } function popStack(state) { state.indentStack = state.indentStack.prev; } var binaryMatcher = new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i); var octalMatcher = new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i); var hexMatcher = new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i); var decimalMatcher = new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i); function isBinaryNumber (stream) { return stream.match(binaryMatcher); } function isOctalNumber (stream) { return stream.match(octalMatcher); } function isDecimalNumber (stream, backup) { if (backup === true) { stream.backUp(1); } return stream.match(decimalMatcher); } function isHexNumber (stream) { return stream.match(hexMatcher); } return { startState: function () { return { indentStack: null, indentation: 0, mode: false, sExprComment: false }; }, token: function (stream, state) { if (state.indentStack == null && stream.sol()) { // update indentation, but only if indentStack is empty state.indentation = stream.indentation(); } // skip spaces if (stream.eatSpace()) { return null; } var returnType = null; switch(state.mode){ case "string": // multi-line string parsing mode var next, escaped = false; while ((next = stream.next()) != null) { if (next == "\"" && !escaped) { state.mode = false; break; } escaped = !escaped && next == "\\"; } returnType = STRING; // continue on in scheme-string mode break; case "comment": // comment parsing mode var next, maybeEnd = false; while ((next = stream.next()) != null) { if (next == "#" && maybeEnd) { state.mode = false; break; } maybeEnd = (next == "|"); } returnType = COMMENT; break; case "s-expr-comment": // s-expr commenting mode state.mode = false; if(stream.peek() == "(" || stream.peek() == "["){ // actually start scheme s-expr commenting mode state.sExprComment = 0; }else{ // if not we just comment the entire of the next token stream.eatWhile(/[^/s]/); // eat non spaces returnType = COMMENT; break; } default: // default parsing mode var ch = stream.next(); if (ch == "\"") { state.mode = "string"; returnType = STRING; } else if (ch == "'") { returnType = ATOM; } else if (ch == '#') { if (stream.eat("|")) { // Multi-line comment state.mode = "comment"; // toggle to comment mode returnType = COMMENT; } else if (stream.eat(/[tf]/i)) { // #t/#f (atom) returnType = ATOM; } else if (stream.eat(';')) { // S-Expr comment state.mode = "s-expr-comment"; returnType = COMMENT; } else { var numTest = null, hasExactness = false, hasRadix = true; if (stream.eat(/[ei]/i)) { hasExactness = true; } else { stream.backUp(1); // must be radix specifier } if (stream.match(/^#b/i)) { numTest = isBinaryNumber; } else if (stream.match(/^#o/i)) { numTest = isOctalNumber; } else if (stream.match(/^#x/i)) { numTest = isHexNumber; } else if (stream.match(/^#d/i)) { numTest = isDecimalNumber; } else if (stream.match(/^[-+0-9.]/, false)) { hasRadix = false; numTest = isDecimalNumber; // re-consume the intial # if all matches failed } else if (!hasExactness) { stream.eat('#'); } if (numTest != null) { if (hasRadix && !hasExactness) { // consume optional exactness after radix stream.match(/^#[ei]/i); } if (numTest(stream)) returnType = NUMBER; } } } else if (/^[-+0-9.]/.test(ch) && isDecimalNumber(stream, true)) { // match non-prefixed number, must be decimal returnType = NUMBER; } else if (ch == ";") { // comment stream.skipToEnd(); // rest of the line is a comment returnType = COMMENT; } else if (ch == "(" || ch == "[") { var keyWord = ''; var indentTemp = stream.column(), letter; /** Either (indent-word .. (non-indent-word .. (;something else, bracket, etc. */ while ((letter = stream.eat(/[^\s\(\[\;\)\]]/)) != null) { keyWord += letter; } if (keyWord.length > 0 && indentKeys.propertyIsEnumerable(keyWord)) { // indent-word pushStack(state, indentTemp + INDENT_WORD_SKIP, ch); } else { // non-indent word // we continue eating the spaces stream.eatSpace(); if (stream.eol() || stream.peek() == ";") { // nothing significant after // we restart indentation 1 space after pushStack(state, indentTemp + 1, ch); } else { pushStack(state, indentTemp + stream.current().length, ch); // else we match } } stream.backUp(stream.current().length - 1); // undo all the eating if(typeof state.sExprComment == "number") state.sExprComment++; returnType = BRACKET; } else if (ch == ")" || ch == "]") { returnType = BRACKET; if (state.indentStack != null && state.indentStack.type == (ch == ")" ? "(" : "[")) { popStack(state); if(typeof state.sExprComment == "number"){ if(--state.sExprComment == 0){ returnType = COMMENT; // final closing bracket state.sExprComment = false; // turn off s-expr commenting mode } } } } else { stream.eatWhile(/[\w\$_\-!$%&*+\.\/:<=>?@\^~]/); if (keywords && keywords.propertyIsEnumerable(stream.current())) { returnType = BUILTIN; } else returnType = "variable"; } } return (typeof state.sExprComment == "number") ? COMMENT : returnType; }, indent: function (state) { if (state.indentStack == null) return state.indentation; return state.indentStack.indent; } }; }); CodeMirror.defineMIME("text/x-scheme", "scheme"); site_pro/codemirror-3.1/mode/mysql/0000755000000000000000000000000012111430706016130 5ustar rootrootsite_pro/codemirror-3.1/mode/mysql/index.html0000644000000000000000000000245612111430706020134 0ustar rootroot CodeMirror: MySQL mode

    CodeMirror: MySQL mode

    !! This mode is deprecated in favor of the generic SQL mode (which can be configured to handle MySQL).

    MIME types defined: text/x-mysql.

    site_pro/codemirror-3.1/mode/mysql/mysql.js0000644000000000000000000001776512111430706017653 0ustar rootroot/* * MySQL Mode for CodeMirror 2 by MySQL-Tools * @author James Thorne (partydroid) * @link http://github.com/partydroid/MySQL-Tools * @link http://mysqltools.org * @version 02/Jan/2012 */ CodeMirror.defineMode("mysql", function(config) { var indentUnit = config.indentUnit; var curPunc; function wordRegexp(words) { return new RegExp("^(?:" + words.join("|") + ")$", "i"); } var ops = wordRegexp(["str", "lang", "langmatches", "datatype", "bound", "sameterm", "isiri", "isuri", "isblank", "isliteral", "union", "a"]); var keywords = wordRegexp([ ('ACCESSIBLE'),('ALTER'),('AS'),('BEFORE'),('BINARY'),('BY'),('CASE'),('CHARACTER'),('COLUMN'),('CONTINUE'),('CROSS'),('CURRENT_TIMESTAMP'),('DATABASE'),('DAY_MICROSECOND'),('DEC'),('DEFAULT'), ('DESC'),('DISTINCT'),('DOUBLE'),('EACH'),('ENCLOSED'),('EXIT'),('FETCH'),('FLOAT8'),('FOREIGN'),('GRANT'),('HIGH_PRIORITY'),('HOUR_SECOND'),('IN'),('INNER'),('INSERT'),('INT2'),('INT8'), ('INTO'),('JOIN'),('KILL'),('LEFT'),('LINEAR'),('LOCALTIME'),('LONG'),('LOOP'),('MATCH'),('MEDIUMTEXT'),('MINUTE_SECOND'),('NATURAL'),('NULL'),('OPTIMIZE'),('OR'),('OUTER'),('PRIMARY'), ('RANGE'),('READ_WRITE'),('REGEXP'),('REPEAT'),('RESTRICT'),('RIGHT'),('SCHEMAS'),('SENSITIVE'),('SHOW'),('SPECIFIC'),('SQLSTATE'),('SQL_CALC_FOUND_ROWS'),('STARTING'),('TERMINATED'), ('TINYINT'),('TRAILING'),('UNDO'),('UNLOCK'),('USAGE'),('UTC_DATE'),('VALUES'),('VARCHARACTER'),('WHERE'),('WRITE'),('ZEROFILL'),('ALL'),('AND'),('ASENSITIVE'),('BIGINT'),('BOTH'),('CASCADE'), ('CHAR'),('COLLATE'),('CONSTRAINT'),('CREATE'),('CURRENT_TIME'),('CURSOR'),('DAY_HOUR'),('DAY_SECOND'),('DECLARE'),('DELETE'),('DETERMINISTIC'),('DIV'),('DUAL'),('ELSEIF'),('EXISTS'),('FALSE'), ('FLOAT4'),('FORCE'),('FULLTEXT'),('HAVING'),('HOUR_MINUTE'),('IGNORE'),('INFILE'),('INSENSITIVE'),('INT1'),('INT4'),('INTERVAL'),('ITERATE'),('KEYS'),('LEAVE'),('LIMIT'),('LOAD'),('LOCK'), ('LONGTEXT'),('MASTER_SSL_VERIFY_SERVER_CERT'),('MEDIUMINT'),('MINUTE_MICROSECOND'),('MODIFIES'),('NO_WRITE_TO_BINLOG'),('ON'),('OPTIONALLY'),('OUT'),('PRECISION'),('PURGE'),('READS'), ('REFERENCES'),('RENAME'),('REQUIRE'),('REVOKE'),('SCHEMA'),('SELECT'),('SET'),('SPATIAL'),('SQLEXCEPTION'),('SQL_BIG_RESULT'),('SSL'),('TABLE'),('TINYBLOB'),('TO'),('TRUE'),('UNIQUE'), ('UPDATE'),('USING'),('UTC_TIMESTAMP'),('VARCHAR'),('WHEN'),('WITH'),('YEAR_MONTH'),('ADD'),('ANALYZE'),('ASC'),('BETWEEN'),('BLOB'),('CALL'),('CHANGE'),('CHECK'),('CONDITION'),('CONVERT'), ('CURRENT_DATE'),('CURRENT_USER'),('DATABASES'),('DAY_MINUTE'),('DECIMAL'),('DELAYED'),('DESCRIBE'),('DISTINCTROW'),('DROP'),('ELSE'),('ESCAPED'),('EXPLAIN'),('FLOAT'),('FOR'),('FROM'), ('GROUP'),('HOUR_MICROSECOND'),('IF'),('INDEX'),('INOUT'),('INT'),('INT3'),('INTEGER'),('IS'),('KEY'),('LEADING'),('LIKE'),('LINES'),('LOCALTIMESTAMP'),('LONGBLOB'),('LOW_PRIORITY'), ('MEDIUMBLOB'),('MIDDLEINT'),('MOD'),('NOT'),('NUMERIC'),('OPTION'),('ORDER'),('OUTFILE'),('PROCEDURE'),('READ'),('REAL'),('RELEASE'),('REPLACE'),('RETURN'),('RLIKE'),('SECOND_MICROSECOND'), ('SEPARATOR'),('SMALLINT'),('SQL'),('SQLWARNING'),('SQL_SMALL_RESULT'),('STRAIGHT_JOIN'),('THEN'),('TINYTEXT'),('TRIGGER'),('UNION'),('UNSIGNED'),('USE'),('UTC_TIME'),('VARBINARY'),('VARYING'), ('WHILE'),('XOR'),('FULL'),('COLUMNS'),('MIN'),('MAX'),('STDEV'),('COUNT') ]); var operatorChars = /[*+\-<>=&|]/; function tokenBase(stream, state) { var ch = stream.next(); curPunc = null; if (ch == "$" || ch == "?") { stream.match(/^[\w\d]*/); return "variable-2"; } else if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) { stream.match(/^[^\s\u00a0>]*>?/); return "atom"; } else if (ch == "\"" || ch == "'") { state.tokenize = tokenLiteral(ch); return state.tokenize(stream, state); } else if (ch == "`") { state.tokenize = tokenOpLiteral(ch); return state.tokenize(stream, state); } else if (/[{}\(\),\.;\[\]]/.test(ch)) { curPunc = ch; return null; } else if (ch == "-" && stream.eat("-")) { stream.skipToEnd(); return "comment"; } else if (ch == "/" && stream.eat("*")) { state.tokenize = tokenComment; return state.tokenize(stream, state); } else if (operatorChars.test(ch)) { stream.eatWhile(operatorChars); return null; } else if (ch == ":") { stream.eatWhile(/[\w\d\._\-]/); return "atom"; } else { stream.eatWhile(/[_\w\d]/); if (stream.eat(":")) { stream.eatWhile(/[\w\d_\-]/); return "atom"; } var word = stream.current(); if (ops.test(word)) return null; else if (keywords.test(word)) return "keyword"; else return "variable"; } } function tokenLiteral(quote) { return function(stream, state) { var escaped = false, ch; while ((ch = stream.next()) != null) { if (ch == quote && !escaped) { state.tokenize = tokenBase; break; } escaped = !escaped && ch == "\\"; } return "string"; }; } function tokenOpLiteral(quote) { return function(stream, state) { var escaped = false, ch; while ((ch = stream.next()) != null) { if (ch == quote && !escaped) { state.tokenize = tokenBase; break; } escaped = !escaped && ch == "\\"; } return "variable-2"; }; } function tokenComment(stream, state) { for (;;) { if (stream.skipTo("*")) { stream.next(); if (stream.eat("/")) { state.tokenize = tokenBase; break; } } else { stream.skipToEnd(); break; } } return "comment"; } function pushContext(state, type, col) { state.context = {prev: state.context, indent: state.indent, col: col, type: type}; } function popContext(state) { state.indent = state.context.indent; state.context = state.context.prev; } return { startState: function() { return {tokenize: tokenBase, context: null, indent: 0, col: 0}; }, token: function(stream, state) { if (stream.sol()) { if (state.context && state.context.align == null) state.context.align = false; state.indent = stream.indentation(); } if (stream.eatSpace()) return null; var style = state.tokenize(stream, state); if (style != "comment" && state.context && state.context.align == null && state.context.type != "pattern") { state.context.align = true; } if (curPunc == "(") pushContext(state, ")", stream.column()); else if (curPunc == "[") pushContext(state, "]", stream.column()); else if (curPunc == "{") pushContext(state, "}", stream.column()); else if (/[\]\}\)]/.test(curPunc)) { while (state.context && state.context.type == "pattern") popContext(state); if (state.context && curPunc == state.context.type) popContext(state); } else if (curPunc == "." && state.context && state.context.type == "pattern") popContext(state); else if (/atom|string|variable/.test(style) && state.context) { if (/[\}\]]/.test(state.context.type)) pushContext(state, "pattern", stream.column()); else if (state.context.type == "pattern" && !state.context.align) { state.context.align = true; state.context.col = stream.column(); } } return style; }, indent: function(state, textAfter) { var firstChar = textAfter && textAfter.charAt(0); var context = state.context; if (/[\]\}]/.test(firstChar)) while (context && context.type == "pattern") context = context.prev; var closing = context && firstChar == context.type; if (!context) return 0; else if (context.type == "pattern") return context.col; else if (context.align) return context.col + (closing ? 0 : 1); else return context.indent + (closing ? 0 : indentUnit); } }; }); CodeMirror.defineMIME("text/x-mysql", "mysql"); site_pro/codemirror-3.1/mode/less/0000755000000000000000000000000012111430706015731 5ustar rootrootsite_pro/codemirror-3.1/mode/less/index.html0000644000000000000000000004361712111430706017741 0ustar rootroot CodeMirror: LESS mode

    CodeMirror: LESS mode

    MIME types defined: text/x-less, text/css (if not previously defined).

    site_pro/codemirror-3.1/mode/less/less.js0000644000000000000000000002660412111430706017245 0ustar rootroot/* LESS mode - http://www.lesscss.org/ Ported to CodeMirror by Peter Kroon Report bugs/issues here: https://github.com/marijnh/CodeMirror/issues GitHub: @peterkroon */ CodeMirror.defineMode("less", function(config) { var indentUnit = config.indentUnit, type; function ret(style, tp) {type = tp; return style;} //html tags var tags = "a abbr acronym address applet area article aside audio b base basefont bdi bdo big blockquote body br button canvas caption cite code col colgroup command datalist dd del details dfn dir div dl dt em embed fieldset figcaption figure font footer form frame frameset h1 h2 h3 h4 h5 h6 head header hgroup hr html i iframe img input ins keygen kbd label legend li link map mark menu meta meter nav noframes noscript object ol optgroup option output p param pre progress q rp rt ruby s samp script section select small source span strike strong style sub summary sup table tbody td textarea tfoot th thead time title tr track tt u ul var video wbr".split(' '); function inTagsArray(val){ for(var i=0; i*\/]/.test(ch)) { if(stream.peek() == "=" || type == "a")return ret("string", "string"); return ret(null, "select-op"); } else if (/[;{}:\[\]()~\|]/.test(ch)) { if(ch == ":"){ stream.eatWhile(/[a-z\\\-]/); if( selectors.test(stream.current()) ){ return ret("tag", "tag"); }else if(stream.peek() == ":"){//::-webkit-search-decoration stream.next(); stream.eatWhile(/[a-z\\\-]/); if(stream.current().match(/\:\:\-(o|ms|moz|webkit)\-/))return ret("string", "string"); if( selectors.test(stream.current().substring(1)) )return ret("tag", "tag"); return ret(null, ch); }else{ return ret(null, ch); } }else if(ch == "~"){ if(type == "r")return ret("string", "string"); }else{ return ret(null, ch); } } else if (ch == ".") { if(type == "(" || type == "string")return ret("string", "string"); // allow url(../image.png) stream.eatWhile(/[\a-zA-Z0-9\-_]/); if(stream.peek() == " ")stream.eatSpace(); if(stream.peek() == ")")return ret("number", "unit");//rgba(0,0,0,.25); return ret("tag", "tag"); } else if (ch == "#") { //we don't eat white-space, we want the hex color and or id only stream.eatWhile(/[A-Za-z0-9]/); //check if there is a proper hex color length e.g. #eee || #eeeEEE if(stream.current().length == 4 || stream.current().length == 7){ if(stream.current().match(/[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3}/,false) != null){//is there a valid hex color value present in the current stream //when not a valid hex value, parse as id if(stream.current().substring(1) != stream.current().match(/[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3}/,false))return ret("atom", "tag"); //eat white-space stream.eatSpace(); //when hex value declaration doesn't end with [;,] but is does with a slash/cc comment treat it as an id, just like the other hex values that don't end with[;,] if( /[\/<>.(){!$%^&*_\-\\?=+\|#'~`]/.test(stream.peek()) )return ret("atom", "tag"); //#time { color: #aaa } else if(stream.peek() == "}" )return ret("number", "unit"); //we have a valid hex color value, parse as id whenever an element/class is defined after the hex(id) value e.g. #eee aaa || #eee .aaa else if( /[a-zA-Z\\]/.test(stream.peek()) )return ret("atom", "tag"); //when a hex value is on the end of a line, parse as id else if(stream.eol())return ret("atom", "tag"); //default else return ret("number", "unit"); }else{//when not a valid hexvalue in the current stream e.g. #footer stream.eatWhile(/[\w\\\-]/); return ret("atom", "tag"); } }else{//when not a valid hexvalue length stream.eatWhile(/[\w\\\-]/); return ret("atom", "tag"); } } else if (ch == "&") { stream.eatWhile(/[\w\-]/); return ret(null, ch); } else { stream.eatWhile(/[\w\\\-_%.{]/); if(type == "string"){ return ret("string", "string"); }else if(stream.current().match(/(^http$|^https$)/) != null){ stream.eatWhile(/[\w\\\-_%.{:\/]/); return ret("string", "string"); }else if(stream.peek() == "<" || stream.peek() == ">"){ return ret("tag", "tag"); }else if( /\(/.test(stream.peek()) ){ return ret(null, ch); }else if (stream.peek() == "/" && state.stack[state.stack.length-1] != undefined){ // url(dir/center/image.png) return ret("string", "string"); }else if( stream.current().match(/\-\d|\-.\d/) ){ // match e.g.: -5px -0.4 etc... only colorize the minus sign //commment out these 2 comment if you want the minus sign to be parsed as null -500px //stream.backUp(stream.current().length-1); //return ret(null, ch); //console.log( stream.current() ); return ret("number", "unit"); }else if( inTagsArray(stream.current().toLowerCase()) ){ // match html tags return ret("tag", "tag"); }else if( /\/|[\s\)]/.test(stream.peek() || stream.eol() || (stream.eatSpace() && stream.peek() == "/")) && stream.current().indexOf(".") !== -1){ if(stream.current().substring(stream.current().length-1,stream.current().length) == "{"){ stream.backUp(1); return ret("tag", "tag"); }//end if stream.eatSpace(); if( /[{<>.a-zA-Z\/]/.test(stream.peek()) || stream.eol() )return ret("tag", "tag"); // e.g. button.icon-plus return ret("string", "string"); // let url(/images/logo.png) without quotes return as string }else if( stream.eol() || stream.peek() == "[" || stream.peek() == "#" || type == "tag" ){ if(stream.current().substring(stream.current().length-1,stream.current().length) == "{")stream.backUp(1); return ret("tag", "tag"); }else if(type == "compare" || type == "a" || type == "("){ return ret("string", "string"); }else if(type == "|" || stream.current() == "-" || type == "["){ return ret(null, ch); }else if(stream.peek() == ":") { stream.next(); var t_v = stream.peek() == ":" ? true : false; if(!t_v){ var old_pos = stream.pos; var sc = stream.current().length; stream.eatWhile(/[a-z\\\-]/); var new_pos = stream.pos; if(stream.current().substring(sc-1).match(selectors) != null){ stream.backUp(new_pos-(old_pos-1)); return ret("tag", "tag"); } else stream.backUp(new_pos-(old_pos-1)); }else{ stream.backUp(1); } if(t_v)return ret("tag", "tag"); else return ret("variable", "variable"); }else{ return ret("variable", "variable"); } } } function tokenSComment(stream, state) { // SComment = Slash comment stream.skipToEnd(); state.tokenize = tokenBase; return ret("comment", "comment"); } function tokenCComment(stream, state) { var maybeEnd = false, ch; while ((ch = stream.next()) != null) { if (maybeEnd && ch == "/") { state.tokenize = tokenBase; break; } maybeEnd = (ch == "*"); } return ret("comment", "comment"); } function tokenSGMLComment(stream, state) { var dashes = 0, ch; while ((ch = stream.next()) != null) { if (dashes >= 2 && ch == ">") { state.tokenize = tokenBase; break; } dashes = (ch == "-") ? dashes + 1 : 0; } return ret("comment", "comment"); } function tokenString(quote) { return function(stream, state) { var escaped = false, ch; while ((ch = stream.next()) != null) { if (ch == quote && !escaped) break; escaped = !escaped && ch == "\\"; } if (!escaped) state.tokenize = tokenBase; return ret("string", "string"); }; } return { startState: function(base) { return {tokenize: tokenBase, baseIndent: base || 0, stack: []}; }, token: function(stream, state) { if (stream.eatSpace()) return null; var style = state.tokenize(stream, state); var context = state.stack[state.stack.length-1]; if (type == "hash" && context == "rule") style = "atom"; else if (style == "variable") { if (context == "rule") style = null; //"tag" else if (!context || context == "@media{") { style = stream.current() == "when" ? "variable" : /[\s,|\s\)|\s]/.test(stream.peek()) ? "tag" : type; } } if (context == "rule" && /^[\{\};]$/.test(type)) state.stack.pop(); if (type == "{") { if (context == "@media") state.stack[state.stack.length-1] = "@media{"; else state.stack.push("{"); } else if (type == "}") state.stack.pop(); else if (type == "@media") state.stack.push("@media"); else if (context == "{" && type != "comment") state.stack.push("rule"); return style; }, indent: function(state, textAfter) { var n = state.stack.length; if (/^\}/.test(textAfter)) n -= state.stack[state.stack.length-1] == "rule" ? 2 : 1; return state.baseIndent + n * indentUnit; }, electricChars: "}" }; }); CodeMirror.defineMIME("text/x-less", "less"); if (!CodeMirror.mimeModes.hasOwnProperty("text/css")) CodeMirror.defineMIME("text/css", "less");site_pro/codemirror-3.1/mode/asterisk/0000755000000000000000000000000012111430706016610 5ustar rootrootsite_pro/codemirror-3.1/mode/asterisk/index.html0000644000000000000000000001023312111430706020604 0ustar rootroot CodeMirror: Asterisk dialplan mode

    CodeMirror: Asterisk dialplan mode

    MIME types defined: text/x-asterisk.

    site_pro/codemirror-3.1/mode/asterisk/asterisk.js0000644000000000000000000001556712111430706021011 0ustar rootroot/* * ===================================================================================== * * Filename: mode/asterisk/asterisk.js * * Description: CodeMirror mode for Asterisk dialplan * * Created: 05/17/2012 09:20:25 PM * Revision: none * * Author: Stas Kobzar (stas@modulis.ca), * Company: Modulis.ca Inc. * * ===================================================================================== */ CodeMirror.defineMode("asterisk", function() { var atoms = ["exten", "same", "include","ignorepat","switch"], dpcmd = ["#include","#exec"], apps = [ "addqueuemember","adsiprog","aelsub","agentlogin","agentmonitoroutgoing","agi", "alarmreceiver","amd","answer","authenticate","background","backgrounddetect", "bridge","busy","callcompletioncancel","callcompletionrequest","celgenuserevent", "changemonitor","chanisavail","channelredirect","chanspy","clearhash","confbridge", "congestion","continuewhile","controlplayback","dahdiacceptr2call","dahdibarge", "dahdiras","dahdiscan","dahdisendcallreroutingfacility","dahdisendkeypadfacility", "datetime","dbdel","dbdeltree","deadagi","dial","dictate","directory","disa", "dumpchan","eagi","echo","endwhile","exec","execif","execiftime","exitwhile","extenspy", "externalivr","festival","flash","followme","forkcdr","getcpeid","gosub","gosubif", "goto","gotoif","gotoiftime","hangup","iax2provision","ices","importvar","incomplete", "ivrdemo","jabberjoin","jabberleave","jabbersend","jabbersendgroup","jabberstatus", "jack","log","macro","macroexclusive","macroexit","macroif","mailboxexists","meetme", "meetmeadmin","meetmechanneladmin","meetmecount","milliwatt","minivmaccmess","minivmdelete", "minivmgreet","minivmmwi","minivmnotify","minivmrecord","mixmonitor","monitor","morsecode", "mp3player","mset","musiconhold","nbscat","nocdr","noop","odbc","odbc","odbcfinish", "originate","ospauth","ospfinish","osplookup","ospnext","page","park","parkandannounce", "parkedcall","pausemonitor","pausequeuemember","pickup","pickupchan","playback","playtones", "privacymanager","proceeding","progress","queue","queuelog","raiseexception","read","readexten", "readfile","receivefax","receivefax","receivefax","record","removequeuemember", "resetcdr","retrydial","return","ringing","sayalpha","saycountedadj","saycountednoun", "saycountpl","saydigits","saynumber","sayphonetic","sayunixtime","senddtmf","sendfax", "sendfax","sendfax","sendimage","sendtext","sendurl","set","setamaflags", "setcallerpres","setmusiconhold","sipaddheader","sipdtmfmode","sipremoveheader","skel", "slastation","slatrunk","sms","softhangup","speechactivategrammar","speechbackground", "speechcreate","speechdeactivategrammar","speechdestroy","speechloadgrammar","speechprocessingsound", "speechstart","speechunloadgrammar","stackpop","startmusiconhold","stopmixmonitor","stopmonitor", "stopmusiconhold","stopplaytones","system","testclient","testserver","transfer","tryexec", "trysystem","unpausemonitor","unpausequeuemember","userevent","verbose","vmauthenticate", "vmsayname","voicemail","voicemailmain","wait","waitexten","waitfornoise","waitforring", "waitforsilence","waitmusiconhold","waituntil","while","zapateller" ]; function basicToken(stream,state){ var cur = ''; var ch = ''; ch = stream.next(); // comment if(ch == ";") { stream.skipToEnd(); return "comment"; } // context if(ch == '[') { stream.skipTo(']'); stream.eat(']'); return "header"; } // string if(ch == '"') { stream.skipTo('"'); return "string"; } if(ch == "'") { stream.skipTo("'"); return "string-2"; } // dialplan commands if(ch == '#') { stream.eatWhile(/\w/); cur = stream.current(); if(dpcmd.indexOf(cur) !== -1) { stream.skipToEnd(); return "strong"; } } // application args if(ch == '$'){ var ch1 = stream.peek(); if(ch1 == '{'){ stream.skipTo('}'); stream.eat('}'); return "variable-3"; } } // extension stream.eatWhile(/\w/); cur = stream.current(); if(atoms.indexOf(cur) !== -1) { state.extenStart = true; switch(cur) { case 'same': state.extenSame = true; break; case 'include': case 'switch': case 'ignorepat': state.extenInclude = true;break; default:break; } return "atom"; } } return { startState: function() { return { extenStart: false, extenSame: false, extenInclude: false, extenExten: false, extenPriority: false, extenApplication: false }; }, token: function(stream, state) { var cur = ''; var ch = ''; if(stream.eatSpace()) return null; // extension started if(state.extenStart){ stream.eatWhile(/[^\s]/); cur = stream.current(); if(/^=>?$/.test(cur)){ state.extenExten = true; state.extenStart = false; return "strong"; } else { state.extenStart = false; stream.skipToEnd(); return "error"; } } else if(state.extenExten) { // set exten and priority state.extenExten = false; state.extenPriority = true; stream.eatWhile(/[^,]/); if(state.extenInclude) { stream.skipToEnd(); state.extenPriority = false; state.extenInclude = false; } if(state.extenSame) { state.extenPriority = false; state.extenSame = false; state.extenApplication = true; } return "tag"; } else if(state.extenPriority) { state.extenPriority = false; state.extenApplication = true; ch = stream.next(); // get comma if(state.extenSame) return null; stream.eatWhile(/[^,]/); return "number"; } else if(state.extenApplication) { stream.eatWhile(/,/); cur = stream.current(); if(cur === ',') return null; stream.eatWhile(/\w/); cur = stream.current().toLowerCase(); state.extenApplication = false; if(apps.indexOf(cur) !== -1){ return "def strong"; } } else{ return basicToken(stream,state); } return null; } }; }); CodeMirror.defineMIME("text/x-asterisk", "asterisk"); site_pro/codemirror-3.1/mode/velocity/0000755000000000000000000000000012111430706016621 5ustar rootrootsite_pro/codemirror-3.1/mode/velocity/index.html0000644000000000000000000000530712111430706020623 0ustar rootroot CodeMirror: Velocity mode

    CodeMirror: Velocity mode

    MIME types defined: text/velocity.

    site_pro/codemirror-3.1/mode/velocity/velocity.js0000644000000000000000000001141012111430706021012 0ustar rootrootCodeMirror.defineMode("velocity", function() { function parseWords(str) { var obj = {}, words = str.split(" "); for (var i = 0; i < words.length; ++i) obj[words[i]] = true; return obj; } var keywords = parseWords("#end #else #break #stop #[[ #]] " + "#{end} #{else} #{break} #{stop}"); var functions = parseWords("#if #elseif #foreach #set #include #parse #macro #define #evaluate " + "#{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}"); var specials = parseWords("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent $velocityCount"); var isOperatorChar = /[+\-*&%=<>!?:\/|]/; function chain(stream, state, f) { state.tokenize = f; return f(stream, state); } function tokenBase(stream, state) { var beforeParams = state.beforeParams; state.beforeParams = false; var ch = stream.next(); // start of string? if ((ch == '"' || ch == "'") && state.inParams) return chain(stream, state, tokenString(ch)); // is it one of the special signs []{}().,;? Seperator? else if (/[\[\]{}\(\),;\.]/.test(ch)) { if (ch == "(" && beforeParams) state.inParams = true; else if (ch == ")") state.inParams = false; return null; } // start of a number value? else if (/\d/.test(ch)) { stream.eatWhile(/[\w\.]/); return "number"; } // multi line comment? else if (ch == "#" && stream.eat("*")) { return chain(stream, state, tokenComment); } // unparsed content? else if (ch == "#" && stream.match(/ *\[ *\[/)) { return chain(stream, state, tokenUnparsed); } // single line comment? else if (ch == "#" && stream.eat("#")) { stream.skipToEnd(); return "comment"; } // variable? else if (ch == "$") { stream.eatWhile(/[\w\d\$_\.{}]/); // is it one of the specials? if (specials && specials.propertyIsEnumerable(stream.current().toLowerCase())) { return "keyword"; } else { state.beforeParams = true; return "builtin"; } } // is it a operator? else if (isOperatorChar.test(ch)) { stream.eatWhile(isOperatorChar); return "operator"; } else { // get the whole word stream.eatWhile(/[\w\$_{}]/); var word = stream.current().toLowerCase(); // is it one of the listed keywords? if (keywords && keywords.propertyIsEnumerable(word)) return "keyword"; // is it one of the listed functions? if (functions && functions.propertyIsEnumerable(word) || stream.current().match(/^#[a-z0-9_]+ *$/i) && stream.peek()=="(") { state.beforeParams = true; return "keyword"; } // default: just a "word" return null; } } function tokenString(quote) { return function(stream, state) { var escaped = false, next, end = false; while ((next = stream.next()) != null) { if (next == quote && !escaped) { end = true; break; } escaped = !escaped && next == "\\"; } if (end) state.tokenize = tokenBase; return "string"; }; } function tokenComment(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "#" && maybeEnd) { state.tokenize = tokenBase; break; } maybeEnd = (ch == "*"); } return "comment"; } function tokenUnparsed(stream, state) { var maybeEnd = 0, ch; while (ch = stream.next()) { if (ch == "#" && maybeEnd == 2) { state.tokenize = tokenBase; break; } if (ch == "]") maybeEnd++; else if (ch != " ") maybeEnd = 0; } return "meta"; } // Interface return { startState: function() { return { tokenize: tokenBase, beforeParams: false, inParams: false }; }, token: function(stream, state) { if (stream.eatSpace()) return null; return state.tokenize(stream, state); } }; }); CodeMirror.defineMIME("text/velocity", "velocity"); site_pro/codemirror-3.1/mode/plsql/0000755000000000000000000000000012111430706016116 5ustar rootrootsite_pro/codemirror-3.1/mode/plsql/index.html0000644000000000000000000000332412111430706020115 0ustar rootroot CodeMirror: Oracle PL/SQL mode

    CodeMirror: Oracle PL/SQL mode

    !! This mode is deprecated in favor of the generic SQL mode (which can be configured to handle PL/SQL).

    Simple mode that handles Oracle PL/SQL language (and Oracle SQL, of course).

    MIME type defined: text/x-plsql (PLSQL code) site_pro/codemirror-3.1/mode/plsql/plsql.js0000644000000000000000000002027312111430706017613 0ustar rootrootCodeMirror.defineMode("plsql", function(_config, parserConfig) { var keywords = parserConfig.keywords, functions = parserConfig.functions, types = parserConfig.types, sqlplus = parserConfig.sqlplus, multiLineStrings = parserConfig.multiLineStrings; var isOperatorChar = /[+\-*&%=<>!?:\/|]/; function chain(stream, state, f) { state.tokenize = f; return f(stream, state); } var type; function ret(tp, style) { type = tp; return style; } function tokenBase(stream, state) { var ch = stream.next(); // start of string? if (ch == '"' || ch == "'") return chain(stream, state, tokenString(ch)); // is it one of the special signs []{}().,;? Seperator? else if (/[\[\]{}\(\),;\.]/.test(ch)) return ret(ch); // start of a number value? else if (/\d/.test(ch)) { stream.eatWhile(/[\w\.]/); return ret("number", "number"); } // multi line comment or simple operator? else if (ch == "/") { if (stream.eat("*")) { return chain(stream, state, tokenComment); } else { stream.eatWhile(isOperatorChar); return ret("operator", "operator"); } } // single line comment or simple operator? else if (ch == "-") { if (stream.eat("-")) { stream.skipToEnd(); return ret("comment", "comment"); } else { stream.eatWhile(isOperatorChar); return ret("operator", "operator"); } } // pl/sql variable? else if (ch == "@" || ch == "$") { stream.eatWhile(/[\w\d\$_]/); return ret("word", "variable"); } // is it a operator? else if (isOperatorChar.test(ch)) { stream.eatWhile(isOperatorChar); return ret("operator", "operator"); } else { // get the whole word stream.eatWhile(/[\w\$_]/); // is it one of the listed keywords? if (keywords && keywords.propertyIsEnumerable(stream.current().toLowerCase())) return ret("keyword", "keyword"); // is it one of the listed functions? if (functions && functions.propertyIsEnumerable(stream.current().toLowerCase())) return ret("keyword", "builtin"); // is it one of the listed types? if (types && types.propertyIsEnumerable(stream.current().toLowerCase())) return ret("keyword", "variable-2"); // is it one of the listed sqlplus keywords? if (sqlplus && sqlplus.propertyIsEnumerable(stream.current().toLowerCase())) return ret("keyword", "variable-3"); // default: just a "variable" return ret("word", "variable"); } } function tokenString(quote) { return function(stream, state) { var escaped = false, next, end = false; while ((next = stream.next()) != null) { if (next == quote && !escaped) {end = true; break;} escaped = !escaped && next == "\\"; } if (end || !(escaped || multiLineStrings)) state.tokenize = tokenBase; return ret("string", "plsql-string"); }; } function tokenComment(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "/" && maybeEnd) { state.tokenize = tokenBase; break; } maybeEnd = (ch == "*"); } return ret("comment", "plsql-comment"); } // Interface return { startState: function() { return { tokenize: tokenBase, startOfLine: true }; }, token: function(stream, state) { if (stream.eatSpace()) return null; var style = state.tokenize(stream, state); return style; } }; }); (function() { function keywords(str) { var obj = {}, words = str.split(" "); for (var i = 0; i < words.length; ++i) obj[words[i]] = true; return obj; } var cKeywords = "abort accept access add all alter and any array arraylen as asc assert assign at attributes audit " + "authorization avg " + "base_table begin between binary_integer body boolean by " + "case cast char char_base check close cluster clusters colauth column comment commit compress connect " + "connected constant constraint crash create current currval cursor " + "data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete " + "desc digits dispose distinct do drop " + "else elsif enable end entry escape exception exception_init exchange exclusive exists exit external " + "fast fetch file for force form from function " + "generic goto grant group " + "having " + "identified if immediate in increment index indexes indicator initial initrans insert interface intersect " + "into is " + "key " + "level library like limited local lock log logging long loop " + "master maxextents maxtrans member minextents minus mislabel mode modify multiset " + "new next no noaudit nocompress nologging noparallel not nowait number_base " + "object of off offline on online only open option or order out " + "package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior " + "private privileges procedure public " + "raise range raw read rebuild record ref references refresh release rename replace resource restrict return " + "returning reverse revoke rollback row rowid rowlabel rownum rows run " + "savepoint schema segment select separate session set share snapshot some space split sql start statement " + "storage subtype successful synonym " + "tabauth table tables tablespace task terminate then to trigger truncate type " + "union unique unlimited unrecoverable unusable update use using " + "validate value values variable view views " + "when whenever where while with work"; var cFunctions = "abs acos add_months ascii asin atan atan2 average " + "bfilename " + "ceil chartorowid chr concat convert cos cosh count " + "decode deref dual dump dup_val_on_index " + "empty error exp " + "false floor found " + "glb greatest " + "hextoraw " + "initcap instr instrb isopen " + "last_day least lenght lenghtb ln lower lpad ltrim lub " + "make_ref max min mod months_between " + "new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower " + "nls_sort nls_upper nlssort no_data_found notfound null nvl " + "others " + "power " + "rawtohex reftohex round rowcount rowidtochar rpad rtrim " + "sign sin sinh soundex sqlcode sqlerrm sqrt stddev substr substrb sum sysdate " + "tan tanh to_char to_date to_label to_multi_byte to_number to_single_byte translate true trunc " + "uid upper user userenv " + "variance vsize"; var cTypes = "bfile blob " + "character clob " + "dec " + "float " + "int integer " + "mlslabel " + "natural naturaln nchar nclob number numeric nvarchar2 " + "real rowtype " + "signtype smallint string " + "varchar varchar2"; var cSqlplus = "appinfo arraysize autocommit autoprint autorecovery autotrace " + "blockterminator break btitle " + "cmdsep colsep compatibility compute concat copycommit copytypecheck " + "define describe " + "echo editfile embedded escape exec execute " + "feedback flagger flush " + "heading headsep " + "instance " + "linesize lno loboffset logsource long longchunksize " + "markup " + "native newpage numformat numwidth " + "pagesize pause pno " + "recsep recsepchar release repfooter repheader " + "serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber " + "sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix " + "tab term termout time timing trimout trimspool ttitle " + "underline " + "verify version " + "wrap"; CodeMirror.defineMIME("text/x-plsql", { name: "plsql", keywords: keywords(cKeywords), functions: keywords(cFunctions), types: keywords(cTypes), sqlplus: keywords(cSqlplus) }); }()); site_pro/codemirror-3.1/mode/verilog/0000755000000000000000000000000012111430706016432 5ustar rootrootsite_pro/codemirror-3.1/mode/verilog/verilog.js0000644000000000000000000001457012111430706020446 0ustar rootrootCodeMirror.defineMode("verilog", function(config, parserConfig) { var indentUnit = config.indentUnit, keywords = parserConfig.keywords || {}, blockKeywords = parserConfig.blockKeywords || {}, atoms = parserConfig.atoms || {}, hooks = parserConfig.hooks || {}, multiLineStrings = parserConfig.multiLineStrings; var isOperatorChar = /[&|~> CodeMirror: Verilog mode

    CodeMirror: Verilog mode

    Simple mode that tries to handle Verilog-like languages as well as it can. Takes one configuration parameters: keywords, an object whose property names are the keywords in the language.

    MIME types defined: text/x-verilog (Verilog code).

    site_pro/codemirror-3.1/mode/go/0000755000000000000000000000000012111430706015370 5ustar rootrootsite_pro/codemirror-3.1/mode/go/index.html0000644000000000000000000000347612111430706017377 0ustar rootroot CodeMirror: Go mode

    CodeMirror: Go mode

    MIME type: text/x-go

    site_pro/codemirror-3.1/mode/go/go.js0000644000000000000000000001230212111430706016331 0ustar rootrootCodeMirror.defineMode("go", function(config) { var indentUnit = config.indentUnit; var keywords = { "break":true, "case":true, "chan":true, "const":true, "continue":true, "default":true, "defer":true, "else":true, "fallthrough":true, "for":true, "func":true, "go":true, "goto":true, "if":true, "import":true, "interface":true, "map":true, "package":true, "range":true, "return":true, "select":true, "struct":true, "switch":true, "type":true, "var":true, "bool":true, "byte":true, "complex64":true, "complex128":true, "float32":true, "float64":true, "int8":true, "int16":true, "int32":true, "int64":true, "string":true, "uint8":true, "uint16":true, "uint32":true, "uint64":true, "int":true, "uint":true, "uintptr":true }; var atoms = { "true":true, "false":true, "iota":true, "nil":true, "append":true, "cap":true, "close":true, "complex":true, "copy":true, "imag":true, "len":true, "make":true, "new":true, "panic":true, "print":true, "println":true, "real":true, "recover":true }; var isOperatorChar = /[+\-*&^%:=<>!|\/]/; var curPunc; function tokenBase(stream, state) { var ch = stream.next(); if (ch == '"' || ch == "'" || ch == "`") { state.tokenize = tokenString(ch); return state.tokenize(stream, state); } if (/[\d\.]/.test(ch)) { if (ch == ".") { stream.match(/^[0-9]+([eE][\-+]?[0-9]+)?/); } else if (ch == "0") { stream.match(/^[xX][0-9a-fA-F]+/) || stream.match(/^0[0-7]+/); } else { stream.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/); } return "number"; } if (/[\[\]{}\(\),;\:\.]/.test(ch)) { curPunc = ch; return null; } if (ch == "/") { if (stream.eat("*")) { state.tokenize = tokenComment; return tokenComment(stream, state); } if (stream.eat("/")) { stream.skipToEnd(); return "comment"; } } if (isOperatorChar.test(ch)) { stream.eatWhile(isOperatorChar); return "operator"; } stream.eatWhile(/[\w\$_]/); var cur = stream.current(); if (keywords.propertyIsEnumerable(cur)) { if (cur == "case" || cur == "default") curPunc = "case"; return "keyword"; } if (atoms.propertyIsEnumerable(cur)) return "atom"; return "variable"; } function tokenString(quote) { return function(stream, state) { var escaped = false, next, end = false; while ((next = stream.next()) != null) { if (next == quote && !escaped) {end = true; break;} escaped = !escaped && next == "\\"; } if (end || !(escaped || quote == "`")) state.tokenize = tokenBase; return "string"; }; } function tokenComment(stream, state) { var maybeEnd = false, ch; while (ch = stream.next()) { if (ch == "/" && maybeEnd) { state.tokenize = tokenBase; break; } maybeEnd = (ch == "*"); } return "comment"; } function Context(indented, column, type, align, prev) { this.indented = indented; this.column = column; this.type = type; this.align = align; this.prev = prev; } function pushContext(state, col, type) { return state.context = new Context(state.indented, col, type, null, state.context); } function popContext(state) { var t = state.context.type; if (t == ")" || t == "]" || t == "}") state.indented = state.context.indented; return state.context = state.context.prev; } // Interface return { startState: function(basecolumn) { return { tokenize: null, context: new Context((basecolumn || 0) - indentUnit, 0, "top", false), indented: 0, startOfLine: true }; }, token: function(stream, state) { var ctx = state.context; if (stream.sol()) { if (ctx.align == null) ctx.align = false; state.indented = stream.indentation(); state.startOfLine = true; if (ctx.type == "case") ctx.type = "}"; } if (stream.eatSpace()) return null; curPunc = null; var style = (state.tokenize || tokenBase)(stream, state); if (style == "comment") return style; if (ctx.align == null) ctx.align = true; if (curPunc == "{") pushContext(state, stream.column(), "}"); else if (curPunc == "[") pushContext(state, stream.column(), "]"); else if (curPunc == "(") pushContext(state, stream.column(), ")"); else if (curPunc == "case") ctx.type = "case"; else if (curPunc == "}" && ctx.type == "}") ctx = popContext(state); else if (curPunc == ctx.type) popContext(state); state.startOfLine = false; return style; }, indent: function(state, textAfter) { if (state.tokenize != tokenBase && state.tokenize != null) return 0; var ctx = state.context, firstChar = textAfter && textAfter.charAt(0); if (ctx.type == "case" && /^(?:case|default)\b/.test(textAfter)) { state.context.type = "}"; return ctx.indented; } var closing = firstChar == ctx.type; if (ctx.align) return ctx.column + (closing ? 0 : 1); else return ctx.indented + (closing ? 0 : indentUnit); }, electricChars: "{}:" }; }); CodeMirror.defineMIME("text/x-go", "go"); site_pro/codemirror-3.1/mode/sieve/0000755000000000000000000000000012111430706016076 5ustar rootrootsite_pro/codemirror-3.1/mode/sieve/sieve.js0000644000000000000000000000760112111430706017553 0ustar rootroot/* * See LICENSE in this directory for the license under which this code * is released. */ CodeMirror.defineMode("sieve", function(config) { function words(str) { var obj = {}, words = str.split(" "); for (var i = 0; i < words.length; ++i) obj[words[i]] = true; return obj; } var keywords = words("if elsif else stop require"); var atoms = words("true false not"); var indentUnit = config.indentUnit; function tokenBase(stream, state) { var ch = stream.next(); if (ch == "/" && stream.eat("*")) { state.tokenize = tokenCComment; return tokenCComment(stream, state); } if (ch === '#') { stream.skipToEnd(); return "comment"; } if (ch == "\"") { state.tokenize = tokenString(ch); return state.tokenize(stream, state); } if (ch == "(") { state._indent.push("("); // add virtual angel wings so that editor behaves... // ...more sane incase of broken brackets state._indent.push("{"); return null; } if (ch === "{") { state._indent.push("{"); return null; } if (ch == ")") { state._indent.pop(); state._indent.pop(); } if (ch === "}") { state._indent.pop(); return null; } if (ch == ",") return null; if (ch == ";") return null; if (/[{}\(\),;]/.test(ch)) return null; // 1*DIGIT "K" / "M" / "G" if (/\d/.test(ch)) { stream.eatWhile(/[\d]/); stream.eat(/[KkMmGg]/); return "number"; } // ":" (ALPHA / "_") *(ALPHA / DIGIT / "_") if (ch == ":") { stream.eatWhile(/[a-zA-Z_]/); stream.eatWhile(/[a-zA-Z0-9_]/); return "operator"; } stream.eatWhile(/\w/); var cur = stream.current(); // "text:" *(SP / HTAB) (hash-comment / CRLF) // *(multiline-literal / multiline-dotstart) // "." CRLF if ((cur == "text") && stream.eat(":")) { state.tokenize = tokenMultiLineString; return "string"; } if (keywords.propertyIsEnumerable(cur)) return "keyword"; if (atoms.propertyIsEnumerable(cur)) return "atom"; return null; } function tokenMultiLineString(stream, state) { state._multiLineString = true; // the first line is special it may contain a comment if (!stream.sol()) { stream.eatSpace(); if (stream.peek() == "#") { stream.skipToEnd(); return "comment"; } stream.skipToEnd(); return "string"; } if ((stream.next() == ".") && (stream.eol())) { state._multiLineString = false; state.tokenize = tokenBase; } return "string"; } function tokenCComment(stream, state) { var maybeEnd = false, ch; while ((ch = stream.next()) != null) { if (maybeEnd && ch == "/") { state.tokenize = tokenBase; break; } maybeEnd = (ch == "*"); } return "comment"; } function tokenString(quote) { return function(stream, state) { var escaped = false, ch; while ((ch = stream.next()) != null) { if (ch == quote && !escaped) break; escaped = !escaped && ch == "\\"; } if (!escaped) state.tokenize = tokenBase; return "string"; }; } return { startState: function(base) { return {tokenize: tokenBase, baseIndent: base || 0, _indent: []}; }, token: function(stream, state) { if (stream.eatSpace()) return null; return (state.tokenize || tokenBase)(stream, state);; }, indent: function(state, _textAfter) { var length = state._indent.length; if (_textAfter && (_textAfter[0] == "}")) length--; if (length <0) length = 0; return length * indentUnit; }, electricChars: "}" }; }); CodeMirror.defineMIME("application/sieve", "sieve"); site_pro/codemirror-3.1/mode/sieve/index.html0000644000000000000000000000371512111430706020101 0ustar rootroot CodeMirror: Sieve (RFC5228) mode

    CodeMirror: Sieve (RFC5228) mode

    MIME types defined: application/sieve.

    site_pro/codemirror-3.1/mode/sieve/LICENSE0000644000000000000000000000207112111430706017103 0ustar rootrootCopyright (C) 2012 Thomas Schmid Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. site_pro/codemirror-3.1/mode/perl/0000755000000000000000000000000012111430706015725 5ustar rootrootsite_pro/codemirror-3.1/mode/perl/index.html0000644000000000000000000000227212111430706017725 0ustar rootroot CodeMirror: Perl mode

    CodeMirror: Perl mode

    MIME types defined: text/x-perl.

    site_pro/codemirror-3.1/mode/perl/perl.js0000644000000000000000000007134212111430706017234 0ustar rootroot// CodeMirror2 mode/perl/perl.js (text/x-perl) beta 0.10 (2011-11-08) // This is a part of CodeMirror from https://github.com/sabaca/CodeMirror_mode_perl (mail@sabaca.com) CodeMirror.defineMode("perl",function(){ // http://perldoc.perl.org var PERL={ // null - magic touch // 1 - keyword // 2 - def // 3 - atom // 4 - operator // 5 - variable-2 (predefined) // [x,y] - x=1,2,3; y=must be defined if x{...} // PERL operators '->' : 4, '++' : 4, '--' : 4, '**' : 4, // ! ~ \ and unary + and - '=~' : 4, '!~' : 4, '*' : 4, '/' : 4, '%' : 4, 'x' : 4, '+' : 4, '-' : 4, '.' : 4, '<<' : 4, '>>' : 4, // named unary operators '<' : 4, '>' : 4, '<=' : 4, '>=' : 4, 'lt' : 4, 'gt' : 4, 'le' : 4, 'ge' : 4, '==' : 4, '!=' : 4, '<=>' : 4, 'eq' : 4, 'ne' : 4, 'cmp' : 4, '~~' : 4, '&' : 4, '|' : 4, '^' : 4, '&&' : 4, '||' : 4, '//' : 4, '..' : 4, '...' : 4, '?' : 4, ':' : 4, '=' : 4, '+=' : 4, '-=' : 4, '*=' : 4, // etc. ??? ',' : 4, '=>' : 4, '::' : 4, // list operators (rightward) 'not' : 4, 'and' : 4, 'or' : 4, 'xor' : 4, // PERL predefined variables (I know, what this is a paranoid idea, but may be needed for people, who learn PERL, and for me as well, ...and may be for you?;) 'BEGIN' : [5,1], 'END' : [5,1], 'PRINT' : [5,1], 'PRINTF' : [5,1], 'GETC' : [5,1], 'READ' : [5,1], 'READLINE' : [5,1], 'DESTROY' : [5,1], 'TIE' : [5,1], 'TIEHANDLE' : [5,1], 'UNTIE' : [5,1], 'STDIN' : 5, 'STDIN_TOP' : 5, 'STDOUT' : 5, 'STDOUT_TOP' : 5, 'STDERR' : 5, 'STDERR_TOP' : 5, '$ARG' : 5, '$_' : 5, '@ARG' : 5, '@_' : 5, '$LIST_SEPARATOR' : 5, '$"' : 5, '$PROCESS_ID' : 5, '$PID' : 5, '$$' : 5, '$REAL_GROUP_ID' : 5, '$GID' : 5, '$(' : 5, '$EFFECTIVE_GROUP_ID' : 5, '$EGID' : 5, '$)' : 5, '$PROGRAM_NAME' : 5, '$0' : 5, '$SUBSCRIPT_SEPARATOR' : 5, '$SUBSEP' : 5, '$;' : 5, '$REAL_USER_ID' : 5, '$UID' : 5, '$<' : 5, '$EFFECTIVE_USER_ID' : 5, '$EUID' : 5, '$>' : 5, '$a' : 5, '$b' : 5, '$COMPILING' : 5, '$^C' : 5, '$DEBUGGING' : 5, '$^D' : 5, '${^ENCODING}' : 5, '$ENV' : 5, '%ENV' : 5, '$SYSTEM_FD_MAX' : 5, '$^F' : 5, '@F' : 5, '${^GLOBAL_PHASE}' : 5, '$^H' : 5, '%^H' : 5, '@INC' : 5, '%INC' : 5, '$INPLACE_EDIT' : 5, '$^I' : 5, '$^M' : 5, '$OSNAME' : 5, '$^O' : 5, '${^OPEN}' : 5, '$PERLDB' : 5, '$^P' : 5, '$SIG' : 5, '%SIG' : 5, '$BASETIME' : 5, '$^T' : 5, '${^TAINT}' : 5, '${^UNICODE}' : 5, '${^UTF8CACHE}' : 5, '${^UTF8LOCALE}' : 5, '$PERL_VERSION' : 5, '$^V' : 5, '${^WIN32_SLOPPY_STAT}' : 5, '$EXECUTABLE_NAME' : 5, '$^X' : 5, '$1' : 5, // - regexp $1, $2... '$MATCH' : 5, '$&' : 5, '${^MATCH}' : 5, '$PREMATCH' : 5, '$`' : 5, '${^PREMATCH}' : 5, '$POSTMATCH' : 5, "$'" : 5, '${^POSTMATCH}' : 5, '$LAST_PAREN_MATCH' : 5, '$+' : 5, '$LAST_SUBMATCH_RESULT' : 5, '$^N' : 5, '@LAST_MATCH_END' : 5, '@+' : 5, '%LAST_PAREN_MATCH' : 5, '%+' : 5, '@LAST_MATCH_START' : 5, '@-' : 5, '%LAST_MATCH_START' : 5, '%-' : 5, '$LAST_REGEXP_CODE_RESULT' : 5, '$^R' : 5, '${^RE_DEBUG_FLAGS}' : 5, '${^RE_TRIE_MAXBUF}' : 5, '$ARGV' : 5, '@ARGV' : 5, 'ARGV' : 5, 'ARGVOUT' : 5, '$OUTPUT_FIELD_SEPARATOR' : 5, '$OFS' : 5, '$,' : 5, '$INPUT_LINE_NUMBER' : 5, '$NR' : 5, '$.' : 5, '$INPUT_RECORD_SEPARATOR' : 5, '$RS' : 5, '$/' : 5, '$OUTPUT_RECORD_SEPARATOR' : 5, '$ORS' : 5, '$\\' : 5, '$OUTPUT_AUTOFLUSH' : 5, '$|' : 5, '$ACCUMULATOR' : 5, '$^A' : 5, '$FORMAT_FORMFEED' : 5, '$^L' : 5, '$FORMAT_PAGE_NUMBER' : 5, '$%' : 5, '$FORMAT_LINES_LEFT' : 5, '$-' : 5, '$FORMAT_LINE_BREAK_CHARACTERS' : 5, '$:' : 5, '$FORMAT_LINES_PER_PAGE' : 5, '$=' : 5, '$FORMAT_TOP_NAME' : 5, '$^' : 5, '$FORMAT_NAME' : 5, '$~' : 5, '${^CHILD_ERROR_NATIVE}' : 5, '$EXTENDED_OS_ERROR' : 5, '$^E' : 5, '$EXCEPTIONS_BEING_CAUGHT' : 5, '$^S' : 5, '$WARNING' : 5, '$^W' : 5, '${^WARNING_BITS}' : 5, '$OS_ERROR' : 5, '$ERRNO' : 5, '$!' : 5, '%OS_ERROR' : 5, '%ERRNO' : 5, '%!' : 5, '$CHILD_ERROR' : 5, '$?' : 5, '$EVAL_ERROR' : 5, '$@' : 5, '$OFMT' : 5, '$#' : 5, '$*' : 5, '$ARRAY_BASE' : 5, '$[' : 5, '$OLD_PERL_VERSION' : 5, '$]' : 5, // PERL blocks 'if' :[1,1], elsif :[1,1], 'else' :[1,1], 'while' :[1,1], unless :[1,1], 'for' :[1,1], foreach :[1,1], // PERL functions 'abs' :1, // - absolute value function accept :1, // - accept an incoming socket connect alarm :1, // - schedule a SIGALRM 'atan2' :1, // - arctangent of Y/X in the range -PI to PI bind :1, // - binds an address to a socket binmode :1, // - prepare binary files for I/O bless :1, // - create an object bootstrap :1, // 'break' :1, // - break out of a "given" block caller :1, // - get context of the current subroutine call chdir :1, // - change your current working directory chmod :1, // - changes the permissions on a list of files chomp :1, // - remove a trailing record separator from a string chop :1, // - remove the last character from a string chown :1, // - change the owership on a list of files chr :1, // - get character this number represents chroot :1, // - make directory new root for path lookups close :1, // - close file (or pipe or socket) handle closedir :1, // - close directory handle connect :1, // - connect to a remote socket 'continue' :[1,1], // - optional trailing block in a while or foreach 'cos' :1, // - cosine function crypt :1, // - one-way passwd-style encryption dbmclose :1, // - breaks binding on a tied dbm file dbmopen :1, // - create binding on a tied dbm file 'default' :1, // defined :1, // - test whether a value, variable, or function is defined 'delete' :1, // - deletes a value from a hash die :1, // - raise an exception or bail out 'do' :1, // - turn a BLOCK into a TERM dump :1, // - create an immediate core dump each :1, // - retrieve the next key/value pair from a hash endgrent :1, // - be done using group file endhostent :1, // - be done using hosts file endnetent :1, // - be done using networks file endprotoent :1, // - be done using protocols file endpwent :1, // - be done using passwd file endservent :1, // - be done using services file eof :1, // - test a filehandle for its end 'eval' :1, // - catch exceptions or compile and run code 'exec' :1, // - abandon this program to run another exists :1, // - test whether a hash key is present exit :1, // - terminate this program 'exp' :1, // - raise I to a power fcntl :1, // - file control system call fileno :1, // - return file descriptor from filehandle flock :1, // - lock an entire file with an advisory lock fork :1, // - create a new process just like this one format :1, // - declare a picture format with use by the write() function formline :1, // - internal function used for formats getc :1, // - get the next character from the filehandle getgrent :1, // - get next group record getgrgid :1, // - get group record given group user ID getgrnam :1, // - get group record given group name gethostbyaddr :1, // - get host record given its address gethostbyname :1, // - get host record given name gethostent :1, // - get next hosts record getlogin :1, // - return who logged in at this tty getnetbyaddr :1, // - get network record given its address getnetbyname :1, // - get networks record given name getnetent :1, // - get next networks record getpeername :1, // - find the other end of a socket connection getpgrp :1, // - get process group getppid :1, // - get parent process ID getpriority :1, // - get current nice value getprotobyname :1, // - get protocol record given name getprotobynumber :1, // - get protocol record numeric protocol getprotoent :1, // - get next protocols record getpwent :1, // - get next passwd record getpwnam :1, // - get passwd record given user login name getpwuid :1, // - get passwd record given user ID getservbyname :1, // - get services record given its name getservbyport :1, // - get services record given numeric port getservent :1, // - get next services record getsockname :1, // - retrieve the sockaddr for a given socket getsockopt :1, // - get socket options on a given socket given :1, // glob :1, // - expand filenames using wildcards gmtime :1, // - convert UNIX time into record or string using Greenwich time 'goto' :1, // - create spaghetti code grep :1, // - locate elements in a list test true against a given criterion hex :1, // - convert a string to a hexadecimal number 'import' :1, // - patch a module's namespace into your own index :1, // - find a substring within a string 'int' :1, // - get the integer portion of a number ioctl :1, // - system-dependent device control system call 'join' :1, // - join a list into a string using a separator keys :1, // - retrieve list of indices from a hash kill :1, // - send a signal to a process or process group last :1, // - exit a block prematurely lc :1, // - return lower-case version of a string lcfirst :1, // - return a string with just the next letter in lower case length :1, // - return the number of bytes in a string 'link' :1, // - create a hard link in the filesytem listen :1, // - register your socket as a server local : 2, // - create a temporary value for a global variable (dynamic scoping) localtime :1, // - convert UNIX time into record or string using local time lock :1, // - get a thread lock on a variable, subroutine, or method 'log' :1, // - retrieve the natural logarithm for a number lstat :1, // - stat a symbolic link m :null, // - match a string with a regular expression pattern map :1, // - apply a change to a list to get back a new list with the changes mkdir :1, // - create a directory msgctl :1, // - SysV IPC message control operations msgget :1, // - get SysV IPC message queue msgrcv :1, // - receive a SysV IPC message from a message queue msgsnd :1, // - send a SysV IPC message to a message queue my : 2, // - declare and assign a local variable (lexical scoping) 'new' :1, // next :1, // - iterate a block prematurely no :1, // - unimport some module symbols or semantics at compile time oct :1, // - convert a string to an octal number open :1, // - open a file, pipe, or descriptor opendir :1, // - open a directory ord :1, // - find a character's numeric representation our : 2, // - declare and assign a package variable (lexical scoping) pack :1, // - convert a list into a binary representation 'package' :1, // - declare a separate global namespace pipe :1, // - open a pair of connected filehandles pop :1, // - remove the last element from an array and return it pos :1, // - find or set the offset for the last/next m//g search print :1, // - output a list to a filehandle printf :1, // - output a formatted list to a filehandle prototype :1, // - get the prototype (if any) of a subroutine push :1, // - append one or more elements to an array q :null, // - singly quote a string qq :null, // - doubly quote a string qr :null, // - Compile pattern quotemeta :null, // - quote regular expression magic characters qw :null, // - quote a list of words qx :null, // - backquote quote a string rand :1, // - retrieve the next pseudorandom number read :1, // - fixed-length buffered input from a filehandle readdir :1, // - get a directory from a directory handle readline :1, // - fetch a record from a file readlink :1, // - determine where a symbolic link is pointing readpipe :1, // - execute a system command and collect standard output recv :1, // - receive a message over a Socket redo :1, // - start this loop iteration over again ref :1, // - find out the type of thing being referenced rename :1, // - change a filename require :1, // - load in external functions from a library at runtime reset :1, // - clear all variables of a given name 'return' :1, // - get out of a function early reverse :1, // - flip a string or a list rewinddir :1, // - reset directory handle rindex :1, // - right-to-left substring search rmdir :1, // - remove a directory s :null, // - replace a pattern with a string say :1, // - print with newline scalar :1, // - force a scalar context seek :1, // - reposition file pointer for random-access I/O seekdir :1, // - reposition directory pointer select :1, // - reset default output or do I/O multiplexing semctl :1, // - SysV semaphore control operations semget :1, // - get set of SysV semaphores semop :1, // - SysV semaphore operations send :1, // - send a message over a socket setgrent :1, // - prepare group file for use sethostent :1, // - prepare hosts file for use setnetent :1, // - prepare networks file for use setpgrp :1, // - set the process group of a process setpriority :1, // - set a process's nice value setprotoent :1, // - prepare protocols file for use setpwent :1, // - prepare passwd file for use setservent :1, // - prepare services file for use setsockopt :1, // - set some socket options shift :1, // - remove the first element of an array, and return it shmctl :1, // - SysV shared memory operations shmget :1, // - get SysV shared memory segment identifier shmread :1, // - read SysV shared memory shmwrite :1, // - write SysV shared memory shutdown :1, // - close down just half of a socket connection 'sin' :1, // - return the sine of a number sleep :1, // - block for some number of seconds socket :1, // - create a socket socketpair :1, // - create a pair of sockets 'sort' :1, // - sort a list of values splice :1, // - add or remove elements anywhere in an array 'split' :1, // - split up a string using a regexp delimiter sprintf :1, // - formatted print into a string 'sqrt' :1, // - square root function srand :1, // - seed the random number generator stat :1, // - get a file's status information state :1, // - declare and assign a state variable (persistent lexical scoping) study :1, // - optimize input data for repeated searches 'sub' :1, // - declare a subroutine, possibly anonymously 'substr' :1, // - get or alter a portion of a stirng symlink :1, // - create a symbolic link to a file syscall :1, // - execute an arbitrary system call sysopen :1, // - open a file, pipe, or descriptor sysread :1, // - fixed-length unbuffered input from a filehandle sysseek :1, // - position I/O pointer on handle used with sysread and syswrite system :1, // - run a separate program syswrite :1, // - fixed-length unbuffered output to a filehandle tell :1, // - get current seekpointer on a filehandle telldir :1, // - get current seekpointer on a directory handle tie :1, // - bind a variable to an object class tied :1, // - get a reference to the object underlying a tied variable time :1, // - return number of seconds since 1970 times :1, // - return elapsed time for self and child processes tr :null, // - transliterate a string truncate :1, // - shorten a file uc :1, // - return upper-case version of a string ucfirst :1, // - return a string with just the next letter in upper case umask :1, // - set file creation mode mask undef :1, // - remove a variable or function definition unlink :1, // - remove one link to a file unpack :1, // - convert binary structure into normal perl variables unshift :1, // - prepend more elements to the beginning of a list untie :1, // - break a tie binding to a variable use :1, // - load in a module at compile time utime :1, // - set a file's last access and modify times values :1, // - return a list of the values in a hash vec :1, // - test or set particular bits in a string wait :1, // - wait for any child process to die waitpid :1, // - wait for a particular child process to die wantarray :1, // - get void vs scalar vs list context of current subroutine call warn :1, // - print debugging info when :1, // write :1, // - print a picture record y :null}; // - transliterate a string var RXstyle="string-2"; var RXmodifiers=/[goseximacplud]/; // NOTE: "m", "s", "y" and "tr" need to correct real modifiers for each regexp type function tokenChain(stream,state,chain,style,tail){ // NOTE: chain.length > 2 is not working now (it's for s[...][...]geos;) state.chain=null; // 12 3tail state.style=null; state.tail=null; state.tokenize=function(stream,state){ var e=false,c,i=0; while(c=stream.next()){ if(c===chain[i]&&!e){ if(chain[++i]!==undefined){ state.chain=chain[i]; state.style=style; state.tail=tail;} else if(tail) stream.eatWhile(tail); state.tokenize=tokenPerl; return style;} e=!e&&c=="\\";} return style;}; return state.tokenize(stream,state);} function tokenSOMETHING(stream,state,string){ state.tokenize=function(stream,state){ if(stream.string==string) state.tokenize=tokenPerl; stream.skipToEnd(); return "string";}; return state.tokenize(stream,state);} function tokenPerl(stream,state){ if(stream.eatSpace()) return null; if(state.chain) return tokenChain(stream,state,state.chain,state.style,state.tail); if(stream.match(/^\-?[\d\.]/,false)) if(stream.match(/^(\-?(\d*\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F]+|0b[01]+|\d+(e[+-]?\d+)?)/)) return 'number'; if(stream.match(/^<<(?=\w)/)){ // NOTE: <"],RXstyle,RXmodifiers);} if(/[\^'"!~\/]/.test(c)){ stream.eatSuffix(1); return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}} else if(c=="q"){ c=stream.look(1); if(c=="("){ stream.eatSuffix(2); return tokenChain(stream,state,[")"],"string");} if(c=="["){ stream.eatSuffix(2); return tokenChain(stream,state,["]"],"string");} if(c=="{"){ stream.eatSuffix(2); return tokenChain(stream,state,["}"],"string");} if(c=="<"){ stream.eatSuffix(2); return tokenChain(stream,state,[">"],"string");} if(/[\^'"!~\/]/.test(c)){ stream.eatSuffix(1); return tokenChain(stream,state,[stream.eat(c)],"string");}} else if(c=="w"){ c=stream.look(1); if(c=="("){ stream.eatSuffix(2); return tokenChain(stream,state,[")"],"bracket");} if(c=="["){ stream.eatSuffix(2); return tokenChain(stream,state,["]"],"bracket");} if(c=="{"){ stream.eatSuffix(2); return tokenChain(stream,state,["}"],"bracket");} if(c=="<"){ stream.eatSuffix(2); return tokenChain(stream,state,[">"],"bracket");} if(/[\^'"!~\/]/.test(c)){ stream.eatSuffix(1); return tokenChain(stream,state,[stream.eat(c)],"bracket");}} else if(c=="r"){ c=stream.look(1); if(c=="("){ stream.eatSuffix(2); return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);} if(c=="["){ stream.eatSuffix(2); return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);} if(c=="{"){ stream.eatSuffix(2); return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);} if(c=="<"){ stream.eatSuffix(2); return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);} if(/[\^'"!~\/]/.test(c)){ stream.eatSuffix(1); return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}} else if(/[\^'"!~\/(\[{<]/.test(c)){ if(c=="("){ stream.eatSuffix(1); return tokenChain(stream,state,[")"],"string");} if(c=="["){ stream.eatSuffix(1); return tokenChain(stream,state,["]"],"string");} if(c=="{"){ stream.eatSuffix(1); return tokenChain(stream,state,["}"],"string");} if(c=="<"){ stream.eatSuffix(1); return tokenChain(stream,state,[">"],"string");} if(/[\^'"!~\/]/.test(c)){ return tokenChain(stream,state,[stream.eat(c)],"string");}}}} if(ch=="m"){ var c=stream.look(-2); if(!(c&&/\w/.test(c))){ c=stream.eat(/[(\[{<\^'"!~\/]/); if(c){ if(/[\^'"!~\/]/.test(c)){ return tokenChain(stream,state,[c],RXstyle,RXmodifiers);} if(c=="("){ return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);} if(c=="["){ return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);} if(c=="{"){ return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);} if(c=="<"){ return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}}}} if(ch=="s"){ var c=/[\/>\]})\w]/.test(stream.look(-2)); if(!c){ c=stream.eat(/[(\[{<\^'"!~\/]/); if(c){ if(c=="[") return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers); if(c=="{") return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers); if(c=="<") return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers); if(c=="(") return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers); return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}} if(ch=="y"){ var c=/[\/>\]})\w]/.test(stream.look(-2)); if(!c){ c=stream.eat(/[(\[{<\^'"!~\/]/); if(c){ if(c=="[") return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers); if(c=="{") return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers); if(c=="<") return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers); if(c=="(") return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers); return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}} if(ch=="t"){ var c=/[\/>\]})\w]/.test(stream.look(-2)); if(!c){ c=stream.eat("r");if(c){ c=stream.eat(/[(\[{<\^'"!~\/]/); if(c){ if(c=="[") return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers); if(c=="{") return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers); if(c=="<") return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers); if(c=="(") return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers); return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}} if(ch=="`"){ return tokenChain(stream,state,[ch],"variable-2");} if(ch=="/"){ if(!/~\s*$/.test(stream.prefix())) return "operator"; else return tokenChain(stream,state,[ch],RXstyle,RXmodifiers);} if(ch=="$"){ var p=stream.pos; if(stream.eatWhile(/\d/)||stream.eat("{")&&stream.eatWhile(/\d/)&&stream.eat("}")) return "variable-2"; else stream.pos=p;} if(/[$@%]/.test(ch)){ var p=stream.pos; if(stream.eat("^")&&stream.eat(/[A-Z]/)||!/[@$%&]/.test(stream.look(-2))&&stream.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){ var c=stream.current(); if(PERL[c]) return "variable-2";} stream.pos=p;} if(/[$@%&]/.test(ch)){ if(stream.eatWhile(/[\w$\[\]]/)||stream.eat("{")&&stream.eatWhile(/[\w$\[\]]/)&&stream.eat("}")){ var c=stream.current(); if(PERL[c]) return "variable-2"; else return "variable";}} if(ch=="#"){ if(stream.look(-2)!="$"){ stream.skipToEnd(); return "comment";}} if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(ch)){ var p=stream.pos; stream.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/); if(PERL[stream.current()]) return "operator"; else stream.pos=p;} if(ch=="_"){ if(stream.pos==1){ if(stream.suffix(6)=="_END__"){ return tokenChain(stream,state,['\0'],"comment");} else if(stream.suffix(7)=="_DATA__"){ return tokenChain(stream,state,['\0'],"variable-2");} else if(stream.suffix(7)=="_C__"){ return tokenChain(stream,state,['\0'],"string");}}} if(/\w/.test(ch)){ var p=stream.pos; if(stream.look(-2)=="{"&&(stream.look(0)=="}"||stream.eatWhile(/\w/)&&stream.look(0)=="}")) return "string"; else stream.pos=p;} if(/[A-Z]/.test(ch)){ var l=stream.look(-2); var p=stream.pos; stream.eatWhile(/[A-Z_]/); if(/[\da-z]/.test(stream.look(0))){ stream.pos=p;} else{ var c=PERL[stream.current()]; if(!c) return "meta"; if(c[1]) c=c[0]; if(l!=":"){ if(c==1) return "keyword"; else if(c==2) return "def"; else if(c==3) return "atom"; else if(c==4) return "operator"; else if(c==5) return "variable-2"; else return "meta";} else return "meta";}} if(/[a-zA-Z_]/.test(ch)){ var l=stream.look(-2); stream.eatWhile(/\w/); var c=PERL[stream.current()]; if(!c) return "meta"; if(c[1]) c=c[0]; if(l!=":"){ if(c==1) return "keyword"; else if(c==2) return "def"; else if(c==3) return "atom"; else if(c==4) return "operator"; else if(c==5) return "variable-2"; else return "meta";} else return "meta";} return null;} return{ startState:function(){ return{ tokenize:tokenPerl, chain:null, style:null, tail:null};}, token:function(stream,state){ return (state.tokenize||tokenPerl)(stream,state);}, electricChars:"{}"};}); CodeMirror.defineMIME("text/x-perl", "perl"); // it's like "peek", but need for look-ahead or look-behind if index < 0 CodeMirror.StringStream.prototype.look=function(c){ return this.string.charAt(this.pos+(c||0));}; // return a part of prefix of current stream from current position CodeMirror.StringStream.prototype.prefix=function(c){ if(c){ var x=this.pos-c; return this.string.substr((x>=0?x:0),c);} else{ return this.string.substr(0,this.pos-1);}}; // return a part of suffix of current stream from current position CodeMirror.StringStream.prototype.suffix=function(c){ var y=this.string.length; var x=y-this.pos+1; return this.string.substr(this.pos,(c&&c=(y=this.string.length-1)) this.pos=y; else this.pos=x;}; site_pro/codemirror-3.1/mode/perl/LICENSE0000644000000000000000000000210612111430706016731 0ustar rootrootCopyright (C) 2011 by Sabaca under the MIT license. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. site_pro/codemirror-3.1/mode/r/0000755000000000000000000000000012111430706015224 5ustar rootrootsite_pro/codemirror-3.1/mode/r/r.js0000644000000000000000000001150412111430706016024 0ustar rootrootCodeMirror.defineMode("r", function(config) { function wordObj(str) { var words = str.split(" "), res = {}; for (var i = 0; i < words.length; ++i) res[words[i]] = true; return res; } var atoms = wordObj("NULL NA Inf NaN NA_integer_ NA_real_ NA_complex_ NA_character_"); var builtins = wordObj("list quote bquote eval return call parse deparse"); var keywords = wordObj("if else repeat while function for in next break"); var blockkeywords = wordObj("if else repeat while function for"); var opChars = /[+\-*\/^<>=!&|~$:]/; var curPunc; function tokenBase(stream, state) { curPunc = null; var ch = stream.next(); if (ch == "#") { stream.skipToEnd(); return "comment"; } else if (ch == "0" && stream.eat("x")) { stream.eatWhile(/[\da-f]/i); return "number"; } else if (ch == "." && stream.eat(/\d/)) { stream.match(/\d*(?:e[+\-]?\d+)?/); return "number"; } else if (/\d/.test(ch)) { stream.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/); return "number"; } else if (ch == "'" || ch == '"') { state.tokenize = tokenString(ch); return "string"; } else if (ch == "." && stream.match(/.[.\d]+/)) { return "keyword"; } else if (/[\w\.]/.test(ch) && ch != "_") { stream.eatWhile(/[\w\.]/); var word = stream.current(); if (atoms.propertyIsEnumerable(word)) return "atom"; if (keywords.propertyIsEnumerable(word)) { if (blockkeywords.propertyIsEnumerable(word)) curPunc = "block"; return "keyword"; } if (builtins.propertyIsEnumerable(word)) return "builtin"; return "variable"; } else if (ch == "%") { if (stream.skipTo("%")) stream.next(); return "variable-2"; } else if (ch == "<" && stream.eat("-")) { return "arrow"; } else if (ch == "=" && state.ctx.argList) { return "arg-is"; } else if (opChars.test(ch)) { if (ch == "$") return "dollar"; stream.eatWhile(opChars); return "operator"; } else if (/[\(\){}\[\];]/.test(ch)) { curPunc = ch; if (ch == ";") return "semi"; return null; } else { return null; } } function tokenString(quote) { return function(stream, state) { if (stream.eat("\\")) { var ch = stream.next(); if (ch == "x") stream.match(/^[a-f0-9]{2}/i); else if ((ch == "u" || ch == "U") && stream.eat("{") && stream.skipTo("}")) stream.next(); else if (ch == "u") stream.match(/^[a-f0-9]{4}/i); else if (ch == "U") stream.match(/^[a-f0-9]{8}/i); else if (/[0-7]/.test(ch)) stream.match(/^[0-7]{1,2}/); return "string-2"; } else { var next; while ((next = stream.next()) != null) { if (next == quote) { state.tokenize = tokenBase; break; } if (next == "\\") { stream.backUp(1); break; } } return "string"; } }; } function push(state, type, stream) { state.ctx = {type: type, indent: state.indent, align: null, column: stream.column(), prev: state.ctx}; } function pop(state) { state.indent = state.ctx.indent; state.ctx = state.ctx.prev; } return { startState: function() { return {tokenize: tokenBase, ctx: {type: "top", indent: -config.indentUnit, align: false}, indent: 0, afterIdent: false}; }, token: function(stream, state) { if (stream.sol()) { if (state.ctx.align == null) state.ctx.align = false; state.indent = stream.indentation(); } if (stream.eatSpace()) return null; var style = state.tokenize(stream, state); if (style != "comment" && state.ctx.align == null) state.ctx.align = true; var ctype = state.ctx.type; if ((curPunc == ";" || curPunc == "{" || curPunc == "}") && ctype == "block") pop(state); if (curPunc == "{") push(state, "}", stream); else if (curPunc == "(") { push(state, ")", stream); if (state.afterIdent) state.ctx.argList = true; } else if (curPunc == "[") push(state, "]", stream); else if (curPunc == "block") push(state, "block", stream); else if (curPunc == ctype) pop(state); state.afterIdent = style == "variable" || style == "keyword"; return style; }, indent: function(state, textAfter) { if (state.tokenize != tokenBase) return 0; var firstChar = textAfter && textAfter.charAt(0), ctx = state.ctx, closing = firstChar == ctx.type; if (ctx.type == "block") return ctx.indent + (firstChar == "{" ? 0 : config.indentUnit); else if (ctx.align) return ctx.column + (closing ? 0 : 1); else return ctx.indent + (closing ? 0 : config.indentUnit); } }; }); CodeMirror.defineMIME("text/x-rsrc", "r"); site_pro/codemirror-3.1/mode/r/index.html0000644000000000000000000000436212111430706017226 0ustar rootroot CodeMirror: R mode

    CodeMirror: R mode

    MIME types defined: text/x-rsrc.

    Development of the CodeMirror R mode was kindly sponsored by Ubalo, who hold the license.

    site_pro/codemirror-3.1/mode/r/LICENSE0000644000000000000000000000271612111430706016237 0ustar rootrootCopyright (c) 2011, Ubalo, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the Ubalo, Inc nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL UBALO, INC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. site_pro/codemirror-3.1/mode/markdown/0000755000000000000000000000000012111430706016605 5ustar rootrootsite_pro/codemirror-3.1/mode/markdown/test.js0000644000000000000000000003450112111430706020125 0ustar rootroot(function() { var mode = CodeMirror.getMode({tabSize: 4}, "markdown"); function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } MT("plainText", "foo"); // Code blocks using 4 spaces (regardless of CodeMirror.tabSize value) MT("codeBlocksUsing4Spaces", " [comment foo]"); // Code blocks using 4 spaces with internal indentation MT("codeBlocksUsing4SpacesIndentation", " [comment bar]", " [comment hello]", " [comment world]", " [comment foo]", "bar"); // Code blocks using 4 spaces with internal indentation MT("codeBlocksUsing4SpacesIndentation", " foo", " [comment bar]", " [comment hello]", " [comment world]"); // Code blocks using 1 tab (regardless of CodeMirror.indentWithTabs value) MT("codeBlocksUsing1Tab", "\t[comment foo]"); // Inline code using backticks MT("inlineCodeUsingBackticks", "foo [comment `bar`]"); // Block code using single backtick (shouldn't work) MT("blockCodeSingleBacktick", "[comment `]", "foo", "[comment `]"); // Unclosed backticks // Instead of simply marking as CODE, it would be nice to have an // incomplete flag for CODE, that is styled slightly different. MT("unclosedBackticks", "foo [comment `bar]"); // Per documentation: "To include a literal backtick character within a // code span, you can use multiple backticks as the opening and closing // delimiters" MT("doubleBackticks", "[comment ``foo ` bar``]"); // Tests based on Dingus // http://daringfireball.net/projects/markdown/dingus // // Multiple backticks within an inline code block MT("consecutiveBackticks", "[comment `foo```bar`]"); // Multiple backticks within an inline code block with a second code block MT("consecutiveBackticks", "[comment `foo```bar`] hello [comment `world`]"); // Unclosed with several different groups of backticks MT("unclosedBackticks", "[comment ``foo ``` bar` hello]"); // Closed with several different groups of backticks MT("closedBackticks", "[comment ``foo ``` bar` hello``] world"); // atx headers // http://daringfireball.net/projects/markdown/syntax#header MT("atxH1", "[header # foo]"); MT("atxH2", "[header ## foo]"); MT("atxH3", "[header ### foo]"); MT("atxH4", "[header #### foo]"); MT("atxH5", "[header ##### foo]"); MT("atxH6", "[header ###### foo]"); // H6 - 7x '#' should still be H6, per Dingus // http://daringfireball.net/projects/markdown/dingus MT("atxH6NotH7", "[header ####### foo]"); // Setext headers - H1, H2 // Per documentation, "Any number of underlining =’s or -’s will work." // http://daringfireball.net/projects/markdown/syntax#header // Ideally, the text would be marked as `header` as well, but this is // not really feasible at the moment. So, instead, we're testing against // what works today, to avoid any regressions. // // Check if single underlining = works MT("setextH1", "foo", "[header =]"); // Check if 3+ ='s work MT("setextH1", "foo", "[header ===]"); // Check if single underlining - works MT("setextH2", "foo", "[header -]"); // Check if 3+ -'s work MT("setextH2", "foo", "[header ---]"); // Single-line blockquote with trailing space MT("blockquoteSpace", "[quote > foo]"); // Single-line blockquote MT("blockquoteNoSpace", "[quote >foo]"); // Single-line blockquote followed by normal paragraph MT("blockquoteThenParagraph", "[quote >foo]", "", "bar"); // Multi-line blockquote (lazy mode) MT("multiBlockquoteLazy", "[quote >foo]", "[quote bar]"); // Multi-line blockquote followed by normal paragraph (lazy mode) MT("multiBlockquoteLazyThenParagraph", "[quote >foo]", "[quote bar]", "", "hello"); // Multi-line blockquote (non-lazy mode) MT("multiBlockquote", "[quote >foo]", "[quote >bar]"); // Multi-line blockquote followed by normal paragraph (non-lazy mode) MT("multiBlockquoteThenParagraph", "[quote >foo]", "[quote >bar]", "", "hello"); // Check list types MT("listAsterisk", "[string * foo]", "[string * bar]"); MT("listPlus", "[string + foo]", "[string + bar]"); MT("listDash", "[string - foo]", "[string - bar]"); MT("listNumber", "[string 1. foo]", "[string 2. bar]"); // Formatting in lists (*) MT("listAsteriskFormatting", "[string * ][string&em *foo*][string bar]", "[string * ][string&strong **foo**][string bar]", "[string * ][string&strong **][string&emstrong *foo**][string&em *][string bar]", "[string * ][string&comment `foo`][string bar]"); // Formatting in lists (+) MT("listPlusFormatting", "[string + ][string&em *foo*][string bar]", "[string + ][string&strong **foo**][string bar]", "[string + ][string&strong **][string&emstrong *foo**][string&em *][string bar]", "[string + ][string&comment `foo`][string bar]"); // Formatting in lists (-) MT("listDashFormatting", "[string - ][string&em *foo*][string bar]", "[string - ][string&strong **foo**][string bar]", "[string - ][string&strong **][string&emstrong *foo**][string&em *][string bar]", "[string - ][string&comment `foo`][string bar]"); // Formatting in lists (1.) MT("listNumberFormatting", "[string 1. ][string&em *foo*][string bar]", "[string 2. ][string&strong **foo**][string bar]", "[string 3. ][string&strong **][string&emstrong *foo**][string&em *][string bar]", "[string 4. ][string&comment `foo`][string bar]"); // Paragraph lists MT("listParagraph", "[string * foo]", "", "[string * bar]"); // Multi-paragraph lists // // 4 spaces MT("listMultiParagraph", "[string * foo]", "", "[string * bar]", "", " [string hello]"); // 4 spaces, extra blank lines (should still be list, per Dingus) MT("listMultiParagraphExtra", "[string * foo]", "", "[string * bar]", "", " [string hello]"); // 4 spaces, plus 1 space (should still be list, per Dingus) MT("listMultiParagraphExtraSpace", "[string * foo]", "", "[string * bar]", "", " [string hello]", "", " [string world]"); // 1 tab MT("listTab", "[string * foo]", "", "[string * bar]", "", "\t[string hello]"); // No indent MT("listNoIndent", "[string * foo]", "", "[string * bar]", "", "hello"); // Blockquote MT("blockquote", "[string * foo]", "", "[string * bar]", "", " [string"e > hello]"); // Code block MT("blockquoteCode", "[string * foo]", "", "[string * bar]", "", " [comment > hello]", "", " [string world]"); // Code block followed by text MT("blockquoteCodeText", "[string * foo]", "", " [string bar]", "", " [comment hello]", "", " [string world]"); // Nested list MT("listAsteriskNested", "[string * foo]", "", " [string * bar]"); MT("listPlusNested", "[string + foo]", "", " [string + bar]"); MT("listDashNested", "[string - foo]", "", " [string - bar]"); MT("listNumberNested", "[string 1. foo]", "", " [string 2. bar]"); MT("listMixed", "[string * foo]", "", " [string + bar]", "", " [string - hello]", "", " [string 1. world]"); MT("listBlockquote", "[string * foo]", "", " [string + bar]", "", " [quote&string > hello]"); MT("listCode", "[string * foo]", "", " [string + bar]", "", " [comment hello]"); // Code with internal indentation MT("listCodeIndentation", "[string * foo]", "", " [comment bar]", " [comment hello]", " [comment world]", " [comment foo]", " [string bar]"); // Code followed by text MT("listCodeText", "[string * foo]", "", " [comment bar]", "", "hello"); // Following tests directly from official Markdown documentation // http://daringfireball.net/projects/markdown/syntax#hr MT("hrSpace", "[hr * * *]"); MT("hr", "[hr ***]"); MT("hrLong", "[hr *****]"); MT("hrSpaceDash", "[hr - - -]"); MT("hrDashLong", "[hr ---------------------------------------]"); // Inline link with title MT("linkTitle", "[link [[foo]]][string (http://example.com/ \"bar\")] hello"); // Inline link without title MT("linkNoTitle", "[link [[foo]]][string (http://example.com/)] bar"); // Inline link with image MT("linkImage", "[link [[][tag ![[foo]]][string (http://example.com/)][link ]]][string (http://example.com/)] bar"); // Inline link with Em MT("linkEm", "[link [[][link&em *foo*][link ]]][string (http://example.com/)] bar"); // Inline link with Strong MT("linkStrong", "[link [[][link&strong **foo**][link ]]][string (http://example.com/)] bar"); // Inline link with EmStrong MT("linkEmStrong", "[link [[][link&strong **][link&emstrong *foo**][link&em *][link ]]][string (http://example.com/)] bar"); // Image with title MT("imageTitle", "[tag ![[foo]]][string (http://example.com/ \"bar\")] hello"); // Image without title MT("imageNoTitle", "[tag ![[foo]]][string (http://example.com/)] bar"); // Image with asterisks MT("imageAsterisks", "[tag ![[*foo*]]][string (http://example.com/)] bar"); // Not a link. Should be normal text due to square brackets being used // regularly in text, especially in quoted material, and no space is allowed // between square brackets and parentheses (per Dingus). MT("notALink", "[[foo]] (bar)"); // Reference-style links MT("linkReference", "[link [[foo]]][string [[bar]]] hello"); // Reference-style links with Em MT("linkReferenceEm", "[link [[][link&em *foo*][link ]]][string [[bar]]] hello"); // Reference-style links with Strong MT("linkReferenceStrong", "[link [[][link&strong **foo**][link ]]][string [[bar]]] hello"); // Reference-style links with EmStrong MT("linkReferenceEmStrong", "[link [[][link&strong **][link&emstrong *foo**][link&em *][link ]]][string [[bar]]] hello"); // Reference-style links with optional space separator (per docuentation) // "You can optionally use a space to separate the sets of brackets" MT("linkReferenceSpace", "[link [[foo]]] [string [[bar]]] hello"); // Should only allow a single space ("...use *a* space...") MT("linkReferenceDoubleSpace", "[[foo]] [[bar]] hello"); // Reference-style links with implicit link name MT("linkImplicit", "[link [[foo]]][string [[]]] hello"); // @todo It would be nice if, at some point, the document was actually // checked to see if the referenced link exists // Link label, for reference-style links (taken from documentation) MT("labelNoTitle", "[link [[foo]]:] [string http://example.com/]"); MT("labelIndented", " [link [[foo]]:] [string http://example.com/]"); MT("labelSpaceTitle", "[link [[foo bar]]:] [string http://example.com/ \"hello\"]"); MT("labelDoubleTitle", "[link [[foo bar]]:] [string http://example.com/ \"hello\"] \"world\""); MT("labelTitleDoubleQuotes", "[link [[foo]]:] [string http://example.com/ \"bar\"]"); MT("labelTitleSingleQuotes", "[link [[foo]]:] [string http://example.com/ 'bar']"); MT("labelTitleParenthese", "[link [[foo]]:] [string http://example.com/ (bar)]"); MT("labelTitleInvalid", "[link [[foo]]:] [string http://example.com/] bar"); MT("labelLinkAngleBrackets", "[link [[foo]]:] [string \"bar\"]"); MT("labelTitleNextDoubleQuotes", "[link [[foo]]:] [string http://example.com/]", "[string \"bar\"] hello"); MT("labelTitleNextSingleQuotes", "[link [[foo]]:] [string http://example.com/]", "[string 'bar'] hello"); MT("labelTitleNextParenthese", "[link [[foo]]:] [string http://example.com/]", "[string (bar)] hello"); MT("labelTitleNextMixed", "[link [[foo]]:] [string http://example.com/]", "(bar\" hello"); MT("linkWeb", "[link ] foo"); MT("linkEmail", "[link ] foo"); MT("emAsterisk", "[em *foo*] bar"); MT("emUnderscore", "[em _foo_] bar"); MT("emInWordAsterisk", "foo[em *bar*]hello"); MT("emInWordUnderscore", "foo[em _bar_]hello"); // Per documentation: "...surround an * or _ with spaces, it’ll be // treated as a literal asterisk or underscore." MT("emEscapedBySpaceIn", "foo [em _bar _ hello_] world"); MT("emEscapedBySpaceOut", "foo _ bar[em _hello_]world"); // Unclosed emphasis characters // Instead of simply marking as EM / STRONG, it would be nice to have an // incomplete flag for EM and STRONG, that is styled slightly different. MT("emIncompleteAsterisk", "foo [em *bar]"); MT("emIncompleteUnderscore", "foo [em _bar]"); MT("strongAsterisk", "[strong **foo**] bar"); MT("strongUnderscore", "[strong __foo__] bar"); MT("emStrongAsterisk", "[em *foo][emstrong **bar*][strong hello**] world"); MT("emStrongUnderscore", "[em _foo][emstrong __bar_][strong hello__] world"); // "...same character must be used to open and close an emphasis span."" MT("emStrongMixed", "[em _foo][emstrong **bar*hello__ world]"); MT("emStrongMixed", "[em *foo][emstrong __bar_hello** world]"); // These characters should be escaped: // \ backslash // ` backtick // * asterisk // _ underscore // {} curly braces // [] square brackets // () parentheses // # hash mark // + plus sign // - minus sign (hyphen) // . dot // ! exclamation mark MT("escapeBacktick", "foo \\`bar\\`"); MT("doubleEscapeBacktick", "foo \\\\[comment `bar\\\\`]"); MT("escapeAsterisk", "foo \\*bar\\*"); MT("doubleEscapeAsterisk", "foo \\\\[em *bar\\\\*]"); MT("escapeUnderscore", "foo \\_bar\\_"); MT("doubleEscapeUnderscore", "foo \\\\[em _bar\\\\_]"); MT("escapeHash", "\\# foo"); MT("doubleEscapeHash", "\\\\# foo"); })(); site_pro/codemirror-3.1/mode/markdown/markdown.js0000644000000000000000000003262612111430706020776 0ustar rootrootCodeMirror.defineMode("markdown", function(cmCfg, modeCfg) { var htmlFound = CodeMirror.mimeModes.hasOwnProperty("text/html"); var htmlMode = CodeMirror.getMode(cmCfg, htmlFound ? "text/html" : "text/plain"); var aliases = { html: "htmlmixed", js: "javascript", json: "application/json", c: "text/x-csrc", "c++": "text/x-c++src", java: "text/x-java", csharp: "text/x-csharp", "c#": "text/x-csharp", scala: "text/x-scala" }; var getMode = (function () { var i, modes = {}, mimes = {}, mime; var list = []; for (var m in CodeMirror.modes) if (CodeMirror.modes.propertyIsEnumerable(m)) list.push(m); for (i = 0; i < list.length; i++) { modes[list[i]] = list[i]; } var mimesList = []; for (var m in CodeMirror.mimeModes) if (CodeMirror.mimeModes.propertyIsEnumerable(m)) mimesList.push({mime: m, mode: CodeMirror.mimeModes[m]}); for (i = 0; i < mimesList.length; i++) { mime = mimesList[i].mime; mimes[mime] = mimesList[i].mime; } for (var a in aliases) { if (aliases[a] in modes || aliases[a] in mimes) modes[a] = aliases[a]; } return function (lang) { return modes[lang] ? CodeMirror.getMode(cmCfg, modes[lang]) : null; }; }()); // Should underscores in words open/close em/strong? if (modeCfg.underscoresBreakWords === undefined) modeCfg.underscoresBreakWords = true; // Turn on fenced code blocks? ("```" to start/end) if (modeCfg.fencedCodeBlocks === undefined) modeCfg.fencedCodeBlocks = false; var codeDepth = 0; var prevLineHasContent = false , thisLineHasContent = false; var header = 'header' , code = 'comment' , quote = 'quote' , list = 'string' , hr = 'hr' , image = 'tag' , linkinline = 'link' , linkemail = 'link' , linktext = 'link' , linkhref = 'string' , em = 'em' , strong = 'strong' , emstrong = 'emstrong'; var hrRE = /^([*\-=_])(?:\s*\1){2,}\s*$/ , ulRE = /^[*\-+]\s+/ , olRE = /^[0-9]+\.\s+/ , headerRE = /^(?:\={1,}|-{1,})$/ , textRE = /^[^!\[\]*_\\<>` "'(]+/; function switchInline(stream, state, f) { state.f = state.inline = f; return f(stream, state); } function switchBlock(stream, state, f) { state.f = state.block = f; return f(stream, state); } // Blocks function blankLine(state) { // Reset linkTitle state state.linkTitle = false; // Reset EM state state.em = false; // Reset STRONG state state.strong = false; // Reset state.quote state.quote = false; if (!htmlFound && state.f == htmlBlock) { state.f = inlineNormal; state.block = blockNormal; } return null; } function blockNormal(stream, state) { if (state.list !== false && state.indentationDiff >= 0) { // Continued list if (state.indentationDiff < 4) { // Only adjust indentation if *not* a code block state.indentation -= state.indentationDiff; } state.list = null; } else { // No longer a list state.list = false; } if (state.indentationDiff >= 4) { state.indentation -= 4; stream.skipToEnd(); return code; } else if (stream.eatSpace()) { return null; } else if (stream.peek() === '#' || (prevLineHasContent && stream.match(headerRE)) ) { state.header = true; } else if (stream.eat('>')) { state.indentation++; state.quote = true; } else if (stream.peek() === '[') { return switchInline(stream, state, footnoteLink); } else if (stream.match(hrRE, true)) { return hr; } else if (stream.match(ulRE, true) || stream.match(olRE, true)) { state.indentation += 4; state.list = true; } else if (modeCfg.fencedCodeBlocks && stream.match(/^```([\w+#]*)/, true)) { // try switching mode state.localMode = getMode(RegExp.$1); if (state.localMode) state.localState = state.localMode.startState(); switchBlock(stream, state, local); return code; } return switchInline(stream, state, state.inline); } function htmlBlock(stream, state) { var style = htmlMode.token(stream, state.htmlState); if (htmlFound && style === 'tag' && state.htmlState.type !== 'openTag' && !state.htmlState.context) { state.f = inlineNormal; state.block = blockNormal; } if (state.md_inside && stream.current().indexOf(">")!=-1) { state.f = inlineNormal; state.block = blockNormal; state.htmlState.context = undefined; } return style; } function local(stream, state) { if (stream.sol() && stream.match(/^```/, true)) { state.localMode = state.localState = null; state.f = inlineNormal; state.block = blockNormal; return code; } else if (state.localMode) { return state.localMode.token(stream, state.localState); } else { stream.skipToEnd(); return code; } } // Inline function getType(state) { var styles = []; if (state.strong) { styles.push(state.em ? emstrong : strong); } else if (state.em) { styles.push(em); } if (state.linkText) { styles.push(linktext); } if (state.code) { styles.push(code); } if (state.header) { styles.push(header); } if (state.quote) { styles.push(quote); } if (state.list !== false) { styles.push(list); } return styles.length ? styles.join(' ') : null; } function handleText(stream, state) { if (stream.match(textRE, true)) { return getType(state); } return undefined; } function inlineNormal(stream, state) { var style = state.text(stream, state); if (typeof style !== 'undefined') return style; if (state.list) { // List marker (*, +, -, 1., etc) state.list = null; return list; } var ch = stream.next(); if (ch === '\\') { stream.next(); return getType(state); } // Matches link titles present on next line if (state.linkTitle) { state.linkTitle = false; var matchCh = ch; if (ch === '(') { matchCh = ')'; } matchCh = (matchCh+'').replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"); var regex = '^\\s*(?:[^' + matchCh + '\\\\]+|\\\\\\\\|\\\\.)' + matchCh; if (stream.match(new RegExp(regex), true)) { return linkhref; } } // If this block is changed, it may need to be updated in GFM mode if (ch === '`') { var t = getType(state); var before = stream.pos; stream.eatWhile('`'); var difference = 1 + stream.pos - before; if (!state.code) { codeDepth = difference; state.code = true; return getType(state); } else { if (difference === codeDepth) { // Must be exact state.code = false; return t; } return getType(state); } } else if (state.code) { return getType(state); } if (ch === '!' && stream.match(/\[[^\]]*\] ?(?:\(|\[)/, false)) { stream.match(/\[[^\]]*\]/); state.inline = state.f = linkHref; return image; } if (ch === '[' && stream.match(/.*\](\(| ?\[)/, false)) { state.linkText = true; return getType(state); } if (ch === ']' && state.linkText) { var type = getType(state); state.linkText = false; state.inline = state.f = linkHref; return type; } if (ch === '<' && stream.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/, true)) { return switchInline(stream, state, inlineElement(linkinline, '>')); } if (ch === '<' && stream.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/, true)) { return switchInline(stream, state, inlineElement(linkemail, '>')); } if (ch === '<' && stream.match(/^\w/, false)) { if (stream.string.indexOf(">")!=-1) { var atts = stream.string.substring(1,stream.string.indexOf(">")); if (/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(atts)) { state.md_inside = true; } } stream.backUp(1); return switchBlock(stream, state, htmlBlock); } if (ch === '<' && stream.match(/^\/\w*?>/)) { state.md_inside = false; return "tag"; } var ignoreUnderscore = false; if (!modeCfg.underscoresBreakWords) { if (ch === '_' && stream.peek() !== '_' && stream.match(/(\w)/, false)) { var prevPos = stream.pos - 2; if (prevPos >= 0) { var prevCh = stream.string.charAt(prevPos); if (prevCh !== '_' && prevCh.match(/(\w)/, false)) { ignoreUnderscore = true; } } } } var t = getType(state); if (ch === '*' || (ch === '_' && !ignoreUnderscore)) { if (state.strong === ch && stream.eat(ch)) { // Remove STRONG state.strong = false; return t; } else if (!state.strong && stream.eat(ch)) { // Add STRONG state.strong = ch; return getType(state); } else if (state.em === ch) { // Remove EM state.em = false; return t; } else if (!state.em) { // Add EM state.em = ch; return getType(state); } } else if (ch === ' ') { if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces if (stream.peek() === ' ') { // Surrounded by spaces, ignore return getType(state); } else { // Not surrounded by spaces, back up pointer stream.backUp(1); } } } return getType(state); } function linkHref(stream, state) { // Check if space, and return NULL if so (to avoid marking the space) if(stream.eatSpace()){ return null; } var ch = stream.next(); if (ch === '(' || ch === '[') { return switchInline(stream, state, inlineElement(linkhref, ch === '(' ? ')' : ']')); } return 'error'; } function footnoteLink(stream, state) { if (stream.match(/^[^\]]*\]:/, true)) { state.f = footnoteUrl; return linktext; } return switchInline(stream, state, inlineNormal); } function footnoteUrl(stream, state) { // Check if space, and return NULL if so (to avoid marking the space) if(stream.eatSpace()){ return null; } // Match URL stream.match(/^[^\s]+/, true); // Check for link title if (stream.peek() === undefined) { // End of line, set flag to check next line state.linkTitle = true; } else { // More content on line, check if link title stream.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/, true); } state.f = state.inline = inlineNormal; return linkhref; } var savedInlineRE = []; function inlineRE(endChar) { if (!savedInlineRE[endChar]) { // Escape endChar for RegExp (taken from http://stackoverflow.com/a/494122/526741) endChar = (endChar+'').replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"); // Match any non-endChar, escaped character, as well as the closing // endChar. savedInlineRE[endChar] = new RegExp('^(?:[^\\\\]|\\\\.)*?(' + endChar + ')'); } return savedInlineRE[endChar]; } function inlineElement(type, endChar, next) { next = next || inlineNormal; return function(stream, state) { stream.match(inlineRE(endChar)); state.inline = state.f = next; return type; }; } return { startState: function() { prevLineHasContent = false; thisLineHasContent = false; return { f: blockNormal, block: blockNormal, htmlState: CodeMirror.startState(htmlMode), indentation: 0, inline: inlineNormal, text: handleText, linkText: false, linkTitle: false, em: false, strong: false, header: false, list: false, quote: false }; }, copyState: function(s) { return { f: s.f, block: s.block, htmlState: CodeMirror.copyState(htmlMode, s.htmlState), indentation: s.indentation, localMode: s.localMode, localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null, inline: s.inline, text: s.text, linkTitle: s.linkTitle, em: s.em, strong: s.strong, header: s.header, list: s.list, quote: s.quote, md_inside: s.md_inside }; }, token: function(stream, state) { if (stream.sol()) { if (stream.match(/^\s*$/, true)) { prevLineHasContent = false; return blankLine(state); } else { if(thisLineHasContent){ prevLineHasContent = true; thisLineHasContent = false; } thisLineHasContent = true; } // Reset state.header state.header = false; // Reset state.code state.code = false; state.f = state.block; var indentation = stream.match(/^\s*/, true)[0].replace(/\t/g, ' ').length; var difference = Math.floor((indentation - state.indentation) / 4) * 4; if (difference > 4) difference = 4; var adjustedIndentation = state.indentation + difference; state.indentationDiff = adjustedIndentation - state.indentation; state.indentation = adjustedIndentation; if (indentation > 0) return null; } return state.f(stream, state); }, blankLine: blankLine, getType: getType }; }, "xml"); CodeMirror.defineMIME("text/x-markdown", "markdown"); site_pro/codemirror-3.1/mode/markdown/index.html0000644000000000000000000002401712111430706020606 0ustar rootroot CodeMirror: Markdown mode

    CodeMirror: Markdown mode

    Optionally depends on the XML mode for properly highlighted inline XML blocks.

    MIME types defined: text/x-markdown.

    Parsing/Highlighting Tests: normal, verbose.

    site_pro/codemirror-3.1/mode/lua/0000755000000000000000000000000012111430706015544 5ustar rootrootsite_pro/codemirror-3.1/mode/lua/index.html0000644000000000000000000000336612111430706017551 0ustar rootroot CodeMirror: Lua mode

    CodeMirror: Lua mode

    Loosely based on Franciszek Wawrzak's CodeMirror 1 mode. One configuration parameter is supported, specials, to which you can provide an array of strings to have those identifiers highlighted with the lua-special style.

    MIME types defined: text/x-lua.

    site_pro/codemirror-3.1/mode/lua/lua.js0000644000000000000000000001236612111430706016673 0ustar rootroot// LUA mode. Ported to CodeMirror 2 from Franciszek Wawrzak's // CodeMirror 1 mode. // highlights keywords, strings, comments (no leveling supported! ("[==[")), tokens, basic indenting CodeMirror.defineMode("lua", function(config, parserConfig) { var indentUnit = config.indentUnit; function prefixRE(words) { return new RegExp("^(?:" + words.join("|") + ")", "i"); } function wordRE(words) { return new RegExp("^(?:" + words.join("|") + ")$", "i"); } var specials = wordRE(parserConfig.specials || []); // long list of standard functions from lua manual var builtins = wordRE([ "_G","_VERSION","assert","collectgarbage","dofile","error","getfenv","getmetatable","ipairs","load", "loadfile","loadstring","module","next","pairs","pcall","print","rawequal","rawget","rawset","require", "select","setfenv","setmetatable","tonumber","tostring","type","unpack","xpcall", "coroutine.create","coroutine.resume","coroutine.running","coroutine.status","coroutine.wrap","coroutine.yield", "debug.debug","debug.getfenv","debug.gethook","debug.getinfo","debug.getlocal","debug.getmetatable", "debug.getregistry","debug.getupvalue","debug.setfenv","debug.sethook","debug.setlocal","debug.setmetatable", "debug.setupvalue","debug.traceback", "close","flush","lines","read","seek","setvbuf","write", "io.close","io.flush","io.input","io.lines","io.open","io.output","io.popen","io.read","io.stderr","io.stdin", "io.stdout","io.tmpfile","io.type","io.write", "math.abs","math.acos","math.asin","math.atan","math.atan2","math.ceil","math.cos","math.cosh","math.deg", "math.exp","math.floor","math.fmod","math.frexp","math.huge","math.ldexp","math.log","math.log10","math.max", "math.min","math.modf","math.pi","math.pow","math.rad","math.random","math.randomseed","math.sin","math.sinh", "math.sqrt","math.tan","math.tanh", "os.clock","os.date","os.difftime","os.execute","os.exit","os.getenv","os.remove","os.rename","os.setlocale", "os.time","os.tmpname", "package.cpath","package.loaded","package.loaders","package.loadlib","package.path","package.preload", "package.seeall", "string.byte","string.char","string.dump","string.find","string.format","string.gmatch","string.gsub", "string.len","string.lower","string.match","string.rep","string.reverse","string.sub","string.upper", "table.concat","table.insert","table.maxn","table.remove","table.sort" ]); var keywords = wordRE(["and","break","elseif","false","nil","not","or","return", "true","function", "end", "if", "then", "else", "do", "while", "repeat", "until", "for", "in", "local" ]); var indentTokens = wordRE(["function", "if","repeat","do", "\\(", "{"]); var dedentTokens = wordRE(["end", "until", "\\)", "}"]); var dedentPartial = prefixRE(["end", "until", "\\)", "}", "else", "elseif"]); function readBracket(stream) { var level = 0; while (stream.eat("=")) ++level; stream.eat("["); return level; } function normal(stream, state) { var ch = stream.next(); if (ch == "-" && stream.eat("-")) { if (stream.eat("[") && stream.eat("[")) return (state.cur = bracketed(readBracket(stream), "comment"))(stream, state); stream.skipToEnd(); return "comment"; } if (ch == "\"" || ch == "'") return (state.cur = string(ch))(stream, state); if (ch == "[" && /[\[=]/.test(stream.peek())) return (state.cur = bracketed(readBracket(stream), "string"))(stream, state); if (/\d/.test(ch)) { stream.eatWhile(/[\w.%]/); return "number"; } if (/[\w_]/.test(ch)) { stream.eatWhile(/[\w\\\-_.]/); return "variable"; } return null; } function bracketed(level, style) { return function(stream, state) { var curlev = null, ch; while ((ch = stream.next()) != null) { if (curlev == null) {if (ch == "]") curlev = 0;} else if (ch == "=") ++curlev; else if (ch == "]" && curlev == level) { state.cur = normal; break; } else curlev = null; } return style; }; } function string(quote) { return function(stream, state) { var escaped = false, ch; while ((ch = stream.next()) != null) { if (ch == quote && !escaped) break; escaped = !escaped && ch == "\\"; } if (!escaped) state.cur = normal; return "string"; }; } return { startState: function(basecol) { return {basecol: basecol || 0, indentDepth: 0, cur: normal}; }, token: function(stream, state) { if (stream.eatSpace()) return null; var style = state.cur(stream, state); var word = stream.current(); if (style == "variable") { if (keywords.test(word)) style = "keyword"; else if (builtins.test(word)) style = "builtin"; else if (specials.test(word)) style = "variable-2"; } if ((style != "comment") && (style != "string")){ if (indentTokens.test(word)) ++state.indentDepth; else if (dedentTokens.test(word)) --state.indentDepth; } return style; }, indent: function(state, textAfter) { var closing = dedentPartial.test(textAfter); return state.basecol + indentUnit * (state.indentDepth - (closing ? 1 : 0)); } }; }); CodeMirror.defineMIME("text/x-lua", "lua"); site_pro/codemirror-3.1/mode/pig/0000755000000000000000000000000012111430706015542 5ustar rootrootsite_pro/codemirror-3.1/mode/pig/index.html0000644000000000000000000000215212111430706017537 0ustar rootroot CodeMirror: Pig Latin mode

    CodeMirror: Pig Latin mode

    Simple mode that handles Pig Latin language.

    MIME type defined: text/x-pig (PIG code) site_pro/codemirror-3.1/mode/pig/pig.js0000644000000000000000000001210712111430706016660 0ustar rootroot/* * Pig Latin Mode for CodeMirror 2 * @author Prasanth Jayachandran * @link https://github.com/prasanthj/pig-codemirror-2 * This implementation is adapted from PL/SQL mode in CodeMirror 2. */ CodeMirror.defineMode("pig", function(_config, parserConfig) { var keywords = parserConfig.keywords, builtins = parserConfig.builtins, types = parserConfig.types, multiLineStrings = parserConfig.multiLineStrings; var isOperatorChar = /[*+\-%<>=&?:\/!|]/; function chain(stream, state, f) { state.tokenize = f; return f(stream, state); } var type; function ret(tp, style) { type = tp; return style; } function tokenComment(stream, state) { var isEnd = false; var ch; while(ch = stream.next()) { if(ch == "/" && isEnd) { state.tokenize = tokenBase; break; } isEnd = (ch == "*"); } return ret("comment", "comment"); } function tokenString(quote) { return function(stream, state) { var escaped = false, next, end = false; while((next = stream.next()) != null) { if (next == quote && !escaped) { end = true; break; } escaped = !escaped && next == "\\"; } if (end || !(escaped || multiLineStrings)) state.tokenize = tokenBase; return ret("string", "error"); }; } function tokenBase(stream, state) { var ch = stream.next(); // is a start of string? if (ch == '"' || ch == "'") return chain(stream, state, tokenString(ch)); // is it one of the special chars else if(/[\[\]{}\(\),;\.]/.test(ch)) return ret(ch); // is it a number? else if(/\d/.test(ch)) { stream.eatWhile(/[\w\.]/); return ret("number", "number"); } // multi line comment or operator else if (ch == "/") { if (stream.eat("*")) { return chain(stream, state, tokenComment); } else { stream.eatWhile(isOperatorChar); return ret("operator", "operator"); } } // single line comment or operator else if (ch=="-") { if(stream.eat("-")){ stream.skipToEnd(); return ret("comment", "comment"); } else { stream.eatWhile(isOperatorChar); return ret("operator", "operator"); } } // is it an operator else if (isOperatorChar.test(ch)) { stream.eatWhile(isOperatorChar); return ret("operator", "operator"); } else { // get the while word stream.eatWhile(/[\w\$_]/); // is it one of the listed keywords? if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) { if (stream.eat(")") || stream.eat(".")) { //keywords can be used as variables like flatten(group), group.$0 etc.. } else { return ("keyword", "keyword"); } } // is it one of the builtin functions? if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase())) { return ("keyword", "variable-2"); } // is it one of the listed types? if (types && types.propertyIsEnumerable(stream.current().toUpperCase())) return ("keyword", "variable-3"); // default is a 'variable' return ret("variable", "pig-word"); } } // Interface return { startState: function() { return { tokenize: tokenBase, startOfLine: true }; }, token: function(stream, state) { if(stream.eatSpace()) return null; var style = state.tokenize(stream, state); return style; } }; }); (function() { function keywords(str) { var obj = {}, words = str.split(" "); for (var i = 0; i < words.length; ++i) obj[words[i]] = true; return obj; } // builtin funcs taken from trunk revision 1303237 var pBuiltins = "ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL " + "CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS " + "DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG " + "FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN " + "INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER " + "ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS " + "LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA " + "PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE " + "SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG " + "TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER "; // taken from QueryLexer.g var pKeywords = "VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP " + "JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL " + "PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE " + "SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE " + "NEQ MATCHES TRUE FALSE "; // data types var pTypes = "BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP "; CodeMirror.defineMIME("text/x-pig", { name: "pig", builtins: keywords(pBuiltins), keywords: keywords(pKeywords), types: keywords(pTypes) }); }()); site_pro/codemirror-3.1/demo/0000755000000000000000000000000012111430706014763 5ustar rootrootsite_pro/codemirror-3.1/demo/theme.html0000644000000000000000000000540712111430706016761 0ustar rootroot CodeMirror: Theme Demo

    CodeMirror: Theme demo

    Select a theme:

    site_pro/codemirror-3.1/demo/preview.html0000644000000000000000000000417312111430706017337 0ustar rootroot CodeMirror: HTML5 preview

    CodeMirror: HTML5 preview

    site_pro/codemirror-3.1/demo/loadmode.html0000644000000000000000000000240212111430706017433 0ustar rootroot CodeMirror: Lazy Mode Loading Demo

    CodeMirror: Lazy Mode Loading

    site_pro/codemirror-3.1/demo/mustache.html0000644000000000000000000000342612111430706017467 0ustar rootroot CodeMirror: Overlay Parser Demo

    CodeMirror: Overlay Parser Demo

    Demonstration of a mode that parses HTML, highlighting the Mustache templating directives inside of it by using the code in overlay.js. View source to see the 15 lines of code needed to accomplish this.

    site_pro/codemirror-3.1/demo/btree.html0000644000000000000000000000640712111430706016761 0ustar rootroot CodeMirror: B-Tree visualization

    CodeMirror: B-Tree visualization

    Shows a visual representation of the b-tree that CodeMirror uses to store its document. See the corresponding blog post for a description of this format. The gray blocks under each leaf show the lines it holds (with their width representing the line height). Add and remove content to see how the nodes are split and merged to keep the tree balanced.

    site_pro/codemirror-3.1/demo/marker.html0000644000000000000000000000313612111430706017135 0ustar rootroot CodeMirror: Breakpoint Demo

    CodeMirror: Breakpoint demo

    Click the line-number gutter to add or remove 'breakpoints'.

    site_pro/codemirror-3.1/demo/complete.html0000644000000000000000000000456112111430706017467 0ustar rootroot CodeMirror: Autocomplete Demo

    CodeMirror: Autocomplete demo

    Press ctrl-space to activate autocompletion. See the code (here and here) to figure out how it works.

    site_pro/codemirror-3.1/demo/vim.html0000644000000000000000000000377412111430706016457 0ustar rootroot CodeMirror: Vim bindings demo

    CodeMirror: Vim bindings demo

    The vim keybindings are enabled by including keymap/vim.js and setting the keyMap option to "vim". Because CodeMirror's internal API is quite different from Vim, they are only a loose approximation of actual vim bindings, though.

    site_pro/codemirror-3.1/demo/widget.html0000644000000000000000000000515312111430706017140 0ustar rootroot CodeMirror: Inline Widget Demo

    CodeMirror: Inline Widget Demo

    This demo runs JSHint over the code in the editor (which is the script used on this page), and inserts line widgets to display the warnings that JSHint comes up with.

    site_pro/codemirror-3.1/demo/xmlcomplete.html0000644000000000000000000000461412111430706020207 0ustar rootroot CodeMirror: XML Autocomplete Demo

    CodeMirror: XML Autocomplete demo

    Type '<' or space inside tag or press ctrl-space to activate autocompletion. See the code (here and here) to figure out how it works.

    site_pro/codemirror-3.1/demo/folding.html0000644000000000000000000000474712111430706017307 0ustar rootroot CodeMirror: Code Folding Demo

    CodeMirror: Code Folding Demo

    Demonstration of code folding using the code in foldcode.js. Press ctrl-q or click on the gutter to fold a block, again to unfold.
    Try the Range Colapse demo as well.

    JavaScript:
    HTML:
    site_pro/codemirror-3.1/demo/closebrackets.html0000644000000000000000000000430612111430706020500 0ustar rootroot CodeMirror: Closebrackets Demo

    CodeMirror: Closebrackets Demo

    Type a bracket like '[', '(', '{', '"', or ''' and the addon will auto-close it. Type the closing variant when directly in front of a matching character and it will overwrite it.

    site_pro/codemirror-3.1/demo/emacs.html0000644000000000000000000000353412111430706016746 0ustar rootroot CodeMirror: Emacs bindings demo

    CodeMirror: Emacs bindings demo

    The emacs keybindings are enabled by including keymap/emacs.js and setting the keyMap option to "emacs". Because CodeMirror's internal API is quite different from Emacs, they are only a loose approximation of actual emacs bindings, though.

    Also note that a lot of browsers disallow certain keys from being captured. For example, Chrome blocks both Ctrl-W and Ctrl-N, with the result that idiomatic use of Emacs keys will constantly close your tab or open a new window.

    site_pro/codemirror-3.1/demo/lint.html0000644000000000000000000000515612111430706016626 0ustar rootroot CodeMirror: Linter Demo

    CodeMirror: Linter Demo

    site_pro/codemirror-3.1/demo/activeline.html0000644000000000000000000000514412111430706020000 0ustar rootroot CodeMirror: Active Line Demo

    CodeMirror: Active Line Demo

    Styling the current cursor line.

    site_pro/codemirror-3.1/demo/visibletabs.html0000644000000000000000000000306112111430706020160 0ustar rootroot CodeMirror: Visible tabs demo

    CodeMirror: Visible tabs demo

    Tabs inside the editor are spans with the class cm-tab, and can be styled. site_pro/codemirror-3.1/demo/bidi.html0000644000000000000000000000574312111430706016571 0ustar rootroot CodeMirror: Bi-directional Text Demo

    CodeMirror: Bi-directional Text Demo

    Demonstration of bi-directional text support. See the related blog post for more background.

    site_pro/codemirror-3.1/demo/collapserange.html0000644000000000000000000000657612111430706020506 0ustar rootroot CodeMirror: Range Collapsing Demo

    CodeMirror: Range Collapsing Demo

    Click on the right side of the gutter, then click again below, the code between will collapse. Click on either arrow to expand. To use, simply include the collapserange.js file and set collapseRange: true in options.

    site_pro/codemirror-3.1/demo/markselection.html0000644000000000000000000000231412111430706020511 0ustar rootroot CodeMirror: Match Highlighter Demo

    CodeMirror: Mark Selection Demo

    Simple addon to easily mark (and style) selected text.

    site_pro/codemirror-3.1/demo/resize.html0000644000000000000000000000201612111430706017151 0ustar rootroot CodeMirror: Autoresize Demo

    CodeMirror: Autoresize demo

    By setting a few CSS properties, CodeMirror can be made to automatically resize to fit its content.

    site_pro/codemirror-3.1/demo/changemode.html0000644000000000000000000000266412111430706017753 0ustar rootroot CodeMirror: Mode-Changing Demo

    CodeMirror: Mode-Changing demo

    On changes to the content of the above editor, a (crude) script tries to auto-detect the language used, and switches the editor to either JavaScript or Scheme mode based on that.

    site_pro/codemirror-3.1/demo/closetag.html0000644000000000000000000000251512111430706017455 0ustar rootroot CodeMirror: Close-Tag Demo

    Close-Tag Demo

    • Type an html tag. When you type '>' or '/', the tag will auto-close/complete. Block-level tags will indent.
    • There are options for disabling tag closing or customizing the list of tags to indent.
    • Works with "text/html" (based on htmlmixed.js or xml.js) mode.
    • View source for key binding details.
    site_pro/codemirror-3.1/demo/runmode.html0000644000000000000000000000367012111430706017330 0ustar rootroot CodeMirror: Mode Runner Demo

    CodeMirror: Mode Runner Demo


    
    
        
    
        

    Running a CodeMirror mode outside of the editor. The CodeMirror.runMode function, defined in lib/runmode.js takes the following arguments:

    text (string)
    The document to run through the highlighter.
    mode (mode spec)
    The mode to use (must be loaded as normal).
    output (function or DOM node)
    If this is a function, it will be called for each token with two arguments, the token's text and the token's style class (may be null for unstyled tokens). If it is a DOM node, the tokens will be converted to span elements as in an editor, and inserted into the node (through innerHTML).
    site_pro/codemirror-3.1/demo/fullscreen.html0000644000000000000000000001276212111430706020023 0ustar rootroot CodeMirror: Full Screen Editing

    CodeMirror: Full Screen Editing

    Press F11 when cursor is in the editor to toggle full screen editing. Esc can also be used to exit full screen editing.

    site_pro/codemirror-3.1/demo/variableheight.html0000644000000000000000000000304512111430706020631 0ustar rootroot CodeMirror: Variable Height Demo

    CodeMirror: Variable Height Demo

    site_pro/codemirror-3.1/demo/multiplex.html0000644000000000000000000000322612111430706017677 0ustar rootroot CodeMirror: Multiplexing Parser Demo

    CodeMirror: Multiplexing Parser Demo

    Demonstration of a multiplexing mode, which, at certain boundary strings, switches to one or more inner modes. The out (HTML) mode does not get fed the content of the << >> blocks. See the manual and the source for more information.

    site_pro/codemirror-3.1/demo/formatting.html0000644000000000000000000000573012111430706020030 0ustar rootroot CodeMirror: Formatting Demo

    CodeMirror: Formatting demo

    Note: The formatting addon receives a fair amount of bug requests. I (the maintainer of CodeMirror) do not intend to spend time on improving it. Pull requests (if clean and intelligent) are welcome, but you should see this code as a proof-of-concept (using CodeMirror's mode tokenizers to help format code), not a finished, robust module.

    Select a piece of code and click one of the links below to apply automatic formatting to the selected text or comment/uncomment the selected text. Note that the formatting behavior depends on the current block's mode.
    Autoformat Selected Comment Selected Uncomment Selected

    site_pro/codemirror-3.1/demo/matchhighlighter.html0000644000000000000000000000247712111430706021176 0ustar rootroot CodeMirror: Match Highlighter Demo

    CodeMirror: Match Highlighter Demo

    Search and highlight occurences of the selected text.

    site_pro/codemirror-3.1/demo/search.html0000644000000000000000000000703012111430706017116 0ustar rootroot CodeMirror: Search/Replace Demo

    CodeMirror: Search/Replace Demo

    Demonstration of primitive search/replace functionality. The keybindings (which can be overridden by custom keymaps) are:

    Ctrl-F / Cmd-F
    Start searching
    Ctrl-G / Cmd-G
    Find next
    Shift-Ctrl-G / Shift-Cmd-G
    Find previous
    Shift-Ctrl-F / Cmd-Option-F
    Replace
    Shift-Ctrl-R / Shift-Cmd-Option-F
    Replace all

    Searching is enabled by including addon/search/search.js and addon/search/searchcursor.js. For good-looking input dialogs, you also want to include addon/dialog/dialog.js and addon/dialog/dialog.css.

    site_pro/codemirror-3.1/demo/buffers.html0000644000000000000000000000631112111430706017306 0ustar rootroot CodeMirror: Multiple Buffer & Split View Demo

    CodeMirror: Multiple Buffer & Split View Demo

    Select buffer:    
    Select buffer:    

    Demonstration of using linked documents to provide a split view on a document, and using swapDoc to use a single editor to display multiple documents.

    site_pro/codemirror-3.1/README.md0000644000000000000000000000106712111430706015322 0ustar rootroot# CodeMirror [![Build Status](https://secure.travis-ci.org/marijnh/CodeMirror.png?branch=master)](http://travis-ci.org/marijnh/CodeMirror) CodeMirror is a JavaScript component that provides a code editor in the browser. When a mode is available for the language you are coding in, it will color your code, and optionally help with indentation. The project page is http://codemirror.net The manual is at http://codemirror.net/doc/manual.html The contributing guidelines are in [CONTRIBUTING.md](https://github.com/marijnh/CodeMirror/blob/master/CONTRIBUTING.md) site_pro/codemirror-3.1/.travis.yml0000644000000000000000000000004312111430706016145 0ustar rootrootlanguage: node_js node_js: - 0.8 site_pro/codemirror-3.1/doc/0000755000000000000000000000000012111430706014604 5ustar rootrootsite_pro/codemirror-3.1/doc/baboon.png0000644000000000000000000005540312111430706016561 0ustar rootrootPNG  IHDR{PsBIT|d pHYsTT`tEXtSoftwarewww.inkscape.org< IDATxw|Uw@H$@"@P %tDzQQE£>>Pyp5?p.^B̝;3Ν;SǤE"/JJc]e)M8MY5RPhc 0@P`kh׮7nڵk j\rEg/^\4oAAAAFFNT*fϞڵk)OD@ܕVJ6-uy#x"MnE!ؗ,sȿ`mJRТE 4]vE &|\|YϨ_pׯ_F)QQQx饗0fƾƉR@_mch܊((¨/f (p~xw[(_| @tt4򐘘g/^7n,}\\\>@x=^]v_ecDdJ{10eL%'r+Gc 0pu?z^zUV3Kի8v.\37o4ۨ믿 `_O7x@\:T  #"0G[lb 6ĀХK&!!!IJJT4IHHV^vڕnΝ޽u+yS <"z_n%,0 8;;^f͚N:S<<Uhqi1gKɞ y';q+zJiҤ|i$/\ ;JիGC ?N_RFd#X'ղeH[oeV|HDD4|]G _ږ"G~5٠ BZ6nhVɞ1cprr2gH#c@4n8駟… z233iŊCk%9_HCgv(> 555j&*IMMEpp0rssyӮ_ ,!!-Z0C"eZr0.?H@fT*\\\"UZjwZff&>xɓ69+q {Lex"6lh֬nrR {A.]D˃~8pē'O3ƍÄ 2e [իW}___S~&7D^Ac9ܥ(\ZhӠ!vqq;Z<|D||<|֬Yc}T^CF+**"Ƙ|,}5p{n{۷. Eĉ(K۟"GL k4G%-mڴ1Rivءf͚c^W^/nܹxdVj0_ݺu:/Dܰppp oӦM$R<)֒HSng'- M/111Sϣ[ner=]zӱcϕapm֭MeS ~o PbĶmoVZV`J(>cočP*RXbx↌=嫑!φO>~-&L $<a~{mҴoߞ/%~NLڵq!tYmĈ6)(Ja?9U1^#h]j^[7N)u6Ķmxce:t/߷dkb9u4gH+IP*brdODG-S|1KХKSN8>#7n`L Ѯ];p^׫WjKFV_ӭ[7#00g?v %{r+`]8 \9bڵkw^8k &F޽sNi|||xϖwRO???y`>""7n;zgʔ)5k54888ȭ³`U[ ![}Vg!  mbnpS`heسgZlm۶a&뎎6#j4W 5c5Lll۶ UTAqq1Ə/(04h d `K|. Vn]L(;;Į~v$wboҒBCCi4}toEzzxzzR^^W^m:ڵkg0kw:=#f,TĉDą:t> )|R 5)b"Ԩ5k_|EQlĉ$'}j'!k˯j7opB|| _<1F7n$""ZM{\;0fv%3gʮ39mQ!n~{QԠ^v0]iLryje>kٲ%_(_~%\[nh{QΦM0h ˩1P+5BUi???<~@KDzѣGLM6x{{ӑ#Gh޼yV1M>#~$euؑ+6_@" M&;CZ nlB&,((tִ-tj"3h4[C2f]>?~~@MsCժU)11n߾wN8A׮]#777 bEoooJKK 6,E^$`HP=`% j_~0^*]yj* z#Gt f@ND3* GGGlܸNNNh߾=\5j,=|||gDFFbܸqϤL㏨_1|'Xt)Zh!&HI*W_2xBJJ q==MMPDD E/N7&cVJaÆ=z +FKκxKޒ_mTZ.]JDDt)ʢBYѤnmyF{7l0wƖ#MEl+bF}pFBQ6 7'"xyyihݻwco ۷Gpp0~[%Ԫ3bO4 Ǐ]O˖-鉍7 Ǽyd|Wvce00|p^}]]]u!1[q=z`ܹ $Ŝ [oqgN8Q9L=3 GTT,Y"4 ƘdJ(b^5*JZN:e2-cn߾MDIC*K [zeKHH >swqDu ,vںƏ?w\rpp 8p.TzuWUVhF&h5mڔK3gΤ?NÇ2HHH "cǎQD_+~my¥E|2_pFC>>>FuܙV\IիW3gΐ)~@=.n~V5i҄ueO+IK/}JRު#CgIժUug~'7E%,, (//ի'$ϟr%E#b8WJBkӦ :wÇ#55udeevVEez*^x]ڿGt1ѺrكA{oߎ/^^^|2,g„ h֬IuwdZX'"NV6ln֭[زez۶msرCt~rU,^?,]cV?'AXgMzzz.<~ 6svvZ֛]'WV~NUGkvv6fϞK̙sΕ) %.]Ҏ,15{e &ig :bPӧOί`}f͚tٳ'_r7l1LQF5C4 u)))CE|x(0ZV;pp <piJ5k;v, 1fqeZg;wX*@ԩeggcٲefU`?aʕӧ 2š(ȃhcODNJs]\zФI=#l S-Zc@7s0pGGG~@g qD}8;;ʕ+ X`E9|1r:0ƔVAϘ1CTժqǮۛ x[c 6{0L#shLu/]T2Î;b˖-|2A+rBDY-Z@۶mXnEkGB}eQ} 'OY" J 6c@:}XX'xv_zd3ׯ_/fpĚ{x nhn׭0/ʕ+F#bjIOO׭ˏW^=!rQ*^nxb'|1gW8s3 0Iq@m쉨+ddd_6Bi~:BBBгgOS6F׮]3AgZ`#c|у\7* iiih֬6o "Bݺupc_NDEEҥKש`O.锇`N"Rk,rJH6l .܁ "cOD:tH)ɘ:#,wUgG~7 KG'$$ۼ_p=dee21[xw…  AV*Gaa9ounZAb90''Ǐ 3NLKZcuVkpssիWn:AG*p,Ow , iӦm@a&(lz{/Sn%,CcODJsI:gO8Mt!VBAH( ܚ{AZ6oެ]FFK^^5o``4t2r %) Τ3;rwwӧSzzٺ޸qNDy<~PMWv1[mؗH[TaQjj*=~Xd ׮]#ooo*w/|i6). ;::f뗒Bo999lbqܤ܆B/mاH[_ٴii)=_Rl"iCWT4p@r:O Y9(@/)b"oU+ݻ7Njq9?~<n:.k׮E@@{=sbND4Ό< rw *&F e۶mϻtBRPXXHӦMիTV>SJII1bڹs'լYܑe]mfVBCCeסʗCEO/X׈ݻGDD@ɢIgQմfׯեz4rH(//Ϣ:?N 64c ,&'ft'kyeסJ+Kڢ"%Ž6وV^MZ"##u])..֯_O?-\8@EEE}%z,T; o&f;t 8p@vʡ,m؏H_ P!5|ᇺ D剻wR=,Pw#=ԩS6"6ii˗[X44]]]uW̚+2[ iOG}>w\+d>oPzu̙3GHC<0@4VCxU_ϪgϞpqqI]y9)m;+(eeEa̕s)߿JjC`ŊQNjn6w$`8-纔0jǗ.==ZEԝhV\8kM8@eϞ=zу䤸mFNrЎ<?BuJMM&M=gSѲzjuqssK.^ mVӓ=gHc_&''#11 6D۶m>>>Enn.ݍeGo!AwD$>Xc~>)) j筨}QXX'''+G{ZXe 4@ڵqΝg>JDOKXO7%a޽hذ!gYQuBV#77ٸwLSNYZf[d 5kJ](~- 111ضm*ɊF2FŚ0|ݻoyyyƓ'O4ܹw"55ΖlLiL$(bGӑ971[pi݄d6 k׮},mwҎ{"R3j, l!99۷#!##U1RSgٸxɐ矗Bb+Oƀ}AZp]*Kdd$6l3fX*Us썜cDdBš&(C۷o>L4=*0*ᔛKZJ'oIPVZvz\\45LTDzK-)Q2/ng BTTeYK.aĉѣ,Fh4PT5kUiԈ{KdU$?$ 7b58;;ӣGˋΟ?OԴiS7ݸq֭['1)˗/'->4+ 5믿ga`=qFLyUQS0\nI!tpo֩N 1M:mp#7݉$9K-;wݻiǎaڸq'22rrrv;wHqRW_}?Z=l*X۸O Q~bdn rw" $܍~> â^XXH5={Rqq$&MD_zeJw%-'N]'̚5K׍7RJN:Lvn~ Kk79TN$ZV\I , ;LÇrg͚enݺH:$$^JD!7TS>3Ҳo>[ן .+m]>@ր<0 @5cl38X!U<4p 1],1@GxԩSXz5nºu0qD4i❵}ʜ{MJRܼy۷Ǯ]ЬY3lذ-[}cXnݲu(kc*|:>d} myeqPo(OQ[jEDD6lHɉ ZXGMXD>#oغ{%mo(:,͐YpdlE><V'\%˗7n,w҉DD4}tYu:u*X<%6Of#w4JFvePX|~@26Zf< |i1cYwt߫W/h4~z;899ŋIЫ*'O&";wZ\V˖-nݺb'-G "ۑRgRwXh}AH.}ݺu[XX?ka!_ZԩCVO2FZ7n=zew%"QFY\V w(V{sr?I*%w\JF2Oȍ:t(˗E;4ʾ}Ⱥ{d݀MUڼ~ f+jբ'OWM>iF~W6cE)ZnѽaP^6vU*EEEќ9stK8hnuC4A2rH""U*-Y5j$5ڵkW_}E*ʦ?,Y"5,w[='Lx{3W@^^^+VÇI˝;wO>15?m.!Z<==ulWo޼lLܨe˖6s̘1ݓ0""}^NYf I7UT^DʷMҥKk-wlVzܭ&}-ԯ_?R_RG!5UF$"ÇPcD /hAݜ4,~h26wѣA@4!o4EMZjT)CDDtE1z/E_KVh_Qz{K:O[Ѻdh$ arwH;~%IEDEf֭KǏ*!ƽr劘2?E9fܳf-Qv>:dIT*}4hrbbbF1{L@@=x@몰r1rrr2ӧO?Sf m GU2>V$~ 7|ܝe# 2իȲݻ+5K.DD7Q^^)wSd_zQn]{ev&<`[c@GiU∈(**wӧO'">Hl?3Qv`xG0Ӭp%\-M]6VL>}7wppnݺ/BF]ۛbbb %T\\LDd 3gБ#GY2<[if vq& d`norwV; ?8t1:{,i4JNN|WRK'^^^@DD԰aC7nLO<0s_ wln}b0v&psa@nU7%-iii4o<'FCr_Kgggڳgq^zL P~̭c2 7Kfp5FBe32J!!ctiZp!UVPLL PRR9)1_hPTB3f̰+b7vi:Hnkrw\J 1|֡Cʢ+W}m^̙C׮]aÆMS^=K561Z( gPj# "RݦMJOO&=)7ҥK2dc4e.0> F˗eIrw`fZ\dNh޼9]tj֬)8Oj̝DTDZ)LnEdM5\bgl*'VdMD}(LjR ED#(Yne"`ET5UxѐDe-) 4p~|Q } N߹sg:tR믿~/*bF:*\`eծ];wπTݚDtP>B^^oZߏ={"++˚j)}ؾ}{F*U|E0`p)= UfcCR k曛cy ?&gK--?+5p:g~<̹Vk1eԩS&M[JAPPN>3gIŧ`G00ߌo2"k |U֭iO~-Hp聕wjMVeggSDDT$[.}LG}c.1gU>}A2LPp72::vMD}9::$\6@dժUt!""^Uĉ4ydϗ,YBR~6y^z%'":s nݺtr_5max);v"dDDruu%>JD4|i.wW)G 'vt]tt^zѣiƍIZΝ;G=XYêr9z!.c|||`_]]~~>S^^m޼*~}ep=$@Ur;wLt7`mL[oEDD/VZ}hIDAT{ZM???>?~ѽ{͛LիW6rKE_sB)Wa٢Zj?|/L]vN'F܆O(;;4 -XNLL:Ȯ@~AˉG򬒻m*"7Șzd{pft[rnzE<~O>h"h4DDT\\L?#HZ6gyw^Fׯ_ ӓ>cc6Տ76Z}*x>)Enc$D())J3x`@Z'O>ONNAIVwVK.s$""iN+%Ff)bS]~/^ft/HCi)|PRoMo^z)!8;; RٳTjUqww/R||9Dn|Ǵy+k 4!9:XL !==z|b+..ƢEРA/ݻ… 裏P x{{c޽.p[qq1]EY¬@۶m#//=z|cMjl>1R٫eÿE| Ln]^%#b]~j*i^|EJLL$-iii_Ӆ … 4frqq &рd~c@}˗i֭gIunǁ?Q:)ƞ)uò `8rfƵP""Zlt4c U;Ըqc:<==uURRRt?~df͚$frMED#"Z"R=M`)WȭײSnC%F @DTf˿1 m۶իW +66RSS4;wH6ݗ?UǕ zC(3gĬYݻw ;`h4hР_.(_PP/_wJjj*7o{-狾.;]"Z  aV AJ)b!HP>_~!"@yk""+*cO .'NZ&cȑ#f>}:=J7GOYQWc4h~~~8tZɓ[.U&:/c k׮E>}P^=ܻg2ԿQ\\\֭[瞃+ꪓ[na֭سgOy$r+ ؿ|""XH H4u9Efwqqx7o#g{]rMEσE>篕u*hΝ_"Uzϟ7 Z޽{cǎ^U8(!I"?EpaR-fΜ9(**ŋ( 4=_~4hjUTV@,PWH eaի|M)Ck/\`qYIIIصk-.s[ qQ BT}B2WΝ;w0b|wXOs$)ի(**   fqSDZb+X0|lڴ 5k֔  )) 钕`ŕS>!"-S}B3f )) 7ol6 gΜ,A(1~{W2$@aa! 0&lo߾-x竂$(ƾ|VqT2nx"ynaȑ5jz-S Q81MW&ۍqeo$q$LAYr+`b#W>VYiӦ!!! 7n@te|"PzTc Lk\PPբ ׯ+#{ۢbCDy6X$=[6{͛*`D* `y?)c_9ъV_… ͞-((Q}D줺2?X>O6{VیP0"+#Jյ j @^^YȾ|򪈴*ƾBD|n:_c_bmb1,)ƾr3_֬`Æ Xt ۔+jPB:ݔ[ Ѵ Uy(ƾS V]1yd={VԄmi< EחOƉHKv}YG~~> l|wh߾5S)g0Ƃ 4=c~Ěu\rǏ6n(iHc 111prrUٗ?fjP]h5֬Ye˖5a`"7p! < }91VY ,ܧ+b?|;^ѹs爈觟~Z=QZnMoߦSNK/d2S!Gۜ" @6t c=Yp*[+dKUѽ{w 86XX\T* <C A׮]̹K _BoPx&4ɏy1@ p.-_oܣ* I#C+Y`ia тT,) SuluIPb:+0 L @ y6${. ɽ'9I8ܜso˽~gAmٳgYt)ׯΗh%KUne"XǥcTN%sǢUMTUg{њz4Ƚz~lZ]T{aÆZ-\L ?mY0e?Icpq3za]Z/-[Fzz:cǎ\N]R?>ʤ|ZN7ÁXd .WIqI9$"͚u^_u6EU_k̉wh ,b,/CBBؼy3+V&SS< 9W 8d>]ػF2Jf/T N/o>zY!C̙3|u-`=v+$)L}q t<裪g[\ɪZ㪮0B=BLrv(NN[Ͼ󾪪fffj>}.3zh-,,4'|#FMlYmD4iN_#mS!::ZUUKKK{-jOU_~9ngs#nӋWj"ʳZwҼ^ϗ(x;vLnhYYV]Тǵ/͗ .Ծ}m?&bzGVw4u^'o|\ɷ~K=`ĉ?Z%BDD999Dt3asG7 ҹ쫿) moO<t {sX\,_]k3*߿L̼kDFǗ>&.'M~,@Dfbhȑ#O䣏>bڴi͞M (_uG}#۹|յ~_x4a/ɳT^I4:>AWoJ8z(RK`ER"".L7ujT]tpC:`׏3ݻwӥKx ̙cv9t#'jN9a0ܛCcڵsoO{q$:`ApFmgffƞ={HKK#;;*!X ^[DD1 c cƲsN:vʕ+ILsaoif)@/x)7 j].ԥ3P[qi׀=տZ֩SHIIap AK1wۼƃrMM6j[ |6 p{""aS@cO2[L||<[nrxHLL9uMn>ChߏC|8*GsӊJPdTWqGUWP`"&V:] Y#"M"^f<$''3o<ƨsPr7jnl8VO}VB`fcT5%'m-"9P/6`ϟϦM;wyyyHX(FX6MqܪZ1Z1g-m17"CD~#*oW 7ׇaU7Uu&RFB1IR{[b!cPY1KN6d)פflٲ6::^ EBZ[-|VvTI F`%p>;V"m;ėapݺ4#U흝=ʔ)Oeee5YIqq1AAA^7VKN("A٘2m!z\$xiҼ 1 a_%RL%XeW:+Eŕ;vl#Gkqw^bbbU&QqY#íj&cJ3DإK)>ĸ>Vճ6 oLjH4Ly̗,P7O%fo'&ส @-+oiqG1M 5flٲ?|ĉљ7-_^0%JJ [=<  i`?Zkak R>׹(ĸR}z7EEHJ~֯^D-Z׿؄QrXaVxڭ v+q=D#0 ,{3ZG%|>fQm9[;U)T/ik+?Yg ԶZ/n CodeMirror

    { } CodeMirror

    /* Old release
       history */
    

    19-09-2012: Version 2.34:

    • New mode: Common Lisp.
    • Fix right-click select-all on most browsers.
    • Change the way highlighting happens:
        Saves memory and CPU cycles.
        compareStates is no longer needed.
        onHighlightComplete no longer works.
    • Integrate mode (Markdown, XQuery, CSS, sTex) tests in central testsuite.
    • Add a CodeMirror.version property.
    • More robust handling of nested modes in formatting and closetag plug-ins.
    • Un/redo now preserves marked text and bookmarks.
    • Full list of patches.

    19-09-2012: Version 3.0, beta 1:

    • Bi-directional text support.
    • More powerful gutter model.
    • Support for arbitrary text/widget height.
    • In-line widgets.
    • Generalized event handling.

    23-08-2012: Version 2.33:

    • New mode: Sieve.
    • New getViewPort and onViewportChange API.
    • Configurable cursor blink rate.
    • Make binding a key to false disabling handling (again).
    • Show non-printing characters as red dots.
    • More tweaks to the scrolling model.
    • Expanded testsuite. Basic linter added.
    • Remove most uses of innerHTML. Remove CodeMirror.htmlEscape.
    • Full list of patches.

    23-07-2012: Version 2.32:

    Emergency fix for a bug where an editor with line wrapping on IE will break when there is no scrollbar.

    20-07-2012: Version 2.31:

    22-06-2012: Version 2.3:

    • New scrollbar implementation. Should flicker less. Changes DOM structure of the editor.
    • New theme: vibrant-ink.
    • Many extensions to the VIM keymap (including text objects).
    • Add mode-multiplexing utility script.
    • Fix bug where right-click paste works in read-only mode.
    • Add a getScrollInfo method.
    • Lots of other fixes.

    23-05-2012: Version 2.25:

    • New mode: Erlang.
    • Remove xmlpure mode (use xml.js).
    • Fix line-wrapping in Opera.
    • Fix X Windows middle-click paste in Chrome.
    • Fix bug that broke pasting of huge documents.
    • Fix backspace and tab key repeat in Opera.

    23-04-2012: Version 2.24:

    • Drop support for Internet Explorer 6.
    • New modes: Shell, Tiki wiki, Pig Latin.
    • New themes: Ambiance, Blackboard.
    • More control over drag/drop with dragDrop and onDragEvent options.
    • Make HTML mode a bit less pedantic.
    • Add compoundChange API method.
    • Several fixes in undo history and line hiding.
    • Remove (broken) support for catchall in key maps, add nofallthrough boolean field instead.

    26-03-2012: Version 2.23:

    • Change default binding for tab [more]
    • New modes: XQuery and VBScript.
    • Two new themes: lesser-dark and xq-dark.
    • Differentiate between background and text styles in setLineClass.
    • Fix drag-and-drop in IE9+.
    • Extend charCoords and cursorCoords with a mode argument.
    • Add autofocus option.
    • Add findMarksAt method.

    27-02-2012: Version 2.22:

    27-01-2012: Version 2.21:

    • Added LESS, MySQL, Go, and Verilog modes.
    • Add smartIndent option.
    • Support a cursor in readOnly-mode.
    • Support assigning multiple styles to a token.
    • Use a new approach to drawing the selection.
    • Add scrollTo method.
    • Allow undo/redo events to span non-adjacent lines.
    • Lots and lots of bugfixes.

    20-12-2011: Version 2.2:

    21-11-2011: Version 2.18:

    Fixes TextMarker.clear, which is broken in 2.17.

    21-11-2011: Version 2.17:

    • Add support for line wrapping and code folding.
    • Add Github-style Markdown mode.
    • Add Monokai and Rubyblue themes.
    • Add setBookmark method.
    • Move some of the demo code into reusable components under lib/util.
    • Make screen-coord-finding code faster and more reliable.
    • Fix drag-and-drop in Firefox.
    • Improve support for IME.
    • Speed up content rendering.
    • Fix browser's built-in search in Webkit.
    • Make double- and triple-click work in IE.
    • Various fixes to modes.

    27-10-2011: Version 2.16:

    • Add Perl, Rust, TiddlyWiki, and Groovy modes.
    • Dragging text inside the editor now moves, rather than copies.
    • Add a coordsFromIndex method.
    • API change: setValue now no longer clears history. Use clearHistory for that.
    • API change: markText now returns an object with clear and find methods. Marked text is now more robust when edited.
    • Fix editing code with tabs in Internet Explorer.

    26-09-2011: Version 2.15:

    Fix bug that snuck into 2.14: Clicking the character that currently has the cursor didn't re-focus the editor.

    26-09-2011: Version 2.14:

    23-08-2011: Version 2.13:

    25-07-2011: Version 2.12:

    • Add a SPARQL mode.
    • Fix bug with cursor jumping around in an unfocused editor in IE.
    • Allow key and mouse events to bubble out of the editor. Ignore widget clicks.
    • Solve cursor flakiness after undo/redo.
    • Fix block-reindent ignoring the last few lines.
    • Fix parsing of multi-line attrs in XML mode.
    • Use innerHTML for HTML-escaping.
    • Some fixes to indentation in C-like mode.
    • Shrink horiz scrollbars when long lines removed.
    • Fix width feedback loop bug that caused the width of an inner DIV to shrink.

    04-07-2011: Version 2.11:

    • Add a Scheme mode.
    • Add a replace method to search cursors, for cursor-preserving replacements.
    • Make the C-like mode mode more customizable.
    • Update XML mode to spot mismatched tags.
    • Add getStateAfter API and compareState mode API methods for finer-grained mode magic.
    • Add a getScrollerElement API method to manipulate the scrolling DIV.
    • Fix drag-and-drop for Firefox.
    • Add a C# configuration for the C-like mode.
    • Add full-screen editing and mode-changing demos.

    07-06-2011: Version 2.1:

    Add a theme system (demo). Note that this is not backwards-compatible—you'll have to update your styles and modes!

    07-06-2011: Version 2.02:

    • Add a Lua mode.
    • Fix reverse-searching for a regexp.
    • Empty lines can no longer break highlighting.
    • Rework scrolling model (the outer wrapper no longer does the scrolling).
    • Solve horizontal jittering on long lines.
    • Add runmode.js.
    • Immediately re-highlight text when typing.
    • Fix problem with 'sticking' horizontal scrollbar.

    26-05-2011: Version 2.01:

    • Add a Smalltalk mode.
    • Add a reStructuredText mode.
    • Add a Python mode.
    • Add a PL/SQL mode.
    • coordsChar now works
    • Fix a problem where onCursorActivity interfered with onChange.
    • Fix a number of scrolling and mouse-click-position glitches.
    • Pass information about the changed lines to onChange.
    • Support cmd-up/down on OS X.
    • Add triple-click line selection.
    • Don't handle shift when changing the selection through the API.
    • Support "nocursor" mode for readOnly option.
    • Add an onHighlightComplete option.
    • Fix the context menu for Firefox.

    28-03-2011: Version 2.0:

    CodeMirror 2 is a complete rewrite that's faster, smaller, simpler to use, and less dependent on browser quirks. See this and this for more information.

    28-03-2011: Version 1.0:

    • Fix error when debug history overflows.
    • Refine handling of C# verbatim strings.
    • Fix some issues with JavaScript indentation.

    22-02-2011: Version 2.0 beta 2:

    Somewhat more mature API, lots of bugs shaken out.

    17-02-2011: Version 0.94:

    • tabMode: "spaces" was modified slightly (now indents when something is selected).
    • Fixes a bug that would cause the selection code to break on some IE versions.
    • Disabling spell-check on WebKit browsers now works.

    08-02-2011: Version 2.0 beta 1:

    CodeMirror 2 is a complete rewrite of CodeMirror, no longer depending on an editable frame.

    19-01-2011: Version 0.93:

    • Added a Regular Expression parser.
    • Fixes to the PHP parser.
    • Support for regular expression in search/replace.
    • Add save method to instances created with fromTextArea.
    • Add support for MS T-SQL in the SQL parser.
    • Support use of CSS classes for highlighting brackets.
    • Fix yet another hang with line-numbering in hidden editors.

    17-12-2010: Version 0.92:

    • Make CodeMirror work in XHTML documents.
    • Fix bug in handling of backslashes in Python strings.
    • The styleNumbers option is now officially supported and documented.
    • onLineNumberClick option added.
    • More consistent names onLoad and onCursorActivity callbacks. Old names still work, but are deprecated.
    • Add a Freemarker mode.

    11-11-2010: Version 0.91:

    • Adds support for Java.
    • Small additions to the PHP and SQL parsers.
    • Work around various Webkit issues.
    • Fix toTextArea to update the code in the textarea.
    • Add a noScriptCaching option (hack to ease development).
    • Make sub-modes of HTML mixed mode configurable.

    02-10-2010: Version 0.9:

    • Add support for searching backwards.
    • There are now parsers for Scheme, XQuery, and OmetaJS.
    • Makes height: "dynamic" more robust.
    • Fixes bug where paste did not work on OS X.
    • Add a enterMode and electricChars options to make indentation even more customizable.
    • Add firstLineNumber option.
    • Fix bad handling of @media rules by the CSS parser.
    • Take a new, more robust approach to working around the invisible-last-line bug in WebKit.

    22-07-2010: Version 0.8:

    • Add a cursorCoords method to find the screen coordinates of the cursor.
    • A number of fixes and support for more syntax in the PHP parser.
    • Fix indentation problem with JSON-mode JS parser in Webkit.
    • Add a minification UI.
    • Support a height: dynamic mode, where the editor's height will adjust to the size of its content.
    • Better support for IME input mode.
    • Fix JavaScript parser getting confused when seeing a no-argument function call.
    • Have CSS parser see the difference between selectors and other identifiers.
    • Fix scrolling bug when pasting in a horizontally-scrolled editor.
    • Support toTextArea method in instances created with fromTextArea.
    • Work around new Opera cursor bug that causes the cursor to jump when pressing backspace at the end of a line.

    27-04-2010: Version 0.67:

    More consistent page-up/page-down behaviour across browsers. Fix some issues with hidden editors looping forever when line-numbers were enabled. Make PHP parser parse "\\" correctly. Have jumpToLine work on line handles, and add cursorLine function to fetch the line handle where the cursor currently is. Add new setStylesheet function to switch style-sheets in a running editor.

    01-03-2010: Version 0.66:

    Adds removeLine method to API. Introduces the PLSQL parser. Marks XML errors by adding (rather than replacing) a CSS class, so that they can be disabled by modifying their style. Fixes several selection bugs, and a number of small glitches.

    12-11-2009: Version 0.65:

    Add support for having both line-wrapping and line-numbers turned on, make paren-highlighting style customisable (markParen and unmarkParen config options), work around a selection bug that Opera reintroduced in version 10.

    23-10-2009: Version 0.64:

    Solves some issues introduced by the paste-handling changes from the previous release. Adds setSpellcheck, setTextWrapping, setIndentUnit, setUndoDepth, setTabMode, and setLineNumbers to customise a running editor. Introduces an SQL parser. Fixes a few small problems in the Python parser. And, as usual, add workarounds for various newly discovered browser incompatibilities.

    31-08-2009: Version 0.63:

    Overhaul of paste-handling (less fragile), fixes for several serious IE8 issues (cursor jumping, end-of-document bugs) and a number of small problems.

    30-05-2009: Version 0.62:

    Introduces Python and Lua parsers. Add setParser (on-the-fly mode changing) and clearHistory methods. Make parsing passes time-based instead of lines-based (see the passTime option).

    site_pro/codemirror-3.1/doc/docs.css0000644000000000000000000000451312111430706016251 0ustar rootrootbody { font-family: Droid Sans, Arial, sans-serif; line-height: 1.5; max-width: 64.3em; margin: 3em auto; padding: 0 1em; } h1 { letter-spacing: -3px; font-size: 3.23em; font-weight: bold; margin: 0; } h2 { font-size: 1.23em; font-weight: bold; margin: .5em 0; letter-spacing: -1px; } h3 { font-size: 1.1em; font-weight: bold; margin: .4em 0; } pre { background-color: #eee; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; padding: 1em; } pre.code { margin: 0 1em; } .grey { background-color: #eee; border-radius: 6px; margin-bottom: 1.65em; margin-top: 0.825em; padding: 0.825em 1.65em; position: relative; } img.logo { position: absolute; right: -1em; bottom: 4px; max-width: 23.6875em; /* Scale image down with text to prevent clipping */ } .grey > pre { background:none; border-radius:0; padding:0; margin:0; font-size:2.2em; line-height:1.2em; } a:link, a:visited, .quasilink { color: #df0019; cursor: pointer; text-decoration: none; } a:hover, .quasilink:hover { color: #800004; } h1 a:link, h1 a:visited, h1 a:hover { color: black; } ul { margin: 0; padding-left: 1.2em; } a.download { color: white; background-color: #df0019; width: 100%; display: block; text-align: center; font-size: 1.23em; font-weight: bold; text-decoration: none; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; padding: .5em 0; margin-bottom: 1em; } a.download:hover { background-color: #bb0010; } .rel { margin-bottom: 0; } .rel-note { color: #777; font-size: .9em; margin-top: .1em; } .logo-braces { color: #df0019; position: relative; top: -4px; } .blk { float: left; } .left { margin-right: 20.68em; max-width: 37em; padding-right: 6.53em; padding-bottom: 1em; } .left1 { width: 15.24em; padding-right: 6.45em; } .left2 { max-width: 15.24em; } .right { width: 20.68em; margin-left: -20.68em; } .leftbig { width: 42.44em; padding-right: 6.53em; } .rightsmall { width: 15.24em; } .clear:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } .clear { display: inline-block; } /* start commented backslash hack \*/ * html .clear { height: 1%; } .clear { display: block; } /* close commented backslash hack */ site_pro/codemirror-3.1/doc/internals.html0000644000000000000000000006231012111430706017473 0ustar rootroot CodeMirror: Internals

    { } CodeMirror

    /* (Re-) Implementing A Syntax-
       Highlighting Editor in JavaScript */
    

    Topic: JavaScript, code editor implementation
    Author: Marijn Haverbeke
    Date: March 2nd 2011 (updated November 13th 2011)

    Caution: this text was written briefly after version 2 was initially written. It no longer (even including the update at the bottom) fully represents the current implementation. I'm leaving it here as a historic document. For more up-to-date information, look at the entries tagged cm-internals on my blog.

    This is a followup to my Brutal Odyssey to the Dark Side of the DOM Tree story. That one describes the mind-bending process of implementing (what would become) CodeMirror 1. This one describes the internals of CodeMirror 2, a complete rewrite and rethink of the old code base. I wanted to give this piece another Hunter Thompson copycat subtitle, but somehow that would be out of place—the process this time around was one of straightforward engineering, requiring no serious mind-bending whatsoever.

    So, what is wrong with CodeMirror 1? I'd estimate, by mailing list activity and general search-engine presence, that it has been integrated into about a thousand systems by now. The most prominent one, since a few weeks, being Google code's project hosting. It works, and it's being used widely.

    Still, I did not start replacing it because I was bored. CodeMirror 1 was heavily reliant on designMode or contentEditable (depending on the browser). Neither of these are well specified (HTML5 tries to specify their basics), and, more importantly, they tend to be one of the more obscure and buggy areas of browser functionality—CodeMirror, by using this functionality in a non-typical way, was constantly running up against browser bugs. WebKit wouldn't show an empty line at the end of the document, and in some releases would suddenly get unbearably slow. Firefox would show the cursor in the wrong place. Internet Explorer would insist on linkifying everything that looked like a URL or email address, a behaviour that can't be turned off. Some bugs I managed to work around (which was often a frustrating, painful process), others, such as the Firefox cursor placement, I gave up on, and had to tell user after user that they were known problems, but not something I could help.

    Also, there is the fact that designMode (which seemed to be less buggy than contentEditable in Webkit and Firefox, and was thus used by CodeMirror 1 in those browsers) requires a frame. Frames are another tricky area. It takes some effort to prevent getting tripped up by domain restrictions, they don't initialize synchronously, behave strangely in response to the back button, and, on several browsers, can't be moved around the DOM without having them re-initialize. They did provide a very nice way to namespace the library, though—CodeMirror 1 could freely pollute the namespace inside the frame.

    Finally, working with an editable document means working with selection in arbitrary DOM structures. Internet Explorer (8 and before) has an utterly different (and awkward) selection API than all of the other browsers, and even among the different implementations of document.selection, details about how exactly a selection is represented vary quite a bit. Add to that the fact that Opera's selection support tended to be very buggy until recently, and you can imagine why CodeMirror 1 contains 700 lines of selection-handling code.

    And that brings us to the main issue with the CodeMirror 1 code base: The proportion of browser-bug-workarounds to real application code was getting dangerously high. By building on top of a few dodgy features, I put the system in a vulnerable position—any incompatibility and bugginess in these features, I had to paper over with my own code. Not only did I have to do some serious stunt-work to get it to work on older browsers (as detailed in the previous story), things also kept breaking in newly released versions, requiring me to come up with new scary hacks in order to keep up. This was starting to lose its appeal.

    General Approach

    What CodeMirror 2 does is try to sidestep most of the hairy hacks that came up in version 1. I owe a lot to the ACE editor for inspiration on how to approach this.

    I absolutely did not want to be completely reliant on key events to generate my input. Every JavaScript programmer knows that key event information is horrible and incomplete. Some people (most awesomely Mihai Bazon with Ymacs) have been able to build more or less functioning editors by directly reading key events, but it takes a lot of work (the kind of never-ending, fragile work I described earlier), and will never be able to properly support things like multi-keystoke international character input. [see below for caveat]

    So what I do is focus a hidden textarea, and let the browser believe that the user is typing into that. What we show to the user is a DOM structure we built to represent his document. If this is updated quickly enough, and shows some kind of believable cursor, it feels like a real text-input control.

    Another big win is that this DOM representation does not have to span the whole document. Some CodeMirror 1 users insisted that they needed to put a 30 thousand line XML document into CodeMirror. Putting all that into the DOM takes a while, especially since, for some reason, an editable DOM tree is slower than a normal one on most browsers. If we have full control over what we show, we must only ensure that the visible part of the document has been added, and can do the rest only when needed. (Fortunately, the onscroll event works almost the same on all browsers, and lends itself well to displaying things only as they are scrolled into view.)

    Input

    ACE uses its hidden textarea only as a text input shim, and does all cursor movement and things like text deletion itself by directly handling key events. CodeMirror's way is to let the browser do its thing as much as possible, and not, for example, define its own set of key bindings. One way to do this would have been to have the whole document inside the hidden textarea, and after each key event update the display DOM to reflect what's in that textarea.

    That'd be simple, but it is not realistic. For even medium-sized document the editor would be constantly munging huge strings, and get terribly slow. What CodeMirror 2 does is put the current selection, along with an extra line on the top and on the bottom, into the textarea.

    This means that the arrow keys (and their ctrl-variations), home, end, etcetera, do not have to be handled specially. We just read the cursor position in the textarea, and update our cursor to match it. Also, copy and paste work pretty much for free, and people get their native key bindings, without any special work on my part. For example, I have emacs key bindings configured for Chrome and Firefox. There is no way for a script to detect this. [no longer the case]

    Of course, since only a small part of the document sits in the textarea, keys like page up and ctrl-end won't do the right thing. CodeMirror is catching those events and handling them itself.

    Selection

    Getting and setting the selection range of a textarea in modern browsers is trivial—you just use the selectionStart and selectionEnd properties. On IE you have to do some insane stuff with temporary ranges and compensating for the fact that moving the selection by a 'character' will treat \r\n as a single character, but even there it is possible to build functions that reliably set and get the selection range.

    But consider this typical case: When I'm somewhere in my document, press shift, and press the up arrow, something gets selected. Then, if I, still holding shift, press the up arrow again, the top of my selection is adjusted. The selection remembers where its head and its anchor are, and moves the head when we shift-move. This is a generally accepted property of selections, and done right by every editing component built in the past twenty years.

    But not something that the browser selection APIs expose.

    Great. So when someone creates an 'upside-down' selection, the next time CodeMirror has to update the textarea, it'll re-create the selection as an 'upside-up' selection, with the anchor at the top, and the next cursor motion will behave in an unexpected way—our second up-arrow press in the example above will not do anything, since it is interpreted in exactly the same way as the first.

    No problem. We'll just, ehm, detect that the selection is upside-down (you can tell by the way it was created), and then, when an upside-down selection is present, and a cursor-moving key is pressed in combination with shift, we quickly collapse the selection in the textarea to its start, allow the key to take effect, and then combine its new head with its old anchor to get the real selection.

    In short, scary hacks could not be avoided entirely in CodeMirror 2.

    And, the observant reader might ask, how do you even know that a key combo is a cursor-moving combo, if you claim you support any native key bindings? Well, we don't, but we can learn. The editor keeps a set known cursor-movement combos (initialized to the predictable defaults), and updates this set when it observes that pressing a certain key had (only) the effect of moving the cursor. This, of course, doesn't work if the first time the key is used was for extending an inverted selection, but it works most of the time.

    Intelligent Updating

    One thing that always comes up when you have a complicated internal state that's reflected in some user-visible external representation (in this case, the displayed code and the textarea's content) is keeping the two in sync. The naive way is to just update the display every time you change your state, but this is not only error prone (you'll forget), it also easily leads to duplicate work on big, composite operations. Then you start passing around flags indicating whether the display should be updated in an attempt to be efficient again and, well, at that point you might as well give up completely.

    I did go down that road, but then switched to a much simpler model: simply keep track of all the things that have been changed during an action, and then, only at the end, use this information to update the user-visible display.

    CodeMirror uses a concept of operations, which start by calling a specific set-up function that clears the state and end by calling another function that reads this state and does the required updating. Most event handlers, and all the user-visible methods that change state are wrapped like this. There's a method called operation that accepts a function, and returns another function that wraps the given function as an operation.

    It's trivial to extend this (as CodeMirror does) to detect nesting, and, when an operation is started inside an operation, simply increment the nesting count, and only do the updating when this count reaches zero again.

    If we have a set of changed ranges and know the currently shown range, we can (with some awkward code to deal with the fact that changes can add and remove lines, so we're dealing with a changing coordinate system) construct a map of the ranges that were left intact. We can then compare this map with the part of the document that's currently visible (based on scroll offset and editor height) to determine whether something needs to be updated.

    CodeMirror uses two update algorithms—a full refresh, where it just discards the whole part of the DOM that contains the edited text and rebuilds it, and a patch algorithm, where it uses the information about changed and intact ranges to update only the out-of-date parts of the DOM. When more than 30 percent (which is the current heuristic, might change) of the lines need to be updated, the full refresh is chosen (since it's faster to do than painstakingly finding and updating all the changed lines), in the other case it does the patching (so that, if you scroll a line or select another character, the whole screen doesn't have to be re-rendered). [the full-refresh algorithm was dropped, it wasn't really faster than the patching one]

    All updating uses innerHTML rather than direct DOM manipulation, since that still seems to be by far the fastest way to build documents. There's a per-line function that combines the highlighting, marking, and selection info for that line into a snippet of HTML. The patch updater uses this to reset individual lines, the refresh updater builds an HTML chunk for the whole visible document at once, and then uses a single innerHTML update to do the refresh.

    Parsers can be Simple

    When I wrote CodeMirror 1, I thought interruptable parsers were a hugely scary and complicated thing, and I used a bunch of heavyweight abstractions to keep this supposed complexity under control: parsers were iterators that consumed input from another iterator, and used funny closure-resetting tricks to copy and resume themselves.

    This made for a rather nice system, in that parsers formed strictly separate modules, and could be composed in predictable ways. Unfortunately, it was quite slow (stacking three or four iterators on top of each other), and extremely intimidating to people not used to a functional programming style.

    With a few small changes, however, we can keep all those advantages, but simplify the API and make the whole thing less indirect and inefficient. CodeMirror 2's mode API uses explicit state objects, and makes the parser/tokenizer a function that simply takes a state and a character stream abstraction, advances the stream one token, and returns the way the token should be styled. This state may be copied, optionally in a mode-defined way, in order to be able to continue a parse at a given point. Even someone who's never touched a lambda in his life can understand this approach. Additionally, far fewer objects are allocated in the course of parsing now.

    The biggest speedup comes from the fact that the parsing no longer has to touch the DOM though. In CodeMirror 1, on an older browser, you could see the parser work its way through the document, managing some twenty lines in each 50-millisecond time slice it got. It was reading its input from the DOM, and updating the DOM as it went along, which any experienced JavaScript programmer will immediately spot as a recipe for slowness. In CodeMirror 2, the parser usually finishes the whole document in a single 100-millisecond time slice—it manages some 1500 lines during that time on Chrome. All it has to do is munge strings, so there is no real reason for it to be slow anymore.

    What Gives?

    Given all this, what can you expect from CodeMirror 2?

    • Small. the base library is some 45k when minified now, 17k when gzipped. It's smaller than its own logo.
    • Lightweight. CodeMirror 2 initializes very quickly, and does almost no work when it is not focused. This means you can treat it almost like a textarea, have multiple instances on a page without trouble.
    • Huge document support. Since highlighting is really fast, and no DOM structure is being built for non-visible content, you don't have to worry about locking up your browser when a user enters a megabyte-sized document.
    • Extended API. Some things kept coming up in the mailing list, such as marking pieces of text or lines, which were extremely hard to do with CodeMirror 1. The new version has proper support for these built in.
    • Tab support. Tabs inside editable documents were, for some reason, a no-go. At least six different people announced they were going to add tab support to CodeMirror 1, none survived (I mean, none delivered a working version). CodeMirror 2 no longer removes tabs from your document.
    • Sane styling. iframe nodes aren't really known for respecting document flow. Now that an editor instance is a plain div element, it is much easier to size it to fit the surrounding elements. You don't even have to make it scroll if you do not want to.

    On the downside, a CodeMirror 2 instance is not a native editable component. Though it does its best to emulate such a component as much as possible, there is functionality that browsers just do not allow us to hook into. Doing select-all from the context menu, for example, is not currently detected by CodeMirror.

    [Updates from November 13th 2011] Recently, I've made some changes to the codebase that cause some of the text above to no longer be current. I've left the text intact, but added markers at the passages that are now inaccurate. The new situation is described below.

    Content Representation

    The original implementation of CodeMirror 2 represented the document as a flat array of line objects. This worked well—splicing arrays will require the part of the array after the splice to be moved, but this is basically just a simple memmove of a bunch of pointers, so it is cheap even for huge documents.

    However, I recently added line wrapping and code folding (line collapsing, basically). Once lines start taking up a non-constant amount of vertical space, looking up a line by vertical position (which is needed when someone clicks the document, and to determine the visible part of the document during scrolling) can only be done with a linear scan through the whole array, summing up line heights as you go. Seeing how I've been going out of my way to make big documents fast, this is not acceptable.

    The new representation is based on a B-tree. The leaves of the tree contain arrays of line objects, with a fixed minimum and maximum size, and the non-leaf nodes simply hold arrays of child nodes. Each node stores both the amount of lines that live below them and the vertical space taken up by these lines. This allows the tree to be indexed both by line number and by vertical position, and all access has logarithmic complexity in relation to the document size.

    I gave line objects and tree nodes parent pointers, to the node above them. When a line has to update its height, it can simply walk these pointers to the top of the tree, adding or subtracting the difference in height from each node it encounters. The parent pointers also make it cheaper (in complexity terms, the difference is probably tiny in normal-sized documents) to find the current line number when given a line object. In the old approach, the whole document array had to be searched. Now, we can just walk up the tree and count the sizes of the nodes coming before us at each level.

    I chose B-trees, not regular binary trees, mostly because they allow for very fast bulk insertions and deletions. When there is a big change to a document, it typically involves adding, deleting, or replacing a chunk of subsequent lines. In a regular balanced tree, all these inserts or deletes would have to be done separately, which could be really expensive. In a B-tree, to insert a chunk, you just walk down the tree once to find where it should go, insert them all in one shot, and then break up the node if needed. This breaking up might involve breaking up nodes further up, but only requires a single pass back up the tree. For deletion, I'm somewhat lax in keeping things balanced—I just collapse nodes into a leaf when their child count goes below a given number. This means that there are some weird editing patterns that may result in a seriously unbalanced tree, but even such an unbalanced tree will perform well, unless you spend a day making strangely repeating edits to a really big document.

    Keymaps

    Above, I claimed that directly catching key events for things like cursor movement is impractical because it requires some browser-specific kludges. I then proceeded to explain some awful hacks that were needed to make it possible for the selection changes to be detected through the textarea. In fact, the second hack is about as bad as the first.

    On top of that, in the presence of user-configurable tab sizes and collapsed and wrapped lines, lining up cursor movement in the textarea with what's visible on the screen becomes a nightmare. Thus, I've decided to move to a model where the textarea's selection is no longer depended on.

    So I moved to a model where all cursor movement is handled by my own code. This adds support for a goal column, proper interaction of cursor movement with collapsed lines, and makes it possible for vertical movement to move through wrapped lines properly, instead of just treating them like non-wrapped lines.

    The key event handlers now translate the key event into a string, something like Ctrl-Home or Shift-Cmd-R, and use that string to look up an action to perform. To make keybinding customizable, this lookup goes through a table, using a scheme that allows such tables to be chained together (for example, the default Mac bindings fall through to a table named 'emacsy', which defines basic Emacs-style bindings like Ctrl-F, and which is also used by the custom Emacs bindings).

    A new option extraKeys allows ad-hoc keybindings to be defined in a much nicer way than what was possible with the old onKeyEvent callback. You simply provide an object mapping key identifiers to functions, instead of painstakingly looking at raw key events.

    Built-in commands map to strings, rather than functions, for example "goLineUp" is the default action bound to the up arrow key. This allows new keymaps to refer to them without duplicating any code. New commands can be defined by assigning to the CodeMirror.commands object, which maps such commands to functions.

    The hidden textarea now only holds the current selection, with no extra characters around it. This has a nice advantage: polling for input becomes much, much faster. If there's a big selection, this text does not have to be read from the textarea every time—when we poll, just noticing that something is still selected is enough to tell us that no new text was typed.

    The reason that cheap polling is important is that many browsers do not fire useful events on IME (input method engine) input, which is the thing where people inputting a language like Japanese or Chinese use multiple keystrokes to create a character or sequence of characters. Most modern browsers fire input when the composing is finished, but many don't fire anything when the character is updated during composition. So we poll, whenever the editor is focused, to provide immediate updates of the display.

     
    site_pro/codemirror-3.1/doc/realworld.html0000644000000000000000000001601512111430706017470 0ustar rootroot CodeMirror: Real-world uses

    { } CodeMirror

    /* Real world uses,
       full list */
    

    Contact me if you'd like your project to be added to this list.

    site_pro/codemirror-3.1/doc/reporting.html0000644000000000000000000000407712111430706017513 0ustar rootroot CodeMirror: Reporting Bugs

    { } CodeMirror

    /* Reporting bugs
       effectively */
    

    So you found a problem in CodeMirror. By all means, report it! Bug reports from users are the main drive behind improvements to CodeMirror. But first, please read over these points:

    1. CodeMirror is maintained by volunteers. They don't owe you anything, so be polite. Reports with an indignant or belligerent tone tend to be moved to the bottom of the pile.
    2. Include information about the browser in which the problem occurred. Even if you tested several browsers, and the problem occurred in all of them, mention this fact in the bug report. Also include browser version numbers and the operating system that you're on.
    3. Mention which release of CodeMirror you're using. Preferably, try also with the current development snapshot, to ensure the problem has not already been fixed.
    4. Mention very precisely what went wrong. "X is broken" is not a good bug report. What did you expect to happen? What happened instead? Describe the exact steps a maintainer has to take to make the problem occur. We can not fix something that we can not observe.
    5. If the problem can not be reproduced in any of the demos included in the CodeMirror distribution, please provide an HTML document that demonstrates the problem. The best way to do this is to go to jsbin.com, enter it there, press save, and include the resulting link in your bug report.
    site_pro/codemirror-3.1/doc/modes.html0000644000000000000000000001070212111430706016601 0ustar rootroot CodeMirror: Mode list

    { } CodeMirror

    /* Full list of
       modes */
    

    Every mode in the distribution. The list on the front-page leaves out some of the more obscure ones.

    site_pro/codemirror-3.1/doc/compress.html0000644000000000000000000003373712111430706017342 0ustar rootroot CodeMirror: Compression Helper

    { } CodeMirror

    /* Script compression
       helper */
    

    To optimize loading CodeMirror, especially when including a bunch of different modes, it is recommended that you combine and minify (and preferably also gzip) the scripts. This page makes those first two steps very easy. Simply select the version and scripts you need in the form below, and click Compress to download the minified script file.

    Version:

    with UglifyJS

    Custom code to add to the compressed file:

    site_pro/codemirror-3.1/doc/upgrade_v2.2.html0000644000000000000000000000700012111430706017665 0ustar rootroot CodeMirror: Upgrading to v2.2

    { } CodeMirror

    /* Upgrading to
       v2.2 */
    

    There are a few things in the 2.2 release that require some care when upgrading.

    No more default.css

    The default theme is now included in codemirror.css, so you do not have to included it separately anymore. (It was tiny, so even if you're not using it, the extra data overhead is negligible.)

    Different key customization

    CodeMirror has moved to a system where keymaps are used to bind behavior to keys. This means custom bindings are now possible.

    Three options that influenced key behavior, tabMode, enterMode, and smartHome, are no longer supported. Instead, you can provide custom bindings to influence the way these keys act. This is done through the new extraKeys option, which can hold an object mapping key names to functionality. A simple example would be:

      extraKeys: {
        "Ctrl-S": function(instance) { saveText(instance.getValue()); },
        "Ctrl-/": "undo"
      }

    Keys can be mapped either to functions, which will be given the editor instance as argument, or to strings, which are mapped through functions through the CodeMirror.commands table, which contains all the built-in editing commands, and can be inspected and extended by external code.

    By default, the Home key is bound to the "goLineStartSmart" command, which moves the cursor to the first non-whitespace character on the line. You can set do this to make it always go to the very start instead:

      extraKeys: {"Home": "goLineStart"}

    Similarly, Enter is bound to "newlineAndIndent" by default. You can bind it to something else to get different behavior. To disable special handling completely and only get a newline character inserted, you can bind it to false:

      extraKeys: {"Enter": false}

    The same works for Tab. If you don't want CodeMirror to handle it, bind it to false. The default behaviour is to indent the current line more ("indentMore" command), and indent it less when shift is held ("indentLess"). There are also "indentAuto" (smart indent) and "insertTab" commands provided for alternate behaviors. Or you can write your own handler function to do something different altogether.

    Tabs

    Handling of tabs changed completely. The display width of tabs can now be set with the tabSize option, and tabs can be styled by setting CSS rules for the cm-tab class.

    The default width for tabs is now 4, as opposed to the 8 that is hard-wired into browsers. If you are relying on 8-space tabs, make sure you explicitly set tabSize: 8 in your options.

    site_pro/codemirror-3.1/doc/upgrade_v3.html0000644000000000000000000002027412111430706017536 0ustar rootroot CodeMirror: Upgrading to v3

    { } CodeMirror

    /* Upgrading to
       version 3 */
    

    Version 3 does not depart too much from 2.x API, and sites that use CodeMirror in a very simple way might be able to upgrade without trouble. But it does introduce a number of incompatibilities. Please at least skim this text before upgrading.

    Note that version 3 drops full support for Internet Explorer 7. The editor will mostly work on that browser, but it'll be significantly glitchy.

    DOM structure

    This one is the most likely to cause problems. The internal structure of the editor has changed quite a lot, mostly to implement a new scrolling model.

    Editor height is now set on the outer wrapper element (CSS class CodeMirror), not on the scroller element (CodeMirror-scroll).

    Other nodes were moved, dropped, and added. If you have any code that makes assumptions about the internal DOM structure of the editor, you'll have to re-test it and probably update it to work with v3.

    See the styling section of the manual for more information.

    Gutter model

    In CodeMirror 2.x, there was a single gutter, and line markers created with setMarker would have to somehow coexist with the line numbers (if present). Version 3 allows you to specify an array of gutters, by class name, use setGutterMarker to add or remove markers in individual gutters, and clear whole gutters with clearGutter. Gutter markers are now specified as DOM nodes, rather than HTML snippets.

    The gutters no longer horizontally scrolls along with the content. The fixedGutter option was removed (since it is now the only behavior).

    <style>
      /* Define a gutter style */
      .note-gutter { width: 3em; background: cyan; }
    </style>
    <script>
      // Create an instance with two gutters -- line numbers and notes
      var cm = new CodeMirror(document.body, {
        gutters: ["note-gutter", "CodeMirror-linenumbers"],
        lineNumbers: true
      });
      // Add a note to line 0
      cm.setGutterMarker(0, "note-gutter", document.createTextNode("hi"));
    </script>
    

    Event handling

    Most of the onXYZ options have been removed. The same effect is now obtained by calling the on method with a string identifying the event type. Multiple handlers can now be registered (and individually unregistered) for an event, and objects such as line handlers now also expose events. See the full list here.

    (The onKeyEvent and onDragEvent options, which act more as hooks than as event handlers, are still there in their old form.)

    cm.on("change", function(cm, change) {
      console.log("something changed! (" + change.origin + ")");
    });
    

    markText method arguments

    The markText method (which has gained some interesting new features, such as creating atomic and read-only spans, or replacing spans with widgets) no longer takes the CSS class name as a separate argument, but makes it an optional field in the options object instead.

    // Style first ten lines, and forbid the cursor from entering them
    cm.markText({line: 0, ch: 0}, {line: 10, ch: 0}, {
      className: "magic-text",
      inclusiveLeft: true,
      atomic: true
    });
    

    Line folding

    The interface for hiding lines has been removed. markText can now be used to do the same in a more flexible and powerful way.

    The folding script has been updated to use the new interface, and should now be more robust.

    // Fold a range, replacing it with the text "??"
    var range = cm.markText({line: 4, ch: 2}, {line: 8, ch: 1}, {
      replacedWith: document.createTextNode("??"),
      // Auto-unfold when cursor moves into the range
      clearOnEnter: true
    });
    // Get notified when auto-unfolding
    CodeMirror.on(range, "clear", function() {
      console.log("boom");
    });
    

    Line CSS classes

    The setLineClass method has been replaced by addLineClass and removeLineClass, which allow more modular control over the classes attached to a line.

    var marked = cm.addLineClass(10, "background", "highlighted-line");
    setTimeout(function() {
      cm.removeLineClass(marked, "background", "highlighted-line");
    });
    

    Position properties

    All methods that take or return objects that represent screen positions now use {left, top, bottom, right} properties (not always all of them) instead of the {x, y, yBot} used by some methods in v2.x.

    Affected methods are cursorCoords, charCoords, coordsChar, and getScrollInfo.

    Bracket matching no longer in core

    The matchBrackets option is no longer defined in the core editor. Load addon/edit/matchbrackets.js to enable it.

    Mode management

    The CodeMirror.listModes and CodeMirror.listMIMEs functions, used for listing defined modes, are gone. You are now encouraged to simply inspect CodeMirror.modes (mapping mode names to mode constructors) and CodeMirror.mimeModes (mapping MIME strings to mode specs).

    New features

    Some more reasons to upgrade to version 3.

    • Bi-directional text support. CodeMirror will now mostly do the right thing when editing Arabic or Hebrew text.
    • Arbitrary line heights. Using fonts with different heights inside the editor (whether off by one pixel or fifty) is now supported and handled gracefully.
    • In-line widgets. See the demo and the docs.
    • Defining custom options with CodeMirror.defineOption.
    site_pro/codemirror-3.1/doc/manual.html0000644000000000000000000027120112111430706016752 0ustar rootroot CodeMirror: User Manual

    { } CodeMirror

    /* User manual and
       reference guide */
    

    Overview

    CodeMirror is a code-editor component that can be embedded in Web pages. The core library provides only the editor component, no accompanying buttons, auto-completion, or other IDE functionality. It does provide a rich API on top of which such functionality can be straightforwardly implemented. See the add-ons included in the distribution, and the CodeMirror UI project, for reusable implementations of extra features.

    CodeMirror works with language-specific modes. Modes are JavaScript programs that help color (and optionally indent) text written in a given language. The distribution comes with a number of modes (see the mode/ directory), and it isn't hard to write new ones for other languages.

    Basic Usage

    The easiest way to use CodeMirror is to simply load the script and style sheet found under lib/ in the distribution, plus a mode script from one of the mode/ directories. (See the compression helper for an easy way to combine scripts.) For example:

    <script src="lib/codemirror.js"></script>
    <link rel="stylesheet" href="../lib/codemirror.css">
    <script src="mode/javascript/javascript.js"></script>

    Having done this, an editor instance can be created like this:

    var myCodeMirror = CodeMirror(document.body);

    The editor will be appended to the document body, will start empty, and will use the mode that we loaded. To have more control over the new editor, a configuration object can be passed to CodeMirror as a second argument:

    var myCodeMirror = CodeMirror(document.body, {
      value: "function myScript(){return 100;}\n",
      mode:  "javascript"
    });

    This will initialize the editor with a piece of code already in it, and explicitly tell it to use the JavaScript mode (which is useful when multiple modes are loaded). See below for a full discussion of the configuration options that CodeMirror accepts.

    In cases where you don't want to append the editor to an element, and need more control over the way it is inserted, the first argument to the CodeMirror function can also be a function that, when given a DOM element, inserts it into the document somewhere. This could be used to, for example, replace a textarea with a real editor:

    var myCodeMirror = CodeMirror(function(elt) {
      myTextArea.parentNode.replaceChild(elt, myTextArea);
    }, {value: myTextArea.value});

    However, for this use case, which is a common way to use CodeMirror, the library provides a much more powerful shortcut:

    var myCodeMirror = CodeMirror.fromTextArea(myTextArea);

    This will, among other things, ensure that the textarea's value is updated with the editor's contents when the form (if it is part of a form) is submitted. See the API reference for a full description of this method.

    Configuration

    Both the CodeMirror function and its fromTextArea method take as second (optional) argument an object containing configuration options. Any option not supplied like this will be taken from CodeMirror.defaults, an object containing the default options. You can update this object to change the defaults on your page.

    Options are not checked in any way, so setting bogus option values is bound to lead to odd errors.

    These are the supported options:

    value (string or Doc)
    The starting value of the editor. Can be a string, or a document object.
    mode (string or object)
    The mode to use. When not given, this will default to the first mode that was loaded. It may be a string, which either simply names the mode or is a MIME type associated with the mode. Alternatively, it may be an object containing configuration options for the mode, with a name property that names the mode (for example {name: "javascript", json: true}). The demo pages for each mode contain information about what configuration parameters the mode supports. You can ask CodeMirror which modes and MIME types have been defined by inspecting the CodeMirror.modes and CodeMirror.mimeModes objects. The first maps mode names to their constructors, and the second maps MIME types to mode specs.
    theme (string)
    The theme to style the editor with. You must make sure the CSS file defining the corresponding .cm-s-[name] styles is loaded (see the theme directory in the distribution). The default is "default", for which colors are included in codemirror.css. It is possible to use multiple theming classes at once—for example "foo bar" will assign both the cm-s-foo and the cm-s-bar classes to the editor.
    indentUnit (integer)
    How many spaces a block (whatever that means in the edited language) should be indented. The default is 2.
    smartIndent (boolean)
    Whether to use the context-sensitive indentation that the mode provides (or just indent the same as the line before). Defaults to true.
    tabSize (integer)
    The width of a tab character. Defaults to 4.
    indentWithTabs (boolean)
    Whether, when indenting, the first N*tabSize spaces should be replaced by N tabs. Default is false.
    electricChars (boolean)
    Configures whether the editor should re-indent the current line when a character is typed that might change its proper indentation (only works if the mode supports indentation). Default is true.
    rtlMoveVisually (boolean)
    Determines whether horizontal cursor movement through right-to-left (Arabic, Hebrew) text is visual (pressing the left arrow moves the cursor left) or logical (pressing the left arrow moves to the next lower index in the string, which is visually right in right-to-left text). The default is false on Windows, and true on other platforms.
    keyMap (string)
    Configures the keymap to use. The default is "default", which is the only keymap defined in codemirror.js itself. Extra keymaps are found in the keymap directory. See the section on keymaps for more information.
    extraKeys (object)
    Can be used to specify extra keybindings for the editor, alongside the ones defined by keyMap. Should be either null, or a valid keymap value.
    lineWrapping (boolean)
    Whether CodeMirror should scroll or wrap for long lines. Defaults to false (scroll).
    lineNumbers (boolean)
    Whether to show line numbers to the left of the editor.
    firstLineNumber (integer)
    At which number to start counting lines. Default is 1.
    lineNumberFormatter (function)
    A function used to format line numbers. The function is passed the line number, and should return a string that will be shown in the gutter.
    gutters (array)
    Can be used to add extra gutters (beyond or instead of the line number gutter). Should be an array of CSS class names, each of which defines a width (and optionally a background), and which will be used to draw the background of the gutters. May include the CodeMirror-linenumbers class, in order to explicitly set the position of the line number gutter (it will default to be to the right of all other gutters). These class names are the keys passed to setGutterMarker.
    fixedGutter (boolean)
    Determines whether the gutter scrolls along with the content horizontally (false) or whether it stays fixed during horizontal scrolling (true, the default).
    readOnly (boolean)
    This disables editing of the editor content by the user. If the special value "nocursor" is given (instead of simply true), focusing of the editor is also disallowed.
    showCursorWhenSelecting (boolean)
    Whether the cursor should be drawn when a selection is active. Defaults to false.
    undoDepth (integer)
    The maximum number of undo levels that the editor stores. Defaults to 40.
    tabindex (integer)
    The tab index to assign to the editor. If not given, no tab index will be assigned.
    autofocus (boolean)
    Can be used to make CodeMirror focus itself on initialization. Defaults to off. When fromTextArea is used, and no explicit value is given for this option, it will be set to true when either the source textarea is focused, or it has an autofocus attribute and no other element is focused.

    Below this a few more specialized, low-level options are listed. These are only useful in very specific situations, you might want to skip them the first time you read this manual.

    dragDrop (boolean)
    Controls whether drag-and-drop is enabled. On by default.
    onDragEvent (function)
    When given, this will be called when the editor is handling a dragenter, dragover, or drop event. It will be passed the editor instance and the event object as arguments. The callback can choose to handle the event itself, in which case it should return true to indicate that CodeMirror should not do anything further.
    onKeyEvent (function)
    This provides a rather low-level hook into CodeMirror's key handling. If provided, this function will be called on every keydown, keyup, and keypress event that CodeMirror captures. It will be passed two arguments, the editor instance and the key event. This key event is pretty much the raw key event, except that a stop() method is always added to it. You could feed it to, for example, jQuery.Event to further normalize it.
    This function can inspect the key event, and handle it if it wants to. It may return true to tell CodeMirror to ignore the event. Be wary that, on some browsers, stopping a keydown does not stop the keypress from firing, whereas on others it does. If you respond to an event, you should probably inspect its type property and only do something when it is keydown (or keypress for actions that need character data).
    cursorBlinkRate (number)
    Half-period in milliseconds used for cursor blinking. The default blink rate is 530ms.
    cursorHeight (number)
    Determines the height of the cursor. Default is 1, meaning it spans the whole height of the line. For some fonts (and by some tastes) a smaller height (for example 0.85), which causes the cursor to not reach all the way to the bottom of the line, looks better
    workTime, workDelay (number)
    Highlighting is done by a pseudo background-thread that will work for workTime milliseconds, and then use timeout to sleep for workDelay milliseconds. The defaults are 200 and 300, you can change these options to make the highlighting more or less aggressive.
    pollInterval (number)
    Indicates how quickly CodeMirror should poll its input textarea for changes (when focused). Most input is captured by events, but some things, like IME input on some browsers, don't generate events that allow CodeMirror to properly detect it. Thus, it polls. Default is 100 milliseconds.
    flattenSpans (boolean)
    By default, CodeMirror will combine adjacent tokens into a single span if they have the same class. This will result in a simpler DOM tree, and thus perform better. With some kinds of styling (such as rounded corners), this will change the way the document looks. You can set this option to false to disable this behavior.
    viewportMargin (integer)
    Specifies the amount of lines that are rendered above and below the part of the document that's currently scrolled into view. This affects the amount of updates needed when scrolling, and the amount of work that such an update does. You should usually leave it at its default, 10. Can be set to Infinity to make sure the whole document is always rendered, and thus the browser's text search works on it. This will have bad effects on performance of big documents.

    Events

    A CodeMirror instance emits a number of events, which allow client code to react to various situations. These are registered with the on method (and removed with the off method). These are the events that fire on the instance object. The name of the event is followed by the arguments that will be passed to the handler. The instance argument always refers to the editor instance.

    "change" (instance, changeObj)
    Fires every time the content of the editor is changed. The changeObj is a {from, to, text, next} object containing information about the changes that occurred as second argument. from and to are the positions (in the pre-change coordinate system) where the change started and ended (for example, it might be {ch:0, line:18} if the position is at the beginning of line #19). text is an array of strings representing the text that replaced the changed range (split by line). If multiple changes happened during a single operation, the object will have a next property pointing to another change object (which may point to another, etc).
    "beforeChange" (instance, change)
    This event is fired before a change is applied, and its handler may choose to modify or cancel the change. The change object has from, to, and text properties, as with the "change" event, but never a next property, since this is fired for each individual change, and not batched per operation. It also has update(from, to, text) and cancel() methods, which may be used to modify or cancel the change. All three arguments to update are optional, and can be left off to leave the existing value for that field intact. Note: you may not do anything from a "beforeChange" handler that would cause changes to the document or its visualization. Doing so will, since this handler is called directly from the bowels of the CodeMirror implementation, probably cause the editor to become corrupted.
    "cursorActivity" (instance)
    Will be fired when the cursor or selection moves, or any change is made to the editor content.
    "beforeSelectionChange" (instance, selection)
    This event is fired before the selection is moved. Its handler may modify the resulting selection head and anchor. The selection parameter is an object with head and anchor properties holding {line, ch} objects, which the handler can read and update. Handlers for this event have the same restriction as "beforeChange" handlers — they should not do anything to directly update the state of the editor.
    "viewportChange" (instance, from, to)
    Fires whenever the view port of the editor changes (due to scrolling, editing, or any other factor). The from and to arguments give the new start and end of the viewport.
    "gutterClick" (instance, line, gutter, clickEvent)
    Fires when the editor gutter (the line-number area) is clicked. Will pass the editor instance as first argument, the (zero-based) number of the line that was clicked as second argument, the CSS class of the gutter that was clicked as third argument, and the raw mousedown event object as fourth argument.
    "focus", "blur" (instance)
    These fire whenever the editor is focused or unfocused.
    "scroll" (instance)
    Fires when the editor is scrolled.
    "update" (instance)
    Will be fired whenever CodeMirror updates its DOM display.

    It is also possible to register events on other objects. Use CodeMirror.on(handle, "eventName", func) to register handlers on objects that don't have their own on method. Document objects (instances of CodeMirror.Doc) emit the following events:

    "change" (doc, changeObj)
    Fired whenever a change occurs to the document. changeObj has a similar type as the object passed to the editor's "change" event, but it never has a next property, because document change events are not batched (whereas editor change events are).
    "beforeChange" (doc, change)
    See the description of the same event on editor instances.
    "cursorActivity" (doc)
    Fired whenever the cursor or selection in this document changes.
    "beforeSelectionChange" (doc, selection)
    Equivalent to the event by the same name as fired on editor instances.

    Line handles (as returned by, for example, getLineHandle) support these events:

    "delete" ()
    Will be fired when the line object is deleted. A line object is associated with the start of the line. Mostly useful when you need to find out when your gutter markers on a given line are removed.
    "change" ()
    Fires when the line's text content is changed in any way (but the line is not deleted outright).

    Marked range handles, as returned by markText and setBookmark, emit the following events:

    "clear" ()
    Fired when the range is cleared, either through cursor movement in combination with clearOnEnter or through a call to its clear() method. Will only be fired once per handle. Note that deleting the range through text editing does not fire this event, because an undo action might bring the range back into existence.
    "hide" ()
    Fired when the last part of the marker is removed from the document by editing operations.
    "unhide" ()
    Fired when, after the marker was removed by editing, a undo operation brought the marker back.

    Line widgets, returned by addLineWidget, fire these events:

    "redraw" ()
    Fired whenever the editor re-adds the widget to the DOM. This will happen once right after the widget is added (if it is scrolled into view), and then again whenever it is scrolled out of view and back in again, or when changes to the editor options or the line the widget is on require the widget to be redrawn.

    Keymaps

    Keymaps are ways to associate keys with functionality. A keymap is an object mapping strings that identify the keys to functions that implement their functionality.

    Keys are identified either by name or by character. The CodeMirror.keyNames object defines names for common keys and associates them with their key codes. Examples of names defined here are Enter, F5, and Q. These can be prefixed with Shift-, Cmd-, Ctrl-, and Alt- (in that order!) to specify a modifier. So for example, Shift-Ctrl-Space would be a valid key identifier.

    Alternatively, a character can be specified directly by surrounding it in single quotes, for example '$' or 'q'. Due to limitations in the way browsers fire key events, these may not be prefixed with modifiers.

    The CodeMirror.keyMap object associates keymaps with names. User code and keymap definitions can assign extra properties to this object. Anywhere where a keymap is expected, a string can be given, which will be looked up in this object. It also contains the "default" keymap holding the default bindings.

    The values of properties in keymaps can be either functions of a single argument (the CodeMirror instance), strings, or false. Such strings refer to properties of the CodeMirror.commands object, which defines a number of common commands that are used by the default keybindings, and maps them to functions. If the property is set to false, CodeMirror leaves handling of the key up to the browser. A key handler function may return CodeMirror.Pass to indicate that it has decided not to handle the key, and other handlers (or the default behavior) should be given a turn.

    Keys mapped to command names that start with the characters "go" (which should be used for cursor-movement actions) will be fired even when an extra Shift modifier is present (i.e. "Up": "goLineUp" matches both up and shift-up). This is used to easily implement shift-selection.

    Keymaps can defer to each other by defining a fallthrough property. This indicates that when a key is not found in the map itself, one or more other maps should be searched. It can hold either a single keymap or an array of keymaps.

    When a keymap contains a nofallthrough property set to true, keys matched against that map will be ignored if they don't match any of the bindings in the map (no further child maps will be tried, and the default effect of inserting a character will not occur).

    Customized Styling

    Up to a certain extent, CodeMirror's look can be changed by modifying style sheet files. The style sheets supplied by modes simply provide the colors for that mode, and can be adapted in a very straightforward way. To style the editor itself, it is possible to alter or override the styles defined in codemirror.css.

    Some care must be taken there, since a lot of the rules in this file are necessary to have CodeMirror function properly. Adjusting colors should be safe, of course, and with some care a lot of other things can be changed as well. The CSS classes defined in this file serve the following roles:

    CodeMirror
    The outer element of the editor. This should be used for the editor width, height, borders and positioning. Can also be used to set styles that should hold for everything inside the editor (such as font and font size), or to set a background.
    CodeMirror-scroll
    Whether the editor scrolls (overflow: auto + fixed height). By default, it does. Setting the CodeMirror class to have height: auto and giving this class overflow-x: auto; overflow-y: hidden; will cause the editor to resize to fit its content.
    CodeMirror-focused
    Whenever the editor is focused, the top element gets this class. This is used to hide the cursor and give the selection a different color when the editor is not focused.
    CodeMirror-gutters
    This is the backdrop for all gutters. Use it to set the default gutter background color, and optionally add a border on the right of the gutters.
    CodeMirror-linenumbers
    Use this for giving a background or width to the line number gutter.
    CodeMirror-linenumber
    Used to style the actual individual line numbers. These won't be children of the CodeMirror-linenumbers (plural) element, but rather will be absolutely positioned to overlay it. Use this to set alignment and text properties for the line numbers.
    CodeMirror-lines
    The visible lines. This is where you specify vertical padding for the editor content.
    CodeMirror-cursor
    The cursor is a block element that is absolutely positioned. You can make it look whichever way you want.
    CodeMirror-selected
    The selection is represented by span elements with this class.
    CodeMirror-matchingbracket, CodeMirror-nonmatchingbracket
    These are used to style matched (or unmatched) brackets.

    If your page's style sheets do funky things to all div or pre elements (you probably shouldn't do that), you'll have to define rules to cancel these effects out again for elements under the CodeMirror class.

    Themes are also simply CSS files, which define colors for various syntactic elements. See the files in the theme directory.

    Programming API

    A lot of CodeMirror features are only available through its API. Thus, you need to write code (or use add-ons) if you want to expose them to your users.

    Whenever points in the document are represented, the API uses objects with line and ch properties. Both are zero-based. CodeMirror makes sure to 'clip' any positions passed by client code so that they fit inside the document, so you shouldn't worry too much about sanitizing your coordinates. If you give ch a value of null, or don't specify it, it will be replaced with the length of the specified line.

    Methods prefixed with doc. can, unless otherwise specified, be called both on CodeMirror (editor) instances and CodeMirror.Doc instances. Methods prefixed with cm. are only available on CodeMirror instances.

    Content manipulation methods

    doc.getValue() → string
    Get the current editor content. You can pass it an optional argument to specify the string to be used to separate lines (defaults to "\n").
    doc.setValue(string)
    Set the editor content.
    doc.getRange(from, to) → string
    Get the text between the given points in the editor, which should be {line, ch} objects. An optional third argument can be given to indicate the line separator string to use (defaults to "\n").
    doc.replaceRange(string, from, to)
    Replace the part of the document between from and to with the given string. from and to must be {line, ch} objects. to can be left off to simply insert the string at position from.
    doc.getLine(n) → string
    Get the content of line n.
    doc.setLine(n, text)
    Set the content of line n.
    doc.removeLine(n)
    Remove the given line from the document.
    doc.lineCount() → number
    Get the number of lines in the editor.
    doc.firstLine() → number
    doc.lastLine() → number
    Get the first and last lines of the editor. This will usually be zero and doc.lineCount() - 1 respectively, but for linked sub-views, or documents instantiated with a non-zero first line, it might return other values.
    doc.getLineHandle(num) → lineHandle
    Fetches the line handle for the given line number.
    doc.getLineNumber(handle) → integer
    Given a line handle, returns the current position of that line (or null when it is no longer in the document).
    doc.eachLine(f) | doc.eachLine(start, end, f)
    Iterate over the whole document, or if start and end line numbers are given, the range from start up to (not including) end, and call f for each line, passing the line handle. This is a faster way to visit a range of line handlers than calling getLineHandle for each of them. Note that line handles have a text property containing the line's content (as a string).
    doc.markClean()
    Set the editor content as 'clean', a flag that it will retain until it is edited, and which will be set again when such an edit is undone again. Useful to track whether the content needs to be saved.
    doc.isClean() → boolean
    Returns whether the document is currently clean (not modified since initialization or the last call to markClean).

    Cursor and selection methods

    doc.getSelection() → string
    Get the currently selected code.
    doc.replaceSelection(string)
    Replace the selection with the given string.
    doc.getCursor(start) → object
    start is a an optional string indicating which end of the selection to return. It may be "start", "end", "head" (the side of the selection that moves when you press shift+arrow), or "anchor" (the fixed side of the selection). Omitting the argument is the same as passing "head". A {line, ch} object will be returned.
    doc.somethingSelected() → boolean
    Return true if any text is selected.
    doc.setCursor(pos)
    Set the cursor position. You can either pass a single {line, ch} object, or the line and the character as two separate parameters.
    doc.setSelection(anchor, head)
    Set the selection range. anchor and head should be {line, ch} objects. head defaults to anchor when not given.
    doc.extendSelection(pos, pos2)
    Similar to setSelection, but will, if shift is held or the extending flag is set, move the head of the selection while leaving the anchor at its current place. pos2 is optional, and can be passed to ensure a region (for example a word or paragraph) will end up selected (in addition to whatever lies between that region and the current anchor).
    doc.setExtending(bool)
    Sets or clears the 'extending' flag, which acts similar to the shift key, in that it will cause cursor movement and calls to extendSelection to leave the selection anchor in place.
    cm.findPosH(start, amount, unit, visually) → object
    Used to find the target position for horizontal cursor motion. start is a {line, ch} object, amount an integer (may be negative), and unit one of the string "char", "column", or "word". Will return a position that is produced by moving amount times the distance specified by unit. When visually is true, motion in right-to-left text will be visual rather than logical. When the motion was clipped by hitting the end or start of the document, the returned value will have a hitSide property set to true.
    cm.findPosV(start, amount, unit) → object
    Similar to findPosH, but used for vertical motion. unit may be "line" or "page". The other arguments and the returned value have the same interpretation as they have in findPosH.

    Configuration methods

    cm.setOption(option, value)
    Change the configuration of the editor. option should the name of an option, and value should be a valid value for that option.
    cm.getOption(option) → value
    Retrieves the current value of the given option for this editor instance.
    cm.addKeyMap(map)
    Attach an additional keymap to the editor. This is mostly useful for add-ons that need to register some key handlers without trampling on the extraKeys option. Maps added in this way have a lower precedence than extraKeys, a higher precedence than the base keyMap, and between them, the maps added earlier have a higher precedence than those added later.
    cm.removeKeyMap(map)
    Disable a keymap added with addKeyMap. Either pass in the keymap object itself, or a string, which will be compared against the name property of the active keymaps.
    cm.addOverlay(mode, options)
    Enable a highlighting overlay. This is a stateless mini-mode that can be used to add extra highlighting. For example, the search add-on uses it to highlight the term that's currently being searched. mode can be a mode spec or a mode object (an object with a token method). The option parameter is optional. If given it should be an object. Currently, only the opaque option is recognized. This defaults to off, but can be given to allow the overlay styling, when not null, to override the styling of the base mode entirely, instead of the two being applied together.
    cm.removeOverlay(mode)
    Pass this the exact argument passed for the mode parameter to addOverlay to remove an overlay again.
    cm.on(type, func)
    Register an event handler for the given event type (a string) on the editor instance. There is also a CodeMirror.on(object, type, func) version that allows registering of events on any object.
    cm.off(type, func)
    Remove an event handler on the editor instance. An equivalent CodeMirror.off(object, type, func) also exists.

    Document management methods

    Each editor is associated with an instance of CodeMirror.Doc, its document. A document represents the editor content, plus a selection, an undo history, and a mode. A document can only be associated with a single editor at a time. You can create new documents by calling the CodeMirror.Doc(text, mode, firstLineNumber) constructor. The last two arguments are optional and can be used to set a mode for the document and make it start at a line number other than 0, respectively.

    cm.getDoc() → doc
    Retrieve the currently active document from an editor.
    doc.getEditor() → editor
    Retrieve the editor associated with a document. May return null.
    cm.swapDoc(doc) → doc
    Attach a new document to the editor. Returns the old document, which is now no longer associated with an editor.
    doc.copy(copyHistory) → doc
    Create an identical copy of the given doc. When copyHistory is true, the history will also be copied. Can not be called directly on an editor.
    doc.linkedDoc(options) → doc
    Create a new document that's linked to the target document. Linked documents will stay in sync (changes to one are also applied to the other) until unlinked. These are the options that are supported:
    sharedHist (boolean)
    When turned on, the linked copy will share an undo history with the original. Thus, something done in one of the two can be undone in the other, and vice versa.
    from, to (integer)
    Can be given to make the new document a subview of the original. Subviews only show a given range of lines. Note that line coordinates inside the subview will be consistent with those of the parent, so that for example a subview starting at line 10 will refer to its first line as line 10, not 0.
    mode (mode spec)
    By default, the new document inherits the mode of the parent. This option can be set to a mode spec to give it a different mode.
    doc.unlinkDoc(doc)
    Break the link between two documents. After calling this, changes will no longer propagate between the documents, and, if they had a shared history, the history will become separate.
    doc.iterLinkedDocs(function)
    Will call the given function for all documents linked to the target document. It will be passed two arguments, the linked document and a boolean indicating whether that document shares history with the target.

    History-related methods

    doc.undo()
    Undo one edit (if any undo events are stored).
    doc.redo()
    Redo one undone edit.
    doc.historySize() → object
    Returns an object with {undo, redo} properties, both of which hold integers, indicating the amount of stored undo and redo operations.
    doc.clearHistory()
    Clears the editor's undo history.
    doc.getHistory() → object
    Get a (JSON-serializeable) representation of the undo history.
    doc.setHistory(object)
    Replace the editor's undo history with the one provided, which must be a value as returned by getHistory. Note that this will have entirely undefined results if the editor content isn't also the same as it was when getHistory was called.

    Text-marking methods

    doc.markText(from, to, options) → object
    Can be used to mark a range of text with a specific CSS class name. from and to should be {line, ch} objects. The options parameter is optional. When given, it should be an object that may contain the following configuration options:
    className (string)
    Assigns a CSS class to the marked stretch of text.
    inclusiveLeft (boolean)
    Determines whether text inserted on the left of the marker will end up inside or outside of it.
    inclusiveRight (boolean)
    Like inclusiveLeft, but for the right side.
    atomic (boolean)
    Atomic ranges act as a single unit when cursor movement is concerned—i.e. it is impossible to place the cursor inside of them. In atomic ranges, inclusiveLeft and inclusiveRight have a different meaning—they will prevent the cursor from being placed respectively directly before and directly after the range.
    collapsed (boolean)
    Collapsed ranges do not show up in the display. Setting a range to be collapsed will automatically make it atomic.
    clearOnEnter (boolean)
    When enabled, will cause the mark to clear itself whenever the cursor enters its range. This is mostly useful for text-replacement widgets that need to 'snap open' when the user tries to edit them. A the "clear" event fired on the range handle can be used to be notified when this happens.
    replacedWith (dom node)
    Use a given node to display this range. Implies both collapsed and atomic. The given DOM node must be an inline element (as opposed to a block element).
    readOnly
    A read-only span can, as long as it is not cleared, not be modified except by calling setValue to reset the whole document. Note: adding a read-only span currently clears the undo history of the editor, because existing undo events being partially nullified by read-only spans would corrupt the history (in the current implementation).
    startStyle
    Can be used to specify an extra CSS class to be applied to the leftmost span that is part of the marker.
    endStyle
    Equivalent to startStyle, but for the rightmost span.
    shared
    When the target document is linked to other documents, you can set shared to true to make the marker appear in all documents. By default, a marker appears only in its target document.
    The method will return an object that represents the marker (with constuctor CodeMirror.TextMarker), which exposes three methods: clear(), to remove the mark, find(), which returns a {from, to} object (both holding document positions), indicating the current position of the marked range, or undefined if the marker is no longer in the document, and finally getOptions(copyWidget), which returns an object representing the options for the marker. If copyWidget is given an true, it will clone the value of the replacedWith option, if any.
    doc.setBookmark(pos, options) → object
    Inserts a bookmark, a handle that follows the text around it as it is being edited, at the given position. A bookmark has two methods find() and clear(). The first returns the current position of the bookmark, if it is still in the document, and the second explicitly removes the bookmark. The options argument is optional. If given, the following properties are recognized:
    widget
    Can be used to display a DOM node at the current location of the bookmark (analogous to the replacedWith option to markText).
    insertLeft
    By default, text typed when the cursor is on top of the bookmark will end up to the right of the bookmark. Set this option to true to make it go to the left instead.
    doc.findMarksAt(pos) → array
    Returns an array of all the bookmarks and marked ranges present at the given position.
    doc.getAllMarks() → array
    Returns an array containing all marked ranges in the document.

    Widget, gutter, and decoration methods

    cm.setGutterMarker(line, gutterID, value) → lineHandle
    Sets the gutter marker for the given gutter (identified by its CSS class, see the gutters option) to the given value. Value can be either null, to clear the marker, or a DOM element, to set it. The DOM element will be shown in the specified gutter next to the specified line.
    cm.clearGutter(gutterID)
    Remove all gutter markers in the gutter with the given ID.
    cm.addLineClass(line, where, class) → lineHandle
    Set a CSS class name for the given line. line can be a number or a line handle. where determines to which element this class should be applied, can can be one of "text" (the text element, which lies in front of the selection), "background" (a background element that will be behind the selection), or "wrap" (the wrapper node that wraps all of the line's elements, including gutter elements). class should be the name of the class to apply.
    cm.removeLineClass(line, where, class) → lineHandle
    Remove a CSS class from a line. line can be a line handle or number. where should be one of "text", "background", or "wrap" (see addLineClass). class can be left off to remove all classes for the specified node, or be a string to remove only a specific class.
    cm.lineInfo(line) → object
    Returns the line number, text content, and marker status of the given line, which can be either a number or a line handle. The returned object has the structure {line, handle, text, gutterMarkers, textClass, bgClass, wrapClass, widgets}, where gutterMarkers is an object mapping gutter IDs to marker elements, and widgets is an array of line widgets attached to this line, and the various class properties refer to classes added with addLineClass.
    cm.addWidget(pos, node, scrollIntoView)
    Puts node, which should be an absolutely positioned DOM node, into the editor, positioned right below the given {line, ch} position. When scrollIntoView is true, the editor will ensure that the entire node is visible (if possible). To remove the widget again, simply use DOM methods (move it somewhere else, or call removeChild on its parent).
    cm.addLineWidget(line, node, options) → object
    Adds a line widget, an element shown below a line, spanning the whole of the editor's width, and moving the lines below it downwards. line should be either an integer or a line handle, and node should be a DOM node, which will be displayed below the given line. options, when given, should be an object that configures the behavior of the widget. The following options are supported (all default to false):
    coverGutter (boolean)
    Whether the widget should cover the gutter.
    noHScroll (boolean)
    Whether the widget should stay fixed in the face of horizontal scrolling.
    above (boolean)
    Causes the widget to be placed above instead of below the text of the line.
    showIfHidden (boolean)
    When true, will cause the widget to be rendered even if the line it is associated with is hidden.
    Note that the widget node will become a descendant of nodes with CodeMirror-specific CSS classes, and those classes might in some cases affect it. This method returns an object that represents the widget placement. It'll have a line property pointing at the line handle that it is associated with, and the following methods:
    clear()
    Removes the widget.
    changed()
    Call this if you made some change to the widget's DOM node that might affect its height. It'll force CodeMirror to update the height of the line that contains the widget.

    Sizing, scrolling and positioning methods

    cm.setSize(width, height)
    Programatically set the size of the editor (overriding the applicable CSS rules). width and height height can be either numbers (interpreted as pixels) or CSS units ("100%", for example). You can pass null for either of them to indicate that that dimension should not be changed.
    cm.scrollTo(x, y)
    Scroll the editor to a given (pixel) position. Both arguments may be left as null or undefined to have no effect.
    cm.getScrollInfo()
    Get an {left, top, width, height, clientWidth, clientHeight} object that represents the current scroll position, the size of the scrollable area, and the size of the visible area (minus scrollbars).
    cm.scrollIntoView(pos)
    Scrolls the given element into view. pos may be either a {line, ch} position, referring to a given character, null, to refer to the cursor, or a {left, top, right, bottom} object, in editor-local coordinates.
    cm.cursorCoords(where, mode) → object
    Returns an {left, top, bottom} object containing the coordinates of the cursor position. If mode is "local", they will be relative to the top-left corner of the editable document. If it is "page" or not given, they are relative to the top-left corner of the page. where can be a boolean indicating whether you want the start (true) or the end (false) of the selection, or, if a {line, ch} object is given, it specifies the precise position at which you want to measure.
    cm.charCoords(pos, mode) → object
    Returns the position and dimensions of an arbitrary character. pos should be a {line, ch} object. This differs from cursorCoords in that it'll give the size of the whole character, rather than just the position that the cursor would have when it would sit at that position.
    cm.coordsChar(object) → pos
    Given an {left, top} object (in page coordinates), returns the {line, ch} position that corresponds to it.
    cm.defaultTextHeight() → number
    Returns the line height of the default font for the editor.
    cm.getViewport() → object
    Returns a {from, to} object indicating the start (inclusive) and end (exclusive) of the currently rendered part of the document. In big documents, when most content is scrolled out of view, CodeMirror will only render the visible part, and a margin around it. See also the viewportChange event.
    cm.refresh()
    If your code does something to change the size of the editor element (window resizes are already listened for), or unhides it, you should probably follow up by calling this method to ensure CodeMirror is still looking as intended.

    Mode, state, and token-related methods

    When writing language-aware functionality, it can often be useful to hook into the knowledge thate the CodeMirror language mode has. See the section on modes for a more detailed description of how these work.

    doc.getMode() → object
    Gets the mode object for the editor. Note that this is distinct from getOption("mode"), which gives you the mode specification, rather than the resolved, instantiated mode object.
    cm.getTokenAt(pos) → object
    Retrieves information about the token the current mode found before the given position (a {line, ch} object). The returned object has the following properties:
    start
    The character (on the given line) at which the token starts.
    end
    The character at which the token ends.
    string
    The token's string.
    type
    The token type the mode assigned to the token, such as "keyword" or "comment" (may also be null).
    state
    The mode's state at the end of this token.
    cm.getStateAfter(line) → state
    Returns the mode's parser state, if any, at the end of the given line number. If no line number is given, the state at the end of the document is returned. This can be useful for storing parsing errors in the state, or getting other kinds of contextual information for a line.

    Miscellaneous methods

    cm.operation(func) → result
    CodeMirror internally buffers changes and only updates its DOM structure after it has finished performing some operation. If you need to perform a lot of operations on a CodeMirror instance, you can call this method with a function argument. It will call the function, buffering up all changes, and only doing the expensive update after the function returns. This can be a lot faster. The return value from this method will be the return value of your function.
    cm.indentLine(line, dir)
    Adjust the indentation of the given line. The second argument (which defaults to "smart") may be one of:
    "prev"
    Base indentation on the indentation of the previous line.
    "smart"
    Use the mode's smart indentation if available, behave like "prev" otherwise.
    "add"
    Increase the indentation of the line by one indent unit.
    "subtract"
    Reduce the indentation of the line.
    doc.posFromIndex(index) → object
    Calculates and returns a {line, ch} object for a zero-based index who's value is relative to the start of the editor's text. If the index is out of range of the text then the returned object is clipped to start or end of the text respectively.
    doc.indexFromPos(object) → number
    The reverse of posFromIndex.
    cm.focus()
    Give the editor focus.
    cm.getInputField() → textarea
    Returns the hidden textarea used to read input.
    cm.getWrapperElement() → node
    Returns the DOM node that represents the editor, and controls its size. Remove this from your tree to delete an editor instance.
    cm.getScrollerElement() → node
    Returns the DOM node that is responsible for the scrolling of the editor.
    cm.getGutterElement() → node
    Fetches the DOM node that contains the editor gutters.

    Static properties

    The CodeMirror object itself provides several useful properties. Firstly, its version property contains a string that indicates the version of the library. For releases, this simply contains "major.minor" (for example "2.33". For beta versions, " B" (space, capital B) is added at the end of the string, for development snapshots, " +" (space, plus) is added.

    The CodeMirror.fromTextArea method provides another way to initialize an editor. It takes a textarea DOM node as first argument and an optional configuration object as second. It will replace the textarea with a CodeMirror instance, and wire up the form of that textarea (if any) to make sure the editor contents are put into the textarea when the form is submitted. A CodeMirror instance created this way has three additional methods:

    cm.save()
    Copy the content of the editor into the textarea.
    cm.toTextArea()
    Remove the editor, and restore the original textarea (with the editor's current content).
    cm.getTextArea() → textarea
    Returns the textarea that the instance was based on.

    If you want to define extra methods in terms of the CodeMirror API, it is possible to use CodeMirror.defineExtension(name, value). This will cause the given value (usually a method) to be added to all CodeMirror instances created from then on.

    Similarly, CodeMirror.defineOption(name, default, updateFunc) can be used to define new options for CodeMirror. The updateFunc will be called with the editor instance and the new value when an editor is initialized, and whenever the option is modified through setOption.

    If your extention just needs to run some code whenever a CodeMirror instance is initialized, use CodeMirror.defineInitHook. Give it a function as its only argument, and from then on, that function will be called (with the instance as argument) whenever a new CodeMirror instance is initialized.

    Add-ons

    The addon directory in the distribution contains a number of reusable components that implement extra editor functionality. In brief, they are:

    dialog/dialog.js
    Provides a very simple way to query users for text input. Adds an openDialog method to CodeMirror instances, which can be called with an HTML fragment that provides the prompt (should include an input tag), and a callback function that is called when text has been entered. Depends on addon/dialog/dialog.css.
    search/searchcursor.js
    Adds the getSearchCursor(query, start, caseFold) → cursor method to CodeMirror instances, which can be used to implement search/replace functionality. query can be a regular expression or a string (only strings will match across lines—if they contain newlines). start provides the starting position of the search. It can be a {line, ch} object, or can be left off to default to the start of the document. caseFold is only relevant when matching a string. It will cause the search to be case-insensitive. A search cursor has the following methods:
    findNext(), findPrevious() → boolean
    Search forward or backward from the current position. The return value indicates whether a match was found. If matching a regular expression, the return value will be the array returned by the match method, in case you want to extract matched groups.
    from(), to() → object
    These are only valid when the last call to findNext or findPrevious did not return false. They will return {line, ch} objects pointing at the start and end of the match.
    replace(text)
    Replaces the currently found match with the given text and adjusts the cursor position to reflect the replacement.
    Implements the search commands. CodeMirror has keys bound to these by default, but will not do anything with them unless an implementation is provided. Depends on searchcursor.js, and will make use of openDialog when available to make prompting for search queries less ugly.
    edit/matchbrackets.js
    Defines an option matchBrackets which, when set to true, causes matching brackets to be highlighted whenever the cursor is next to them. It also adds a method matchBrackets that forces this to happen once, and a method findMatchingBracket that can be used to run the bracket-finding algorithm that this uses internally.
    edit/closebrackets.js
    Defines an option autoCloseBrackets that will auto-close brackets and quotes when typed. By default, it'll auto-close ()[]{}''"", but you can pass it a string similar to that (containing pairs of matching characters) to customize it. Demo here.
    fold/foldcode.js
    Helps with code folding. See the demo for an example. Call CodeMirror.newFoldFunction with a range-finder helper function to create a function that will, when applied to a CodeMirror instance and a line number, attempt to fold or unfold the block starting at the given line. A range-finder is a language-specific function that also takes an instance and a line number, and returns an range to be folded, or null if no block is started on that line. This file provides CodeMirror.braceRangeFinder, which finds blocks in brace languages (JavaScript, C, Java, etc), CodeMirror.indentRangeFinder, for languages where indentation determines block structure (Python, Haskell), and CodeMirror.tagRangeFinder, for XML-style languages.
    fold/collapserange.js
    Another approach to folding. See demo. Allows the user to select a range to fold by clicking in the gutter.
    runmode/runmode.js
    Can be used to run a CodeMirror mode over text without actually opening an editor instance. See the demo for an example. There are alternate versions of the file avaible for running stand-alone (without including all of CodeMirror) and for running under node.js.
    mode/overlay.js
    Mode combinator that can be used to extend a mode with an 'overlay' — a secondary mode is run over the stream, along with the base mode, and can color specific pieces of text without interfering with the base mode. Defines CodeMirror.overlayMode, which is used to create such a mode. See this demo for a detailed example.
    mode/multiplex.js
    Mode combinator that can be used to easily 'multiplex' between several modes. Defines CodeMirror.multiplexingMode which, when given as first argument a mode object, and as other arguments any number of {open, close, mode [, delimStyle]} objects, will return a mode object that starts parsing using the mode passed as first argument, but will switch to another mode as soon as it encounters a string that occurs in one of the open fields of the passed objects. When in a sub-mode, it will go back to the top mode again when the close string is encountered. Pass "\n" for open or close if you want to switch on a blank line. When delimStyle is specified, it will be the token style returned for the delimiter tokens. The outer mode will not see the content between the delimiters. See this demo for an example.
    hint/show-hint.js
    Provides a framework for showing autocompletion hints. Defines CodeMirror.showHint, which takes a CodeMirror instance and a hinting function, and pops up a widget that allows the user to select a completion. Hinting functions are function that take an editor instance, and return a {list, from, to} object, where list is an array of strings (the completions), and from and to give the start and end of the token that is being completed. Depends on addon/hint/show-hint.css. See the other files in the addon/hint for hint sources for various languages. Check out the demo for an example.
    match-highlighter.js
    Adds a highlightSelectionMatches option that can be enabled to highlight all instances of a currently selected word. Demo here.
    lint/lint.js
    Defines an interface component for showing linting warnings, with pluggable warning sources (see json-lint.js and javascript-lint.js in the same directory). Defines a lintWith option that can be set to a warning source (for example CodeMirror.javascriptValidator). Depends on addon/lint/lint.css. A demo can be found here.
    selection/mark-selection.js
    Causes the selected text to be marked with the CSS class CodeMirror-selectedtext when the styleSelectedText option is enabled. Useful to change the colour of the selection (in addition to the background), like in this demo.
    selection/active-line.js
    Defines a styleActiveLine option that, when enabled, gives the wrapper of the active line the class CodeMirror-activeline, and adds a background with the class CodeMirror-activeline-background. is enabled. See the demo.
    edit/closetag.js
    Provides utility functions for adding automatic tag closing to XML modes. See the demo.
    mode/loadmode.js
    Defines a CodeMirror.requireMode(modename, callback) function that will try to load a given mode and call the callback when it succeeded. You'll have to set CodeMirror.modeURL to a string that mode paths can be constructed from, for example "mode/%N/%N.js"—the %N's will be replaced with the mode name. Also defines CodeMirror.autoLoadMode(instance, mode), which will ensure the given mode is loaded and cause the given editor instance to refresh its mode when the loading succeeded. See the demo.
    edit/continuecomment.js
    Adds a command called newlineAndIndentContinueComment that you can bind Enter to in order to have the editor prefix new lines inside C-like block comments with an asterisk.

    Writing CodeMirror Modes

    Modes typically consist of a single JavaScript file. This file defines, in the simplest case, a lexer (tokenizer) for your language—a function that takes a character stream as input, advances it past a token, and returns a style for that token. More advanced modes can also handle indentation for the language.

    The mode script should call CodeMirror.defineMode to register itself with CodeMirror. This function takes two arguments. The first should be the name of the mode, for which you should use a lowercase string, preferably one that is also the name of the files that define the mode (i.e. "xml" is defined in xml.js). The second argument should be a function that, given a CodeMirror configuration object (the thing passed to the CodeMirror function) and an optional mode configuration object (as in the mode option), returns a mode object.

    Typically, you should use this second argument to defineMode as your module scope function (modes should not leak anything into the global scope!), i.e. write your whole mode inside this function.

    The main responsibility of a mode script is parsing the content of the editor. Depending on the language and the amount of functionality desired, this can be done in really easy or extremely complicated ways. Some parsers can be stateless, meaning that they look at one element (token) of the code at a time, with no memory of what came before. Most, however, will need to remember something. This is done by using a state object, which is an object that is always passed when reading a token, and which can be mutated by the tokenizer.

    Modes that use a state must define a startState method on their mode object. This is a function of no arguments that produces a state object to be used at the start of a document.

    The most important part of a mode object is its token(stream, state) method. All modes must define this method. It should read one token from the stream it is given as an argument, optionally update its state, and return a style string, or null for tokens that do not have to be styled. For your styles, you are encouraged to use the 'standard' names defined in the themes (without the cm- prefix). If that fails, it is also possible to come up with your own and write your own CSS theme file.

    The stream object that's passed to token encapsulates a line of code (tokens may never span lines) and our current position in that line. It has the following API:

    eol() → boolean
    Returns true only if the stream is at the end of the line.
    sol() → boolean
    Returns true only if the stream is at the start of the line.
    peek() → character
    Returns the next character in the stream without advancing it. Will return an null at the end of the line.
    next() → character
    Returns the next character in the stream and advances it. Also returns null when no more characters are available.
    eat(match) → character
    match can be a character, a regular expression, or a function that takes a character and returns a boolean. If the next character in the stream 'matches' the given argument, it is consumed and returned. Otherwise, undefined is returned.
    eatWhile(match) → boolean
    Repeatedly calls eat with the given argument, until it fails. Returns true if any characters were eaten.
    eatSpace() → boolean
    Shortcut for eatWhile when matching white-space.
    skipToEnd()
    Moves the position to the end of the line.
    skipTo(ch) → boolean
    Skips to the next occurrence of the given character, if found on the current line (doesn't advance the stream if the character does not occur on the line). Returns true if the character was found.
    match(pattern, consume, caseFold) → boolean
    Act like a multi-character eat—if consume is true or not given—or a look-ahead that doesn't update the stream position—if it is false. pattern can be either a string or a regular expression starting with ^. When it is a string, caseFold can be set to true to make the match case-insensitive. When successfully matching a regular expression, the returned value will be the array returned by match, in case you need to extract matched groups.
    backUp(n)
    Backs up the stream n characters. Backing it up further than the start of the current token will cause things to break, so be careful.
    column() → integer
    Returns the column (taking into account tabs) at which the current token starts.
    indentation() → integer
    Tells you how far the current line has been indented, in spaces. Corrects for tab characters.
    current() → string
    Get the string between the start of the current token and the current stream position.

    By default, blank lines are simply skipped when tokenizing a document. For languages that have significant blank lines, you can define a blankLine(state) method on your mode that will get called whenever a blank line is passed over, so that it can update the parser state.

    Because state object are mutated, and CodeMirror needs to keep valid versions of a state around so that it can restart a parse at any line, copies must be made of state objects. The default algorithm used is that a new state object is created, which gets all the properties of the old object. Any properties which hold arrays get a copy of these arrays (since arrays tend to be used as mutable stacks). When this is not correct, for example because a mode mutates non-array properties of its state object, a mode object should define a copyState method, which is given a state and should return a safe copy of that state.

    If you want your mode to provide smart indentation (through the indentLine method and the indentAuto and newlineAndIndent commands, to which keys can be bound), you must define an indent(state, textAfter) method on your mode object.

    The indentation method should inspect the given state object, and optionally the textAfter string, which contains the text on the line that is being indented, and return an integer, the amount of spaces to indent. It should usually take the indentUnit option into account. An indentation method may return CodeMirror.Pass to indicate that it could not come up with a precise indentation.

    Finally, a mode may define an electricChars property, which should hold a string containing all the characters that should trigger the behaviour described for the electricChars option.

    So, to summarize, a mode must provide a token method, and it may provide startState, copyState, and indent methods. For an example of a trivial mode, see the diff mode, for a more involved example, see the C-like mode.

    Sometimes, it is useful for modes to nest—to have one mode delegate work to another mode. An example of this kind of mode is the mixed-mode HTML mode. To implement such nesting, it is usually necessary to create mode objects and copy states yourself. To create a mode object, there are CodeMirror.getMode(options, parserConfig), where the first argument is a configuration object as passed to the mode constructor function, and the second argument is a mode specification as in the mode option. To copy a state object, call CodeMirror.copyState(mode, state), where mode is the mode that created the given state.

    In a nested mode, it is recommended to add an extra methods, innerMode which, given a state object, returns a {state, mode} object with the inner mode and its state for the current position. These are used by utility scripts such as the autoformatter and the tag closer to get context information. Use the CodeMirror.innerMode helper function to, starting from a mode and a state, recursively walk down to the innermost mode and state.

    To make indentation work properly in a nested parser, it is advisable to give the startState method of modes that are intended to be nested an optional argument that provides the base indentation for the block of code. The JavaScript and CSS parser do this, for example, to allow JavaScript and CSS code inside the mixed-mode HTML mode to be properly indented.

    It is possible, and encouraged, to associate your mode, or a certain configuration of your mode, with a MIME type. For example, the JavaScript mode associates itself with text/javascript, and its JSON variant with application/json. To do this, call CodeMirror.defineMIME(mime, modeSpec), where modeSpec can be a string or object specifying a mode, as in the mode option.

    Sometimes, it is useful to add or override mode object properties from external code. The CodeMirror.extendMode can be used to add properties to mode objects produced for a specific mode. Its first argument is the name of the mode, its second an object that specifies the properties that should be added. This is mostly useful to add utilities that can later be looked up through getMode.

     
    site_pro/codemirror-3.1/doc/baboon_vector.svg0000644000000000000000000004143712111430706020160 0ustar rootroot image/svg+xmlsite_pro/codemirror-3.1/index.html0000644000000000000000000005536712111430706016054 0ustar rootroot CodeMirror

    { } CodeMirror

    /* In-browser code editing
       made bearable */
    

    CodeMirror is a JavaScript component that provides a code editor in the browser. When a mode is available for the language you are coding in, it will color your code, and optionally help with indentation.

    A rich programming API and a CSS theming system are available for customizing CodeMirror to fit your application, and extending it with new functionality.

    Getting the code

    All of CodeMirror is released under a MIT-style license. To get it, you can download the latest release or the current development snapshot as zip files. To create a custom minified script file, you can use the compression API.

    We use git for version control. The main repository can be fetched in this way:

    git clone http://marijnhaverbeke.nl/git/codemirror

    CodeMirror can also be found on GitHub at marijnh/CodeMirror. If you plan to hack on the code and contribute patches, the best way to do it is to create a GitHub fork, and send pull requests.

    Documentation

    The manual is your first stop for learning how to use this library. It starts with a quick explanation of how to use the editor, and then describes the API in detail.

    For those who want to learn more about the code, there is a series of posts on CodeMirror on my blog, and the old overview of the editor internals. The source code itself is, for the most part, also very readable.

    Support and bug reports

    Community discussion, questions, and informal bug reporting is done on the CodeMirror Google group. There is a separate group, CodeMirror-announce, which is lower-volume, and is only used for major announcements—new versions and such. These will be cross-posted to both groups, so you don't need to subscribe to both.

    Though bug reports through e-mail are responded to, the preferred way to report bugs is to use the GitHub issue tracker. Before reporting a bug, read these pointers. Also, the issue tracker is for bugs, not requests for help.

    When none of these seem fitting, you can simply e-mail the maintainer directly.

    Supported browsers

    The following desktop browsers are able to run CodeMirror:

    • Firefox 3 or higher
    • Chrome, any version
    • Safari 5.2 or higher
    • Opera 9 or higher (with some key-handling problems on OS X)
    • Internet Explorer 8 or higher in standards mode
      (Not quirks mode. But quasi-standards mode with a transitional doctype is also flaky. <!doctype html> is recommended.)
    • Internet Explorer 7 (standards mode) is usable, but buggy. It has a z-index bug that prevents CodeMirror from working properly.

    I am not actively testing against every new browser release, and vendors have a habit of introducing bugs all the time, so I am relying on the community to tell me when something breaks. See here for information on how to contact me.

    Mobile browsers mostly kind of work, but, because of limitations and their fundamentally different UI assumptions, show a lot of quirks that are hard to work around.

    Commercial support

    CodeMirror is developed and maintained by me, Marijn Haverbeke, in my own time. If your company is getting value out of CodeMirror, please consider purchasing a support contract.

    • You'll be funding further work on CodeMirror.
    • You ensure that you get a quick response when you have a problem, even when I am otherwise busy.

    CodeMirror support contracts exist in two forms—basic at €100 per month, and premium at €500 per month. Contact me for further information.

    Download the latest release

    Support CodeMirror

    Reading material

    Releases

    21-02-2013: Version 3.1:

    25-01-2013: Version 3.02:

    Single-bugfix release. Fixes a problem that prevents CodeMirror instances from being garbage-collected after they become unused.

    21-01-2013: Version 3.01:

    21-01-2013: Version 2.38:

    Integrate some bugfixes, enhancements to the vim keymap, and new modes (D, Sass, APL) from the v3 branch.

    20-12-2012: Version 2.37:

    • New mode: SQL (will replace plsql and mysql modes).
    • Further work on the new VIM mode.
    • Fix Cmd/Ctrl keys on recent Operas on OS X.
    • Full list of patches.

    10-12-2012: Version 3.0:

    New major version. Only partially backwards-compatible. See the upgrading guide for more information. Changes since release candidate 2:

    • Rewritten VIM mode.
    • Fix a few minor scrolling and sizing issues.
    • Work around Safari segfault when dragging.
    • Full list of patches.

    20-11-2012: Version 3.0, release candidate 2:

    • New mode: HTTP.
    • Improved handling of selection anchor position.
    • Improve IE performance on longer lines.
    • Reduce gutter glitches during horiz. scrolling.
    • Add addKeyMap and removeKeyMap methods.
    • Rewrite formatting and closetag add-ons.
    • Full list of patches.

    20-11-2012: Version 2.36:

    20-11-2012: Version 3.0, release candidate 1:

    22-10-2012: Version 2.35:

    22-10-2012: Version 3.0, beta 2:

    • Fix page-based coordinate computation.
    • Fix firing of gutterClick event.
    • Add cursorHeight option.
    • Fix bi-directional text regression.
    • Add viewportMargin option.
    • Directly handle mousewheel events (again, hopefully better).
    • Make vertical cursor movement more robust (through widgets, big line gaps).
    • Add flattenSpans option.
    • Many optimizations. Poor responsiveness should be fixed.
    • Initialization in hidden state works again.
    • Full list of patches.

    Older releases...

     
    site_pro/codemirror-3.1/LICENSE0000644000000000000000000000231412111430706015044 0ustar rootrootCopyright (C) 2013 by Marijn Haverbeke Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Please note that some subdirectories of the CodeMirror distribution include their own LICENSE files, and are released under different licences. site_pro/codemirror-3.1/.gitattributes0000644000000000000000000000015012111430706016726 0ustar rootroot*.txt text *.js text *.html text *.md text *.json text *.yml text *.css text *.svg text site_pro/codemirror-3.1/lib/0000755000000000000000000000000012111430706014605 5ustar rootrootsite_pro/codemirror-3.1/lib/codemirror.css0000644000000000000000000001361112111430706017466 0ustar rootroot/* BASICS */ .CodeMirror { /* Set height, width, borders, and global font properties here */ font-family: monospace; height: 300px; } .CodeMirror-scroll { /* Set scrolling behaviour here */ overflow: auto; } /* PADDING */ .CodeMirror-lines { padding: 4px 0; /* Vertical padding around content */ } .CodeMirror pre { padding: 0 4px; /* Horizontal padding of content */ } .CodeMirror-scrollbar-filler { background-color: white; /* The little square between H and V scrollbars */ } /* GUTTER */ .CodeMirror-gutters { border-right: 1px solid #ddd; background-color: #f7f7f7; } .CodeMirror-linenumbers {} .CodeMirror-linenumber { padding: 0 3px 0 5px; min-width: 20px; text-align: right; color: #999; } /* CURSOR */ .CodeMirror div.CodeMirror-cursor { border-left: 1px solid black; } /* Shown when moving in bi-directional text */ .CodeMirror div.CodeMirror-secondarycursor { border-left: 1px solid silver; } .CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor { width: auto; border: 0; background: transparent; background: rgba(0, 200, 0, .4); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#6600c800, endColorstr=#4c00c800); } /* Kludge to turn off filter in ie9+, which also accepts rgba */ .CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor:not(#nonsense_id) { filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); } /* Can style cursor different in overwrite (non-insert) mode */ .CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite {} /* DEFAULT THEME */ .cm-s-default .cm-keyword {color: #708;} .cm-s-default .cm-atom {color: #219;} .cm-s-default .cm-number {color: #164;} .cm-s-default .cm-def {color: #00f;} .cm-s-default .cm-variable {color: black;} .cm-s-default .cm-variable-2 {color: #05a;} .cm-s-default .cm-variable-3 {color: #085;} .cm-s-default .cm-property {color: black;} .cm-s-default .cm-operator {color: black;} .cm-s-default .cm-comment {color: #a50;} .cm-s-default .cm-string {color: #a11;} .cm-s-default .cm-string-2 {color: #f50;} .cm-s-default .cm-meta {color: #555;} .cm-s-default .cm-error {color: #f00;} .cm-s-default .cm-qualifier {color: #555;} .cm-s-default .cm-builtin {color: #30a;} .cm-s-default .cm-bracket {color: #997;} .cm-s-default .cm-tag {color: #170;} .cm-s-default .cm-attribute {color: #00c;} .cm-s-default .cm-header {color: blue;} .cm-s-default .cm-quote {color: #090;} .cm-s-default .cm-hr {color: #999;} .cm-s-default .cm-link {color: #00c;} .cm-negative {color: #d44;} .cm-positive {color: #292;} .cm-header, .cm-strong {font-weight: bold;} .cm-em {font-style: italic;} .cm-emstrong {font-style: italic; font-weight: bold;} .cm-link {text-decoration: underline;} .cm-invalidchar {color: #f00;} div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;} div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;} /* STOP */ /* The rest of this file contains styles related to the mechanics of the editor. You probably shouldn't touch them. */ .CodeMirror { line-height: 1; position: relative; overflow: hidden; } .CodeMirror-scroll { /* 30px is the magic margin used to hide the element's real scrollbars */ /* See overflow: hidden in .CodeMirror, and the paddings in .CodeMirror-sizer */ margin-bottom: -30px; margin-right: -30px; padding-bottom: 30px; padding-right: 30px; height: 100%; outline: none; /* Prevent dragging from highlighting the element */ position: relative; } .CodeMirror-sizer { position: relative; } /* The fake, visible scrollbars. Used to force redraw during scrolling before actuall scrolling happens, thus preventing shaking and flickering artifacts. */ .CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler { position: absolute; z-index: 6; display: none; } .CodeMirror-vscrollbar { right: 0; top: 0; overflow-x: hidden; overflow-y: scroll; } .CodeMirror-hscrollbar { bottom: 0; left: 0; overflow-y: hidden; overflow-x: scroll; } .CodeMirror-scrollbar-filler { right: 0; bottom: 0; z-index: 6; } .CodeMirror-gutters { position: absolute; left: 0; top: 0; height: 100%; padding-bottom: 30px; z-index: 3; } .CodeMirror-gutter { height: 100%; display: inline-block; /* Hack to make IE7 behave */ *zoom:1; *display:inline; } .CodeMirror-gutter-elt { position: absolute; cursor: default; z-index: 4; } .CodeMirror-lines { cursor: text; } .CodeMirror pre { /* Reset some styles that the rest of the page might have set */ -moz-border-radius: 0; -webkit-border-radius: 0; -o-border-radius: 0; border-radius: 0; border-width: 0; background: transparent; font-family: inherit; font-size: inherit; margin: 0; white-space: pre; word-wrap: normal; line-height: inherit; color: inherit; z-index: 2; position: relative; overflow: visible; } .CodeMirror-wrap pre { word-wrap: break-word; white-space: pre-wrap; word-break: normal; } .CodeMirror-linebackground { position: absolute; left: 0; right: 0; top: 0; bottom: 0; z-index: 0; } .CodeMirror-linewidget { position: relative; z-index: 2; overflow: auto; } .CodeMirror-widget { display: inline-block; } .CodeMirror-wrap .CodeMirror-scroll { overflow-x: hidden; } .CodeMirror-measure { position: absolute; width: 100%; height: 0px; overflow: hidden; visibility: hidden; } .CodeMirror-measure pre { position: static; } .CodeMirror div.CodeMirror-cursor { position: absolute; visibility: hidden; border-right: none; width: 0; } .CodeMirror-focused div.CodeMirror-cursor { visibility: visible; } .CodeMirror-selected { background: #d9d9d9; } .CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } .cm-searching { background: #ffa; background: rgba(255, 255, 0, .4); } /* IE7 hack to prevent it from returning funny offsetTops on the spans */ .CodeMirror span { *vertical-align: text-bottom; } @media print { /* Hide the cursor when printing */ .CodeMirror div.CodeMirror-cursor { visibility: hidden; } } site_pro/codemirror-3.1/lib/codemirror.js0000644000000000000000000063025712111430706017325 0ustar rootroot// CodeMirror version 3.1 // // CodeMirror is the only global var we claim window.CodeMirror = (function() { "use strict"; // BROWSER SNIFFING // Crude, but necessary to handle a number of hard-to-feature-detect // bugs and behavior differences. var gecko = /gecko\/\d/i.test(navigator.userAgent); var ie = /MSIE \d/.test(navigator.userAgent); var ie_lt8 = ie && (document.documentMode == null || document.documentMode < 8); var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9); var webkit = /WebKit\//.test(navigator.userAgent); var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(navigator.userAgent); var chrome = /Chrome\//.test(navigator.userAgent); var opera = /Opera\//.test(navigator.userAgent); var safari = /Apple Computer/.test(navigator.vendor); var khtml = /KHTML\//.test(navigator.userAgent); var mac_geLion = /Mac OS X 1\d\D([7-9]|\d\d)\D/.test(navigator.userAgent); var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent); var phantom = /PhantomJS/.test(navigator.userAgent); var ios = /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent); // This is woefully incomplete. Suggestions for alternative methods welcome. var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent); var mac = ios || /Mac/.test(navigator.platform); var windows = /windows/i.test(navigator.platform); var opera_version = opera && navigator.userAgent.match(/Version\/(\d*\.\d*)/); if (opera_version) opera_version = Number(opera_version[1]); // Some browsers use the wrong event properties to signal cmd/ctrl on OS X var flipCtrlCmd = mac && (qtwebkit || opera && (opera_version == null || opera_version < 12.11)); var captureMiddleClick = gecko || (ie && !ie_lt9); // Optimize some code when these features are not used var sawReadOnlySpans = false, sawCollapsedSpans = false; // CONSTRUCTOR function CodeMirror(place, options) { if (!(this instanceof CodeMirror)) return new CodeMirror(place, options); this.options = options = options || {}; // Determine effective options based on given values and defaults. for (var opt in defaults) if (!options.hasOwnProperty(opt) && defaults.hasOwnProperty(opt)) options[opt] = defaults[opt]; setGuttersForLineNumbers(options); var docStart = typeof options.value == "string" ? 0 : options.value.first; var display = this.display = makeDisplay(place, docStart); display.wrapper.CodeMirror = this; updateGutters(this); if (options.autofocus && !mobile) focusInput(this); this.state = {keyMaps: [], overlays: [], modeGen: 0, overwrite: false, focused: false, suppressEdits: false, pasteIncoming: false, draggingText: false, highlight: new Delayed()}; themeChanged(this); if (options.lineWrapping) this.display.wrapper.className += " CodeMirror-wrap"; var doc = options.value; if (typeof doc == "string") doc = new Doc(options.value, options.mode); operation(this, attachDoc)(this, doc); // Override magic textarea content restore that IE sometimes does // on our hidden textarea on reload if (ie) setTimeout(bind(resetInput, this, true), 20); registerEventHandlers(this); // IE throws unspecified error in certain cases, when // trying to access activeElement before onload var hasFocus; try { hasFocus = (document.activeElement == display.input); } catch(e) { } if (hasFocus || (options.autofocus && !mobile)) setTimeout(bind(onFocus, this), 20); else onBlur(this); operation(this, function() { for (var opt in optionHandlers) if (optionHandlers.propertyIsEnumerable(opt)) optionHandlers[opt](this, options[opt], Init); for (var i = 0; i < initHooks.length; ++i) initHooks[i](this); })(); } // DISPLAY CONSTRUCTOR function makeDisplay(place, docStart) { var d = {}; var input = d.input = elt("textarea", null, null, "position: absolute; padding: 0; width: 1px; height: 1em; outline: none;"); if (webkit) input.style.width = "1000px"; else input.setAttribute("wrap", "off"); input.setAttribute("autocorrect", "off"); input.setAttribute("autocapitalize", "off"); // Wraps and hides input textarea d.inputDiv = elt("div", [input], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); // The actual fake scrollbars. d.scrollbarH = elt("div", [elt("div", null, null, "height: 1px")], "CodeMirror-hscrollbar"); d.scrollbarV = elt("div", [elt("div", null, null, "width: 1px")], "CodeMirror-vscrollbar"); d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler"); // DIVs containing the selection and the actual code d.lineDiv = elt("div"); d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1"); // Blinky cursor, and element used to ensure cursor fits at the end of a line d.cursor = elt("div", "\u00a0", "CodeMirror-cursor"); // Secondary cursor, shown when on a 'jump' in bi-directional text d.otherCursor = elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor"); // Used to measure text size d.measure = elt("div", null, "CodeMirror-measure"); // Wraps everything that needs to exist inside the vertically-padded coordinate system d.lineSpace = elt("div", [d.measure, d.selectionDiv, d.lineDiv, d.cursor, d.otherCursor], null, "position: relative; outline: none"); // Moved around its parent to cover visible view d.mover = elt("div", [elt("div", [d.lineSpace], "CodeMirror-lines")], null, "position: relative"); // Set to the height of the text, causes scrolling d.sizer = elt("div", [d.mover], "CodeMirror-sizer"); // D is needed because behavior of elts with overflow: auto and padding is inconsistent across browsers d.heightForcer = elt("div", "\u00a0", null, "position: absolute; height: " + scrollerCutOff + "px"); // Will contain the gutters, if any d.gutters = elt("div", null, "CodeMirror-gutters"); d.lineGutter = null; // Helper element to properly size the gutter backgrounds var scrollerInner = elt("div", [d.sizer, d.heightForcer, d.gutters], null, "position: relative; min-height: 100%"); // Provides scrolling d.scroller = elt("div", [scrollerInner], "CodeMirror-scroll"); d.scroller.setAttribute("tabIndex", "-1"); // The element in which the editor lives. d.wrapper = elt("div", [d.inputDiv, d.scrollbarH, d.scrollbarV, d.scrollbarFiller, d.scroller], "CodeMirror"); // Work around IE7 z-index bug if (ie_lt8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; } if (place.appendChild) place.appendChild(d.wrapper); else place(d.wrapper); // Needed to hide big blue blinking cursor on Mobile Safari if (ios) input.style.width = "0px"; if (!webkit) d.scroller.draggable = true; // Needed to handle Tab key in KHTML if (khtml) { d.inputDiv.style.height = "1px"; d.inputDiv.style.position = "absolute"; } // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8). else if (ie_lt8) d.scrollbarH.style.minWidth = d.scrollbarV.style.minWidth = "18px"; // Current visible range (may be bigger than the view window). d.viewOffset = d.lastSizeC = 0; d.showingFrom = d.showingTo = docStart; // Used to only resize the line number gutter when necessary (when // the amount of lines crosses a boundary that makes its width change) d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null; // See readInput and resetInput d.prevInput = ""; // Set to true when a non-horizontal-scrolling widget is added. As // an optimization, widget aligning is skipped when d is false. d.alignWidgets = false; // Flag that indicates whether we currently expect input to appear // (after some event like 'keypress' or 'input') and are polling // intensively. d.pollingFast = false; // Self-resetting timeout for the poller d.poll = new Delayed(); // True when a drag from the editor is active d.draggingText = false; d.cachedCharWidth = d.cachedTextHeight = null; d.measureLineCache = []; d.measureLineCachePos = 0; // Tracks when resetInput has punted to just putting a short // string instead of the (large) selection. d.inaccurateSelection = false; // Tracks the maximum line length so that the horizontal scrollbar // can be kept static when scrolling. d.maxLine = null; d.maxLineLength = 0; d.maxLineChanged = false; // Used for measuring wheel scrolling granularity d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null; return d; } // STATE UPDATES // Used to get the editor into a consistent state again when options change. function loadMode(cm) { cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption); cm.doc.iter(function(line) { if (line.stateAfter) line.stateAfter = null; if (line.styles) line.styles = null; }); cm.doc.frontier = cm.doc.first; startWorker(cm, 100); cm.state.modeGen++; if (cm.curOp) regChange(cm); } function wrappingChanged(cm) { if (cm.options.lineWrapping) { cm.display.wrapper.className += " CodeMirror-wrap"; cm.display.sizer.style.minWidth = ""; } else { cm.display.wrapper.className = cm.display.wrapper.className.replace(" CodeMirror-wrap", ""); computeMaxLength(cm); } estimateLineHeights(cm); regChange(cm); clearCaches(cm); setTimeout(function(){updateScrollbars(cm.display, cm.doc.height);}, 100); } function estimateHeight(cm) { var th = textHeight(cm.display), wrapping = cm.options.lineWrapping; var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3); return function(line) { if (lineIsHidden(cm.doc, line)) return 0; else if (wrapping) return (Math.ceil(line.text.length / perLine) || 1) * th; else return th; }; } function estimateLineHeights(cm) { var doc = cm.doc, est = estimateHeight(cm); doc.iter(function(line) { var estHeight = est(line); if (estHeight != line.height) updateLineHeight(line, estHeight); }); } function keyMapChanged(cm) { var style = keyMap[cm.options.keyMap].style; cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-keymap-\S+/g, "") + (style ? " cm-keymap-" + style : ""); } function themeChanged(cm) { cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-"); clearCaches(cm); } function guttersChanged(cm) { updateGutters(cm); regChange(cm); } function updateGutters(cm) { var gutters = cm.display.gutters, specs = cm.options.gutters; removeChildren(gutters); for (var i = 0; i < specs.length; ++i) { var gutterClass = specs[i]; var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + gutterClass)); if (gutterClass == "CodeMirror-linenumbers") { cm.display.lineGutter = gElt; gElt.style.width = (cm.display.lineNumWidth || 1) + "px"; } } gutters.style.display = i ? "" : "none"; } function lineLength(doc, line) { if (line.height == 0) return 0; var len = line.text.length, merged, cur = line; while (merged = collapsedSpanAtStart(cur)) { var found = merged.find(); cur = getLine(doc, found.from.line); len += found.from.ch - found.to.ch; } cur = line; while (merged = collapsedSpanAtEnd(cur)) { var found = merged.find(); len -= cur.text.length - found.from.ch; cur = getLine(doc, found.to.line); len += cur.text.length - found.to.ch; } return len; } function computeMaxLength(cm) { var d = cm.display, doc = cm.doc; d.maxLine = getLine(doc, doc.first); d.maxLineLength = lineLength(doc, d.maxLine); d.maxLineChanged = true; doc.iter(function(line) { var len = lineLength(doc, line); if (len > d.maxLineLength) { d.maxLineLength = len; d.maxLine = line; } }); } // Make sure the gutters options contains the element // "CodeMirror-linenumbers" when the lineNumbers option is true. function setGuttersForLineNumbers(options) { var found = false; for (var i = 0; i < options.gutters.length; ++i) { if (options.gutters[i] == "CodeMirror-linenumbers") { if (options.lineNumbers) found = true; else options.gutters.splice(i--, 1); } } if (!found && options.lineNumbers) options.gutters.push("CodeMirror-linenumbers"); } // SCROLLBARS // Re-synchronize the fake scrollbars with the actual size of the // content. Optionally force a scrollTop. function updateScrollbars(d /* display */, docHeight) { var totalHeight = docHeight + 2 * paddingTop(d); d.sizer.style.minHeight = d.heightForcer.style.top = totalHeight + "px"; var scrollHeight = Math.max(totalHeight, d.scroller.scrollHeight); var needsH = d.scroller.scrollWidth > d.scroller.clientWidth; var needsV = scrollHeight > d.scroller.clientHeight; if (needsV) { d.scrollbarV.style.display = "block"; d.scrollbarV.style.bottom = needsH ? scrollbarWidth(d.measure) + "px" : "0"; d.scrollbarV.firstChild.style.height = (scrollHeight - d.scroller.clientHeight + d.scrollbarV.clientHeight) + "px"; } else d.scrollbarV.style.display = ""; if (needsH) { d.scrollbarH.style.display = "block"; d.scrollbarH.style.right = needsV ? scrollbarWidth(d.measure) + "px" : "0"; d.scrollbarH.firstChild.style.width = (d.scroller.scrollWidth - d.scroller.clientWidth + d.scrollbarH.clientWidth) + "px"; } else d.scrollbarH.style.display = ""; if (needsH && needsV) { d.scrollbarFiller.style.display = "block"; d.scrollbarFiller.style.height = d.scrollbarFiller.style.width = scrollbarWidth(d.measure) + "px"; } else d.scrollbarFiller.style.display = ""; if (mac_geLion && scrollbarWidth(d.measure) === 0) d.scrollbarV.style.minWidth = d.scrollbarH.style.minHeight = mac_geMountainLion ? "18px" : "12px"; } function visibleLines(display, doc, viewPort) { var top = display.scroller.scrollTop, height = display.wrapper.clientHeight; if (typeof viewPort == "number") top = viewPort; else if (viewPort) {top = viewPort.top; height = viewPort.bottom - viewPort.top;} top = Math.floor(top - paddingTop(display)); var bottom = Math.ceil(top + height); return {from: lineAtHeight(doc, top), to: lineAtHeight(doc, bottom)}; } // LINE NUMBERS function alignHorizontally(cm) { var display = cm.display; if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return; var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft; var gutterW = display.gutters.offsetWidth, l = comp + "px"; for (var n = display.lineDiv.firstChild; n; n = n.nextSibling) if (n.alignable) { for (var i = 0, a = n.alignable; i < a.length; ++i) a[i].style.left = l; } if (cm.options.fixedGutter) display.gutters.style.left = (comp + gutterW) + "px"; } function maybeUpdateLineNumberWidth(cm) { if (!cm.options.lineNumbers) return false; var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display; if (last.length != display.lineNumChars) { var test = display.measure.appendChild(elt("div", [elt("div", last)], "CodeMirror-linenumber CodeMirror-gutter-elt")); var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW; display.lineGutter.style.width = ""; display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding); display.lineNumWidth = display.lineNumInnerWidth + padding; display.lineNumChars = display.lineNumInnerWidth ? last.length : -1; display.lineGutter.style.width = display.lineNumWidth + "px"; return true; } return false; } function lineNumberFor(options, i) { return String(options.lineNumberFormatter(i + options.firstLineNumber)); } function compensateForHScroll(display) { return getRect(display.scroller).left - getRect(display.sizer).left; } // DISPLAY DRAWING function updateDisplay(cm, changes, viewPort) { var oldFrom = cm.display.showingFrom, oldTo = cm.display.showingTo; var updated = updateDisplayInner(cm, changes, viewPort); if (updated) { signalLater(cm, "update", cm); if (cm.display.showingFrom != oldFrom || cm.display.showingTo != oldTo) signalLater(cm, "viewportChange", cm, cm.display.showingFrom, cm.display.showingTo); } updateSelection(cm); updateScrollbars(cm.display, cm.doc.height); return updated; } // Uses a set of changes plus the current scroll position to // determine which DOM updates have to be made, and makes the // updates. function updateDisplayInner(cm, changes, viewPort) { var display = cm.display, doc = cm.doc; if (!display.wrapper.clientWidth) { display.showingFrom = display.showingTo = doc.first; display.viewOffset = 0; return; } // Compute the new visible window // If scrollTop is specified, use that to determine which lines // to render instead of the current scrollbar position. var visible = visibleLines(display, doc, viewPort); // Bail out if the visible area is already rendered and nothing changed. if (changes.length == 0 && visible.from > display.showingFrom && visible.to < display.showingTo) return; if (maybeUpdateLineNumberWidth(cm)) changes = [{from: doc.first, to: doc.first + doc.size}]; var gutterW = display.sizer.style.marginLeft = display.gutters.offsetWidth + "px"; display.scrollbarH.style.left = cm.options.fixedGutter ? gutterW : "0"; // Used to determine which lines need their line numbers updated var positionsChangedFrom = Infinity; if (cm.options.lineNumbers) for (var i = 0; i < changes.length; ++i) if (changes[i].diff) { positionsChangedFrom = changes[i].from; break; } var end = doc.first + doc.size; var from = Math.max(visible.from - cm.options.viewportMargin, doc.first); var to = Math.min(end, visible.to + cm.options.viewportMargin); if (display.showingFrom < from && from - display.showingFrom < 20) from = Math.max(doc.first, display.showingFrom); if (display.showingTo > to && display.showingTo - to < 20) to = Math.min(end, display.showingTo); if (sawCollapsedSpans) { from = lineNo(visualLine(doc, getLine(doc, from))); while (to < end && lineIsHidden(doc, getLine(doc, to))) ++to; } // Create a range of theoretically intact lines, and punch holes // in that using the change info. var intact = [{from: Math.max(display.showingFrom, doc.first), to: Math.min(display.showingTo, end)}]; if (intact[0].from >= intact[0].to) intact = []; else intact = computeIntact(intact, changes); // When merged lines are present, we might have to reduce the // intact ranges because changes in continued fragments of the // intact lines do require the lines to be redrawn. if (sawCollapsedSpans) for (var i = 0; i < intact.length; ++i) { var range = intact[i], merged; while (merged = collapsedSpanAtEnd(getLine(doc, range.to - 1))) { var newTo = merged.find().from.line; if (newTo > range.from) range.to = newTo; else { intact.splice(i--, 1); break; } } } // Clip off the parts that won't be visible var intactLines = 0; for (var i = 0; i < intact.length; ++i) { var range = intact[i]; if (range.from < from) range.from = from; if (range.to > to) range.to = to; if (range.from >= range.to) intact.splice(i--, 1); else intactLines += range.to - range.from; } if (intactLines == to - from && from == display.showingFrom && to == display.showingTo) { updateViewOffset(cm); return; } intact.sort(function(a, b) {return a.from - b.from;}); var focused = document.activeElement; if (intactLines < (to - from) * .7) display.lineDiv.style.display = "none"; patchDisplay(cm, from, to, intact, positionsChangedFrom); display.lineDiv.style.display = ""; if (document.activeElement != focused && focused.offsetHeight) focused.focus(); var different = from != display.showingFrom || to != display.showingTo || display.lastSizeC != display.wrapper.clientHeight; // This is just a bogus formula that detects when the editor is // resized or the font size changes. if (different) display.lastSizeC = display.wrapper.clientHeight; display.showingFrom = from; display.showingTo = to; startWorker(cm, 100); var prevBottom = display.lineDiv.offsetTop; for (var node = display.lineDiv.firstChild, height; node; node = node.nextSibling) if (node.lineObj) { if (ie_lt8) { var bot = node.offsetTop + node.offsetHeight; height = bot - prevBottom; prevBottom = bot; } else { var box = getRect(node); height = box.bottom - box.top; } var diff = node.lineObj.height - height; if (height < 2) height = textHeight(display); if (diff > .001 || diff < -.001) { updateLineHeight(node.lineObj, height); var widgets = node.lineObj.widgets; if (widgets) for (var i = 0; i < widgets.length; ++i) widgets[i].height = widgets[i].node.offsetHeight; } } updateViewOffset(cm); if (visibleLines(display, doc, viewPort).to > to) updateDisplayInner(cm, [], viewPort); return true; } function updateViewOffset(cm) { var off = cm.display.viewOffset = heightAtLine(cm, getLine(cm.doc, cm.display.showingFrom)); // Position the mover div to align with the current virtual scroll position cm.display.mover.style.top = off + "px"; } function computeIntact(intact, changes) { for (var i = 0, l = changes.length || 0; i < l; ++i) { var change = changes[i], intact2 = [], diff = change.diff || 0; for (var j = 0, l2 = intact.length; j < l2; ++j) { var range = intact[j]; if (change.to <= range.from && change.diff) { intact2.push({from: range.from + diff, to: range.to + diff}); } else if (change.to <= range.from || change.from >= range.to) { intact2.push(range); } else { if (change.from > range.from) intact2.push({from: range.from, to: change.from}); if (change.to < range.to) intact2.push({from: change.to + diff, to: range.to + diff}); } } intact = intact2; } return intact; } function getDimensions(cm) { var d = cm.display, left = {}, width = {}; for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) { left[cm.options.gutters[i]] = n.offsetLeft; width[cm.options.gutters[i]] = n.offsetWidth; } return {fixedPos: compensateForHScroll(d), gutterTotalWidth: d.gutters.offsetWidth, gutterLeft: left, gutterWidth: width, wrapperWidth: d.wrapper.clientWidth}; } function patchDisplay(cm, from, to, intact, updateNumbersFrom) { var dims = getDimensions(cm); var display = cm.display, lineNumbers = cm.options.lineNumbers; if (!intact.length && (!webkit || !cm.display.currentWheelTarget)) removeChildren(display.lineDiv); var container = display.lineDiv, cur = container.firstChild; function rm(node) { var next = node.nextSibling; if (webkit && mac && cm.display.currentWheelTarget == node) { node.style.display = "none"; node.lineObj = null; } else { node.parentNode.removeChild(node); } return next; } var nextIntact = intact.shift(), lineN = from; cm.doc.iter(from, to, function(line) { if (nextIntact && nextIntact.to == lineN) nextIntact = intact.shift(); if (lineIsHidden(cm.doc, line)) { if (line.height != 0) updateLineHeight(line, 0); if (line.widgets && cur.previousSibling) for (var i = 0; i < line.widgets.length; ++i) if (line.widgets[i].showIfHidden) { var prev = cur.previousSibling; if (/pre/i.test(prev.nodeName)) { var wrap = elt("div", null, null, "position: relative"); prev.parentNode.replaceChild(wrap, prev); wrap.appendChild(prev); prev = wrap; } var wnode = prev.appendChild(elt("div", [line.widgets[i].node], "CodeMirror-linewidget")); positionLineWidget(line.widgets[i], wnode, prev, dims); } } else if (nextIntact && nextIntact.from <= lineN && nextIntact.to > lineN) { // This line is intact. Skip to the actual node. Update its // line number if needed. while (cur.lineObj != line) cur = rm(cur); if (lineNumbers && updateNumbersFrom <= lineN && cur.lineNumber) setTextContent(cur.lineNumber, lineNumberFor(cm.options, lineN)); cur = cur.nextSibling; } else { // For lines with widgets, make an attempt to find and reuse // the existing element, so that widgets aren't needlessly // removed and re-inserted into the dom if (line.widgets) for (var j = 0, search = cur, reuse; search && j < 20; ++j, search = search.nextSibling) if (search.lineObj == line && /div/i.test(search.nodeName)) { reuse = search; break; } // This line needs to be generated. var lineNode = buildLineElement(cm, line, lineN, dims, reuse); if (lineNode != reuse) { container.insertBefore(lineNode, cur); } else { while (cur != reuse) cur = rm(cur); cur = cur.nextSibling; } lineNode.lineObj = line; } ++lineN; }); while (cur) cur = rm(cur); } function buildLineElement(cm, line, lineNo, dims, reuse) { var lineElement = lineContent(cm, line); var markers = line.gutterMarkers, display = cm.display, wrap; if (!cm.options.lineNumbers && !markers && !line.bgClass && !line.wrapClass && !line.widgets) return lineElement; // Lines with gutter elements, widgets or a background class need // to be wrapped again, and have the extra elements added to the // wrapper div if (reuse) { reuse.alignable = null; var isOk = true, widgetsSeen = 0; for (var n = reuse.firstChild, next; n; n = next) { next = n.nextSibling; if (!/\bCodeMirror-linewidget\b/.test(n.className)) { reuse.removeChild(n); } else { for (var i = 0, first = true; i < line.widgets.length; ++i) { var widget = line.widgets[i], isFirst = false; if (!widget.above) { isFirst = first; first = false; } if (widget.node == n.firstChild) { positionLineWidget(widget, n, reuse, dims); ++widgetsSeen; if (isFirst) reuse.insertBefore(lineElement, n); break; } } if (i == line.widgets.length) { isOk = false; break; } } } if (isOk && widgetsSeen == line.widgets.length) { wrap = reuse; reuse.className = line.wrapClass || ""; } } if (!wrap) { wrap = elt("div", null, line.wrapClass, "position: relative"); wrap.appendChild(lineElement); } // Kludge to make sure the styled element lies behind the selection (by z-index) if (line.bgClass) wrap.insertBefore(elt("div", "\u00a0", line.bgClass + " CodeMirror-linebackground"), wrap.firstChild); if (cm.options.lineNumbers || markers) { var gutterWrap = wrap.insertBefore(elt("div", null, null, "position: absolute; left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px"), wrap.firstChild); if (cm.options.fixedGutter) (wrap.alignable || (wrap.alignable = [])).push(gutterWrap); if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) wrap.lineNumber = gutterWrap.appendChild( elt("div", lineNumberFor(cm.options, lineNo), "CodeMirror-linenumber CodeMirror-gutter-elt", "left: " + dims.gutterLeft["CodeMirror-linenumbers"] + "px; width: " + display.lineNumInnerWidth + "px")); if (markers) for (var k = 0; k < cm.options.gutters.length; ++k) { var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id]; if (found) gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", "left: " + dims.gutterLeft[id] + "px; width: " + dims.gutterWidth[id] + "px")); } } if (ie_lt8) wrap.style.zIndex = 2; if (line.widgets && wrap != reuse) for (var i = 0, ws = line.widgets; i < ws.length; ++i) { var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget"); positionLineWidget(widget, node, wrap, dims); if (widget.above) wrap.insertBefore(node, cm.options.lineNumbers && line.height != 0 ? gutterWrap : lineElement); else wrap.appendChild(node); signalLater(widget, "redraw"); } return wrap; } function positionLineWidget(widget, node, wrap, dims) { if (widget.noHScroll) { (wrap.alignable || (wrap.alignable = [])).push(node); var width = dims.wrapperWidth; node.style.left = dims.fixedPos + "px"; if (!widget.coverGutter) { width -= dims.gutterTotalWidth; node.style.paddingLeft = dims.gutterTotalWidth + "px"; } node.style.width = width + "px"; } if (widget.coverGutter) { node.style.zIndex = 5; node.style.position = "relative"; if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + "px"; } } // SELECTION / CURSOR function updateSelection(cm) { var display = cm.display; var collapsed = posEq(cm.doc.sel.from, cm.doc.sel.to); if (collapsed || cm.options.showCursorWhenSelecting) updateSelectionCursor(cm); else display.cursor.style.display = display.otherCursor.style.display = "none"; if (!collapsed) updateSelectionRange(cm); else display.selectionDiv.style.display = "none"; // Move the hidden textarea near the cursor to prevent scrolling artifacts var headPos = cursorCoords(cm, cm.doc.sel.head, "div"); var wrapOff = getRect(display.wrapper), lineOff = getRect(display.lineDiv); display.inputDiv.style.top = Math.max(0, Math.min(display.wrapper.clientHeight - 10, headPos.top + lineOff.top - wrapOff.top)) + "px"; display.inputDiv.style.left = Math.max(0, Math.min(display.wrapper.clientWidth - 10, headPos.left + lineOff.left - wrapOff.left)) + "px"; } // No selection, plain cursor function updateSelectionCursor(cm) { var display = cm.display, pos = cursorCoords(cm, cm.doc.sel.head, "div"); display.cursor.style.left = pos.left + "px"; display.cursor.style.top = pos.top + "px"; display.cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px"; display.cursor.style.display = ""; if (pos.other) { display.otherCursor.style.display = ""; display.otherCursor.style.left = pos.other.left + "px"; display.otherCursor.style.top = pos.other.top + "px"; display.otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px"; } else { display.otherCursor.style.display = "none"; } } // Highlight selection function updateSelectionRange(cm) { var display = cm.display, doc = cm.doc, sel = cm.doc.sel; var fragment = document.createDocumentFragment(); var clientWidth = display.lineSpace.offsetWidth, pl = paddingLeft(cm.display); function add(left, top, width, bottom) { if (top < 0) top = 0; fragment.appendChild(elt("div", null, "CodeMirror-selected", "position: absolute; left: " + left + "px; top: " + top + "px; width: " + (width == null ? clientWidth - left : width) + "px; height: " + (bottom - top) + "px")); } function drawForLine(line, fromArg, toArg, retTop) { var lineObj = getLine(doc, line); var lineLen = lineObj.text.length, rVal = retTop ? Infinity : -Infinity; function coords(ch) { return charCoords(cm, Pos(line, ch), "div", lineObj); } iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) { var leftPos = coords(dir == "rtl" ? to - 1 : from); var rightPos = coords(dir == "rtl" ? from : to - 1); var left = leftPos.left, right = rightPos.right; if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part add(left, leftPos.top, null, leftPos.bottom); left = pl; if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top); } if (toArg == null && to == lineLen) right = clientWidth; if (fromArg == null && from == 0) left = pl; rVal = retTop ? Math.min(rightPos.top, rVal) : Math.max(rightPos.bottom, rVal); if (left < pl + 1) left = pl; add(left, rightPos.top, right - left, rightPos.bottom); }); return rVal; } if (sel.from.line == sel.to.line) { drawForLine(sel.from.line, sel.from.ch, sel.to.ch); } else { var fromObj = getLine(doc, sel.from.line); var cur = fromObj, merged, path = [sel.from.line, sel.from.ch], singleLine; while (merged = collapsedSpanAtEnd(cur)) { var found = merged.find(); path.push(found.from.ch, found.to.line, found.to.ch); if (found.to.line == sel.to.line) { path.push(sel.to.ch); singleLine = true; break; } cur = getLine(doc, found.to.line); } // This is a single, merged line if (singleLine) { for (var i = 0; i < path.length; i += 3) drawForLine(path[i], path[i+1], path[i+2]); } else { var middleTop, middleBot, toObj = getLine(doc, sel.to.line); if (sel.from.ch) // Draw the first line of selection. middleTop = drawForLine(sel.from.line, sel.from.ch, null, false); else // Simply include it in the middle block. middleTop = heightAtLine(cm, fromObj) - display.viewOffset; if (!sel.to.ch) middleBot = heightAtLine(cm, toObj) - display.viewOffset; else middleBot = drawForLine(sel.to.line, collapsedSpanAtStart(toObj) ? null : 0, sel.to.ch, true); if (middleTop < middleBot) add(pl, middleTop, null, middleBot); } } removeChildrenAndAdd(display.selectionDiv, fragment); display.selectionDiv.style.display = ""; } // Cursor-blinking function restartBlink(cm) { var display = cm.display; clearInterval(display.blinker); var on = true; display.cursor.style.visibility = display.otherCursor.style.visibility = ""; display.blinker = setInterval(function() { if (!display.cursor.offsetHeight) return; display.cursor.style.visibility = display.otherCursor.style.visibility = (on = !on) ? "" : "hidden"; }, cm.options.cursorBlinkRate); } // HIGHLIGHT WORKER function startWorker(cm, time) { if (cm.doc.mode.startState && cm.doc.frontier < cm.display.showingTo) cm.state.highlight.set(time, bind(highlightWorker, cm)); } function highlightWorker(cm) { var doc = cm.doc; if (doc.frontier < doc.first) doc.frontier = doc.first; if (doc.frontier >= cm.display.showingTo) return; var end = +new Date + cm.options.workTime; var state = copyState(doc.mode, getStateBefore(cm, doc.frontier)); var changed = [], prevChange; doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.showingTo + 500), function(line) { if (doc.frontier >= cm.display.showingFrom) { // Visible var oldStyles = line.styles; line.styles = highlightLine(cm, line, state); var ischange = !oldStyles || oldStyles.length != line.styles.length; for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i]; if (ischange) { if (prevChange && prevChange.end == doc.frontier) prevChange.end++; else changed.push(prevChange = {start: doc.frontier, end: doc.frontier + 1}); } line.stateAfter = copyState(doc.mode, state); } else { processLine(cm, line, state); line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null; } ++doc.frontier; if (+new Date > end) { startWorker(cm, cm.options.workDelay); return true; } }); if (changed.length) operation(cm, function() { for (var i = 0; i < changed.length; ++i) regChange(this, changed[i].start, changed[i].end); })(); } // Finds the line to start with when starting a parse. Tries to // find a line with a stateAfter, so that it can start with a // valid state. If that fails, it returns the line with the // smallest indentation, which tends to need the least context to // parse correctly. function findStartLine(cm, n) { var minindent, minline, doc = cm.doc; for (var search = n, lim = n - 100; search > lim; --search) { if (search <= doc.first) return doc.first; var line = getLine(doc, search - 1); if (line.stateAfter) return search; var indented = countColumn(line.text, null, cm.options.tabSize); if (minline == null || minindent > indented) { minline = search - 1; minindent = indented; } } return minline; } function getStateBefore(cm, n) { var doc = cm.doc, display = cm.display; if (!doc.mode.startState) return true; var pos = findStartLine(cm, n), state = pos > doc.first && getLine(doc, pos-1).stateAfter; if (!state) state = startState(doc.mode); else state = copyState(doc.mode, state); doc.iter(pos, n, function(line) { processLine(cm, line, state); var save = pos == n - 1 || pos % 5 == 0 || pos >= display.showingFrom && pos < display.showingTo; line.stateAfter = save ? copyState(doc.mode, state) : null; ++pos; }); return state; } // POSITION MEASUREMENT function paddingTop(display) {return display.lineSpace.offsetTop;} function paddingLeft(display) { var e = removeChildrenAndAdd(display.measure, elt("pre", null, null, "text-align: left")).appendChild(elt("span", "x")); return e.offsetLeft; } function measureChar(cm, line, ch, data) { var dir = -1; data = data || measureLine(cm, line); for (var pos = ch;; pos += dir) { var r = data[pos]; if (r) break; if (dir < 0 && pos == 0) dir = 1; } return {left: pos < ch ? r.right : r.left, right: pos > ch ? r.left : r.right, top: r.top, bottom: r.bottom}; } function measureLine(cm, line) { // First look in the cache var display = cm.display, cache = cm.display.measureLineCache; for (var i = 0; i < cache.length; ++i) { var memo = cache[i]; if (memo.text == line.text && memo.markedSpans == line.markedSpans && display.scroller.clientWidth == memo.width && memo.classes == line.textClass + "|" + line.bgClass + "|" + line.wrapClass) return memo.measure; } var measure = measureLineInner(cm, line); // Store result in the cache var memo = {text: line.text, width: display.scroller.clientWidth, markedSpans: line.markedSpans, measure: measure, classes: line.textClass + "|" + line.bgClass + "|" + line.wrapClass}; if (cache.length == 16) cache[++display.measureLineCachePos % 16] = memo; else cache.push(memo); return measure; } function measureLineInner(cm, line) { var display = cm.display, measure = emptyArray(line.text.length); var pre = lineContent(cm, line, measure); // IE does not cache element positions of inline elements between // calls to getBoundingClientRect. This makes the loop below, // which gathers the positions of all the characters on the line, // do an amount of layout work quadratic to the number of // characters. When line wrapping is off, we try to improve things // by first subdividing the line into a bunch of inline blocks, so // that IE can reuse most of the layout information from caches // for those blocks. This does interfere with line wrapping, so it // doesn't work when wrapping is on, but in that case the // situation is slightly better, since IE does cache line-wrapping // information and only recomputes per-line. if (ie && !ie_lt8 && !cm.options.lineWrapping && pre.childNodes.length > 100) { var fragment = document.createDocumentFragment(); var chunk = 10, n = pre.childNodes.length; for (var i = 0, chunks = Math.ceil(n / chunk); i < chunks; ++i) { var wrap = elt("div", null, null, "display: inline-block"); for (var j = 0; j < chunk && n; ++j) { wrap.appendChild(pre.firstChild); --n; } fragment.appendChild(wrap); } pre.appendChild(fragment); } removeChildrenAndAdd(display.measure, pre); var outer = getRect(display.lineDiv); var vranges = [], data = emptyArray(line.text.length), maxBot = pre.offsetHeight; // Work around an IE7/8 bug where it will sometimes have randomly // replaced our pre with a clone at this point. if (ie_lt9 && display.measure.first != pre) removeChildrenAndAdd(display.measure, pre); for (var i = 0, cur; i < measure.length; ++i) if (cur = measure[i]) { var size = getRect(cur); var top = Math.max(0, size.top - outer.top), bot = Math.min(size.bottom - outer.top, maxBot); for (var j = 0; j < vranges.length; j += 2) { var rtop = vranges[j], rbot = vranges[j+1]; if (rtop > bot || rbot < top) continue; if (rtop <= top && rbot >= bot || top <= rtop && bot >= rbot || Math.min(bot, rbot) - Math.max(top, rtop) >= (bot - top) >> 1) { vranges[j] = Math.min(top, rtop); vranges[j+1] = Math.max(bot, rbot); break; } } if (j == vranges.length) vranges.push(top, bot); var right = size.right; if (cur.measureRight) right = getRect(cur.measureRight).left; data[i] = {left: size.left - outer.left, right: right - outer.left, top: j}; } for (var i = 0, cur; i < data.length; ++i) if (cur = data[i]) { var vr = cur.top; cur.top = vranges[vr]; cur.bottom = vranges[vr+1]; } if (!cm.options.lineWrapping) { var last = pre.lastChild; if (last.nodeType == 3) last = pre.appendChild(elt("span", "\u200b")); data.width = getRect(last).right - outer.left; } return data; } function clearCaches(cm) { cm.display.measureLineCache.length = cm.display.measureLineCachePos = 0; cm.display.cachedCharWidth = cm.display.cachedTextHeight = null; cm.display.maxLineChanged = true; cm.display.lineNumChars = null; } // Context is one of "line", "div" (display.lineDiv), "local"/null (editor), or "page" function intoCoordSystem(cm, lineObj, rect, context) { if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) { var size = widgetHeight(lineObj.widgets[i]); rect.top += size; rect.bottom += size; } if (context == "line") return rect; if (!context) context = "local"; var yOff = heightAtLine(cm, lineObj); if (context != "local") yOff -= cm.display.viewOffset; if (context == "page") { var lOff = getRect(cm.display.lineSpace); yOff += lOff.top + (window.pageYOffset || (document.documentElement || document.body).scrollTop); var xOff = lOff.left + (window.pageXOffset || (document.documentElement || document.body).scrollLeft); rect.left += xOff; rect.right += xOff; } rect.top += yOff; rect.bottom += yOff; return rect; } function charCoords(cm, pos, context, lineObj) { if (!lineObj) lineObj = getLine(cm.doc, pos.line); return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch), context); } function cursorCoords(cm, pos, context, lineObj, measurement) { lineObj = lineObj || getLine(cm.doc, pos.line); if (!measurement) measurement = measureLine(cm, lineObj); function get(ch, right) { var m = measureChar(cm, lineObj, ch, measurement); if (right) m.left = m.right; else m.right = m.left; return intoCoordSystem(cm, lineObj, m, context); } var order = getOrder(lineObj), ch = pos.ch; if (!order) return get(ch); var main, other, linedir = order[0].level; for (var i = 0; i < order.length; ++i) { var part = order[i], rtl = part.level % 2, nb, here; if (part.from < ch && part.to > ch) return get(ch, rtl); var left = rtl ? part.to : part.from, right = rtl ? part.from : part.to; if (left == ch) { // IE returns bogus offsets and widths for edges where the // direction flips, but only for the side with the lower // level. So we try to use the side with the higher level. if (i && part.level < (nb = order[i-1]).level) here = get(nb.level % 2 ? nb.from : nb.to - 1, true); else here = get(rtl && part.from != part.to ? ch - 1 : ch); if (rtl == linedir) main = here; else other = here; } else if (right == ch) { var nb = i < order.length - 1 && order[i+1]; if (!rtl && nb && nb.from == nb.to) continue; if (nb && part.level < nb.level) here = get(nb.level % 2 ? nb.to - 1 : nb.from); else here = get(rtl ? ch : ch - 1, true); if (rtl == linedir) main = here; else other = here; } } if (linedir && !ch) other = get(order[0].to - 1); if (!main) return other; if (other) main.other = other; return main; } function PosMaybeOutside(line, ch, outside) { var pos = new Pos(line, ch); if (outside) pos.outside = true; return pos; } // Coords must be lineSpace-local function coordsChar(cm, x, y) { var doc = cm.doc; y += cm.display.viewOffset; if (y < 0) return PosMaybeOutside(doc.first, 0, true); var lineNo = lineAtHeight(doc, y), last = doc.first + doc.size - 1; if (lineNo > last) return PosMaybeOutside(doc.first + doc.size - 1, getLine(doc, last).text.length, true); if (x < 0) x = 0; for (;;) { var lineObj = getLine(doc, lineNo); var found = coordsCharInner(cm, lineObj, lineNo, x, y); var merged = collapsedSpanAtEnd(lineObj); var mergedPos = merged && merged.find(); if (merged && found.ch >= mergedPos.from.ch) lineNo = mergedPos.to.line; else return found; } } function coordsCharInner(cm, lineObj, lineNo, x, y) { var innerOff = y - heightAtLine(cm, lineObj); var wrongLine = false, cWidth = cm.display.wrapper.clientWidth; var measurement = measureLine(cm, lineObj); function getX(ch) { var sp = cursorCoords(cm, Pos(lineNo, ch), "line", lineObj, measurement); wrongLine = true; if (innerOff > sp.bottom) return Math.max(0, sp.left - cWidth); else if (innerOff < sp.top) return sp.left + cWidth; else wrongLine = false; return sp.left; } var bidi = getOrder(lineObj), dist = lineObj.text.length; var from = lineLeft(lineObj), to = lineRight(lineObj); var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine; if (x > toX) return PosMaybeOutside(lineNo, to, toOutside); // Do a binary search between these bounds. for (;;) { if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) { var after = x - fromX < toX - x, ch = after ? from : to; while (isExtendingChar.test(lineObj.text.charAt(ch))) ++ch; var pos = PosMaybeOutside(lineNo, ch, after ? fromOutside : toOutside); pos.after = after; return pos; } var step = Math.ceil(dist / 2), middle = from + step; if (bidi) { middle = from; for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1); } var middleX = getX(middle); if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist -= step;} else {from = middle; fromX = middleX; fromOutside = wrongLine; dist = step;} } } var measureText; function textHeight(display) { if (display.cachedTextHeight != null) return display.cachedTextHeight; if (measureText == null) { measureText = elt("pre"); // Measure a bunch of lines, for browsers that compute // fractional heights. for (var i = 0; i < 49; ++i) { measureText.appendChild(document.createTextNode("x")); measureText.appendChild(elt("br")); } measureText.appendChild(document.createTextNode("x")); } removeChildrenAndAdd(display.measure, measureText); var height = measureText.offsetHeight / 50; if (height > 3) display.cachedTextHeight = height; removeChildren(display.measure); return height || 1; } function charWidth(display) { if (display.cachedCharWidth != null) return display.cachedCharWidth; var anchor = elt("span", "x"); var pre = elt("pre", [anchor]); removeChildrenAndAdd(display.measure, pre); var width = anchor.offsetWidth; if (width > 2) display.cachedCharWidth = width; return width || 10; } // OPERATIONS // Operations are used to wrap changes in such a way that each // change won't have to update the cursor and display (which would // be awkward, slow, and error-prone), but instead updates are // batched and then all combined and executed at once. var nextOpId = 0; function startOperation(cm) { cm.curOp = { // An array of ranges of lines that have to be updated. See // updateDisplay. changes: [], updateInput: null, userSelChange: null, textChanged: null, selectionChanged: false, updateMaxLine: false, updateScrollPos: false, id: ++nextOpId }; if (!delayedCallbackDepth++) delayedCallbacks = []; } function endOperation(cm) { var op = cm.curOp, doc = cm.doc, display = cm.display; cm.curOp = null; if (op.updateMaxLine) computeMaxLength(cm); if (display.maxLineChanged && !cm.options.lineWrapping) { var width = measureLine(cm, display.maxLine).width; display.sizer.style.minWidth = Math.max(0, width + 3 + scrollerCutOff) + "px"; display.maxLineChanged = false; var maxScrollLeft = Math.max(0, display.sizer.offsetLeft + display.sizer.offsetWidth - display.scroller.clientWidth); if (maxScrollLeft < doc.scrollLeft && !op.updateScrollPos) setScrollLeft(cm, Math.min(display.scroller.scrollLeft, maxScrollLeft), true); } var newScrollPos, updated; if (op.updateScrollPos) { newScrollPos = op.updateScrollPos; } else if (op.selectionChanged && display.scroller.clientHeight) { // don't rescroll if not visible var coords = cursorCoords(cm, doc.sel.head); newScrollPos = calculateScrollPos(cm, coords.left, coords.top, coords.left, coords.bottom); } if (op.changes.length || newScrollPos && newScrollPos.scrollTop != null) updated = updateDisplay(cm, op.changes, newScrollPos && newScrollPos.scrollTop); if (!updated && op.selectionChanged) updateSelection(cm); if (op.updateScrollPos) { display.scroller.scrollTop = display.scrollbarV.scrollTop = doc.scrollTop = newScrollPos.scrollTop; display.scroller.scrollLeft = display.scrollbarH.scrollLeft = doc.scrollLeft = newScrollPos.scrollLeft; alignHorizontally(cm); } else if (newScrollPos) { scrollCursorIntoView(cm); } if (op.selectionChanged) restartBlink(cm); if (cm.state.focused && op.updateInput) resetInput(cm, op.userSelChange); var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers; if (hidden) for (var i = 0; i < hidden.length; ++i) if (!hidden[i].lines.length) signal(hidden[i], "hide"); if (unhidden) for (var i = 0; i < unhidden.length; ++i) if (unhidden[i].lines.length) signal(unhidden[i], "unhide"); var delayed; if (!--delayedCallbackDepth) { delayed = delayedCallbacks; delayedCallbacks = null; } if (op.textChanged) signal(cm, "change", cm, op.textChanged); if (op.selectionChanged) signal(cm, "cursorActivity", cm); if (delayed) for (var i = 0; i < delayed.length; ++i) delayed[i](); } // Wraps a function in an operation. Returns the wrapped function. function operation(cm1, f) { return function() { var cm = cm1 || this, withOp = !cm.curOp; if (withOp) startOperation(cm); try { var result = f.apply(cm, arguments); } finally { if (withOp) endOperation(cm); } return result; }; } function docOperation(f) { return function() { var withOp = this.cm && !this.cm.curOp, result; if (withOp) startOperation(this.cm); try { result = f.apply(this, arguments); } finally { if (withOp) endOperation(this.cm); } return result; }; } function runInOp(cm, f) { var withOp = !cm.curOp, result; if (withOp) startOperation(cm); try { result = f(); } finally { if (withOp) endOperation(cm); } return result; } function regChange(cm, from, to, lendiff) { if (from == null) from = cm.doc.first; if (to == null) to = cm.doc.first + cm.doc.size; cm.curOp.changes.push({from: from, to: to, diff: lendiff}); } // INPUT HANDLING function slowPoll(cm) { if (cm.display.pollingFast) return; cm.display.poll.set(cm.options.pollInterval, function() { readInput(cm); if (cm.state.focused) slowPoll(cm); }); } function fastPoll(cm) { var missed = false; cm.display.pollingFast = true; function p() { var changed = readInput(cm); if (!changed && !missed) {missed = true; cm.display.poll.set(60, p);} else {cm.display.pollingFast = false; slowPoll(cm);} } cm.display.poll.set(20, p); } // prevInput is a hack to work with IME. If we reset the textarea // on every change, that breaks IME. So we look for changes // compared to the previous content instead. (Modern browsers have // events that indicate IME taking place, but these are not widely // supported or compatible enough yet to rely on.) function readInput(cm) { var input = cm.display.input, prevInput = cm.display.prevInput, doc = cm.doc, sel = doc.sel; if (!cm.state.focused || hasSelection(input) || isReadOnly(cm)) return false; var text = input.value; if (text == prevInput && posEq(sel.from, sel.to)) return false; // IE enjoys randomly deselecting our input's text when // re-focusing. If the selection is gone but the cursor is at the // start of the input, that's probably what happened. if (ie && text && input.selectionStart === 0) { resetInput(cm, true); return false; } var withOp = !cm.curOp; if (withOp) startOperation(cm); sel.shift = false; var same = 0, l = Math.min(prevInput.length, text.length); while (same < l && prevInput[same] == text[same]) ++same; var from = sel.from, to = sel.to; if (same < prevInput.length) from = Pos(from.line, from.ch - (prevInput.length - same)); else if (cm.state.overwrite && posEq(from, to) && !cm.state.pasteIncoming) to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + (text.length - same))); var updateInput = cm.curOp.updateInput; makeChange(cm.doc, {from: from, to: to, text: splitLines(text.slice(same)), origin: cm.state.pasteIncoming ? "paste" : "+input"}, "end"); cm.curOp.updateInput = updateInput; if (text.length > 1000) input.value = cm.display.prevInput = ""; else cm.display.prevInput = text; if (withOp) endOperation(cm); cm.state.pasteIncoming = false; return true; } function resetInput(cm, user) { var minimal, selected, doc = cm.doc; if (!posEq(doc.sel.from, doc.sel.to)) { cm.display.prevInput = ""; minimal = hasCopyEvent && (doc.sel.to.line - doc.sel.from.line > 100 || (selected = cm.getSelection()).length > 1000); if (minimal) cm.display.input.value = "-"; else cm.display.input.value = selected || cm.getSelection(); if (cm.state.focused) selectInput(cm.display.input); } else if (user) cm.display.prevInput = cm.display.input.value = ""; cm.display.inaccurateSelection = minimal; } function focusInput(cm) { if (cm.options.readOnly != "nocursor" && (!mobile || document.activeElement != cm.display.input)) cm.display.input.focus(); } function isReadOnly(cm) { return cm.options.readOnly || cm.doc.cantEdit; } // EVENT HANDLERS function registerEventHandlers(cm) { var d = cm.display; on(d.scroller, "mousedown", operation(cm, onMouseDown)); on(d.scroller, "dblclick", operation(cm, e_preventDefault)); on(d.lineSpace, "selectstart", function(e) { if (!eventInWidget(d, e)) e_preventDefault(e); }); // Gecko browsers fire contextmenu *after* opening the menu, at // which point we can't mess with it anymore. Context menu is // handled in onMouseDown for Gecko. if (!captureMiddleClick) on(d.scroller, "contextmenu", function(e) {onContextMenu(cm, e);}); on(d.scroller, "scroll", function() { setScrollTop(cm, d.scroller.scrollTop); setScrollLeft(cm, d.scroller.scrollLeft, true); signal(cm, "scroll", cm); }); on(d.scrollbarV, "scroll", function() { setScrollTop(cm, d.scrollbarV.scrollTop); }); on(d.scrollbarH, "scroll", function() { setScrollLeft(cm, d.scrollbarH.scrollLeft); }); on(d.scroller, "mousewheel", function(e){onScrollWheel(cm, e);}); on(d.scroller, "DOMMouseScroll", function(e){onScrollWheel(cm, e);}); function reFocus() { if (cm.state.focused) setTimeout(bind(focusInput, cm), 0); } on(d.scrollbarH, "mousedown", reFocus); on(d.scrollbarV, "mousedown", reFocus); // Prevent wrapper from ever scrolling on(d.wrapper, "scroll", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; }); function onResize() { // Might be a text scaling operation, clear size caches. d.cachedCharWidth = d.cachedTextHeight = null; clearCaches(cm); runInOp(cm, bind(regChange, cm)); } on(window, "resize", onResize); // Above handler holds on to the editor and its data structures. // Here we poll to unregister it when the editor is no longer in // the document, so that it can be garbage-collected. function unregister() { for (var p = d.wrapper.parentNode; p && p != document.body; p = p.parentNode) {} if (p) setTimeout(unregister, 5000); else off(window, "resize", onResize); } setTimeout(unregister, 5000); on(d.input, "keyup", operation(cm, function(e) { if (cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return; if (e.keyCode == 16) cm.doc.sel.shift = false; })); on(d.input, "input", bind(fastPoll, cm)); on(d.input, "keydown", operation(cm, onKeyDown)); on(d.input, "keypress", operation(cm, onKeyPress)); on(d.input, "focus", bind(onFocus, cm)); on(d.input, "blur", bind(onBlur, cm)); function drag_(e) { if (cm.options.onDragEvent && cm.options.onDragEvent(cm, addStop(e))) return; e_stop(e); } if (cm.options.dragDrop) { on(d.scroller, "dragstart", function(e){onDragStart(cm, e);}); on(d.scroller, "dragenter", drag_); on(d.scroller, "dragover", drag_); on(d.scroller, "drop", operation(cm, onDrop)); } on(d.scroller, "paste", function(e){ if (eventInWidget(d, e)) return; focusInput(cm); fastPoll(cm); }); on(d.input, "paste", function() { cm.state.pasteIncoming = true; fastPoll(cm); }); function prepareCopy() { if (d.inaccurateSelection) { d.prevInput = ""; d.inaccurateSelection = false; d.input.value = cm.getSelection(); selectInput(d.input); } } on(d.input, "cut", prepareCopy); on(d.input, "copy", prepareCopy); // Needed to handle Tab key in KHTML if (khtml) on(d.sizer, "mouseup", function() { if (document.activeElement == d.input) d.input.blur(); focusInput(cm); }); } function eventInWidget(display, e) { for (var n = e_target(e); n != display.wrapper; n = n.parentNode) { if (!n) return true; if (/\bCodeMirror-(?:line)?widget\b/.test(n.className) || n.parentNode == display.sizer && n != display.mover) return true; } } function posFromMouse(cm, e, liberal) { var display = cm.display; if (!liberal) { var target = e_target(e); if (target == display.scrollbarH || target == display.scrollbarH.firstChild || target == display.scrollbarV || target == display.scrollbarV.firstChild || target == display.scrollbarFiller) return null; } var x, y, space = getRect(display.lineSpace); // Fails unpredictably on IE[67] when mouse is dragged around quickly. try { x = e.clientX; y = e.clientY; } catch (e) { return null; } return coordsChar(cm, x - space.left, y - space.top); } var lastClick, lastDoubleClick; function onMouseDown(e) { var cm = this, display = cm.display, doc = cm.doc, sel = doc.sel; sel.shift = e.shiftKey; if (eventInWidget(display, e)) { if (!webkit) { display.scroller.draggable = false; setTimeout(function(){display.scroller.draggable = true;}, 100); } return; } if (clickInGutter(cm, e)) return; var start = posFromMouse(cm, e); switch (e_button(e)) { case 3: if (captureMiddleClick) onContextMenu.call(cm, cm, e); return; case 2: if (start) extendSelection(cm.doc, start); setTimeout(bind(focusInput, cm), 20); e_preventDefault(e); return; } // For button 1, if it was clicked inside the editor // (posFromMouse returning non-null), we have to adjust the // selection. if (!start) {if (e_target(e) == display.scroller) e_preventDefault(e); return;} if (!cm.state.focused) onFocus(cm); var now = +new Date, type = "single"; if (lastDoubleClick && lastDoubleClick.time > now - 400 && posEq(lastDoubleClick.pos, start)) { type = "triple"; e_preventDefault(e); setTimeout(bind(focusInput, cm), 20); selectLine(cm, start.line); } else if (lastClick && lastClick.time > now - 400 && posEq(lastClick.pos, start)) { type = "double"; lastDoubleClick = {time: now, pos: start}; e_preventDefault(e); var word = findWordAt(getLine(doc, start.line).text, start); extendSelection(cm.doc, word.from, word.to); } else { lastClick = {time: now, pos: start}; } var last = start; if (cm.options.dragDrop && dragAndDrop && !isReadOnly(cm) && !posEq(sel.from, sel.to) && !posLess(start, sel.from) && !posLess(sel.to, start) && type == "single") { var dragEnd = operation(cm, function(e2) { if (webkit) display.scroller.draggable = false; cm.state.draggingText = false; off(document, "mouseup", dragEnd); off(display.scroller, "drop", dragEnd); if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) { e_preventDefault(e2); extendSelection(cm.doc, start); focusInput(cm); } }); // Let the drag handler handle this. if (webkit) display.scroller.draggable = true; cm.state.draggingText = dragEnd; // IE's approach to draggable if (display.scroller.dragDrop) display.scroller.dragDrop(); on(document, "mouseup", dragEnd); on(display.scroller, "drop", dragEnd); return; } e_preventDefault(e); if (type == "single") extendSelection(cm.doc, clipPos(doc, start)); var startstart = sel.from, startend = sel.to; function doSelect(cur) { if (type == "single") { extendSelection(cm.doc, clipPos(doc, start), cur); return; } startstart = clipPos(doc, startstart); startend = clipPos(doc, startend); if (type == "double") { var word = findWordAt(getLine(doc, cur.line).text, cur); if (posLess(cur, startstart)) extendSelection(cm.doc, word.from, startend); else extendSelection(cm.doc, startstart, word.to); } else if (type == "triple") { if (posLess(cur, startstart)) extendSelection(cm.doc, startend, clipPos(doc, Pos(cur.line, 0))); else extendSelection(cm.doc, startstart, clipPos(doc, Pos(cur.line + 1, 0))); } } var editorSize = getRect(display.wrapper); // Used to ensure timeout re-tries don't fire when another extend // happened in the meantime (clearTimeout isn't reliable -- at // least on Chrome, the timeouts still happen even when cleared, // if the clear happens after their scheduled firing time). var counter = 0; function extend(e) { var curCount = ++counter; var cur = posFromMouse(cm, e, true); if (!cur) return; if (!posEq(cur, last)) { if (!cm.state.focused) onFocus(cm); last = cur; doSelect(cur); var visible = visibleLines(display, doc); if (cur.line >= visible.to || cur.line < visible.from) setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150); } else { var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0; if (outside) setTimeout(operation(cm, function() { if (counter != curCount) return; display.scroller.scrollTop += outside; extend(e); }), 50); } } function done(e) { counter = Infinity; var cur = posFromMouse(cm, e); if (cur) doSelect(cur); e_preventDefault(e); focusInput(cm); off(document, "mousemove", move); off(document, "mouseup", up); } var move = operation(cm, function(e) { if (!ie && !e_button(e)) done(e); else extend(e); }); var up = operation(cm, done); on(document, "mousemove", move); on(document, "mouseup", up); } function onDrop(e) { var cm = this; if (eventInWidget(cm.display, e) || (cm.options.onDragEvent && cm.options.onDragEvent(cm, addStop(e)))) return; e_preventDefault(e); var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files; if (!pos || isReadOnly(cm)) return; if (files && files.length && window.FileReader && window.File) { var n = files.length, text = Array(n), read = 0; var loadFile = function(file, i) { var reader = new FileReader; reader.onload = function() { text[i] = reader.result; if (++read == n) { pos = clipPos(cm.doc, pos); replaceRange(cm.doc, text.join(""), pos, "around", "paste"); } }; reader.readAsText(file); }; for (var i = 0; i < n; ++i) loadFile(files[i], i); } else { // Don't do a replace if the drop happened inside of the selected text. if (cm.state.draggingText && !(posLess(pos, cm.doc.sel.from) || posLess(cm.doc.sel.to, pos))) { cm.state.draggingText(e); // Ensure the editor is re-focused setTimeout(bind(focusInput, cm), 20); return; } try { var text = e.dataTransfer.getData("Text"); if (text) { var curFrom = cm.doc.sel.from, curTo = cm.doc.sel.to; setSelection(cm.doc, pos, pos); if (cm.state.draggingText) replaceRange(cm.doc, "", curFrom, curTo, "paste"); cm.replaceSelection(text, null, "paste"); focusInput(cm); onFocus(cm); } } catch(e){} } } function clickInGutter(cm, e) { var display = cm.display; try { var mX = e.clientX, mY = e.clientY; } catch(e) { return false; } if (mX >= Math.floor(getRect(display.gutters).right)) return false; e_preventDefault(e); if (!hasHandler(cm, "gutterClick")) return true; var lineBox = getRect(display.lineDiv); if (mY > lineBox.bottom) return true; mY -= lineBox.top - display.viewOffset; for (var i = 0; i < cm.options.gutters.length; ++i) { var g = display.gutters.childNodes[i]; if (g && getRect(g).right >= mX) { var line = lineAtHeight(cm.doc, mY); var gutter = cm.options.gutters[i]; signalLater(cm, "gutterClick", cm, line, gutter, e); break; } } return true; } function onDragStart(cm, e) { if (eventInWidget(cm.display, e)) return; var txt = cm.getSelection(); e.dataTransfer.setData("Text", txt); // Use dummy image instead of default browsers image. // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there. if (e.dataTransfer.setDragImage && !safari) { var img = elt("img", null, null, "position: fixed; left: 0; top: 0;"); if (opera) { img.width = img.height = 1; cm.display.wrapper.appendChild(img); // Force a relayout, or Opera won't use our image for some obscure reason img._top = img.offsetTop; } e.dataTransfer.setDragImage(img, 0, 0); if (opera) img.parentNode.removeChild(img); } } function setScrollTop(cm, val) { if (Math.abs(cm.doc.scrollTop - val) < 2) return; cm.doc.scrollTop = val; if (!gecko) updateDisplay(cm, [], val); if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val; if (cm.display.scrollbarV.scrollTop != val) cm.display.scrollbarV.scrollTop = val; if (gecko) updateDisplay(cm, []); } function setScrollLeft(cm, val, isScroller) { if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return; val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth); cm.doc.scrollLeft = val; alignHorizontally(cm); if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val; if (cm.display.scrollbarH.scrollLeft != val) cm.display.scrollbarH.scrollLeft = val; } // Since the delta values reported on mouse wheel events are // unstandardized between browsers and even browser versions, and // generally horribly unpredictable, this code starts by measuring // the scroll effect that the first few mouse wheel events have, // and, from that, detects the way it can convert deltas to pixel // offsets afterwards. // // The reason we want to know the amount a wheel event will scroll // is that it gives us a chance to update the display before the // actual scrolling happens, reducing flickering. var wheelSamples = 0, wheelPixelsPerUnit = null; // Fill in a browser-detected starting value on browsers where we // know one. These don't have to be accurate -- the result of them // being wrong would just be a slight flicker on the first wheel // scroll (if it is large enough). if (ie) wheelPixelsPerUnit = -.53; else if (gecko) wheelPixelsPerUnit = 15; else if (chrome) wheelPixelsPerUnit = -.7; else if (safari) wheelPixelsPerUnit = -1/3; function onScrollWheel(cm, e) { var dx = e.wheelDeltaX, dy = e.wheelDeltaY; if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail; if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail; else if (dy == null) dy = e.wheelDelta; // Webkit browsers on OS X abort momentum scrolls when the target // of the scroll event is removed from the scrollable element. // This hack (see related code in patchDisplay) makes sure the // element is kept around. if (dy && mac && webkit) { for (var cur = e.target; cur != scroll; cur = cur.parentNode) { if (cur.lineObj) { cm.display.currentWheelTarget = cur; break; } } } var display = cm.display, scroll = display.scroller; // On some browsers, horizontal scrolling will cause redraws to // happen before the gutter has been realigned, causing it to // wriggle around in a most unseemly way. When we have an // estimated pixels/delta value, we just handle horizontal // scrolling entirely here. It'll be slightly off from native, but // better than glitching out. if (dx && !gecko && !opera && wheelPixelsPerUnit != null) { if (dy) setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight))); setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth))); e_preventDefault(e); display.wheelStartX = null; // Abort measurement, if in progress return; } if (dy && wheelPixelsPerUnit != null) { var pixels = dy * wheelPixelsPerUnit; var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight; if (pixels < 0) top = Math.max(0, top + pixels - 50); else bot = Math.min(cm.doc.height, bot + pixels + 50); updateDisplay(cm, [], {top: top, bottom: bot}); } if (wheelSamples < 20) { if (display.wheelStartX == null) { display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop; display.wheelDX = dx; display.wheelDY = dy; setTimeout(function() { if (display.wheelStartX == null) return; var movedX = scroll.scrollLeft - display.wheelStartX; var movedY = scroll.scrollTop - display.wheelStartY; var sample = (movedY && display.wheelDY && movedY / display.wheelDY) || (movedX && display.wheelDX && movedX / display.wheelDX); display.wheelStartX = display.wheelStartY = null; if (!sample) return; wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1); ++wheelSamples; }, 200); } else { display.wheelDX += dx; display.wheelDY += dy; } } } function doHandleBinding(cm, bound, dropShift) { if (typeof bound == "string") { bound = commands[bound]; if (!bound) return false; } // Ensure previous input has been read, so that the handler sees a // consistent view of the document if (cm.display.pollingFast && readInput(cm)) cm.display.pollingFast = false; var doc = cm.doc, prevShift = doc.sel.shift, done = false; try { if (isReadOnly(cm)) cm.state.suppressEdits = true; if (dropShift) doc.sel.shift = false; done = bound(cm) != Pass; } finally { doc.sel.shift = prevShift; cm.state.suppressEdits = false; } return done; } function allKeyMaps(cm) { var maps = cm.state.keyMaps.slice(0); maps.push(cm.options.keyMap); if (cm.options.extraKeys) maps.unshift(cm.options.extraKeys); return maps; } var maybeTransition; function handleKeyBinding(cm, e) { // Handle auto keymap transitions var startMap = getKeyMap(cm.options.keyMap), next = startMap.auto; clearTimeout(maybeTransition); if (next && !isModifierKey(e)) maybeTransition = setTimeout(function() { if (getKeyMap(cm.options.keyMap) == startMap) cm.options.keyMap = (next.call ? next.call(null, cm) : next); }, 50); var name = keyName(e, true), handled = false; if (!name) return false; var keymaps = allKeyMaps(cm); if (e.shiftKey) { // First try to resolve full name (including 'Shift-'). Failing // that, see if there is a cursor-motion command (starting with // 'go') bound to the keyname without 'Shift-'. handled = lookupKey("Shift-" + name, keymaps, function(b) {return doHandleBinding(cm, b, true);}) || lookupKey(name, keymaps, function(b) { if (typeof b == "string" && /^go[A-Z]/.test(b)) return doHandleBinding(cm, b); }); } else { handled = lookupKey(name, keymaps, function(b) { return doHandleBinding(cm, b); }); } if (handled == "stop") handled = false; if (handled) { e_preventDefault(e); restartBlink(cm); if (ie_lt9) { e.oldKeyCode = e.keyCode; e.keyCode = 0; } } return handled; } function handleCharBinding(cm, e, ch) { var handled = lookupKey("'" + ch + "'", allKeyMaps(cm), function(b) { return doHandleBinding(cm, b, true); }); if (handled) { e_preventDefault(e); restartBlink(cm); } return handled; } var lastStoppedKey = null; function onKeyDown(e) { var cm = this; if (!cm.state.focused) onFocus(cm); if (ie && e.keyCode == 27) { e.returnValue = false; } if (cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return; var code = e.keyCode; // IE does strange things with escape. cm.doc.sel.shift = code == 16 || e.shiftKey; // First give onKeyEvent option a chance to handle this. var handled = handleKeyBinding(cm, e); if (opera) { lastStoppedKey = handled ? code : null; // Opera has no cut event... we try to at least catch the key combo if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey)) cm.replaceSelection(""); } } function onKeyPress(e) { var cm = this; if (cm.options.onKeyEvent && cm.options.onKeyEvent(cm, addStop(e))) return; var keyCode = e.keyCode, charCode = e.charCode; if (opera && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;} if (((opera && (!e.which || e.which < 10)) || khtml) && handleKeyBinding(cm, e)) return; var ch = String.fromCharCode(charCode == null ? keyCode : charCode); if (this.options.electricChars && this.doc.mode.electricChars && this.options.smartIndent && !isReadOnly(this) && this.doc.mode.electricChars.indexOf(ch) > -1) setTimeout(operation(cm, function() {indentLine(cm, cm.doc.sel.to.line, "smart");}), 75); if (handleCharBinding(cm, e, ch)) return; fastPoll(cm); } function onFocus(cm) { if (cm.options.readOnly == "nocursor") return; if (!cm.state.focused) { signal(cm, "focus", cm); cm.state.focused = true; if (cm.display.wrapper.className.search(/\bCodeMirror-focused\b/) == -1) cm.display.wrapper.className += " CodeMirror-focused"; resetInput(cm, true); } slowPoll(cm); restartBlink(cm); } function onBlur(cm) { if (cm.state.focused) { signal(cm, "blur", cm); cm.state.focused = false; cm.display.wrapper.className = cm.display.wrapper.className.replace(" CodeMirror-focused", ""); } clearInterval(cm.display.blinker); setTimeout(function() {if (!cm.state.focused) cm.doc.sel.shift = false;}, 150); } var detectingSelectAll; function onContextMenu(cm, e) { var display = cm.display, sel = cm.doc.sel; if (eventInWidget(display, e)) return; var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop; if (!pos || opera) return; // Opera is difficult. if (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to)) operation(cm, setSelection)(cm.doc, pos, pos); var oldCSS = display.input.style.cssText; display.inputDiv.style.position = "absolute"; display.input.style.cssText = "position: fixed; width: 30px; height: 30px; top: " + (e.clientY - 5) + "px; left: " + (e.clientX - 5) + "px; z-index: 1000; background: white; outline: none;" + "border-width: 0; outline: none; overflow: hidden; opacity: .05; -ms-opacity: .05; filter: alpha(opacity=5);"; focusInput(cm); resetInput(cm, true); // Adds "Select all" to context menu in FF if (posEq(sel.from, sel.to)) display.input.value = display.prevInput = " "; function rehide() { display.inputDiv.style.position = "relative"; display.input.style.cssText = oldCSS; if (ie_lt9) display.scrollbarV.scrollTop = display.scroller.scrollTop = scrollPos; slowPoll(cm); // Try to detect the user choosing select-all if (display.input.selectionStart != null && (!ie || ie_lt9)) { clearTimeout(detectingSelectAll); var extval = display.input.value = " " + (posEq(sel.from, sel.to) ? "" : display.input.value), i = 0; display.prevInput = " "; display.input.selectionStart = 1; display.input.selectionEnd = extval.length; var poll = function(){ if (display.prevInput == " " && display.input.selectionStart == 0) operation(cm, commands.selectAll)(cm); else if (i++ < 10) detectingSelectAll = setTimeout(poll, 500); else resetInput(cm); }; detectingSelectAll = setTimeout(poll, 200); } } if (captureMiddleClick) { e_stop(e); var mouseup = function() { off(window, "mouseup", mouseup); setTimeout(rehide, 20); }; on(window, "mouseup", mouseup); } else { setTimeout(rehide, 50); } } // UPDATING function changeEnd(change) { return Pos(change.from.line + change.text.length - 1, lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0)); } // Make sure a position will be valid after the given change. function clipPostChange(doc, change, pos) { if (!posLess(change.from, pos)) return clipPos(doc, pos); var diff = (change.text.length - 1) - (change.to.line - change.from.line); if (pos.line > change.to.line + diff) { var preLine = pos.line - diff, lastLine = doc.first + doc.size - 1; if (preLine > lastLine) return Pos(lastLine, getLine(doc, lastLine).text.length); return clipToLen(pos, getLine(doc, preLine).text.length); } if (pos.line == change.to.line + diff) return clipToLen(pos, lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0) + getLine(doc, change.to.line).text.length - change.to.ch); var inside = pos.line - change.from.line; return clipToLen(pos, change.text[inside].length + (inside ? 0 : change.from.ch)); } // Hint can be null|"end"|"start"|"around"|{anchor,head} function computeSelAfterChange(doc, change, hint) { if (hint && typeof hint == "object") // Assumed to be {anchor, head} object return {anchor: clipPostChange(doc, change, hint.anchor), head: clipPostChange(doc, change, hint.head)}; if (hint == "start") return {anchor: change.from, head: change.from}; var end = changeEnd(change); if (hint == "around") return {anchor: change.from, head: end}; if (hint == "end") return {anchor: end, head: end}; // hint is null, leave the selection alone as much as possible var adjustPos = function(pos) { if (posLess(pos, change.from)) return pos; if (!posLess(change.to, pos)) return end; var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch; if (pos.line == change.to.line) ch += end.ch - change.to.ch; return Pos(line, ch); }; return {anchor: adjustPos(doc.sel.anchor), head: adjustPos(doc.sel.head)}; } function filterChange(doc, change) { var obj = { canceled: false, from: change.from, to: change.to, text: change.text, origin: change.origin, update: function(from, to, text, origin) { if (from) this.from = clipPos(doc, from); if (to) this.to = clipPos(doc, to); if (text) this.text = text; if (origin !== undefined) this.origin = origin; }, cancel: function() { this.canceled = true; } }; signal(doc, "beforeChange", doc, obj); if (doc.cm) signal(doc.cm, "beforeChange", doc.cm, obj); if (obj.canceled) return null; return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}; } // Replace the range from from to to by the strings in replacement. // change is a {from, to, text [, origin]} object function makeChange(doc, change, selUpdate, ignoreReadOnly) { if (doc.cm) { if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, selUpdate, ignoreReadOnly); if (doc.cm.state.suppressEdits) return; } if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) { change = filterChange(doc, change); if (!change) return; } // Possibly split or suppress the update based on the presence // of read-only spans in its range. var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to); if (split) { for (var i = split.length - 1; i >= 1; --i) makeChangeNoReadonly(doc, {from: split[i].from, to: split[i].to, text: [""]}); if (split.length) makeChangeNoReadonly(doc, {from: split[0].from, to: split[0].to, text: change.text}, selUpdate); } else { makeChangeNoReadonly(doc, change, selUpdate); } } function makeChangeNoReadonly(doc, change, selUpdate) { var selAfter = computeSelAfterChange(doc, change, selUpdate); addToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN); makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change)); var rebased = []; linkedDocs(doc, function(doc, sharedHist) { if (!sharedHist && indexOf(rebased, doc.history) == -1) { rebaseHist(doc.history, change); rebased.push(doc.history); } makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change)); }); } function makeChangeFromHistory(doc, type) { var hist = doc.history; var event = (type == "undo" ? hist.done : hist.undone).pop(); if (!event) return; hist.dirtyCounter += type == "undo" ? -1 : 1; var anti = {changes: [], anchorBefore: event.anchorAfter, headBefore: event.headAfter, anchorAfter: event.anchorBefore, headAfter: event.headBefore}; (type == "undo" ? hist.undone : hist.done).push(anti); for (var i = event.changes.length - 1; i >= 0; --i) { var change = event.changes[i]; change.origin = type; anti.changes.push(historyChangeFromChange(doc, change)); var after = i ? computeSelAfterChange(doc, change, null) : {anchor: event.anchorBefore, head: event.headBefore}; makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change)); var rebased = []; linkedDocs(doc, function(doc, sharedHist) { if (!sharedHist && indexOf(rebased, doc.history) == -1) { rebaseHist(doc.history, change); rebased.push(doc.history); } makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change)); }); } } function shiftDoc(doc, distance) { function shiftPos(pos) {return Pos(pos.line + distance, pos.ch);} doc.first += distance; if (doc.cm) regChange(doc.cm, doc.first, doc.first, distance); doc.sel.head = shiftPos(doc.sel.head); doc.sel.anchor = shiftPos(doc.sel.anchor); doc.sel.from = shiftPos(doc.sel.from); doc.sel.to = shiftPos(doc.sel.to); } function makeChangeSingleDoc(doc, change, selAfter, spans) { if (doc.cm && !doc.cm.curOp) return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans); if (change.to.line < doc.first) { shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line)); return; } if (change.from.line > doc.lastLine()) return; // Clip the change to the size of this doc if (change.from.line < doc.first) { var shift = change.text.length - 1 - (doc.first - change.from.line); shiftDoc(doc, shift); change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch), text: [lst(change.text)], origin: change.origin}; } var last = doc.lastLine(); if (change.to.line > last) { change = {from: change.from, to: Pos(last, getLine(doc, last).text.length), text: [change.text[0]], origin: change.origin}; } if (!selAfter) selAfter = computeSelAfterChange(doc, change, null); if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans, selAfter); else updateDoc(doc, change, spans, selAfter); } function makeChangeSingleDocInEditor(cm, change, spans, selAfter) { var doc = cm.doc, display = cm.display, from = change.from, to = change.to; var recomputeMaxLength = false, checkWidthStart = from.line; if (!cm.options.lineWrapping) { checkWidthStart = lineNo(visualLine(doc, getLine(doc, from.line))); doc.iter(checkWidthStart, to.line + 1, function(line) { if (line == display.maxLine) { recomputeMaxLength = true; return true; } }); } updateDoc(doc, change, spans, selAfter, estimateHeight(cm)); if (!cm.options.lineWrapping) { doc.iter(checkWidthStart, from.line + change.text.length, function(line) { var len = lineLength(doc, line); if (len > display.maxLineLength) { display.maxLine = line; display.maxLineLength = len; display.maxLineChanged = true; recomputeMaxLength = false; } }); if (recomputeMaxLength) cm.curOp.updateMaxLine = true; } // Adjust frontier, schedule worker doc.frontier = Math.min(doc.frontier, from.line); startWorker(cm, 400); var lendiff = change.text.length - (to.line - from.line) - 1; // Remember that these lines changed, for updating the display regChange(cm, from.line, to.line + 1, lendiff); if (hasHandler(cm, "change")) { var changeObj = {from: from, to: to, text: change.text, origin: change.origin}; if (cm.curOp.textChanged) { for (var cur = cm.curOp.textChanged; cur.next; cur = cur.next) {} cur.next = changeObj; } else cm.curOp.textChanged = changeObj; } } function replaceRange(doc, code, from, to, origin) { if (!to) to = from; if (posLess(to, from)) { var tmp = to; to = from; from = tmp; } if (typeof code == "string") code = splitLines(code); makeChange(doc, {from: from, to: to, text: code, origin: origin}, null); } // POSITION OBJECT function Pos(line, ch) { if (!(this instanceof Pos)) return new Pos(line, ch); this.line = line; this.ch = ch; } CodeMirror.Pos = Pos; function posEq(a, b) {return a.line == b.line && a.ch == b.ch;} function posLess(a, b) {return a.line < b.line || (a.line == b.line && a.ch < b.ch);} function copyPos(x) {return Pos(x.line, x.ch);} // SELECTION function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));} function clipPos(doc, pos) { if (pos.line < doc.first) return Pos(doc.first, 0); var last = doc.first + doc.size - 1; if (pos.line > last) return Pos(last, getLine(doc, last).text.length); return clipToLen(pos, getLine(doc, pos.line).text.length); } function clipToLen(pos, linelen) { var ch = pos.ch; if (ch == null || ch > linelen) return Pos(pos.line, linelen); else if (ch < 0) return Pos(pos.line, 0); else return pos; } function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;} // If shift is held, this will move the selection anchor. Otherwise, // it'll set the whole selection. function extendSelection(doc, pos, other, bias) { if (doc.sel.shift || doc.sel.extend) { var anchor = doc.sel.anchor; if (other) { var posBefore = posLess(pos, anchor); if (posBefore != posLess(other, anchor)) { anchor = pos; pos = other; } else if (posBefore != posLess(pos, other)) { pos = other; } } setSelection(doc, anchor, pos, bias); } else { setSelection(doc, pos, other || pos, bias); } if (doc.cm) doc.cm.curOp.userSelChange = true; } function filterSelectionChange(doc, anchor, head) { var obj = {anchor: anchor, head: head}; signal(doc, "beforeSelectionChange", doc, obj); if (doc.cm) signal(doc.cm, "beforeSelectionChange", doc.cm, obj); obj.anchor = clipPos(doc, obj.anchor); obj.head = clipPos(doc, obj.head); return obj; } // Update the selection. Last two args are only used by // updateDoc, since they have to be expressed in the line // numbers before the update. function setSelection(doc, anchor, head, bias, checkAtomic) { if (!checkAtomic && hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange")) { var filtered = filterSelectionChange(doc, anchor, head); head = filtered.head; anchor = filtered.anchor; } var sel = doc.sel; sel.goalColumn = null; // Skip over atomic spans. if (checkAtomic || !posEq(anchor, sel.anchor)) anchor = skipAtomic(doc, anchor, bias, checkAtomic != "push"); if (checkAtomic || !posEq(head, sel.head)) head = skipAtomic(doc, head, bias, checkAtomic != "push"); if (posEq(sel.anchor, anchor) && posEq(sel.head, head)) return; sel.anchor = anchor; sel.head = head; var inv = posLess(head, anchor); sel.from = inv ? head : anchor; sel.to = inv ? anchor : head; if (doc.cm) doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged = true; signalLater(doc, "cursorActivity", doc); } function reCheckSelection(cm) { setSelection(cm.doc, cm.doc.sel.from, cm.doc.sel.to, null, "push"); } function skipAtomic(doc, pos, bias, mayClear) { var flipped = false, curPos = pos; var dir = bias || 1; doc.cantEdit = false; search: for (;;) { var line = getLine(doc, curPos.line), toClear; if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) { var sp = line.markedSpans[i], m = sp.marker; if ((sp.from == null || (m.inclusiveLeft ? sp.from <= curPos.ch : sp.from < curPos.ch)) && (sp.to == null || (m.inclusiveRight ? sp.to >= curPos.ch : sp.to > curPos.ch))) { if (mayClear && m.clearOnEnter) { (toClear || (toClear = [])).push(m); continue; } else if (!m.atomic) continue; var newPos = m.find()[dir < 0 ? "from" : "to"]; if (posEq(newPos, curPos)) { newPos.ch += dir; if (newPos.ch < 0) { if (newPos.line > doc.first) newPos = clipPos(doc, Pos(newPos.line - 1)); else newPos = null; } else if (newPos.ch > line.text.length) { if (newPos.line < doc.first + doc.size - 1) newPos = Pos(newPos.line + 1, 0); else newPos = null; } if (!newPos) { if (flipped) { // Driven in a corner -- no valid cursor position found at all // -- try again *with* clearing, if we didn't already if (!mayClear) return skipAtomic(doc, pos, bias, true); // Otherwise, turn off editing until further notice, and return the start of the doc doc.cantEdit = true; return Pos(doc.first, 0); } flipped = true; newPos = pos; dir = -dir; } } curPos = newPos; continue search; } } if (toClear) for (var i = 0; i < toClear.length; ++i) toClear[i].clear(); } return curPos; } } // SCROLLING function scrollCursorIntoView(cm) { var coords = scrollPosIntoView(cm, cm.doc.sel.head); if (!cm.state.focused) return; var display = cm.display, box = getRect(display.sizer), doScroll = null; if (coords.top + box.top < 0) doScroll = true; else if (coords.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false; if (doScroll != null && !phantom) { var hidden = display.cursor.style.display == "none"; if (hidden) { display.cursor.style.display = ""; display.cursor.style.left = coords.left + "px"; display.cursor.style.top = (coords.top - display.viewOffset) + "px"; } display.cursor.scrollIntoView(doScroll); if (hidden) display.cursor.style.display = "none"; } } function scrollPosIntoView(cm, pos) { for (;;) { var changed = false, coords = cursorCoords(cm, pos); var scrollPos = calculateScrollPos(cm, coords.left, coords.top, coords.left, coords.bottom); var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft; if (scrollPos.scrollTop != null) { setScrollTop(cm, scrollPos.scrollTop); if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true; } if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true; } if (!changed) return coords; } } function scrollIntoView(cm, x1, y1, x2, y2) { var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2); if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop); if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft); } function calculateScrollPos(cm, x1, y1, x2, y2) { var display = cm.display, pt = paddingTop(display); y1 += pt; y2 += pt; var screen = display.scroller.clientHeight - scrollerCutOff, screentop = display.scroller.scrollTop, result = {}; var docBottom = cm.doc.height + 2 * pt; var atTop = y1 < pt + 10, atBottom = y2 + pt > docBottom - 10; if (y1 < screentop) result.scrollTop = atTop ? 0 : Math.max(0, y1); else if (y2 > screentop + screen) result.scrollTop = (atBottom ? docBottom : y2) - screen; var screenw = display.scroller.clientWidth - scrollerCutOff, screenleft = display.scroller.scrollLeft; x1 += display.gutters.offsetWidth; x2 += display.gutters.offsetWidth; var gutterw = display.gutters.offsetWidth; var atLeft = x1 < gutterw + 10; if (x1 < screenleft + gutterw || atLeft) { if (atLeft) x1 = 0; result.scrollLeft = Math.max(0, x1 - 10 - gutterw); } else if (x2 > screenw + screenleft - 3) { result.scrollLeft = x2 + 10 - screenw; } return result; } // API UTILITIES function indentLine(cm, n, how, aggressive) { var doc = cm.doc; if (!how) how = "add"; if (how == "smart") { if (!cm.doc.mode.indent) how = "prev"; else var state = getStateBefore(cm, n); } var tabSize = cm.options.tabSize; var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize); var curSpaceString = line.text.match(/^\s*/)[0], indentation; if (how == "smart") { indentation = cm.doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text); if (indentation == Pass) { if (!aggressive) return; how = "prev"; } } if (how == "prev") { if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize); else indentation = 0; } else if (how == "add") { indentation = curSpace + cm.options.indentUnit; } else if (how == "subtract") { indentation = curSpace - cm.options.indentUnit; } indentation = Math.max(0, indentation); var indentString = "", pos = 0; if (cm.options.indentWithTabs) for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";} if (pos < indentation) indentString += spaceStr(indentation - pos); if (indentString != curSpaceString) replaceRange(cm.doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input"); line.stateAfter = null; } function changeLine(cm, handle, op) { var no = handle, line = handle, doc = cm.doc; if (typeof handle == "number") line = getLine(doc, clipLine(doc, handle)); else no = lineNo(handle); if (no == null) return null; if (op(line, no)) regChange(cm, no, no + 1); else return null; return line; } function findPosH(doc, pos, dir, unit, visually) { var line = pos.line, ch = pos.ch; var lineObj = getLine(doc, line); var possible = true; function findNextLine() { var l = line + dir; if (l < doc.first || l >= doc.first + doc.size) return (possible = false); line = l; return lineObj = getLine(doc, l); } function moveOnce(boundToLine) { var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true); if (next == null) { if (!boundToLine && findNextLine()) { if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj); else ch = dir < 0 ? lineObj.text.length : 0; } else return (possible = false); } else ch = next; return true; } if (unit == "char") moveOnce(); else if (unit == "column") moveOnce(true); else if (unit == "word") { var sawWord = false; for (;;) { if (dir < 0) if (!moveOnce()) break; if (isWordChar(lineObj.text.charAt(ch))) sawWord = true; else if (sawWord) {if (dir < 0) {dir = 1; moveOnce();} break;} if (dir > 0) if (!moveOnce()) break; } } var result = skipAtomic(doc, Pos(line, ch), dir, true); if (!possible) result.hitSide = true; return result; } function findPosV(cm, pos, dir, unit) { var doc = cm.doc, x = pos.left, y; if (unit == "page") { var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); y = pos.top + dir * pageSize; } else if (unit == "line") { y = dir > 0 ? pos.bottom + 3 : pos.top - 3; } for (;;) { var target = coordsChar(cm, x, y); if (!target.outside) break; if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; } y += dir * 5; } return target; } function findWordAt(line, pos) { var start = pos.ch, end = pos.ch; if (line) { if (pos.after === false || end == line.length) --start; else ++end; var startChar = line.charAt(start); var check = isWordChar(startChar) ? isWordChar : /\s/.test(startChar) ? function(ch) {return /\s/.test(ch);} : function(ch) {return !/\s/.test(ch) && !isWordChar(ch);}; while (start > 0 && check(line.charAt(start - 1))) --start; while (end < line.length && check(line.charAt(end))) ++end; } return {from: Pos(pos.line, start), to: Pos(pos.line, end)}; } function selectLine(cm, line) { extendSelection(cm.doc, Pos(line, 0), clipPos(cm.doc, Pos(line + 1, 0))); } // PROTOTYPE // The publicly visible API. Note that operation(null, f) means // 'wrap f in an operation, performed on its `this` parameter' CodeMirror.prototype = { focus: function(){window.focus(); focusInput(this); onFocus(this); fastPoll(this);}, setOption: function(option, value) { var options = this.options, old = options[option]; if (options[option] == value && option != "mode") return; options[option] = value; if (optionHandlers.hasOwnProperty(option)) operation(this, optionHandlers[option])(this, value, old); }, getOption: function(option) {return this.options[option];}, getDoc: function() {return this.doc;}, addKeyMap: function(map) { this.state.keyMaps.push(map); }, removeKeyMap: function(map) { var maps = this.state.keyMaps; for (var i = 0; i < maps.length; ++i) if ((typeof map == "string" ? maps[i].name : maps[i]) == map) { maps.splice(i, 1); return true; } }, addOverlay: operation(null, function(spec, options) { var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec); if (mode.startState) throw new Error("Overlays may not be stateful."); this.state.overlays.push({mode: mode, modeSpec: spec, opaque: options && options.opaque}); this.state.modeGen++; regChange(this); }), removeOverlay: operation(null, function(spec) { var overlays = this.state.overlays; for (var i = 0; i < overlays.length; ++i) { if (overlays[i].modeSpec == spec) { overlays.splice(i, 1); this.state.modeGen++; regChange(this); return; } } }), indentLine: operation(null, function(n, dir, aggressive) { if (typeof dir != "string") { if (dir == null) dir = this.options.smartIndent ? "smart" : "prev"; else dir = dir ? "add" : "subtract"; } if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive); }), indentSelection: operation(null, function(how) { var sel = this.doc.sel; if (posEq(sel.from, sel.to)) return indentLine(this, sel.from.line, how); var e = sel.to.line - (sel.to.ch ? 0 : 1); for (var i = sel.from.line; i <= e; ++i) indentLine(this, i, how); }), // Fetch the parser token for a given character. Useful for hacks // that want to inspect the mode state (say, for completion). getTokenAt: function(pos) { var doc = this.doc; pos = clipPos(doc, pos); var state = getStateBefore(this, pos.line), mode = this.doc.mode; var line = getLine(doc, pos.line); var stream = new StringStream(line.text, this.options.tabSize); while (stream.pos < pos.ch && !stream.eol()) { stream.start = stream.pos; var style = mode.token(stream, state); } return {start: stream.start, end: stream.pos, string: stream.current(), className: style || null, // Deprecated, use 'type' instead type: style || null, state: state}; }, getStateAfter: function(line) { var doc = this.doc; line = clipLine(doc, line == null ? doc.first + doc.size - 1: line); return getStateBefore(this, line + 1); }, cursorCoords: function(start, mode) { var pos, sel = this.doc.sel; if (start == null) pos = sel.head; else if (typeof start == "object") pos = clipPos(this.doc, start); else pos = start ? sel.from : sel.to; return cursorCoords(this, pos, mode || "page"); }, charCoords: function(pos, mode) { return charCoords(this, clipPos(this.doc, pos), mode || "page"); }, coordsChar: function(coords) { var off = getRect(this.display.lineSpace); var scrollY = window.pageYOffset || (document.documentElement || document.body).scrollTop; var scrollX = window.pageXOffset || (document.documentElement || document.body).scrollLeft; return coordsChar(this, coords.left - off.left - scrollX, coords.top - off.top - scrollY); }, defaultTextHeight: function() { return textHeight(this.display); }, setGutterMarker: operation(null, function(line, gutterID, value) { return changeLine(this, line, function(line) { var markers = line.gutterMarkers || (line.gutterMarkers = {}); markers[gutterID] = value; if (!value && isEmpty(markers)) line.gutterMarkers = null; return true; }); }), clearGutter: operation(null, function(gutterID) { var cm = this, doc = cm.doc, i = doc.first; doc.iter(function(line) { if (line.gutterMarkers && line.gutterMarkers[gutterID]) { line.gutterMarkers[gutterID] = null; regChange(cm, i, i + 1); if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null; } ++i; }); }), addLineClass: operation(null, function(handle, where, cls) { return changeLine(this, handle, function(line) { var prop = where == "text" ? "textClass" : where == "background" ? "bgClass" : "wrapClass"; if (!line[prop]) line[prop] = cls; else if (new RegExp("\\b" + cls + "\\b").test(line[prop])) return false; else line[prop] += " " + cls; return true; }); }), removeLineClass: operation(null, function(handle, where, cls) { return changeLine(this, handle, function(line) { var prop = where == "text" ? "textClass" : where == "background" ? "bgClass" : "wrapClass"; var cur = line[prop]; if (!cur) return false; else if (cls == null) line[prop] = null; else { var upd = cur.replace(new RegExp("^" + cls + "\\b\\s*|\\s*\\b" + cls + "\\b"), ""); if (upd == cur) return false; line[prop] = upd || null; } return true; }); }), addLineWidget: operation(null, function(handle, node, options) { return addLineWidget(this, handle, node, options); }), removeLineWidget: function(widget) { widget.clear(); }, lineInfo: function(line) { if (typeof line == "number") { if (!isLine(this.doc, line)) return null; var n = line; line = getLine(this.doc, line); if (!line) return null; } else { var n = lineNo(line); if (n == null) return null; } return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers, textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass, widgets: line.widgets}; }, getViewport: function() { return {from: this.display.showingFrom, to: this.display.showingTo};}, addWidget: function(pos, node, scroll, vert, horiz) { var display = this.display; pos = cursorCoords(this, clipPos(this.doc, pos)); var top = pos.bottom, left = pos.left; node.style.position = "absolute"; display.sizer.appendChild(node); if (vert == "over") { top = pos.top; } else if (vert == "above" || vert == "near") { var vspace = Math.max(display.wrapper.clientHeight, this.doc.height), hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth); // Default to positioning above (if specified and possible); otherwise default to positioning below if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight) top = pos.top - node.offsetHeight; else if (pos.bottom + node.offsetHeight <= vspace) top = pos.bottom; if (left + node.offsetWidth > hspace) left = hspace - node.offsetWidth; } node.style.top = (top + paddingTop(display)) + "px"; node.style.left = node.style.right = ""; if (horiz == "right") { left = display.sizer.clientWidth - node.offsetWidth; node.style.right = "0px"; } else { if (horiz == "left") left = 0; else if (horiz == "middle") left = (display.sizer.clientWidth - node.offsetWidth) / 2; node.style.left = left + "px"; } if (scroll) scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight); }, triggerOnKeyDown: operation(null, onKeyDown), execCommand: function(cmd) {return commands[cmd](this);}, findPosH: function(from, amount, unit, visually) { var dir = 1; if (amount < 0) { dir = -1; amount = -amount; } for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) { cur = findPosH(this.doc, cur, dir, unit, visually); if (cur.hitSide) break; } return cur; }, moveH: operation(null, function(dir, unit) { var sel = this.doc.sel, pos; if (sel.shift || sel.extend || posEq(sel.from, sel.to)) pos = findPosH(this.doc, sel.head, dir, unit, this.options.rtlMoveVisually); else pos = dir < 0 ? sel.from : sel.to; extendSelection(this.doc, pos, pos, dir); }), deleteH: operation(null, function(dir, unit) { var sel = this.doc.sel; if (!posEq(sel.from, sel.to)) replaceRange(this.doc, "", sel.from, sel.to, "+delete"); else replaceRange(this.doc, "", sel.from, findPosH(this.doc, sel.head, dir, unit, false), "+delete"); this.curOp.userSelChange = true; }), findPosV: function(from, amount, unit, goalColumn) { var dir = 1, x = goalColumn; if (amount < 0) { dir = -1; amount = -amount; } for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) { var coords = cursorCoords(this, cur, "div"); if (x == null) x = coords.left; else coords.left = x; cur = findPosV(this, coords, dir, unit); if (cur.hitSide) break; } return cur; }, moveV: operation(null, function(dir, unit) { var sel = this.doc.sel; var pos = cursorCoords(this, sel.head, "div"); if (sel.goalColumn != null) pos.left = sel.goalColumn; var target = findPosV(this, pos, dir, unit); if (unit == "page") this.display.scrollbarV.scrollTop += charCoords(this, target, "div").top - pos.top; extendSelection(this.doc, target, target, dir); sel.goalColumn = pos.left; }), toggleOverwrite: function() { if (this.state.overwrite = !this.state.overwrite) this.display.cursor.className += " CodeMirror-overwrite"; else this.display.cursor.className = this.display.cursor.className.replace(" CodeMirror-overwrite", ""); }, scrollTo: operation(null, function(x, y) { this.curOp.updateScrollPos = {scrollLeft: x, scrollTop: y}; }), getScrollInfo: function() { var scroller = this.display.scroller, co = scrollerCutOff; return {left: scroller.scrollLeft, top: scroller.scrollTop, height: scroller.scrollHeight - co, width: scroller.scrollWidth - co, clientHeight: scroller.clientHeight - co, clientWidth: scroller.clientWidth - co}; }, scrollIntoView: function(pos) { if (typeof pos == "number") pos = Pos(pos, 0); if (!pos || pos.line != null) { pos = pos ? clipPos(this.doc, pos) : this.doc.sel.head; scrollPosIntoView(this, pos); } else { scrollIntoView(this, pos.left, pos.top, pos.right, pos.bottom); } }, setSize: function(width, height) { function interpret(val) { return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; } if (width != null) this.display.wrapper.style.width = interpret(width); if (height != null) this.display.wrapper.style.height = interpret(height); this.refresh(); }, on: function(type, f) {on(this, type, f);}, off: function(type, f) {off(this, type, f);}, operation: function(f){return runInOp(this, f);}, refresh: operation(null, function() { clearCaches(this); this.curOp.updateScrollPos = {scrollTop: this.doc.scrollTop, scrollLeft: this.doc.scrollLeft}; regChange(this); }), swapDoc: operation(null, function(doc) { var old = this.doc; old.cm = null; attachDoc(this, doc); clearCaches(this); this.curOp.updateScrollPos = {scrollTop: doc.scrollTop, scrollLeft: doc.scrollLeft}; return old; }), getInputField: function(){return this.display.input;}, getWrapperElement: function(){return this.display.wrapper;}, getScrollerElement: function(){return this.display.scroller;}, getGutterElement: function(){return this.display.gutters;} }; // OPTION DEFAULTS var optionHandlers = CodeMirror.optionHandlers = {}; // The default configuration options. var defaults = CodeMirror.defaults = {}; function option(name, deflt, handle, notOnInit) { CodeMirror.defaults[name] = deflt; if (handle) optionHandlers[name] = notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle; } var Init = CodeMirror.Init = {toString: function(){return "CodeMirror.Init";}}; // These two are, on init, called from the constructor because they // have to be initialized before the editor can start at all. option("value", "", function(cm, val) { cm.setValue(val); }, true); option("mode", null, function(cm, val) { cm.doc.modeOption = val; loadMode(cm); }, true); option("indentUnit", 2, loadMode, true); option("indentWithTabs", false); option("smartIndent", true); option("tabSize", 4, function(cm) { loadMode(cm); clearCaches(cm); regChange(cm); }, true); option("electricChars", true); option("rtlMoveVisually", !windows); option("theme", "default", function(cm) { themeChanged(cm); guttersChanged(cm); }, true); option("keyMap", "default", keyMapChanged); option("extraKeys", null); option("onKeyEvent", null); option("onDragEvent", null); option("lineWrapping", false, wrappingChanged, true); option("gutters", [], function(cm) { setGuttersForLineNumbers(cm.options); guttersChanged(cm); }, true); option("fixedGutter", true, function(cm, val) { cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0"; cm.refresh(); }, true); option("lineNumbers", false, function(cm) { setGuttersForLineNumbers(cm.options); guttersChanged(cm); }, true); option("firstLineNumber", 1, guttersChanged, true); option("lineNumberFormatter", function(integer) {return integer;}, guttersChanged, true); option("showCursorWhenSelecting", false, updateSelection, true); option("readOnly", false, function(cm, val) { if (val == "nocursor") {onBlur(cm); cm.display.input.blur();} else if (!val) resetInput(cm, true); }); option("dragDrop", true); option("cursorBlinkRate", 530); option("cursorHeight", 1); option("workTime", 100); option("workDelay", 100); option("flattenSpans", true); option("pollInterval", 100); option("undoDepth", 40, function(cm, val){cm.doc.history.undoDepth = val;}); option("viewportMargin", 10, function(cm){cm.refresh();}, true); option("tabindex", null, function(cm, val) { cm.display.input.tabIndex = val || ""; }); option("autofocus", null); // MODE DEFINITION AND QUERYING // Known modes, by name and by MIME var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {}; CodeMirror.defineMode = function(name, mode) { if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name; if (arguments.length > 2) { mode.dependencies = []; for (var i = 2; i < arguments.length; ++i) mode.dependencies.push(arguments[i]); } modes[name] = mode; }; CodeMirror.defineMIME = function(mime, spec) { mimeModes[mime] = spec; }; CodeMirror.resolveMode = function(spec) { if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) spec = mimeModes[spec]; else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) return CodeMirror.resolveMode("application/xml"); if (typeof spec == "string") return {name: spec}; else return spec || {name: "null"}; }; CodeMirror.getMode = function(options, spec) { spec = CodeMirror.resolveMode(spec); var mfactory = modes[spec.name]; if (!mfactory) return CodeMirror.getMode(options, "text/plain"); var modeObj = mfactory(options, spec); if (modeExtensions.hasOwnProperty(spec.name)) { var exts = modeExtensions[spec.name]; for (var prop in exts) { if (!exts.hasOwnProperty(prop)) continue; if (modeObj.hasOwnProperty(prop)) modeObj["_" + prop] = modeObj[prop]; modeObj[prop] = exts[prop]; } } modeObj.name = spec.name; return modeObj; }; CodeMirror.defineMode("null", function() { return {token: function(stream) {stream.skipToEnd();}}; }); CodeMirror.defineMIME("text/plain", "null"); var modeExtensions = CodeMirror.modeExtensions = {}; CodeMirror.extendMode = function(mode, properties) { var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {}); copyObj(properties, exts); }; // EXTENSIONS CodeMirror.defineExtension = function(name, func) { CodeMirror.prototype[name] = func; }; CodeMirror.defineOption = option; var initHooks = []; CodeMirror.defineInitHook = function(f) {initHooks.push(f);}; // MODE STATE HANDLING // Utility functions for working with state. Exported because modes // sometimes need to do this. function copyState(mode, state) { if (state === true) return state; if (mode.copyState) return mode.copyState(state); var nstate = {}; for (var n in state) { var val = state[n]; if (val instanceof Array) val = val.concat([]); nstate[n] = val; } return nstate; } CodeMirror.copyState = copyState; function startState(mode, a1, a2) { return mode.startState ? mode.startState(a1, a2) : true; } CodeMirror.startState = startState; CodeMirror.innerMode = function(mode, state) { while (mode.innerMode) { var info = mode.innerMode(state); state = info.state; mode = info.mode; } return info || {mode: mode, state: state}; }; // STANDARD COMMANDS var commands = CodeMirror.commands = { selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()));}, killLine: function(cm) { var from = cm.getCursor(true), to = cm.getCursor(false), sel = !posEq(from, to); if (!sel && cm.getLine(from.line).length == from.ch) cm.replaceRange("", from, Pos(from.line + 1, 0), "+delete"); else cm.replaceRange("", from, sel ? to : Pos(from.line), "+delete"); }, deleteLine: function(cm) { var l = cm.getCursor().line; cm.replaceRange("", Pos(l, 0), Pos(l), "+delete"); }, undo: function(cm) {cm.undo();}, redo: function(cm) {cm.redo();}, goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));}, goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));}, goLineStart: function(cm) { cm.extendSelection(lineStart(cm, cm.getCursor().line)); }, goLineStartSmart: function(cm) { var cur = cm.getCursor(), start = lineStart(cm, cur.line); var line = cm.getLineHandle(start.line); var order = getOrder(line); if (!order || order[0].level == 0) { var firstNonWS = Math.max(0, line.text.search(/\S/)); var inWS = cur.line == start.line && cur.ch <= firstNonWS && cur.ch; cm.extendSelection(Pos(start.line, inWS ? 0 : firstNonWS)); } else cm.extendSelection(start); }, goLineEnd: function(cm) { cm.extendSelection(lineEnd(cm, cm.getCursor().line)); }, goLineUp: function(cm) {cm.moveV(-1, "line");}, goLineDown: function(cm) {cm.moveV(1, "line");}, goPageUp: function(cm) {cm.moveV(-1, "page");}, goPageDown: function(cm) {cm.moveV(1, "page");}, goCharLeft: function(cm) {cm.moveH(-1, "char");}, goCharRight: function(cm) {cm.moveH(1, "char");}, goColumnLeft: function(cm) {cm.moveH(-1, "column");}, goColumnRight: function(cm) {cm.moveH(1, "column");}, goWordLeft: function(cm) {cm.moveH(-1, "word");}, goWordRight: function(cm) {cm.moveH(1, "word");}, delCharBefore: function(cm) {cm.deleteH(-1, "char");}, delCharAfter: function(cm) {cm.deleteH(1, "char");}, delWordBefore: function(cm) {cm.deleteH(-1, "word");}, delWordAfter: function(cm) {cm.deleteH(1, "word");}, indentAuto: function(cm) {cm.indentSelection("smart");}, indentMore: function(cm) {cm.indentSelection("add");}, indentLess: function(cm) {cm.indentSelection("subtract");}, insertTab: function(cm) {cm.replaceSelection("\t", "end", "+input");}, defaultTab: function(cm) { if (cm.somethingSelected()) cm.indentSelection("add"); else cm.replaceSelection("\t", "end", "+input"); }, transposeChars: function(cm) { var cur = cm.getCursor(), line = cm.getLine(cur.line); if (cur.ch > 0 && cur.ch < line.length - 1) cm.replaceRange(line.charAt(cur.ch) + line.charAt(cur.ch - 1), Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1)); }, newlineAndIndent: function(cm) { operation(cm, function() { cm.replaceSelection("\n", "end", "+input"); cm.indentLine(cm.getCursor().line, null, true); })(); }, toggleOverwrite: function(cm) {cm.toggleOverwrite();} }; // STANDARD KEYMAPS var keyMap = CodeMirror.keyMap = {}; keyMap.basic = { "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown", "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown", "Delete": "delCharAfter", "Backspace": "delCharBefore", "Tab": "defaultTab", "Shift-Tab": "indentAuto", "Enter": "newlineAndIndent", "Insert": "toggleOverwrite" }; // Note that the save and find-related commands aren't defined by // default. Unknown commands are simply ignored. keyMap.pcDefault = { "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo", "Ctrl-Home": "goDocStart", "Alt-Up": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Down": "goDocEnd", "Ctrl-Left": "goWordLeft", "Ctrl-Right": "goWordRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd", "Ctrl-Backspace": "delWordBefore", "Ctrl-Delete": "delWordAfter", "Ctrl-S": "save", "Ctrl-F": "find", "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll", "Ctrl-[": "indentLess", "Ctrl-]": "indentMore", fallthrough: "basic" }; keyMap.macDefault = { "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goWordLeft", "Alt-Right": "goWordRight", "Cmd-Left": "goLineStart", "Cmd-Right": "goLineEnd", "Alt-Backspace": "delWordBefore", "Ctrl-Alt-Backspace": "delWordAfter", "Alt-Delete": "delWordAfter", "Cmd-S": "save", "Cmd-F": "find", "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll", "Cmd-[": "indentLess", "Cmd-]": "indentMore", fallthrough: ["basic", "emacsy"] }; keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; keyMap.emacsy = { "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown", "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore", "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars" }; // KEYMAP DISPATCH function getKeyMap(val) { if (typeof val == "string") return keyMap[val]; else return val; } function lookupKey(name, maps, handle) { function lookup(map) { map = getKeyMap(map); var found = map[name]; if (found === false) return "stop"; if (found != null && handle(found)) return true; if (map.nofallthrough) return "stop"; var fallthrough = map.fallthrough; if (fallthrough == null) return false; if (Object.prototype.toString.call(fallthrough) != "[object Array]") return lookup(fallthrough); for (var i = 0, e = fallthrough.length; i < e; ++i) { var done = lookup(fallthrough[i]); if (done) return done; } return false; } for (var i = 0; i < maps.length; ++i) { var done = lookup(maps[i]); if (done) return done; } } function isModifierKey(event) { var name = keyNames[event.keyCode]; return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"; } function keyName(event, noShift) { var name = keyNames[event.keyCode]; if (name == null || event.altGraphKey) return false; if (event.altKey) name = "Alt-" + name; if (flipCtrlCmd ? event.metaKey : event.ctrlKey) name = "Ctrl-" + name; if (flipCtrlCmd ? event.ctrlKey : event.metaKey) name = "Cmd-" + name; if (!noShift && event.shiftKey) name = "Shift-" + name; return name; } CodeMirror.lookupKey = lookupKey; CodeMirror.isModifierKey = isModifierKey; CodeMirror.keyName = keyName; // FROMTEXTAREA CodeMirror.fromTextArea = function(textarea, options) { if (!options) options = {}; options.value = textarea.value; if (!options.tabindex && textarea.tabindex) options.tabindex = textarea.tabindex; // Set autofocus to true if this textarea is focused, or if it has // autofocus and no other element is focused. if (options.autofocus == null) { var hasFocus = document.body; // doc.activeElement occasionally throws on IE try { hasFocus = document.activeElement; } catch(e) {} options.autofocus = hasFocus == textarea || textarea.getAttribute("autofocus") != null && hasFocus == document.body; } function save() {textarea.value = cm.getValue();} if (textarea.form) { // Deplorable hack to make the submit method do the right thing. on(textarea.form, "submit", save); var form = textarea.form, realSubmit = form.submit; try { var wrappedSubmit = form.submit = function() { save(); form.submit = realSubmit; form.submit(); form.submit = wrappedSubmit; }; } catch(e) {} } textarea.style.display = "none"; var cm = CodeMirror(function(node) { textarea.parentNode.insertBefore(node, textarea.nextSibling); }, options); cm.save = save; cm.getTextArea = function() { return textarea; }; cm.toTextArea = function() { save(); textarea.parentNode.removeChild(cm.getWrapperElement()); textarea.style.display = ""; if (textarea.form) { off(textarea.form, "submit", save); if (typeof textarea.form.submit == "function") textarea.form.submit = realSubmit; } }; return cm; }; // STRING STREAM // Fed to the mode parsers, provides helper functions to make // parsers more succinct. // The character stream used by a mode's parser. function StringStream(string, tabSize) { this.pos = this.start = 0; this.string = string; this.tabSize = tabSize || 8; } StringStream.prototype = { eol: function() {return this.pos >= this.string.length;}, sol: function() {return this.pos == 0;}, peek: function() {return this.string.charAt(this.pos) || undefined;}, next: function() { if (this.pos < this.string.length) return this.string.charAt(this.pos++); }, eat: function(match) { var ch = this.string.charAt(this.pos); if (typeof match == "string") var ok = ch == match; else var ok = ch && (match.test ? match.test(ch) : match(ch)); if (ok) {++this.pos; return ch;} }, eatWhile: function(match) { var start = this.pos; while (this.eat(match)){} return this.pos > start; }, eatSpace: function() { var start = this.pos; while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos; return this.pos > start; }, skipToEnd: function() {this.pos = this.string.length;}, skipTo: function(ch) { var found = this.string.indexOf(ch, this.pos); if (found > -1) {this.pos = found; return true;} }, backUp: function(n) {this.pos -= n;}, column: function() {return countColumn(this.string, this.start, this.tabSize);}, indentation: function() {return countColumn(this.string, null, this.tabSize);}, match: function(pattern, consume, caseInsensitive) { if (typeof pattern == "string") { var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;}; if (cased(this.string).indexOf(cased(pattern), this.pos) == this.pos) { if (consume !== false) this.pos += pattern.length; return true; } } else { var match = this.string.slice(this.pos).match(pattern); if (match && match.index > 0) return null; if (match && consume !== false) this.pos += match[0].length; return match; } }, current: function(){return this.string.slice(this.start, this.pos);} }; CodeMirror.StringStream = StringStream; // TEXTMARKERS function TextMarker(doc, type) { this.lines = []; this.type = type; this.doc = doc; } CodeMirror.TextMarker = TextMarker; TextMarker.prototype.clear = function() { if (this.explicitlyCleared) return; var cm = this.doc.cm, withOp = cm && !cm.curOp; if (withOp) startOperation(cm); var min = null, max = null; for (var i = 0; i < this.lines.length; ++i) { var line = this.lines[i]; var span = getMarkedSpanFor(line.markedSpans, this); if (span.to != null) max = lineNo(line); line.markedSpans = removeMarkedSpan(line.markedSpans, span); if (span.from != null) min = lineNo(line); else if (this.collapsed && !lineIsHidden(this.doc, line) && cm) updateLineHeight(line, textHeight(cm.display)); } if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) { var visual = visualLine(cm.doc, this.lines[i]), len = lineLength(cm.doc, visual); if (len > cm.display.maxLineLength) { cm.display.maxLine = visual; cm.display.maxLineLength = len; cm.display.maxLineChanged = true; } } if (min != null && cm) regChange(cm, min, max + 1); this.lines.length = 0; this.explicitlyCleared = true; if (this.collapsed && this.doc.cantEdit) { this.doc.cantEdit = false; if (cm) reCheckSelection(cm); } if (withOp) endOperation(cm); signalLater(this, "clear"); }; TextMarker.prototype.find = function() { var from, to; for (var i = 0; i < this.lines.length; ++i) { var line = this.lines[i]; var span = getMarkedSpanFor(line.markedSpans, this); if (span.from != null || span.to != null) { var found = lineNo(line); if (span.from != null) from = Pos(found, span.from); if (span.to != null) to = Pos(found, span.to); } } if (this.type == "bookmark") return from; return from && {from: from, to: to}; }; TextMarker.prototype.getOptions = function(copyWidget) { var repl = this.replacedWith; return {className: this.className, inclusiveLeft: this.inclusiveLeft, inclusiveRight: this.inclusiveRight, atomic: this.atomic, collapsed: this.collapsed, clearOnEnter: this.clearOnEnter, replacedWith: copyWidget ? repl && repl.cloneNode(true) : repl, readOnly: this.readOnly, startStyle: this.startStyle, endStyle: this.endStyle}; }; TextMarker.prototype.attachLine = function(line) { if (!this.lines.length && this.doc.cm) { var op = this.doc.cm.curOp; if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1) (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); } this.lines.push(line); }; TextMarker.prototype.detachLine = function(line) { this.lines.splice(indexOf(this.lines, line), 1); if (!this.lines.length && this.doc.cm) { var op = this.doc.cm.curOp; (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this); } }; function markText(doc, from, to, options, type) { if (options && options.shared) return markTextShared(doc, from, to, options, type); if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type); var marker = new TextMarker(doc, type); if (type == "range" && !posLess(from, to)) return marker; if (options) copyObj(options, marker); if (marker.replacedWith) { marker.collapsed = true; marker.replacedWith = elt("span", [marker.replacedWith], "CodeMirror-widget"); } if (marker.collapsed) sawCollapsedSpans = true; var curLine = from.line, size = 0, collapsedAtStart, collapsedAtEnd, cm = doc.cm, updateMaxLine; doc.iter(curLine, to.line + 1, function(line) { if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(doc, line) == cm.display.maxLine) updateMaxLine = true; var span = {from: null, to: null, marker: marker}; size += line.text.length; if (curLine == from.line) {span.from = from.ch; size -= from.ch;} if (curLine == to.line) {span.to = to.ch; size -= line.text.length - to.ch;} if (marker.collapsed) { if (curLine == to.line) collapsedAtEnd = collapsedSpanAt(line, to.ch); if (curLine == from.line) collapsedAtStart = collapsedSpanAt(line, from.ch); else updateLineHeight(line, 0); } addMarkedSpan(line, span); ++curLine; }); if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) { if (lineIsHidden(doc, line)) updateLineHeight(line, 0); }); if (marker.readOnly) { sawReadOnlySpans = true; if (doc.history.done.length || doc.history.undone.length) doc.clearHistory(); } if (marker.collapsed) { if (collapsedAtStart != collapsedAtEnd) throw new Error("Inserting collapsed marker overlapping an existing one"); marker.size = size; marker.atomic = true; } if (cm) { if (updateMaxLine) cm.curOp.updateMaxLine = true; if (marker.className || marker.startStyle || marker.endStyle || marker.collapsed) regChange(cm, from.line, to.line + 1); if (marker.atomic) reCheckSelection(cm); } return marker; } // SHARED TEXTMARKERS function SharedTextMarker(markers, primary) { this.markers = markers; this.primary = primary; for (var i = 0, me = this; i < markers.length; ++i) { markers[i].parent = this; on(markers[i], "clear", function(){me.clear();}); } } CodeMirror.SharedTextMarker = SharedTextMarker; SharedTextMarker.prototype.clear = function() { if (this.explicitlyCleared) return; this.explicitlyCleared = true; for (var i = 0; i < this.markers.length; ++i) this.markers[i].clear(); signalLater(this, "clear"); }; SharedTextMarker.prototype.find = function() { return this.primary.find(); }; SharedTextMarker.prototype.getOptions = function(copyWidget) { var inner = this.primary.getOptions(copyWidget); inner.shared = true; return inner; }; function markTextShared(doc, from, to, options, type) { options = copyObj(options); options.shared = false; var markers = [markText(doc, from, to, options, type)], primary = markers[0]; linkedDocs(doc, function(doc) { markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type)); for (var i = 0; i < doc.linked.length; ++i) if (doc.linked[i].isParent) return; primary = lst(markers); }); return new SharedTextMarker(markers, primary); } // TEXTMARKER SPANS function getMarkedSpanFor(spans, marker) { if (spans) for (var i = 0; i < spans.length; ++i) { var span = spans[i]; if (span.marker == marker) return span; } } function removeMarkedSpan(spans, span) { for (var r, i = 0; i < spans.length; ++i) if (spans[i] != span) (r || (r = [])).push(spans[i]); return r; } function addMarkedSpan(line, span) { line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; span.marker.attachLine(line); } function markedSpansBefore(old, startCh, isInsert) { if (old) for (var i = 0, nw; i < old.length; ++i) { var span = old[i], marker = span.marker; var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh); if (startsBefore || marker.type == "bookmark" && span.from == startCh && (!isInsert || !span.marker.insertLeft)) { var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh); (nw || (nw = [])).push({from: span.from, to: endsAfter ? null : span.to, marker: marker}); } } return nw; } function markedSpansAfter(old, endCh, isInsert) { if (old) for (var i = 0, nw; i < old.length; ++i) { var span = old[i], marker = span.marker; var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh); if (endsAfter || marker.type == "bookmark" && span.from == endCh && (!isInsert || span.marker.insertLeft)) { var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh); (nw || (nw = [])).push({from: startsBefore ? null : span.from - endCh, to: span.to == null ? null : span.to - endCh, marker: marker}); } } return nw; } function stretchSpansOverChange(doc, change) { var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans; var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans; if (!oldFirst && !oldLast) return null; var startCh = change.from.ch, endCh = change.to.ch, isInsert = posEq(change.from, change.to); // Get the spans that 'stick out' on both sides var first = markedSpansBefore(oldFirst, startCh, isInsert); var last = markedSpansAfter(oldLast, endCh, isInsert); // Next, merge those two ends var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0); if (first) { // Fix up .to properties of first for (var i = 0; i < first.length; ++i) { var span = first[i]; if (span.to == null) { var found = getMarkedSpanFor(last, span.marker); if (!found) span.to = startCh; else if (sameLine) span.to = found.to == null ? null : found.to + offset; } } } if (last) { // Fix up .from in last (or move them into first in case of sameLine) for (var i = 0; i < last.length; ++i) { var span = last[i]; if (span.to != null) span.to += offset; if (span.from == null) { var found = getMarkedSpanFor(first, span.marker); if (!found) { span.from = offset; if (sameLine) (first || (first = [])).push(span); } } else { span.from += offset; if (sameLine) (first || (first = [])).push(span); } } } var newMarkers = [first]; if (!sameLine) { // Fill gap with whole-line-spans var gap = change.text.length - 2, gapMarkers; if (gap > 0 && first) for (var i = 0; i < first.length; ++i) if (first[i].to == null) (gapMarkers || (gapMarkers = [])).push({from: null, to: null, marker: first[i].marker}); for (var i = 0; i < gap; ++i) newMarkers.push(gapMarkers); newMarkers.push(last); } return newMarkers; } function mergeOldSpans(doc, change) { var old = getOldSpans(doc, change); var stretched = stretchSpansOverChange(doc, change); if (!old) return stretched; if (!stretched) return old; for (var i = 0; i < old.length; ++i) { var oldCur = old[i], stretchCur = stretched[i]; if (oldCur && stretchCur) { spans: for (var j = 0; j < stretchCur.length; ++j) { var span = stretchCur[j]; for (var k = 0; k < oldCur.length; ++k) if (oldCur[k].marker == span.marker) continue spans; oldCur.push(span); } } else if (stretchCur) { old[i] = stretchCur; } } return old; } function removeReadOnlyRanges(doc, from, to) { var markers = null; doc.iter(from.line, to.line + 1, function(line) { if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) { var mark = line.markedSpans[i].marker; if (mark.readOnly && (!markers || indexOf(markers, mark) == -1)) (markers || (markers = [])).push(mark); } }); if (!markers) return null; var parts = [{from: from, to: to}]; for (var i = 0; i < markers.length; ++i) { var mk = markers[i], m = mk.find(); for (var j = 0; j < parts.length; ++j) { var p = parts[j]; if (posLess(p.to, m.from) || posLess(m.to, p.from)) continue; var newParts = [j, 1]; if (posLess(p.from, m.from) || !mk.inclusiveLeft && posEq(p.from, m.from)) newParts.push({from: p.from, to: m.from}); if (posLess(m.to, p.to) || !mk.inclusiveRight && posEq(p.to, m.to)) newParts.push({from: m.to, to: p.to}); parts.splice.apply(parts, newParts); j += newParts.length - 1; } } return parts; } function collapsedSpanAt(line, ch) { var sps = sawCollapsedSpans && line.markedSpans, found; if (sps) for (var sp, i = 0; i < sps.length; ++i) { sp = sps[i]; if (!sp.marker.collapsed) continue; if ((sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) && (!found || found.width < sp.marker.width)) found = sp.marker; } return found; } function collapsedSpanAtStart(line) { return collapsedSpanAt(line, -1); } function collapsedSpanAtEnd(line) { return collapsedSpanAt(line, line.text.length + 1); } function visualLine(doc, line) { var merged; while (merged = collapsedSpanAtStart(line)) line = getLine(doc, merged.find().from.line); return line; } function lineIsHidden(doc, line) { var sps = sawCollapsedSpans && line.markedSpans; if (sps) for (var sp, i = 0; i < sps.length; ++i) { sp = sps[i]; if (!sp.marker.collapsed) continue; if (sp.from == null) return true; if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp)) return true; } } function lineIsHiddenInner(doc, line, span) { if (span.to == null) { var end = span.marker.find().to, endLine = getLine(doc, end.line); return lineIsHiddenInner(doc, endLine, getMarkedSpanFor(endLine.markedSpans, span.marker)); } if (span.marker.inclusiveRight && span.to == line.text.length) return true; for (var sp, i = 0; i < line.markedSpans.length; ++i) { sp = line.markedSpans[i]; if (sp.marker.collapsed && sp.from == span.to && (sp.marker.inclusiveLeft || span.marker.inclusiveRight) && lineIsHiddenInner(doc, line, sp)) return true; } } function detachMarkedSpans(line) { var spans = line.markedSpans; if (!spans) return; for (var i = 0; i < spans.length; ++i) spans[i].marker.detachLine(line); line.markedSpans = null; } function attachMarkedSpans(line, spans) { if (!spans) return; for (var i = 0; i < spans.length; ++i) spans[i].marker.attachLine(line); line.markedSpans = spans; } // LINE WIDGETS var LineWidget = CodeMirror.LineWidget = function(cm, node, options) { for (var opt in options) if (options.hasOwnProperty(opt)) this[opt] = options[opt]; this.cm = cm; this.node = node; }; function widgetOperation(f) { return function() { var withOp = !this.cm.curOp; if (withOp) startOperation(this.cm); try {var result = f.apply(this, arguments);} finally {if (withOp) endOperation(this.cm);} return result; }; } LineWidget.prototype.clear = widgetOperation(function() { var ws = this.line.widgets, no = lineNo(this.line); if (no == null || !ws) return; for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1); if (!ws.length) this.line.widgets = null; updateLineHeight(this.line, Math.max(0, this.line.height - widgetHeight(this))); regChange(this.cm, no, no + 1); }); LineWidget.prototype.changed = widgetOperation(function() { var oldH = this.height; this.height = null; var diff = widgetHeight(this) - oldH; if (!diff) return; updateLineHeight(this.line, this.line.height + diff); var no = lineNo(this.line); regChange(this.cm, no, no + 1); }); function widgetHeight(widget) { if (widget.height != null) return widget.height; if (!widget.node.parentNode || widget.node.parentNode.nodeType != 1) removeChildrenAndAdd(widget.cm.display.measure, elt("div", [widget.node], null, "position: relative")); return widget.height = widget.node.offsetHeight; } function addLineWidget(cm, handle, node, options) { var widget = new LineWidget(cm, node, options); if (widget.noHScroll) cm.display.alignWidgets = true; changeLine(cm, handle, function(line) { (line.widgets || (line.widgets = [])).push(widget); widget.line = line; if (!lineIsHidden(cm.doc, line) || widget.showIfHidden) { var aboveVisible = heightAtLine(cm, line) < cm.display.scroller.scrollTop; updateLineHeight(line, line.height + widgetHeight(widget)); if (aboveVisible) cm.curOp.updateScrollPos = {scrollTop: cm.doc.scrollTop + widget.height, scrollLeft: cm.doc.scrollLeft}; } return true; }); return widget; } // LINE DATA STRUCTURE // Line objects. These hold state related to a line, including // highlighting info (the styles array). function makeLine(text, markedSpans, estimateHeight) { var line = {text: text}; attachMarkedSpans(line, markedSpans); line.height = estimateHeight ? estimateHeight(line) : 1; return line; } function updateLine(line, text, markedSpans, estimateHeight) { line.text = text; if (line.stateAfter) line.stateAfter = null; if (line.styles) line.styles = null; if (line.order != null) line.order = null; detachMarkedSpans(line); attachMarkedSpans(line, markedSpans); var estHeight = estimateHeight ? estimateHeight(line) : 1; if (estHeight != line.height) updateLineHeight(line, estHeight); signalLater(line, "change"); } function cleanUpLine(line) { line.parent = null; detachMarkedSpans(line); } // Run the given mode's parser over a line, update the styles // array, which contains alternating fragments of text and CSS // classes. function runMode(cm, text, mode, state, f) { var flattenSpans = cm.options.flattenSpans; var curText = "", curStyle = null; var stream = new StringStream(text, cm.options.tabSize); if (text == "" && mode.blankLine) mode.blankLine(state); while (!stream.eol()) { var style = mode.token(stream, state); if (stream.pos > 5000) { flattenSpans = false; // Webkit seems to refuse to render text nodes longer than 57444 characters stream.pos = Math.min(text.length, stream.start + 50000); style = null; } var substr = stream.current(); stream.start = stream.pos; if (!flattenSpans || curStyle != style) { if (curText) f(curText, curStyle); curText = substr; curStyle = style; } else curText = curText + substr; } if (curText) f(curText, curStyle); } function highlightLine(cm, line, state) { // A styles array always starts with a number identifying the // mode/overlays that it is based on (for easy invalidation). var st = [cm.state.modeGen]; // Compute the base array of styles runMode(cm, line.text, cm.doc.mode, state, function(txt, style) {st.push(txt, style);}); // Run overlays, adjust style array. for (var o = 0; o < cm.state.overlays.length; ++o) { var overlay = cm.state.overlays[o], i = 1; runMode(cm, line.text, overlay.mode, true, function(txt, style) { var start = i, len = txt.length; // Ensure there's a token end at the current position, and that i points at it while (len) { var cur = st[i], len_ = cur.length; if (len_ <= len) { len -= len_; } else { st.splice(i, 1, cur.slice(0, len), st[i+1], cur.slice(len)); len = 0; } i += 2; } if (!style) return; if (overlay.opaque) { st.splice(start, i - start, txt, style); i = start + 2; } else { for (; start < i; start += 2) { var cur = st[start+1]; st[start+1] = cur ? cur + " " + style : style; } } }); } return st; } function getLineStyles(cm, line) { if (!line.styles || line.styles[0] != cm.state.modeGen) line.styles = highlightLine(cm, line, line.stateAfter = getStateBefore(cm, lineNo(line))); return line.styles; } // Lightweight form of highlight -- proceed over this line and // update state, but don't save a style array. function processLine(cm, line, state) { var mode = cm.doc.mode; var stream = new StringStream(line.text, cm.options.tabSize); if (line.text == "" && mode.blankLine) mode.blankLine(state); while (!stream.eol() && stream.pos <= 5000) { mode.token(stream, state); stream.start = stream.pos; } } var styleToClassCache = {}; function styleToClass(style) { if (!style) return null; return styleToClassCache[style] || (styleToClassCache[style] = "cm-" + style.replace(/ +/g, " cm-")); } function lineContent(cm, realLine, measure) { var merged, line = realLine, lineBefore, sawBefore, simple = true; while (merged = collapsedSpanAtStart(line)) { simple = false; line = getLine(cm.doc, merged.find().from.line); if (!lineBefore) lineBefore = line; } var builder = {pre: elt("pre"), col: 0, pos: 0, display: !measure, measure: null, addedOne: false, cm: cm}; if (line.textClass) builder.pre.className = line.textClass; do { builder.measure = line == realLine && measure; builder.pos = 0; builder.addToken = builder.measure ? buildTokenMeasure : buildToken; if (measure && sawBefore && line != realLine && !builder.addedOne) { measure[0] = builder.pre.appendChild(zeroWidthElement(cm.display.measure)); builder.addedOne = true; } var next = insertLineContent(line, builder, getLineStyles(cm, line)); sawBefore = line == lineBefore; if (next) { line = getLine(cm.doc, next.to.line); simple = false; } } while (next); if (measure && !builder.addedOne) measure[0] = builder.pre.appendChild(simple ? elt("span", "\u00a0") : zeroWidthElement(cm.display.measure)); if (!builder.pre.firstChild && !lineIsHidden(cm.doc, realLine)) builder.pre.appendChild(document.createTextNode("\u00a0")); var order; // Work around problem with the reported dimensions of single-char // direction spans on IE (issue #1129). See also the comment in // cursorCoords. if (measure && ie && (order = getOrder(line))) { var l = order.length - 1; if (order[l].from == order[l].to) --l; var last = order[l], prev = order[l - 1]; if (last.from + 1 == last.to && prev && last.level < prev.level) { var span = measure[builder.pos - 1]; if (span) span.parentNode.insertBefore(span.measureRight = zeroWidthElement(cm.display.measure), span.nextSibling); } } return builder.pre; } var tokenSpecialChars = /[\t\u0000-\u0019\u200b\u2028\u2029\uFEFF]/g; function buildToken(builder, text, style, startStyle, endStyle) { if (!text) return; if (!tokenSpecialChars.test(text)) { builder.col += text.length; var content = document.createTextNode(text); } else { var content = document.createDocumentFragment(), pos = 0; while (true) { tokenSpecialChars.lastIndex = pos; var m = tokenSpecialChars.exec(text); var skipped = m ? m.index - pos : text.length - pos; if (skipped) { content.appendChild(document.createTextNode(text.slice(pos, pos + skipped))); builder.col += skipped; } if (!m) break; pos += skipped + 1; if (m[0] == "\t") { var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize; content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab")); builder.col += tabWidth; } else { var token = elt("span", "\u2022", "cm-invalidchar"); token.title = "\\u" + m[0].charCodeAt(0).toString(16); content.appendChild(token); builder.col += 1; } } } if (style || startStyle || endStyle || builder.measure) { var fullStyle = style || ""; if (startStyle) fullStyle += startStyle; if (endStyle) fullStyle += endStyle; return builder.pre.appendChild(elt("span", [content], fullStyle)); } builder.pre.appendChild(content); } function buildTokenMeasure(builder, text, style, startStyle, endStyle) { for (var i = 0; i < text.length; ++i) { var ch = text.charAt(i), start = i == 0; if (ch >= "\ud800" && ch < "\udbff" && i < text.length - 1) { ch = text.slice(i, i + 2); ++i; } else if (i && builder.cm.options.lineWrapping && spanAffectsWrapping.test(text.slice(i - 1, i + 1))) { builder.pre.appendChild(elt("wbr")); } builder.measure[builder.pos] = buildToken(builder, ch, style, start && startStyle, i == text.length - 1 && endStyle); builder.pos += ch.length; } if (text.length) builder.addedOne = true; } function buildCollapsedSpan(builder, size, widget) { if (widget) { if (!builder.display) widget = widget.cloneNode(true); builder.pre.appendChild(widget); if (builder.measure && size) { builder.measure[builder.pos] = widget; builder.addedOne = true; } } builder.pos += size; } // Outputs a number of spans to make up a line, taking highlighting // and marked text into account. function insertLineContent(line, builder, styles) { var spans = line.markedSpans; if (!spans) { for (var i = 1; i < styles.length; i+=2) builder.addToken(builder, styles[i], styleToClass(styles[i+1])); return; } var allText = line.text, len = allText.length; var pos = 0, i = 1, text = "", style; var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed; for (;;) { if (nextChange == pos) { // Update current marker set spanStyle = spanEndStyle = spanStartStyle = ""; collapsed = null; nextChange = Infinity; var foundBookmark = null; for (var j = 0; j < spans.length; ++j) { var sp = spans[j], m = sp.marker; if (sp.from <= pos && (sp.to == null || sp.to > pos)) { if (sp.to != null && nextChange > sp.to) { nextChange = sp.to; spanEndStyle = ""; } if (m.className) spanStyle += " " + m.className; if (m.startStyle && sp.from == pos) spanStartStyle += " " + m.startStyle; if (m.endStyle && sp.to == nextChange) spanEndStyle += " " + m.endStyle; if (m.collapsed && (!collapsed || collapsed.marker.width < m.width)) collapsed = sp; } else if (sp.from > pos && nextChange > sp.from) { nextChange = sp.from; } if (m.type == "bookmark" && sp.from == pos && m.replacedWith) foundBookmark = m.replacedWith; } if (collapsed && (collapsed.from || 0) == pos) { buildCollapsedSpan(builder, (collapsed.to == null ? len : collapsed.to) - pos, collapsed.from != null && collapsed.marker.replacedWith); if (collapsed.to == null) return collapsed.marker.find(); } if (foundBookmark && !collapsed) buildCollapsedSpan(builder, 0, foundBookmark); } if (pos >= len) break; var upto = Math.min(len, nextChange); while (true) { if (text) { var end = pos + text.length; if (!collapsed) { var tokenText = end > upto ? text.slice(0, upto - pos) : text; builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle, spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : ""); } if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;} pos = end; spanStartStyle = ""; } text = styles[i++]; style = styleToClass(styles[i++]); } } } // DOCUMENT DATA STRUCTURE function updateDoc(doc, change, markedSpans, selAfter, estimateHeight) { function spansFor(n) {return markedSpans ? markedSpans[n] : null;} var from = change.from, to = change.to, text = change.text; var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line); var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line; // First adjust the line structure if (from.ch == 0 && to.ch == 0 && lastText == "") { // This is a whole-line replace. Treated specially to make // sure line objects move the way they are supposed to. for (var i = 0, e = text.length - 1, added = []; i < e; ++i) added.push(makeLine(text[i], spansFor(i), estimateHeight)); updateLine(lastLine, lastLine.text, lastSpans, estimateHeight); if (nlines) doc.remove(from.line, nlines); if (added.length) doc.insert(from.line, added); } else if (firstLine == lastLine) { if (text.length == 1) { updateLine(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight); } else { for (var added = [], i = 1, e = text.length - 1; i < e; ++i) added.push(makeLine(text[i], spansFor(i), estimateHeight)); added.push(makeLine(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight)); updateLine(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0), estimateHeight); doc.insert(from.line + 1, added); } } else if (text.length == 1) { updateLine(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0), estimateHeight); doc.remove(from.line + 1, nlines); } else { updateLine(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0), estimateHeight); updateLine(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans, estimateHeight); for (var i = 1, e = text.length - 1, added = []; i < e; ++i) added.push(makeLine(text[i], spansFor(i), estimateHeight)); if (nlines > 1) doc.remove(from.line + 1, nlines - 1); doc.insert(from.line + 1, added); } signalLater(doc, "change", doc, change); setSelection(doc, selAfter.anchor, selAfter.head, null, true); } function LeafChunk(lines) { this.lines = lines; this.parent = null; for (var i = 0, e = lines.length, height = 0; i < e; ++i) { lines[i].parent = this; height += lines[i].height; } this.height = height; } LeafChunk.prototype = { chunkSize: function() { return this.lines.length; }, removeInner: function(at, n) { for (var i = at, e = at + n; i < e; ++i) { var line = this.lines[i]; this.height -= line.height; cleanUpLine(line); signalLater(line, "delete"); } this.lines.splice(at, n); }, collapse: function(lines) { lines.splice.apply(lines, [lines.length, 0].concat(this.lines)); }, insertInner: function(at, lines, height) { this.height += height; this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); for (var i = 0, e = lines.length; i < e; ++i) lines[i].parent = this; }, iterN: function(at, n, op) { for (var e = at + n; at < e; ++at) if (op(this.lines[at])) return true; } }; function BranchChunk(children) { this.children = children; var size = 0, height = 0; for (var i = 0, e = children.length; i < e; ++i) { var ch = children[i]; size += ch.chunkSize(); height += ch.height; ch.parent = this; } this.size = size; this.height = height; this.parent = null; } BranchChunk.prototype = { chunkSize: function() { return this.size; }, removeInner: function(at, n) { this.size -= n; for (var i = 0; i < this.children.length; ++i) { var child = this.children[i], sz = child.chunkSize(); if (at < sz) { var rm = Math.min(n, sz - at), oldHeight = child.height; child.removeInner(at, rm); this.height -= oldHeight - child.height; if (sz == rm) { this.children.splice(i--, 1); child.parent = null; } if ((n -= rm) == 0) break; at = 0; } else at -= sz; } if (this.size - n < 25) { var lines = []; this.collapse(lines); this.children = [new LeafChunk(lines)]; this.children[0].parent = this; } }, collapse: function(lines) { for (var i = 0, e = this.children.length; i < e; ++i) this.children[i].collapse(lines); }, insertInner: function(at, lines, height) { this.size += lines.length; this.height += height; for (var i = 0, e = this.children.length; i < e; ++i) { var child = this.children[i], sz = child.chunkSize(); if (at <= sz) { child.insertInner(at, lines, height); if (child.lines && child.lines.length > 50) { while (child.lines.length > 50) { var spilled = child.lines.splice(child.lines.length - 25, 25); var newleaf = new LeafChunk(spilled); child.height -= newleaf.height; this.children.splice(i + 1, 0, newleaf); newleaf.parent = this; } this.maybeSpill(); } break; } at -= sz; } }, maybeSpill: function() { if (this.children.length <= 10) return; var me = this; do { var spilled = me.children.splice(me.children.length - 5, 5); var sibling = new BranchChunk(spilled); if (!me.parent) { // Become the parent node var copy = new BranchChunk(me.children); copy.parent = me; me.children = [copy, sibling]; me = copy; } else { me.size -= sibling.size; me.height -= sibling.height; var myIndex = indexOf(me.parent.children, me); me.parent.children.splice(myIndex + 1, 0, sibling); } sibling.parent = me.parent; } while (me.children.length > 10); me.parent.maybeSpill(); }, iterN: function(at, n, op) { for (var i = 0, e = this.children.length; i < e; ++i) { var child = this.children[i], sz = child.chunkSize(); if (at < sz) { var used = Math.min(n, sz - at); if (child.iterN(at, used, op)) return true; if ((n -= used) == 0) break; at = 0; } else at -= sz; } } }; var nextDocId = 0; var Doc = CodeMirror.Doc = function(text, mode, firstLine) { if (!(this instanceof Doc)) return new Doc(text, mode, firstLine); if (firstLine == null) firstLine = 0; BranchChunk.call(this, [new LeafChunk([makeLine("", null)])]); this.first = firstLine; this.scrollTop = this.scrollLeft = 0; this.cantEdit = false; this.history = makeHistory(); this.frontier = firstLine; var start = Pos(firstLine, 0); this.sel = {from: start, to: start, head: start, anchor: start, shift: false, extend: false, goalColumn: null}; this.id = ++nextDocId; this.modeOption = mode; if (typeof text == "string") text = splitLines(text); updateDoc(this, {from: start, to: start, text: text}, null, {head: start, anchor: start}); }; Doc.prototype = createObj(BranchChunk.prototype, { iter: function(from, to, op) { if (op) this.iterN(from - this.first, to - from, op); else this.iterN(this.first, this.first + this.size, from); }, insert: function(at, lines) { var height = 0; for (var i = 0, e = lines.length; i < e; ++i) height += lines[i].height; this.insertInner(at - this.first, lines, height); }, remove: function(at, n) { this.removeInner(at - this.first, n); }, getValue: function(lineSep) { var lines = getLines(this, this.first, this.first + this.size); if (lineSep === false) return lines; return lines.join(lineSep || "\n"); }, setValue: function(code) { var top = Pos(this.first, 0), last = this.first + this.size - 1; makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length), text: splitLines(code), origin: "setValue"}, {head: top, anchor: top}, true); }, replaceRange: function(code, from, to, origin) { from = clipPos(this, from); to = to ? clipPos(this, to) : from; replaceRange(this, code, from, to, origin); }, getRange: function(from, to, lineSep) { var lines = getBetween(this, clipPos(this, from), clipPos(this, to)); if (lineSep === false) return lines; return lines.join(lineSep || "\n"); }, getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;}, setLine: function(line, text) { if (isLine(this, line)) replaceRange(this, text, Pos(line, 0), clipPos(this, Pos(line))); }, removeLine: function(line) { if (isLine(this, line)) replaceRange(this, "", Pos(line, 0), clipPos(this, Pos(line + 1, 0))); }, getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);}, getLineNumber: function(line) {return lineNo(line);}, lineCount: function() {return this.size;}, firstLine: function() {return this.first;}, lastLine: function() {return this.first + this.size - 1;}, clipPos: function(pos) {return clipPos(this, pos);}, getCursor: function(start) { var sel = this.sel, pos; if (start == null || start == "head") pos = sel.head; else if (start == "anchor") pos = sel.anchor; else if (start == "end" || start === false) pos = sel.to; else pos = sel.from; return copyPos(pos); }, somethingSelected: function() {return !posEq(this.sel.head, this.sel.anchor);}, setCursor: docOperation(function(line, ch, extend) { var pos = clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line); if (extend) extendSelection(this, pos); else setSelection(this, pos, pos); }), setSelection: docOperation(function(anchor, head) { setSelection(this, clipPos(this, anchor), clipPos(this, head || anchor)); }), extendSelection: docOperation(function(from, to) { extendSelection(this, clipPos(this, from), to && clipPos(this, to)); }), getSelection: function(lineSep) {return this.getRange(this.sel.from, this.sel.to, lineSep);}, replaceSelection: function(code, collapse, origin) { makeChange(this, {from: this.sel.from, to: this.sel.to, text: splitLines(code), origin: origin}, collapse || "around"); }, undo: docOperation(function() {makeChangeFromHistory(this, "undo");}), redo: docOperation(function() {makeChangeFromHistory(this, "redo");}), setExtending: function(val) {this.sel.extend = val;}, historySize: function() { var hist = this.history; return {undo: hist.done.length, redo: hist.undone.length}; }, clearHistory: function() {this.history = makeHistory();}, markClean: function() { this.history.dirtyCounter = 0; this.history.lastOp = this.history.lastOrigin = null; }, isClean: function () {return this.history.dirtyCounter == 0;}, getHistory: function() { return {done: copyHistoryArray(this.history.done), undone: copyHistoryArray(this.history.undone)}; }, setHistory: function(histData) { var hist = this.history = makeHistory(); hist.done = histData.done.slice(0); hist.undone = histData.undone.slice(0); }, markText: function(from, to, options) { return markText(this, clipPos(this, from), clipPos(this, to), options, "range"); }, setBookmark: function(pos, options) { var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options), insertLeft: options && options.insertLeft}; pos = clipPos(this, pos); return markText(this, pos, pos, realOpts, "bookmark"); }, findMarksAt: function(pos) { pos = clipPos(this, pos); var markers = [], spans = getLine(this, pos.line).markedSpans; if (spans) for (var i = 0; i < spans.length; ++i) { var span = spans[i]; if ((span.from == null || span.from <= pos.ch) && (span.to == null || span.to >= pos.ch)) markers.push(span.marker.parent || span.marker); } return markers; }, getAllMarks: function() { var markers = []; this.iter(function(line) { var sps = line.markedSpans; if (sps) for (var i = 0; i < sps.length; ++i) if (sps[i].from != null) markers.push(sps[i].marker); }); return markers; }, posFromIndex: function(off) { var ch, lineNo = this.first; this.iter(function(line) { var sz = line.text.length + 1; if (sz > off) { ch = off; return true; } off -= sz; ++lineNo; }); return clipPos(this, Pos(lineNo, ch)); }, indexFromPos: function (coords) { coords = clipPos(this, coords); var index = coords.ch; if (coords.line < this.first || coords.ch < 0) return 0; this.iter(this.first, coords.line, function (line) { index += line.text.length + 1; }); return index; }, copy: function(copyHistory) { var doc = new Doc(getLines(this, this.first, this.first + this.size), this.modeOption, this.first); doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft; doc.sel = {from: this.sel.from, to: this.sel.to, head: this.sel.head, anchor: this.sel.anchor, shift: this.sel.shift, extend: false, goalColumn: this.sel.goalColumn}; if (copyHistory) { doc.history.undoDepth = this.history.undoDepth; doc.setHistory(this.getHistory()); } return doc; }, linkedDoc: function(options) { if (!options) options = {}; var from = this.first, to = this.first + this.size; if (options.from != null && options.from > from) from = options.from; if (options.to != null && options.to < to) to = options.to; var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from); if (options.sharedHist) copy.history = this.history; (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist}); copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}]; return copy; }, unlinkDoc: function(other) { if (other instanceof CodeMirror) other = other.doc; if (this.linked) for (var i = 0; i < this.linked.length; ++i) { var link = this.linked[i]; if (link.doc != other) continue; this.linked.splice(i, 1); other.unlinkDoc(this); break; } // If the histories were shared, split them again if (other.history == this.history) { var splitIds = [other.id]; linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true); other.history = makeHistory(); other.history.done = copyHistoryArray(this.history.done, splitIds); other.history.undone = copyHistoryArray(this.history.undone, splitIds); } }, iterLinkedDocs: function(f) {linkedDocs(this, f);}, getMode: function() {return this.mode;}, getEditor: function() {return this.cm;} }); Doc.prototype.eachLine = Doc.prototype.iter; // The Doc methods that should be available on CodeMirror instances var dontDelegate = "iter insert remove copy getEditor".split(" "); for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0) CodeMirror.prototype[prop] = (function(method) { return function() {return method.apply(this.doc, arguments);}; })(Doc.prototype[prop]); function linkedDocs(doc, f, sharedHistOnly) { function propagate(doc, skip, sharedHist) { if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) { var rel = doc.linked[i]; if (rel.doc == skip) continue; var shared = sharedHist && rel.sharedHist; if (sharedHistOnly && !shared) continue; f(rel.doc, shared); propagate(rel.doc, doc, shared); } } propagate(doc, null, true); } function attachDoc(cm, doc) { if (doc.cm) throw new Error("This document is already in use."); cm.doc = doc; doc.cm = cm; estimateLineHeights(cm); loadMode(cm); if (!cm.options.lineWrapping) computeMaxLength(cm); cm.options.mode = doc.modeOption; regChange(cm); } // LINE UTILITIES function getLine(chunk, n) { n -= chunk.first; while (!chunk.lines) { for (var i = 0;; ++i) { var child = chunk.children[i], sz = child.chunkSize(); if (n < sz) { chunk = child; break; } n -= sz; } } return chunk.lines[n]; } function getBetween(doc, start, end) { var out = [], n = start.line; doc.iter(start.line, end.line + 1, function(line) { var text = line.text; if (n == end.line) text = text.slice(0, end.ch); if (n == start.line) text = text.slice(start.ch); out.push(text); ++n; }); return out; } function getLines(doc, from, to) { var out = []; doc.iter(from, to, function(line) { out.push(line.text); }); return out; } function updateLineHeight(line, height) { var diff = height - line.height; for (var n = line; n; n = n.parent) n.height += diff; } function lineNo(line) { if (line.parent == null) return null; var cur = line.parent, no = indexOf(cur.lines, line); for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { for (var i = 0;; ++i) { if (chunk.children[i] == cur) break; no += chunk.children[i].chunkSize(); } } return no + cur.first; } function lineAtHeight(chunk, h) { var n = chunk.first; outer: do { for (var i = 0, e = chunk.children.length; i < e; ++i) { var child = chunk.children[i], ch = child.height; if (h < ch) { chunk = child; continue outer; } h -= ch; n += child.chunkSize(); } return n; } while (!chunk.lines); for (var i = 0, e = chunk.lines.length; i < e; ++i) { var line = chunk.lines[i], lh = line.height; if (h < lh) break; h -= lh; } return n + i; } function heightAtLine(cm, lineObj) { lineObj = visualLine(cm.doc, lineObj); var h = 0, chunk = lineObj.parent; for (var i = 0; i < chunk.lines.length; ++i) { var line = chunk.lines[i]; if (line == lineObj) break; else h += line.height; } for (var p = chunk.parent; p; chunk = p, p = chunk.parent) { for (var i = 0; i < p.children.length; ++i) { var cur = p.children[i]; if (cur == chunk) break; else h += cur.height; } } return h; } function getOrder(line) { var order = line.order; if (order == null) order = line.order = bidiOrdering(line.text); return order; } // HISTORY function makeHistory() { return { // Arrays of history events. Doing something adds an event to // done and clears undo. Undoing moves events from done to // undone, redoing moves them in the other direction. done: [], undone: [], undoDepth: Infinity, // Used to track when changes can be merged into a single undo // event lastTime: 0, lastOp: null, lastOrigin: null, // Used by the isClean() method dirtyCounter: 0 }; } function attachLocalSpans(doc, change, from, to) { var existing = change["spans_" + doc.id], n = 0; doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) { if (line.markedSpans) (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; ++n; }); } function historyChangeFromChange(doc, change) { var histChange = {from: change.from, to: changeEnd(change), text: getBetween(doc, change.from, change.to)}; attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true); return histChange; } function addToHistory(doc, change, selAfter, opId) { var hist = doc.history; hist.undone.length = 0; var time = +new Date, cur = lst(hist.done); if (cur && (hist.lastOp == opId || hist.lastOrigin == change.origin && change.origin && ((change.origin.charAt(0) == "+" && hist.lastTime > time - 600) || change.origin.charAt(0) == "*"))) { // Merge this change into the last event var last = lst(cur.changes); if (posEq(change.from, change.to) && posEq(change.from, last.to)) { // Optimized case for simple insertion -- don't want to add // new changesets for every character typed last.to = changeEnd(change); } else { // Add new sub-event cur.changes.push(historyChangeFromChange(doc, change)); } cur.anchorAfter = selAfter.anchor; cur.headAfter = selAfter.head; } else { // Can not be merged, start a new event. cur = {changes: [historyChangeFromChange(doc, change)], anchorBefore: doc.sel.anchor, headBefore: doc.sel.head, anchorAfter: selAfter.anchor, headAfter: selAfter.head}; hist.done.push(cur); while (hist.done.length > hist.undoDepth) hist.done.shift(); if (hist.dirtyCounter < 0) // The user has made a change after undoing past the last clean state. // We can never get back to a clean state now until markClean() is called. hist.dirtyCounter = NaN; else hist.dirtyCounter++; } hist.lastTime = time; hist.lastOp = opId; hist.lastOrigin = change.origin; } function removeClearedSpans(spans) { if (!spans) return null; for (var i = 0, out; i < spans.length; ++i) { if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); } else if (out) out.push(spans[i]); } return !out ? spans : out.length ? out : null; } function getOldSpans(doc, change) { var found = change["spans_" + doc.id]; if (!found) return null; for (var i = 0, nw = []; i < change.text.length; ++i) nw.push(removeClearedSpans(found[i])); return nw; } // Used both to provide a JSON-safe object in .getHistory, and, when // detaching a document, to split the history in two function copyHistoryArray(events, newGroup) { for (var i = 0, copy = []; i < events.length; ++i) { var event = events[i], changes = event.changes, newChanges = []; copy.push({changes: newChanges, anchorBefore: event.anchorBefore, headBefore: event.headBefore, anchorAfter: event.anchorAfter, headAfter: event.headAfter}); for (var j = 0; j < changes.length; ++j) { var change = changes[j], m; newChanges.push({from: change.from, to: change.to, text: change.text}); if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\d+)$/)) { if (indexOf(newGroup, Number(m[1])) > -1) { lst(newChanges)[prop] = change[prop]; delete change[prop]; } } } } return copy; } // Rebasing/resetting history to deal with externally-sourced changes function rebaseHistSel(pos, from, to, diff) { if (to < pos.line) { pos.line += diff; } else if (from < pos.line) { pos.line = from; pos.ch = 0; } } // Tries to rebase an array of history events given a change in the // document. If the change touches the same lines as the event, the // event, and everything 'behind' it, is discarded. If the change is // before the event, the event's positions are updated. Uses a // copy-on-write scheme for the positions, to avoid having to // reallocate them all on every rebase, but also avoid problems with // shared position objects being unsafely updated. function rebaseHistArray(array, from, to, diff) { for (var i = 0; i < array.length; ++i) { var sub = array[i], ok = true; for (var j = 0; j < sub.changes.length; ++j) { var cur = sub.changes[j]; if (!sub.copied) { cur.from = copyPos(cur.from); cur.to = copyPos(cur.to); } if (to < cur.from.line) { cur.from.line += diff; cur.to.line += diff; } else if (from <= cur.to.line) { ok = false; break; } } if (!sub.copied) { sub.anchorBefore = copyPos(sub.anchorBefore); sub.headBefore = copyPos(sub.headBefore); sub.anchorAfter = copyPos(sub.anchorAfter); sub.readAfter = copyPos(sub.headAfter); sub.copied = true; } if (!ok) { array.splice(0, i + 1); i = 0; } else { rebaseHistSel(sub.anchorBefore); rebaseHistSel(sub.headBefore); rebaseHistSel(sub.anchorAfter); rebaseHistSel(sub.headAfter); } } } function rebaseHist(hist, change) { var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1; rebaseHistArray(hist.done, from, to, diff); rebaseHistArray(hist.undone, from, to, diff); } // EVENT OPERATORS function stopMethod() {e_stop(this);} // Ensure an event has a stop method. function addStop(event) { if (!event.stop) event.stop = stopMethod; return event; } function e_preventDefault(e) { if (e.preventDefault) e.preventDefault(); else e.returnValue = false; } function e_stopPropagation(e) { if (e.stopPropagation) e.stopPropagation(); else e.cancelBubble = true; } function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);} CodeMirror.e_stop = e_stop; CodeMirror.e_preventDefault = e_preventDefault; CodeMirror.e_stopPropagation = e_stopPropagation; function e_target(e) {return e.target || e.srcElement;} function e_button(e) { var b = e.which; if (b == null) { if (e.button & 1) b = 1; else if (e.button & 2) b = 3; else if (e.button & 4) b = 2; } if (mac && e.ctrlKey && b == 1) b = 3; return b; } // EVENT HANDLING function on(emitter, type, f) { if (emitter.addEventListener) emitter.addEventListener(type, f, false); else if (emitter.attachEvent) emitter.attachEvent("on" + type, f); else { var map = emitter._handlers || (emitter._handlers = {}); var arr = map[type] || (map[type] = []); arr.push(f); } } function off(emitter, type, f) { if (emitter.removeEventListener) emitter.removeEventListener(type, f, false); else if (emitter.detachEvent) emitter.detachEvent("on" + type, f); else { var arr = emitter._handlers && emitter._handlers[type]; if (!arr) return; for (var i = 0; i < arr.length; ++i) if (arr[i] == f) { arr.splice(i, 1); break; } } } function signal(emitter, type /*, values...*/) { var arr = emitter._handlers && emitter._handlers[type]; if (!arr) return; var args = Array.prototype.slice.call(arguments, 2); for (var i = 0; i < arr.length; ++i) arr[i].apply(null, args); } var delayedCallbacks, delayedCallbackDepth = 0; function signalLater(emitter, type /*, values...*/) { var arr = emitter._handlers && emitter._handlers[type]; if (!arr) return; var args = Array.prototype.slice.call(arguments, 2); if (!delayedCallbacks) { ++delayedCallbackDepth; delayedCallbacks = []; setTimeout(fireDelayed, 0); } function bnd(f) {return function(){f.apply(null, args);};}; for (var i = 0; i < arr.length; ++i) delayedCallbacks.push(bnd(arr[i])); } function fireDelayed() { --delayedCallbackDepth; var delayed = delayedCallbacks; delayedCallbacks = null; for (var i = 0; i < delayed.length; ++i) delayed[i](); } function hasHandler(emitter, type) { var arr = emitter._handlers && emitter._handlers[type]; return arr && arr.length > 0; } CodeMirror.on = on; CodeMirror.off = off; CodeMirror.signal = signal; // MISC UTILITIES // Number of pixels added to scroller and sizer to hide scrollbar var scrollerCutOff = 30; // Returned or thrown by various protocols to signal 'I'm not // handling this'. var Pass = CodeMirror.Pass = {toString: function(){return "CodeMirror.Pass";}}; function Delayed() {this.id = null;} Delayed.prototype = {set: function(ms, f) {clearTimeout(this.id); this.id = setTimeout(f, ms);}}; // Counts the column offset in a string, taking tabs into account. // Used mostly to find indentation. function countColumn(string, end, tabSize) { if (end == null) { end = string.search(/[^\s\u00a0]/); if (end == -1) end = string.length; } for (var i = 0, n = 0; i < end; ++i) { if (string.charAt(i) == "\t") n += tabSize - (n % tabSize); else ++n; } return n; } CodeMirror.countColumn = countColumn; var spaceStrs = [""]; function spaceStr(n) { while (spaceStrs.length <= n) spaceStrs.push(lst(spaceStrs) + " "); return spaceStrs[n]; } function lst(arr) { return arr[arr.length-1]; } function selectInput(node) { if (ios) { // Mobile Safari apparently has a bug where select() is broken. node.selectionStart = 0; node.selectionEnd = node.value.length; } else node.select(); } function indexOf(collection, elt) { if (collection.indexOf) return collection.indexOf(elt); for (var i = 0, e = collection.length; i < e; ++i) if (collection[i] == elt) return i; return -1; } function createObj(base, props) { function Obj() {} Obj.prototype = base; var inst = new Obj(); if (props) copyObj(props, inst); return inst; } function copyObj(obj, target) { if (!target) target = {}; for (var prop in obj) if (obj.hasOwnProperty(prop)) target[prop] = obj[prop]; return target; } function emptyArray(size) { for (var a = [], i = 0; i < size; ++i) a.push(undefined); return a; } function bind(f) { var args = Array.prototype.slice.call(arguments, 1); return function(){return f.apply(null, args);}; } var nonASCIISingleCaseWordChar = /[\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc]/; function isWordChar(ch) { return /\w/.test(ch) || ch > "\x80" && (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)); } function isEmpty(obj) { for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false; return true; } var isExtendingChar = /[\u0300-\u036F\u0483-\u0487\u0488-\u0489\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\uA66F\uA670-\uA672\uA674-\uA67D\uA69F\udc00-\udfff]/; // DOM UTILITIES function elt(tag, content, className, style) { var e = document.createElement(tag); if (className) e.className = className; if (style) e.style.cssText = style; if (typeof content == "string") setTextContent(e, content); else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]); return e; } function removeChildren(e) { // IE will break all parent-child relations in subnodes when setting innerHTML if (!ie) e.innerHTML = ""; else while (e.firstChild) e.removeChild(e.firstChild); return e; } function removeChildrenAndAdd(parent, e) { return removeChildren(parent).appendChild(e); } function setTextContent(e, str) { if (ie_lt9) { e.innerHTML = ""; e.appendChild(document.createTextNode(str)); } else e.textContent = str; } function getRect(node) { return node.getBoundingClientRect(); } CodeMirror.replaceGetRect = function(f) { getRect = f; }; // FEATURE DETECTION // Detect drag-and-drop var dragAndDrop = function() { // There is *some* kind of drag-and-drop support in IE6-8, but I // couldn't get it to work yet. if (ie_lt9) return false; var div = elt('div'); return "draggable" in div || "dragDrop" in div; }(); // For a reason I have yet to figure out, some browsers disallow // word wrapping between certain characters *only* if a new inline // element is started between them. This makes it hard to reliably // measure the position of things, since that requires inserting an // extra span. This terribly fragile set of regexps matches the // character combinations that suffer from this phenomenon on the // various browsers. var spanAffectsWrapping = /^$/; // Won't match any two-character string if (gecko) spanAffectsWrapping = /$'/; else if (safari) spanAffectsWrapping = /\-[^ \-?]|\?[^ !'\"\),.\-\/:;\?\]\}]/; else if (chrome) spanAffectsWrapping = /\-[^ \-\.?]|\?[^ \-\.?\]\}:;!'\"\),\/]|[\.!\"#&%\)*+,:;=>\]|\}~][\(\{\[<]|\$'/; var knownScrollbarWidth; function scrollbarWidth(measure) { if (knownScrollbarWidth != null) return knownScrollbarWidth; var test = elt("div", null, null, "width: 50px; height: 50px; overflow-x: scroll"); removeChildrenAndAdd(measure, test); if (test.offsetWidth) knownScrollbarWidth = test.offsetHeight - test.clientHeight; return knownScrollbarWidth || 0; } var zwspSupported; function zeroWidthElement(measure) { if (zwspSupported == null) { var test = elt("span", "\u200b"); removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")])); if (measure.firstChild.offsetHeight != 0) zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !ie_lt8; } if (zwspSupported) return elt("span", "\u200b"); else return elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px"); } // See if "".split is the broken IE version, if so, provide an // alternative way to split lines. var splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) { var pos = 0, result = [], l = string.length; while (pos <= l) { var nl = string.indexOf("\n", pos); if (nl == -1) nl = string.length; var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); var rt = line.indexOf("\r"); if (rt != -1) { result.push(line.slice(0, rt)); pos += rt + 1; } else { result.push(line); pos = nl + 1; } } return result; } : function(string){return string.split(/\r\n?|\n/);}; CodeMirror.splitLines = splitLines; var hasSelection = window.getSelection ? function(te) { try { return te.selectionStart != te.selectionEnd; } catch(e) { return false; } } : function(te) { try {var range = te.ownerDocument.selection.createRange();} catch(e) {} if (!range || range.parentElement() != te) return false; return range.compareEndPoints("StartToEnd", range) != 0; }; var hasCopyEvent = (function() { var e = elt("div"); if ("oncopy" in e) return true; e.setAttribute("oncopy", "return;"); return typeof e.oncopy == 'function'; })(); // KEY NAMING var keyNames = {3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", 46: "Delete", 59: ";", 91: "Mod", 92: "Mod", 93: "Mod", 109: "-", 107: "=", 127: "Delete", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", 221: "]", 222: "'", 63276: "PageUp", 63277: "PageDown", 63275: "End", 63273: "Home", 63234: "Left", 63232: "Up", 63235: "Right", 63233: "Down", 63302: "Insert", 63272: "Delete"}; CodeMirror.keyNames = keyNames; (function() { // Number keys for (var i = 0; i < 10; i++) keyNames[i + 48] = String(i); // Alphabetic keys for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i); // Function keys for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i; })(); // BIDI HELPERS function iterateBidiSections(order, from, to, f) { if (!order) return f(from, to, "ltr"); for (var i = 0; i < order.length; ++i) { var part = order[i]; if (part.from < to && part.to > from || from == to && part.to == from) f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr"); } } function bidiLeft(part) { return part.level % 2 ? part.to : part.from; } function bidiRight(part) { return part.level % 2 ? part.from : part.to; } function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; } function lineRight(line) { var order = getOrder(line); if (!order) return line.text.length; return bidiRight(lst(order)); } function lineStart(cm, lineN) { var line = getLine(cm.doc, lineN); var visual = visualLine(cm.doc, line); if (visual != line) lineN = lineNo(visual); var order = getOrder(visual); var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual); return Pos(lineN, ch); } function lineEnd(cm, lineN) { var merged, line; while (merged = collapsedSpanAtEnd(line = getLine(cm.doc, lineN))) lineN = merged.find().to.line; var order = getOrder(line); var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line); return Pos(lineN, ch); } // This is somewhat involved. It is needed in order to move // 'visually' through bi-directional text -- i.e., pressing left // should make the cursor go left, even when in RTL text. The // tricky part is the 'jumps', where RTL and LTR text touch each // other. This often requires the cursor offset to move more than // one unit, in order to visually move one unit. function moveVisually(line, start, dir, byUnit) { var bidi = getOrder(line); if (!bidi) return moveLogically(line, start, dir, byUnit); var moveOneUnit = byUnit ? function(pos, dir) { do pos += dir; while (pos > 0 && isExtendingChar.test(line.text.charAt(pos))); return pos; } : function(pos, dir) { return pos + dir; }; var linedir = bidi[0].level; for (var i = 0; i < bidi.length; ++i) { var part = bidi[i], sticky = part.level % 2 == linedir; if ((part.from < start && part.to > start) || (sticky && (part.from == start || part.to == start))) break; } var target = moveOneUnit(start, part.level % 2 ? -dir : dir); while (target != null) { if (part.level % 2 == linedir) { if (target < part.from || target > part.to) { part = bidi[i += dir]; target = part && (dir > 0 == part.level % 2 ? moveOneUnit(part.to, -1) : moveOneUnit(part.from, 1)); } else break; } else { if (target == bidiLeft(part)) { part = bidi[--i]; target = part && bidiRight(part); } else if (target == bidiRight(part)) { part = bidi[++i]; target = part && bidiLeft(part); } else break; } } return target < 0 || target > line.text.length ? null : target; } function moveLogically(line, start, dir, byUnit) { var target = start + dir; if (byUnit) while (target > 0 && isExtendingChar.test(line.text.charAt(target))) target += dir; return target < 0 || target > line.text.length ? null : target; } // Bidirectional ordering algorithm // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm // that this (partially) implements. // One-char codes used for character types: // L (L): Left-to-Right // R (R): Right-to-Left // r (AL): Right-to-Left Arabic // 1 (EN): European Number // + (ES): European Number Separator // % (ET): European Number Terminator // n (AN): Arabic Number // , (CS): Common Number Separator // m (NSM): Non-Spacing Mark // b (BN): Boundary Neutral // s (B): Paragraph Separator // t (S): Segment Separator // w (WS): Whitespace // N (ON): Other Neutrals // Returns null if characters are ordered as they appear // (left-to-right), or an array of sections ({from, to, level} // objects) in the order in which they occur visually. var bidiOrdering = (function() { // Character types for codepoints 0 to 0xff var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL"; // Character types for codepoints 0x600 to 0x6ff var arabicTypes = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmmrrrrrrrrrrrrrrrrrr"; function charType(code) { if (code <= 0xff) return lowTypes.charAt(code); else if (0x590 <= code && code <= 0x5f4) return "R"; else if (0x600 <= code && code <= 0x6ff) return arabicTypes.charAt(code - 0x600); else if (0x700 <= code && code <= 0x8ac) return "r"; else return "L"; } var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/; // Browsers seem to always treat the boundaries of block elements as being L. var outerType = "L"; return function(str) { if (!bidiRE.test(str)) return false; var len = str.length, types = []; for (var i = 0, type; i < len; ++i) types.push(type = charType(str.charCodeAt(i))); // W1. Examine each non-spacing mark (NSM) in the level run, and // change the type of the NSM to the type of the previous // character. If the NSM is at the start of the level run, it will // get the type of sor. for (var i = 0, prev = outerType; i < len; ++i) { var type = types[i]; if (type == "m") types[i] = prev; else prev = type; } // W2. Search backwards from each instance of a European number // until the first strong type (R, L, AL, or sor) is found. If an // AL is found, change the type of the European number to Arabic // number. // W3. Change all ALs to R. for (var i = 0, cur = outerType; i < len; ++i) { var type = types[i]; if (type == "1" && cur == "r") types[i] = "n"; else if (isStrong.test(type)) { cur = type; if (type == "r") types[i] = "R"; } } // W4. A single European separator between two European numbers // changes to a European number. A single common separator between // two numbers of the same type changes to that type. for (var i = 1, prev = types[0]; i < len - 1; ++i) { var type = types[i]; if (type == "+" && prev == "1" && types[i+1] == "1") types[i] = "1"; else if (type == "," && prev == types[i+1] && (prev == "1" || prev == "n")) types[i] = prev; prev = type; } // W5. A sequence of European terminators adjacent to European // numbers changes to all European numbers. // W6. Otherwise, separators and terminators change to Other // Neutral. for (var i = 0; i < len; ++i) { var type = types[i]; if (type == ",") types[i] = "N"; else if (type == "%") { for (var end = i + 1; end < len && types[end] == "%"; ++end) {} var replace = (i && types[i-1] == "!") || (end < len - 1 && types[end] == "1") ? "1" : "N"; for (var j = i; j < end; ++j) types[j] = replace; i = end - 1; } } // W7. Search backwards from each instance of a European number // until the first strong type (R, L, or sor) is found. If an L is // found, then change the type of the European number to L. for (var i = 0, cur = outerType; i < len; ++i) { var type = types[i]; if (cur == "L" && type == "1") types[i] = "L"; else if (isStrong.test(type)) cur = type; } // N1. A sequence of neutrals takes the direction of the // surrounding strong text if the text on both sides has the same // direction. European and Arabic numbers act as if they were R in // terms of their influence on neutrals. Start-of-level-run (sor) // and end-of-level-run (eor) are used at level run boundaries. // N2. Any remaining neutrals take the embedding direction. for (var i = 0; i < len; ++i) { if (isNeutral.test(types[i])) { for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {} var before = (i ? types[i-1] : outerType) == "L"; var after = (end < len - 1 ? types[end] : outerType) == "L"; var replace = before || after ? "L" : "R"; for (var j = i; j < end; ++j) types[j] = replace; i = end - 1; } } // Here we depart from the documented algorithm, in order to avoid // building up an actual levels array. Since there are only three // levels (0, 1, 2) in an implementation that doesn't take // explicit embedding into account, we can build up the order on // the fly, without following the level-based algorithm. var order = [], m; for (var i = 0; i < len;) { if (countsAsLeft.test(types[i])) { var start = i; for (++i; i < len && countsAsLeft.test(types[i]); ++i) {} order.push({from: start, to: i, level: 0}); } else { var pos = i, at = order.length; for (++i; i < len && types[i] != "L"; ++i) {} for (var j = pos; j < i;) { if (countsAsNum.test(types[j])) { if (pos < j) order.splice(at, 0, {from: pos, to: j, level: 1}); var nstart = j; for (++j; j < i && countsAsNum.test(types[j]); ++j) {} order.splice(at, 0, {from: nstart, to: j, level: 2}); pos = j; } else ++j; } if (pos < i) order.splice(at, 0, {from: pos, to: i, level: 1}); } } if (order[0].level == 1 && (m = str.match(/^\s+/))) { order[0].from = m[0].length; order.unshift({from: 0, to: m[0].length, level: 0}); } if (lst(order).level == 1 && (m = str.match(/\s+$/))) { lst(order).to -= m[0].length; order.push({from: len - m[0].length, to: len, level: 0}); } if (order[0].level != lst(order).level) order.push({from: len, to: len, level: order[0].level}); return order; }; })(); // THE END CodeMirror.version = "3.1"; return CodeMirror; })(); site_pro/codemirror-3.1/addon/0000755000000000000000000000000012111430706015124 5ustar rootrootsite_pro/codemirror-3.1/addon/mode/0000755000000000000000000000000012111430706016050 5ustar rootrootsite_pro/codemirror-3.1/addon/mode/overlay.js0000644000000000000000000000421212111430706020066 0ustar rootroot// Utility function that allows modes to be combined. The mode given // as the base argument takes care of most of the normal mode // functionality, but a second (typically simple) mode is used, which // can override the style of text. Both modes get to parse all of the // text, but when both assign a non-null style to a piece of code, the // overlay wins, unless the combine argument was true, in which case // the styles are combined. // overlayParser is the old, deprecated name CodeMirror.overlayMode = CodeMirror.overlayParser = function(base, overlay, combine) { return { startState: function() { return { base: CodeMirror.startState(base), overlay: CodeMirror.startState(overlay), basePos: 0, baseCur: null, overlayPos: 0, overlayCur: null }; }, copyState: function(state) { return { base: CodeMirror.copyState(base, state.base), overlay: CodeMirror.copyState(overlay, state.overlay), basePos: state.basePos, baseCur: null, overlayPos: state.overlayPos, overlayCur: null }; }, token: function(stream, state) { if (stream.start == state.basePos) { state.baseCur = base.token(stream, state.base); state.basePos = stream.pos; } if (stream.start == state.overlayPos) { stream.pos = stream.start; state.overlayCur = overlay.token(stream, state.overlay); state.overlayPos = stream.pos; } stream.pos = Math.min(state.basePos, state.overlayPos); if (stream.eol()) state.basePos = state.overlayPos = 0; if (state.overlayCur == null) return state.baseCur; if (state.baseCur != null && combine) return state.baseCur + " " + state.overlayCur; else return state.overlayCur; }, indent: base.indent && function(state, textAfter) { return base.indent(state.base, textAfter); }, electricChars: base.electricChars, innerMode: function(state) { return {state: state.base, mode: base}; }, blankLine: function(state) { if (base.blankLine) base.blankLine(state.base); if (overlay.blankLine) overlay.blankLine(state.overlay); } }; }; site_pro/codemirror-3.1/addon/mode/loadmode.js0000644000000000000000000000337312111430706020200 0ustar rootroot(function() { if (!CodeMirror.modeURL) CodeMirror.modeURL = "../mode/%N/%N.js"; var loading = {}; function splitCallback(cont, n) { var countDown = n; return function() { if (--countDown == 0) cont(); }; } function ensureDeps(mode, cont) { var deps = CodeMirror.modes[mode].dependencies; if (!deps) return cont(); var missing = []; for (var i = 0; i < deps.length; ++i) { if (!CodeMirror.modes.hasOwnProperty(deps[i])) missing.push(deps[i]); } if (!missing.length) return cont(); var split = splitCallback(cont, missing.length); for (var i = 0; i < missing.length; ++i) CodeMirror.requireMode(missing[i], split); } CodeMirror.requireMode = function(mode, cont) { if (typeof mode != "string") mode = mode.name; if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont); if (loading.hasOwnProperty(mode)) return loading[mode].push(cont); var script = document.createElement("script"); script.src = CodeMirror.modeURL.replace(/%N/g, mode); var others = document.getElementsByTagName("script")[0]; others.parentNode.insertBefore(script, others); var list = loading[mode] = [cont]; var count = 0, poll = setInterval(function() { if (++count > 100) return clearInterval(poll); if (CodeMirror.modes.hasOwnProperty(mode)) { clearInterval(poll); loading[mode] = null; ensureDeps(mode, function() { for (var i = 0; i < list.length; ++i) list[i](); }); } }, 200); }; CodeMirror.autoLoadMode = function(instance, mode) { if (!CodeMirror.modes.hasOwnProperty(mode)) CodeMirror.requireMode(mode, function() { instance.setOption("mode", instance.getOption("mode")); }); }; }()); site_pro/codemirror-3.1/addon/mode/multiplex.js0000644000000000000000000000665012111430706020440 0ustar rootrootCodeMirror.multiplexingMode = function(outer /*, others */) { // Others should be {open, close, mode [, delimStyle]} objects var others = Array.prototype.slice.call(arguments, 1); var n_others = others.length; function indexOf(string, pattern, from) { if (typeof pattern == "string") return string.indexOf(pattern, from); var m = pattern.exec(from ? string.slice(from) : string); return m ? m.index + from : -1; } return { startState: function() { return { outer: CodeMirror.startState(outer), innerActive: null, inner: null }; }, copyState: function(state) { return { outer: CodeMirror.copyState(outer, state.outer), innerActive: state.innerActive, inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner) }; }, token: function(stream, state) { if (!state.innerActive) { var cutOff = Infinity, oldContent = stream.string; for (var i = 0; i < n_others; ++i) { var other = others[i]; var found = indexOf(oldContent, other.open, stream.pos); if (found == stream.pos) { stream.match(other.open); state.innerActive = other; state.inner = CodeMirror.startState(other.mode, outer.indent ? outer.indent(state.outer, "") : 0); return other.delimStyle; } else if (found != -1 && found < cutOff) { cutOff = found; } } if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff); var outerToken = outer.token(stream, state.outer); if (cutOff != Infinity) stream.string = oldContent; return outerToken; } else { var curInner = state.innerActive, oldContent = stream.string; var found = indexOf(oldContent, curInner.close, stream.pos); if (found == stream.pos) { stream.match(curInner.close); state.innerActive = state.inner = null; return curInner.delimStyle; } if (found > -1) stream.string = oldContent.slice(0, found); var innerToken = curInner.mode.token(stream, state.inner); if (found > -1) stream.string = oldContent; var cur = stream.current(), found = cur.indexOf(curInner.close); if (found > -1) stream.backUp(cur.length - found); return innerToken; } }, indent: function(state, textAfter) { var mode = state.innerActive ? state.innerActive.mode : outer; if (!mode.indent) return CodeMirror.Pass; return mode.indent(state.innerActive ? state.inner : state.outer, textAfter); }, blankLine: function(state) { var mode = state.innerActive ? state.innerActive.mode : outer; if (mode.blankLine) { mode.blankLine(state.innerActive ? state.inner : state.outer); } if (!state.innerActive) { for (var i = 0; i < n_others; ++i) { var other = others[i]; if (other.open === "\n") { state.innerActive = other; state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, "") : 0); } } } else if (mode.close === "\n") { state.innerActive = state.inner = null; } }, electricChars: outer.electricChars, innerMode: function(state) { return state.inner ? {state: state.inner, mode: state.innerActive.mode} : {state: state.outer, mode: outer}; } }; }; site_pro/codemirror-3.1/addon/lint/0000755000000000000000000000000012111430706016072 5ustar rootrootsite_pro/codemirror-3.1/addon/lint/lint.js0000644000000000000000000001374612111430706017411 0ustar rootrootCodeMirror.validate = (function() { var GUTTER_ID = "CodeMirror-lint-markers"; var SEVERITIES = /^(?:error|warning)$/; function showTooltip(e, content) { var tt = document.createElement("div"); tt.className = "CodeMirror-lint-tooltip"; tt.appendChild(content.cloneNode(true)); document.body.appendChild(tt); function position(e) { if (!tt.parentNode) return CodeMirror.off(document, "mousemove", position); tt.style.top = (e.clientY - tt.offsetHeight - 5) + "px"; tt.style.left = (e.clientX + 5) + "px"; } CodeMirror.on(document, "mousemove", position); position(e); tt.style.opacity = 1; return tt; } function rm(elt) { if (elt.parentNode) elt.parentNode.removeChild(elt); } function hideTooltip(tt) { if (!tt.parentNode) return; if (tt.style.opacity == null) rm(tt); tt.style.opacity = 0; setTimeout(function() { rm(tt); }, 600); } function LintState(cm, options, hasGutter) { this.marked = []; this.options = options; this.timeout = null; this.hasGutter = hasGutter; this.onMouseOver = function(e) { onMouseOver(cm, e); }; } function parseOptions(options) { if (options instanceof Function) return {getAnnotations: options}; else if (!options || !options.getAnnotations) throw new Error("Required option 'getAnnotations' missing (lint addon)"); return options; } function clearMarks(cm) { var state = cm._lintState; if (state.hasGutter) cm.clearGutter(GUTTER_ID); for (var i = 0; i < state.marked.length; ++i) state.marked[i].clear(); state.marked.length = 0; } function makeMarker(labels, severity, multiple) { var marker = document.createElement("div"), inner = marker; marker.className = "CodeMirror-lint-marker-" + severity; if (multiple) { inner = marker.appendChild(document.createElement("div")); inner.className = "CodeMirror-lint-marker-multiple"; } var tooltip; CodeMirror.on(inner, "mouseover", function(e) { tooltip = showTooltip(e, labels); }); CodeMirror.on(inner, "mouseout", function() { if (tooltip) hideTooltip(tooltip); }); return marker; } function getMaxSeverity(a, b) { if (a == "error") return a; else return b; } function groupByLine(annotations) { var lines = []; for (var i = 0; i < annotations.length; ++i) { var ann = annotations[i], line = ann.from.line; (lines[line] || (lines[line] = [])).push(ann); } return lines; } function annotationTooltip(ann) { var severity = ann.severity; if (!SEVERITIES.test(severity)) severity = "error"; var tip = document.createElement("div"); tip.className = "CodeMirror-lint-message-" + severity; tip.appendChild(document.createTextNode(ann.message)); return tip; } function startLinting(cm) { var state = cm._lintState, options = state.options; if (options.async) options.getAnnotations(cm, updateLinting, options); else updateLinting(cm, options.getAnnotations(cm.getValue())); } function updateLinting(cm, annotationsNotSorted) { clearMarks(cm); var state = cm._lintState, options = state.options; var annotations = groupByLine(annotationsNotSorted); for (var line = 0; line < annotations.length; ++line) { var anns = annotations[line]; if (!anns) continue; var maxSeverity = null; var tipLabel = state.hasGutter && document.createDocumentFragment(); for (var i = 0; i < anns.length; ++i) { var ann = anns[i]; var severity = ann.severity; if (!SEVERITIES.test(severity)) severity = "error"; maxSeverity = getMaxSeverity(maxSeverity, severity); if (options.formatAnnotation) ann = options.formatAnnotation(ann); if (state.hasGutter) tipLabel.appendChild(annotationTooltip(ann)); if (ann.to) state.marked.push(cm.markText(ann.from, ann.to, { className: "CodeMirror-lint-span-" + severity, __annotation: ann })); } if (state.hasGutter) cm.setGutterMarker(line, GUTTER_ID, makeMarker(tipLabel, maxSeverity, anns.length > 1)); } } function onChange(cm) { var state = cm._lintState; clearTimeout(state.timeout); state.timeout = setTimeout(function(){startLinting(cm);}, state.options.delay || 500); } function popupSpanTooltip(ann, e) { var tooltip = showTooltip(e, annotationTooltip(ann)); var target = e.target || e.srcElement; CodeMirror.on(target, "mouseout", hide); function hide() { CodeMirror.off(target, "mouseout", hide); hideTooltip(tooltip); } } // When the mouseover fires, the cursor might not actually be over // the character itself yet. These pairs of x,y offsets are used to // probe a few nearby points when no suitable marked range is found. var nearby = [0, 0, 0, 5, 0, -5, 5, 0, -5, 0]; function onMouseOver(cm, e) { if (!/\bCodeMirror-lint-span-/.test((e.target || e.srcElement).className)) return; for (var i = 0; i < nearby.length; i += 2) { var spans = cm.findMarksAt(cm.coordsChar({left: e.clientX + nearby[i], top: e.clientY + nearby[i + 1]})); for (var j = 0; j < spans.length; ++j) { var span = spans[j], ann = span.__annotation; if (ann) return popupSpanTooltip(ann, e); } } } CodeMirror.defineOption("lintWith", false, function(cm, val, old) { if (old && old != CodeMirror.Init) { clearMarks(cm); cm.off("change", onChange); CodeMirror.off(cm.getWrapperElement(), "mouseover", cm._lintState.onMouseOver); delete cm._lintState; } if (val) { var gutters = cm.getOption("gutters"), hasLintGutter = false; for (var i = 0; i < gutters.length; ++i) if (gutters[i] == GUTTER_ID) hasLintGutter = true; var state = cm._lintState = new LintState(cm, parseOptions(val), hasLintGutter); cm.on("change", onChange); CodeMirror.on(cm.getWrapperElement(), "mouseover", state.onMouseOver); startLinting(cm); } }); })(); site_pro/codemirror-3.1/addon/lint/json-lint.js0000644000000000000000000000070012111430706020342 0ustar rootroot// Depends on jsonlint.js from https://github.com/zaach/jsonlint CodeMirror.jsonValidator = function(text) { var found = []; jsonlint.parseError = function(str, hash) { var loc = hash.loc; found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column), to: CodeMirror.Pos(loc.last_line - 1, loc.last_column), message: str}); }; try { jsonlint.parse(text); } catch(e) {} return found; }; site_pro/codemirror-3.1/addon/lint/javascript-lint.js0000644000000000000000000000656312111430706021554 0ustar rootroot(function() { var bogus = [ "Dangerous comment" ]; var warnings = [ [ "Expected '{'", "Statement body should be inside '{ }' braces." ] ]; var errors = [ "Missing semicolon", "Extra comma", "Missing property name", "Unmatched ", " and instead saw", " is not defined", "Unclosed string", "Stopping, unable to continue" ]; CodeMirror.javascriptValidator = function(text) { JSHINT(text); var errors = JSHINT.data().errors, result = []; if (errors) parseErrors(errors, result); return result; }; function cleanup(error) { // All problems are warnings by default fixWith(error, warnings, "warning", true); fixWith(error, errors, "error"); return isBogus(error) ? null : error; } function fixWith(error, fixes, severity, force) { var description, fix, find, replace, found; description = error.description; for ( var i = 0; i < fixes.length; i++) { fix = fixes[i]; find = (typeof fix === "string" ? fix : fix[0]); replace = (typeof fix === "string" ? null : fix[1]); found = description.indexOf(find) !== -1; if (force || found) { error.severity = severity; } if (found && replace) { error.description = replace; } } } function isBogus(error) { var description = error.description; for ( var i = 0; i < bogus.length; i++) { if (description.indexOf(bogus[i]) !== -1) { return true; } } return false; } function parseErrors(errors, output) { for ( var i = 0; i < errors.length; i++) { var error = errors[i]; if (error) { var linetabpositions, index; linetabpositions = []; // This next block is to fix a problem in jshint. Jshint // replaces // all tabs with spaces then performs some checks. The error // positions (character/space) are then reported incorrectly, // not taking the replacement step into account. Here we look // at the evidence line and try to adjust the character position // to the correct value. if (error.evidence) { // Tab positions are computed once per line and cached var tabpositions = linetabpositions[error.line]; if (!tabpositions) { var evidence = error.evidence; tabpositions = []; // ugggh phantomjs does not like this // forEachChar(evidence, function(item, index) { Array.prototype.forEach.call(evidence, function(item, index) { if (item === '\t') { // First col is 1 (not 0) to match error // positions tabpositions.push(index + 1); } }); linetabpositions[error.line] = tabpositions; } if (tabpositions.length > 0) { var pos = error.character; tabpositions.forEach(function(tabposition) { if (pos > tabposition) pos -= 1; }); error.character = pos; } } var start = error.character - 1, end = start + 1; if (error.evidence) { index = error.evidence.substring(start).search(/.\b/); if (index > -1) { end += index; } } // Convert to format expected by validation service error.description = error.reason;// + "(jshint)"; error.start = error.character; error.end = end; error = cleanup(error); if (error) output.push({message: error.description, severity: error.severity, from: CodeMirror.Pos(error.line - 1, start), to: CodeMirror.Pos(error.line - 1, end)}); } } } })(); site_pro/codemirror-3.1/addon/lint/lint.css0000644000000000000000000001021612111430706017552 0ustar rootroot/* The lint marker gutter */ .CodeMirror-lint-markers { width: 16px; } .CodeMirror-lint-tooltip { background-color: infobackground; border: 1px solid black; border-radius: 4px 4px 4px 4px; color: infotext; font-family: monospace; font-size: 10pt; overflow: hidden; padding: 2px 5px; position: fixed; white-space: pre; z-index: 100; max-width: 600px; opacity: 0; transition: opacity .4s; -moz-transition: opacity .4s; -webkit-transition: opacity .4s; -o-transition: opacity .4s; -ms-transition: opacity .4s; } .CodeMirror-lint-span-error, .CodeMirror-lint-span-warning { background-position: left bottom; background-repeat: repeat-x; } .CodeMirror-lint-span-error { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==") ; } .CodeMirror-lint-span-warning { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII="); } .CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning { background-position: center center; background-repeat: no-repeat; cursor: pointer; display: inline-block; height: 16px; width: 16px; vertical-align: middle; position: relative; } .CodeMirror-lint-message-error, .CodeMirror-lint-message-warning { padding-left: 18px; background-position: top left; background-repeat: no-repeat; } .CodeMirror-lint-marker-error, .CodeMirror-lint-message-error { background-image: url("data:image/gif;base64,R0lGODlhEAAQANUAAPVvcvWHiPVucvRuc+ttcfV6f91KVN5LU99PV/FZY/JhaM4oN84pONE4Rd1ATfJLWutVYPRgbdxpcsgWKMgZKs4lNfE/UvE/U+artcpdSc5uXveimslHPuBhW/eJhfV5efaCgO2CgP+/v+PExP///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACUALAAAAAAQABAAAAZ+wJJwSCwaScgkySgkjTQZTkYzWhadnE5oE+pwqkSshwQqkzxfa4kkQXxEpA9J9EFI1KQGQQBAigYCBA14ExEWF0gXihETeA0QD3AkD5QQg0NsDnAJmwkOd5gYFSQKpXAFDBhqaxgLBwQBBAapq00YEg0UDRKqTGtKSL7Cw8JBADs="); } .CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning { background-image: url("data:image/gif;base64,R0lGODlhEAAQANUAAP7bc//egf/ij/7ijv/jl/7kl//mnv7lnv/uwf7CTP7DTf7DT/7IW//Na/7Na//NbP7QdP/dmbltAIJNAF03AMSAJMSCLKqASa2DS6uBSquCSrGHTq6ETbCHT7WKUrKIUcCVXL+UXMOYX8GWXsSZYMiib6+ETbOIUcOXX86uhd3Muf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAACsALAAAAAAQABAAAAZowJVwSCwaj0ihikRSJYcoBEL0XKlGkcjImQQhJBREKFnyICoThKeE/AAW6AXgdPyUAgrLJBEo0YsbAQyDhAEdRRwDDw8OaA4NDQImRBgFEJdglxAEGEQZKQcHBqOkKRpFF6mqq1WtrUEAOw=="); } .CodeMirror-lint-marker-multiple { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJEAQvB2JVdrAAAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAAAD1JREFUCNdtjkESADAEAzemf69f66HMqGlOIhYiFRFRtSQBWAY7mzx+EDTL6sSgb1jTk7Q87rxyqe37fXsAa78gLyZnRgEAAAAASUVORK5CYII="); background-repeat: no-repeat; background-position: right bottom; width: 100%; height: 100%; } /* Styles for the overview ruler .annotationOverview { cursor: pointer; border-radius: 2px; left: 2px; width: 8px; } .annotationOverview.error { background-color: lightcoral; border: 1px solid darkred; } .annotationOverview.warning { background-color: Gold; border: 1px solid black; } .annotationHTML.overlay { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJEAQvB2JVdrAAAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAAAD1JREFUCNdtjkESADAEAzemf69f66HMqGlOIhYiFRFRtSQBWAY7mzx+EDTL6sSgb1jTk7Q87rxyqe37fXsAa78gLyZnRgEAAAAASUVORK5CYII="); background-position: right bottom; position: relative; top: -16px; } */site_pro/codemirror-3.1/addon/format/0000755000000000000000000000000012111430706016414 5ustar rootrootsite_pro/codemirror-3.1/addon/format/formatting.js0000644000000000000000000001047612111430706021134 0ustar rootroot(function() { CodeMirror.extendMode("css", { commentStart: "/*", commentEnd: "*/", newlineAfterToken: function(_type, content) { return /^[;{}]$/.test(content); } }); CodeMirror.extendMode("javascript", { commentStart: "/*", commentEnd: "*/", // FIXME semicolons inside of for newlineAfterToken: function(_type, content, textAfter, state) { if (this.jsonMode) { return /^[\[,{]$/.test(content) || /^}/.test(textAfter); } else { if (content == ";" && state.lexical && state.lexical.type == ")") return false; return /^[;{}]$/.test(content) && !/^;/.test(textAfter); } } }); var inlineElements = /^(a|abbr|acronym|area|base|bdo|big|br|button|caption|cite|code|col|colgroup|dd|del|dfn|em|frame|hr|iframe|img|input|ins|kbd|label|legend|link|map|object|optgroup|option|param|q|samp|script|select|small|span|strong|sub|sup|textarea|tt|var)$/; CodeMirror.extendMode("xml", { commentStart: "", newlineAfterToken: function(type, content, textAfter, state) { var inline = false; if (this.configuration == "html") inline = state.context ? inlineElements.test(state.context.tagName) : false; return !inline && ((type == "tag" && />$/.test(content) && state.context) || /^ -1 && endIndex > -1 && endIndex > startIndex) { // Take string till comment start selText = selText.substr(0, startIndex) // From comment start till comment end + selText.substring(startIndex + curMode.commentStart.length, endIndex) // From comment end till string end + selText.substr(endIndex + curMode.commentEnd.length); } cm.replaceRange(selText, from, to); } }); }); // Applies automatic mode-aware indentation to the specified range CodeMirror.defineExtension("autoIndentRange", function (from, to) { var cmInstance = this; this.operation(function () { for (var i = from.line; i <= to.line; i++) { cmInstance.indentLine(i, "smart"); } }); }); // Applies automatic formatting to the specified range CodeMirror.defineExtension("autoFormatRange", function (from, to) { var cm = this; var outer = cm.getMode(), text = cm.getRange(from, to).split("\n"); var state = CodeMirror.copyState(outer, cm.getTokenAt(from).state); var tabSize = cm.getOption("tabSize"); var out = "", lines = 0, atSol = from.ch == 0; function newline() { out += "\n"; atSol = true; ++lines; } for (var i = 0; i < text.length; ++i) { var stream = new CodeMirror.StringStream(text[i], tabSize); while (!stream.eol()) { var inner = CodeMirror.innerMode(outer, state); var style = outer.token(stream, state), cur = stream.current(); stream.start = stream.pos; if (!atSol || /\S/.test(cur)) { out += cur; atSol = false; } if (!atSol && inner.mode.newlineAfterToken && inner.mode.newlineAfterToken(style, cur, stream.string.slice(stream.pos) || text[i+1] || "", inner.state)) newline(); } if (!stream.pos && outer.blankLine) outer.blankLine(state); if (!atSol && i < text.length - 1) newline(); } cm.operation(function () { cm.replaceRange(out, from, to); for (var cur = from.line + 1, end = from.line + lines; cur <= end; ++cur) cm.indentLine(cur, "smart"); cm.setSelection(from, cm.getCursor(false)); }); }); })(); site_pro/codemirror-3.1/addon/hint/0000755000000000000000000000000012111430706016066 5ustar rootrootsite_pro/codemirror-3.1/addon/hint/show-hint.js0000644000000000000000000001357712111430706020361 0ustar rootrootCodeMirror.showHint = function(cm, getHints, options) { if (!options) options = {}; var startCh = cm.getCursor().ch, continued = false; function startHinting() { // We want a single cursor position. if (cm.somethingSelected()) return; if (options.async) getHints(cm, showHints, options); else return showHints(getHints(cm, options)); } function showHints(data) { if (!data || !data.list.length) return; var completions = data.list; // When there is only one completion, use it directly. if (!continued && options.completeSingle !== false && completions.length == 1) { cm.replaceRange(completions[0], data.from, data.to); return true; } // Build the select widget var hints = document.createElement("ul"), selectedHint = 0; hints.className = "CodeMirror-hints"; for (var i = 0; i < completions.length; ++i) { var elt = hints.appendChild(document.createElement("li")); elt.className = "CodeMirror-hint" + (i ? "" : " CodeMirror-hint-active"); elt.appendChild(document.createTextNode(completions[i])); elt.hintId = i; } var pos = cm.cursorCoords(options.alignWithWord !== false ? data.from : null); var left = pos.left, top = pos.bottom, below = true; hints.style.left = left + "px"; hints.style.top = top + "px"; document.body.appendChild(hints); // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor. var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth); var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight); var box = hints.getBoundingClientRect(); var overlapX = box.right - winW, overlapY = box.bottom - winH; if (overlapX > 0) { if (box.right - box.left > winW) { hints.style.width = (winW - 5) + "px"; overlapX -= (box.right - box.left) - winW; } hints.style.left = (left = pos.left - overlapX) + "px"; } if (overlapY > 0) { var height = box.bottom - box.top; if (box.top - (pos.bottom - pos.top) - height > 0) { overlapY = height + (pos.bottom - pos.top); below = false; } else if (height > winH) { hints.style.height = (winH - 5) + "px"; overlapY -= height - winH; } hints.style.top = (top = pos.bottom - overlapY) + "px"; } function changeActive(i) { i = Math.max(0, Math.min(i, completions.length - 1)); if (selectedHint == i) return; hints.childNodes[selectedHint].className = "CodeMirror-hint"; var node = hints.childNodes[selectedHint = i]; node.className = "CodeMirror-hint CodeMirror-hint-active"; if (node.offsetTop < hints.scrollTop) hints.scrollTop = node.offsetTop - 3; else if (node.offsetTop + node.offsetHeight > hints.scrollTop + hints.clientHeight) hints.scrollTop = node.offsetTop + node.offsetHeight - hints.clientHeight + 3; } function screenAmount() { return Math.floor(hints.clientHeight / hints.firstChild.offsetHeight) || 1; } var ourMap = { Up: function() {changeActive(selectedHint - 1);}, Down: function() {changeActive(selectedHint + 1);}, PageUp: function() {changeActive(selectedHint - screenAmount());}, PageDown: function() {changeActive(selectedHint + screenAmount());}, Home: function() {changeActive(0);}, End: function() {changeActive(completions.length - 1);}, Enter: pick, Tab: pick, Esc: close }; if (options.customKeys) for (var key in options.customKeys) if (options.customKeys.hasOwnProperty(key)) { var val = options.customKeys[key]; if (/^(Up|Down|Enter|Esc)$/.test(key)) val = ourMap[val]; ourMap[key] = val; } cm.addKeyMap(ourMap); cm.on("cursorActivity", cursorActivity); var closingOnBlur; function onBlur(){ closingOnBlur = setTimeout(close, 100); }; function onFocus(){ clearTimeout(closingOnBlur); }; cm.on("blur", onBlur); cm.on("focus", onFocus); var startScroll = cm.getScrollInfo(); function onScroll() { var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect(); var newTop = top + startScroll.top - curScroll.top, point = newTop; if (!below) point += hints.offsetHeight; if (point <= editor.top || point >= editor.bottom) return close(); hints.style.top = newTop + "px"; hints.style.left = (left + startScroll.left - curScroll.left) + "px"; } cm.on("scroll", onScroll); CodeMirror.on(hints, "dblclick", function(e) { var t = e.target || e.srcElement; if (t.hintId != null) {selectedHint = t.hintId; pick();} setTimeout(function(){cm.focus();}, 20); }); CodeMirror.on(hints, "click", function(e) { var t = e.target || e.srcElement; if (t.hintId != null) changeActive(t.hintId); setTimeout(function(){cm.focus();}, 20); }); var done = false, once; function close() { if (done) return; done = true; clearTimeout(once); hints.parentNode.removeChild(hints); cm.removeKeyMap(ourMap); cm.off("cursorActivity", cursorActivity); cm.off("blur", onBlur); cm.off("focus", onFocus); cm.off("scroll", onScroll); } function pick() { cm.replaceRange(completions[selectedHint], data.from, data.to); close(); } var once, lastPos = cm.getCursor(), lastLen = cm.getLine(lastPos.line).length; function cursorActivity() { clearTimeout(once); var pos = cm.getCursor(), len = cm.getLine(pos.line).length; if (pos.line != lastPos.line || len - pos.ch != lastLen - lastPos.ch || pos.ch < startCh || cm.somethingSelected()) close(); else once = setTimeout(function(){close(); continued = true; startHinting();}, 70); } return true; } return startHinting(); }; site_pro/codemirror-3.1/addon/hint/pig-hint.js0000644000000000000000000001171612111430706020151 0ustar rootroot(function () { function forEach(arr, f) { for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]); } function arrayContains(arr, item) { if (!Array.prototype.indexOf) { var i = arr.length; while (i--) { if (arr[i] === item) { return true; } } return false; } return arr.indexOf(item) != -1; } function scriptHint(editor, _keywords, getToken) { // Find the token at the cursor var cur = editor.getCursor(), token = getToken(editor, cur), tprop = token; // If it's not a 'word-style' token, ignore the token. if (!/^[\w$_]*$/.test(token.string)) { token = tprop = {start: cur.ch, end: cur.ch, string: "", state: token.state, className: token.string == ":" ? "pig-type" : null}; } if (!context) var context = []; context.push(tprop); var completionList = getCompletions(token, context); completionList = completionList.sort(); //prevent autocomplete for last word, instead show dropdown with one word if(completionList.length == 1) { completionList.push(" "); } return {list: completionList, from: CodeMirror.Pos(cur.line, token.start), to: CodeMirror.Pos(cur.line, token.end)}; } CodeMirror.pigHint = function(editor) { return scriptHint(editor, pigKeywordsU, function (e, cur) {return e.getTokenAt(cur);}); }; var pigKeywords = "VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP " + "JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL " + "PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE " + "SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE " + "NEQ MATCHES TRUE FALSE"; var pigKeywordsU = pigKeywords.split(" "); var pigKeywordsL = pigKeywords.toLowerCase().split(" "); var pigTypes = "BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP"; var pigTypesU = pigTypes.split(" "); var pigTypesL = pigTypes.toLowerCase().split(" "); var pigBuiltins = "ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL " + "CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS " + "DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG " + "FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN " + "INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER " + "ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS " + "LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA " + "PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE " + "SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG " + "TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER"; var pigBuiltinsU = pigBuiltins.split(" ").join("() ").split(" "); var pigBuiltinsL = pigBuiltins.toLowerCase().split(" ").join("() ").split(" "); var pigBuiltinsC = ("BagSize BinStorage Bloom BuildBloom ConstantSize CubeDimensions DoubleAbs " + "DoubleAvg DoubleBase DoubleMax DoubleMin DoubleRound DoubleSum FloatAbs FloatAvg FloatMax " + "FloatMin FloatRound FloatSum GenericInvoker IntAbs IntAvg IntMax IntMin IntSum " + "InvokeForDouble InvokeForFloat InvokeForInt InvokeForLong InvokeForString Invoker " + "IsEmpty JsonLoader JsonMetadata JsonStorage LongAbs LongAvg LongMax LongMin LongSum MapSize " + "MonitoredUDF Nondeterministic OutputSchema PigStorage PigStreaming StringConcat StringMax " + "StringMin StringSize TextLoader TupleSize Utf8StorageConverter").split(" ").join("() ").split(" "); function getCompletions(token, context) { var found = [], start = token.string; function maybeAdd(str) { if (str.indexOf(start) == 0 && !arrayContains(found, str)) found.push(str); } function gatherCompletions(obj) { if(obj == ":") { forEach(pigTypesL, maybeAdd); } else { forEach(pigBuiltinsU, maybeAdd); forEach(pigBuiltinsL, maybeAdd); forEach(pigBuiltinsC, maybeAdd); forEach(pigTypesU, maybeAdd); forEach(pigTypesL, maybeAdd); forEach(pigKeywordsU, maybeAdd); forEach(pigKeywordsL, maybeAdd); } } if (context) { // If this is a property, see if it belongs to some object we can // find in the current environment. var obj = context.pop(), base; if (obj.type == "variable") base = obj.string; else if(obj.type == "variable-3") base = ":" + obj.string; while (base != null && context.length) base = base[context.pop().string]; if (base != null) gatherCompletions(base); } return found; } })(); site_pro/codemirror-3.1/addon/hint/xml-hint.js0000644000000000000000000000563412111430706020174 0ustar rootroot(function() { CodeMirror.xmlHints = []; CodeMirror.xmlHint = function(cm) { var cursor = cm.getCursor(); if (cursor.ch > 0) { var text = cm.getRange(CodeMirror.Pos(0, 0), cursor); var typed = ''; var simbol = ''; for(var i = text.length - 1; i >= 0; i--) { if(text[i] == ' ' || text[i] == '<') { simbol = text[i]; break; } else { typed = text[i] + typed; } } text = text.slice(0, text.length - typed.length); var path = getActiveElement(text) + simbol; var hints = CodeMirror.xmlHints[path]; if(typeof hints === 'undefined') hints = ['']; else { hints = hints.slice(0); for (var i = hints.length - 1; i >= 0; i--) { if(hints[i].indexOf(typed) != 0) hints.splice(i, 1); } } return { list: hints, from: CodeMirror.Pos(cursor.line, cursor.ch - typed.length), to: cursor }; } }; var getActiveElement = function(text) { var element = ''; if(text.length >= 0) { var regex = new RegExp('<([^!?][^\\s/>]*).*?>', 'g'); var matches = []; var match; while ((match = regex.exec(text)) != null) { matches.push({ tag: match[1], selfclose: (match[0].slice(match[0].length - 2) === '/>') }); } for (var i = matches.length - 1, skip = 0; i >= 0; i--) { var item = matches[i]; if (item.tag[0] == '/') { skip++; } else if (item.selfclose == false) { if (skip > 0) { skip--; } else { element = '<' + item.tag + '>' + element; } } } element += getOpenTag(text); } return element; }; var getOpenTag = function(text) { var open = text.lastIndexOf('<'); var close = text.lastIndexOf('>'); if (close < open) { text = text.slice(open); if(text != '<') { var space = text.indexOf(' '); if(space < 0) space = text.indexOf('\t'); if(space < 0) space = text.indexOf('\n'); if (space < 0) space = text.length; return text.slice(0, space); } } return ''; }; })(); site_pro/codemirror-3.1/addon/hint/simple-hint.js0000644000000000000000000001024212111430706020654 0ustar rootroot(function() { CodeMirror.simpleHint = function(editor, getHints, givenOptions) { // Determine effective options based on given values and defaults. var options = {}, defaults = CodeMirror.simpleHint.defaults; for (var opt in defaults) if (defaults.hasOwnProperty(opt)) options[opt] = (givenOptions && givenOptions.hasOwnProperty(opt) ? givenOptions : defaults)[opt]; function collectHints(previousToken) { // We want a single cursor position. if (editor.somethingSelected()) return; var tempToken = editor.getTokenAt(editor.getCursor()); // Don't show completions if token has changed and the option is set. if (options.closeOnTokenChange && previousToken != null && (tempToken.start != previousToken.start || tempToken.type != previousToken.type)) { return; } var result = getHints(editor, givenOptions); if (!result || !result.list.length) return; var completions = result.list; function insert(str) { editor.replaceRange(str, result.from, result.to); } // When there is only one completion, use it directly. if (options.completeSingle && completions.length == 1) { insert(completions[0]); return true; } // Build the select widget var complete = document.createElement("div"); complete.className = "CodeMirror-completions"; var sel = complete.appendChild(document.createElement("select")); // Opera doesn't move the selection when pressing up/down in a // multi-select, but it does properly support the size property on // single-selects, so no multi-select is necessary. if (!window.opera) sel.multiple = true; for (var i = 0; i < completions.length; ++i) { var opt = sel.appendChild(document.createElement("option")); opt.appendChild(document.createTextNode(completions[i])); } sel.firstChild.selected = true; sel.size = Math.min(10, completions.length); var pos = editor.cursorCoords(options.alignWithWord ? result.from : null); complete.style.left = pos.left + "px"; complete.style.top = pos.bottom + "px"; document.body.appendChild(complete); // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor. var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth); if(winW - pos.left < sel.clientWidth) complete.style.left = (pos.left - sel.clientWidth) + "px"; // Hack to hide the scrollbar. if (completions.length <= 10) complete.style.width = (sel.clientWidth - 1) + "px"; var done = false; function close() { if (done) return; done = true; complete.parentNode.removeChild(complete); } function pick() { insert(completions[sel.selectedIndex]); close(); setTimeout(function(){editor.focus();}, 50); } CodeMirror.on(sel, "blur", close); CodeMirror.on(sel, "keydown", function(event) { var code = event.keyCode; // Enter if (code == 13) {CodeMirror.e_stop(event); pick();} // Escape else if (code == 27) {CodeMirror.e_stop(event); close(); editor.focus();} else if (code != 38 && code != 40 && code != 33 && code != 34 && !CodeMirror.isModifierKey(event)) { close(); editor.focus(); // Pass the event to the CodeMirror instance so that it can handle things like backspace properly. editor.triggerOnKeyDown(event); // Don't show completions if the code is backspace and the option is set. if (!options.closeOnBackspace || code != 8) { setTimeout(function(){collectHints(tempToken);}, 50); } } }); CodeMirror.on(sel, "dblclick", pick); sel.focus(); // Opera sometimes ignores focusing a freshly created node if (window.opera) setTimeout(function(){if (!done) sel.focus();}, 100); return true; } return collectHints(); }; CodeMirror.simpleHint.defaults = { closeOnBackspace: true, closeOnTokenChange: false, completeSingle: true, alignWithWord: true }; })(); site_pro/codemirror-3.1/addon/hint/python-hint.js0000644000000000000000000000646412111430706020717 0ustar rootroot(function () { function forEach(arr, f) { for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]); } function arrayContains(arr, item) { if (!Array.prototype.indexOf) { var i = arr.length; while (i--) { if (arr[i] === item) { return true; } } return false; } return arr.indexOf(item) != -1; } function scriptHint(editor, _keywords, getToken) { // Find the token at the cursor var cur = editor.getCursor(), token = getToken(editor, cur), tprop = token; // If it's not a 'word-style' token, ignore the token. if (!/^[\w$_]*$/.test(token.string)) { token = tprop = {start: cur.ch, end: cur.ch, string: "", state: token.state, className: token.string == ":" ? "python-type" : null}; } if (!context) var context = []; context.push(tprop); var completionList = getCompletions(token, context); completionList = completionList.sort(); //prevent autocomplete for last word, instead show dropdown with one word if(completionList.length == 1) { completionList.push(" "); } return {list: completionList, from: CodeMirror.Pos(cur.line, token.start), to: CodeMirror.Pos(cur.line, token.end)}; } CodeMirror.pythonHint = function(editor) { return scriptHint(editor, pythonKeywordsU, function (e, cur) {return e.getTokenAt(cur);}); }; var pythonKeywords = "and del from not while as elif global or with assert else if pass yield" + "break except import print class exec in raise continue finally is return def for lambda try"; var pythonKeywordsL = pythonKeywords.split(" "); var pythonKeywordsU = pythonKeywords.toUpperCase().split(" "); var pythonBuiltins = "abs divmod input open staticmethod all enumerate int ord str " + "any eval isinstance pow sum basestring execfile issubclass print super" + "bin file iter property tuple bool filter len range type" + "bytearray float list raw_input unichr callable format locals reduce unicode" + "chr frozenset long reload vars classmethod getattr map repr xrange" + "cmp globals max reversed zip compile hasattr memoryview round __import__" + "complex hash min set apply delattr help next setattr buffer" + "dict hex object slice coerce dir id oct sorted intern "; var pythonBuiltinsL = pythonBuiltins.split(" ").join("() ").split(" "); var pythonBuiltinsU = pythonBuiltins.toUpperCase().split(" ").join("() ").split(" "); function getCompletions(token, context) { var found = [], start = token.string; function maybeAdd(str) { if (str.indexOf(start) == 0 && !arrayContains(found, str)) found.push(str); } function gatherCompletions(_obj) { forEach(pythonBuiltinsL, maybeAdd); forEach(pythonBuiltinsU, maybeAdd); forEach(pythonKeywordsL, maybeAdd); forEach(pythonKeywordsU, maybeAdd); } if (context) { // If this is a property, see if it belongs to some object we can // find in the current environment. var obj = context.pop(), base; if (obj.type == "variable") base = obj.string; else if(obj.type == "variable-3") base = ":" + obj.string; while (base != null && context.length) base = base[context.pop().string]; if (base != null) gatherCompletions(base); } return found; } })(); site_pro/codemirror-3.1/addon/hint/javascript-hint.js0000644000000000000000000001300712111430706021533 0ustar rootroot(function () { var Pos = CodeMirror.Pos; function forEach(arr, f) { for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]); } function arrayContains(arr, item) { if (!Array.prototype.indexOf) { var i = arr.length; while (i--) { if (arr[i] === item) { return true; } } return false; } return arr.indexOf(item) != -1; } function scriptHint(editor, keywords, getToken, options) { // Find the token at the cursor var cur = editor.getCursor(), token = getToken(editor, cur), tprop = token; // If it's not a 'word-style' token, ignore the token. if (!/^[\w$_]*$/.test(token.string)) { token = tprop = {start: cur.ch, end: cur.ch, string: "", state: token.state, type: token.string == "." ? "property" : null}; } // If it is a property, find out what it is a property of. while (tprop.type == "property") { tprop = getToken(editor, Pos(cur.line, tprop.start)); if (tprop.string != ".") return; tprop = getToken(editor, Pos(cur.line, tprop.start)); if (tprop.string == ')') { var level = 1; do { tprop = getToken(editor, Pos(cur.line, tprop.start)); switch (tprop.string) { case ')': level++; break; case '(': level--; break; default: break; } } while (level > 0); tprop = getToken(editor, Pos(cur.line, tprop.start)); if (tprop.type.indexOf("variable") === 0) tprop.type = "function"; else return; // no clue } if (!context) var context = []; context.push(tprop); } return {list: getCompletions(token, context, keywords, options), from: Pos(cur.line, token.start), to: Pos(cur.line, token.end)}; } CodeMirror.javascriptHint = function(editor, options) { return scriptHint(editor, javascriptKeywords, function (e, cur) {return e.getTokenAt(cur);}, options); }; function getCoffeeScriptToken(editor, cur) { // This getToken, it is for coffeescript, imitates the behavior of // getTokenAt method in javascript.js, that is, returning "property" // type and treat "." as indepenent token. var token = editor.getTokenAt(cur); if (cur.ch == token.start + 1 && token.string.charAt(0) == '.') { token.end = token.start; token.string = '.'; token.type = "property"; } else if (/^\.[\w$_]*$/.test(token.string)) { token.type = "property"; token.start++; token.string = token.string.replace(/\./, ''); } return token; } CodeMirror.coffeescriptHint = function(editor, options) { return scriptHint(editor, coffeescriptKeywords, getCoffeeScriptToken, options); }; var stringProps = ("charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight " + "toUpperCase toLowerCase split concat match replace search").split(" "); var arrayProps = ("length concat join splice push pop shift unshift slice reverse sort indexOf " + "lastIndexOf every some filter forEach map reduce reduceRight ").split(" "); var funcProps = "prototype apply call bind".split(" "); var javascriptKeywords = ("break case catch continue debugger default delete do else false finally for function " + "if in instanceof new null return switch throw true try typeof var void while with").split(" "); var coffeescriptKeywords = ("and break catch class continue delete do else extends false finally for " + "if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes").split(" "); function getCompletions(token, context, keywords, options) { var found = [], start = token.string; function maybeAdd(str) { if (str.indexOf(start) == 0 && !arrayContains(found, str)) found.push(str); } function gatherCompletions(obj) { if (typeof obj == "string") forEach(stringProps, maybeAdd); else if (obj instanceof Array) forEach(arrayProps, maybeAdd); else if (obj instanceof Function) forEach(funcProps, maybeAdd); for (var name in obj) maybeAdd(name); } if (context) { // If this is a property, see if it belongs to some object we can // find in the current environment. var obj = context.pop(), base; if (obj.type.indexOf("variable") === 0) { if (options && options.additionalContext) base = options.additionalContext[obj.string]; base = base || window[obj.string]; } else if (obj.type == "string") { base = ""; } else if (obj.type == "atom") { base = 1; } else if (obj.type == "function") { if (window.jQuery != null && (obj.string == '$' || obj.string == 'jQuery') && (typeof window.jQuery == 'function')) base = window.jQuery(); else if (window._ != null && (obj.string == '_') && (typeof window._ == 'function')) base = window._(); } while (base != null && context.length) base = base[context.pop().string]; if (base != null) gatherCompletions(base); } else { // If not, just look in the window object and any local scope // (reading into JS mode internals to get at the local and global variables) for (var v = token.state.localVars; v; v = v.next) maybeAdd(v.name); for (var v = token.state.globalVars; v; v = v.next) maybeAdd(v.name); gatherCompletions(window); forEach(keywords, maybeAdd); } return found; } })(); site_pro/codemirror-3.1/addon/hint/simple-hint.css0000644000000000000000000000056012111430706021032 0ustar rootroot.CodeMirror-completions { position: absolute; z-index: 10; overflow: hidden; -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); box-shadow: 2px 3px 5px rgba(0,0,0,.2); } .CodeMirror-completions select { background: #fafafa; outline: none; border: none; padding: 0; margin: 0; font-family: monospace; } site_pro/codemirror-3.1/addon/hint/show-hint.css0000644000000000000000000000122412111430706020517 0ustar rootroot.CodeMirror-hints { position: absolute; z-index: 10; overflow: hidden; list-style: none; margin: 0; padding: 2px; -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); box-shadow: 2px 3px 5px rgba(0,0,0,.2); border-radius: 3px; border: 1px solid silver; background: white; font-size: 90%; font-family: monospace; max-height: 20em; overflow-y: auto; } .CodeMirror-hint { margin: 0; padding: 0 4px; border-radius: 2px; max-width: 19em; overflow: hidden; white-space: pre; color: black; cursor: pointer; } .CodeMirror-hint-active { background: #08f; color: white; } site_pro/codemirror-3.1/addon/runmode/0000755000000000000000000000000012111430706016575 5ustar rootrootsite_pro/codemirror-3.1/addon/runmode/runmode-standalone.js0000644000000000000000000001040712111430706022734 0ustar rootroot/* Just enough of CodeMirror to run runMode under node.js */ window.CodeMirror = {}; function splitLines(string){ return string.split(/\r?\n|\r/); }; function StringStream(string) { this.pos = this.start = 0; this.string = string; } StringStream.prototype = { eol: function() {return this.pos >= this.string.length;}, sol: function() {return this.pos == 0;}, peek: function() {return this.string.charAt(this.pos) || null;}, next: function() { if (this.pos < this.string.length) return this.string.charAt(this.pos++); }, eat: function(match) { var ch = this.string.charAt(this.pos); if (typeof match == "string") var ok = ch == match; else var ok = ch && (match.test ? match.test(ch) : match(ch)); if (ok) {++this.pos; return ch;} }, eatWhile: function(match) { var start = this.pos; while (this.eat(match)){} return this.pos > start; }, eatSpace: function() { var start = this.pos; while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos; return this.pos > start; }, skipToEnd: function() {this.pos = this.string.length;}, skipTo: function(ch) { var found = this.string.indexOf(ch, this.pos); if (found > -1) {this.pos = found; return true;} }, backUp: function(n) {this.pos -= n;}, column: function() {return this.start;}, indentation: function() {return 0;}, match: function(pattern, consume, caseInsensitive) { if (typeof pattern == "string") { var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;}; if (cased(this.string).indexOf(cased(pattern), this.pos) == this.pos) { if (consume !== false) this.pos += pattern.length; return true; } } else { var match = this.string.slice(this.pos).match(pattern); if (match && consume !== false) this.pos += match[0].length; return match; } }, current: function(){return this.string.slice(this.start, this.pos);} }; CodeMirror.StringStream = StringStream; CodeMirror.startState = function (mode, a1, a2) { return mode.startState ? mode.startState(a1, a2) : true; }; var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {}; CodeMirror.defineMode = function (name, mode) { modes[name] = mode; }; CodeMirror.defineMIME = function (mime, spec) { mimeModes[mime] = spec; }; CodeMirror.getMode = function (options, spec) { if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) spec = mimeModes[spec]; if (typeof spec == "string") var mname = spec, config = {}; else if (spec != null) var mname = spec.name, config = spec; var mfactory = modes[mname]; if (!mfactory) throw new Error("Unknown mode: " + spec); return mfactory(options, config || {}); }; CodeMirror.runMode = function (string, modespec, callback, options) { var mode = CodeMirror.getMode({ indentUnit: 2 }, modespec); if (callback.nodeType == 1) { var tabSize = (options && options.tabSize) || 4; var node = callback, col = 0; node.innerHTML = ""; callback = function (text, style) { if (text == "\n") { node.appendChild(document.createElement("br")); col = 0; return; } var content = ""; // replace tabs for (var pos = 0; ;) { var idx = text.indexOf("\t", pos); if (idx == -1) { content += text.slice(pos); col += text.length - pos; break; } else { col += idx - pos; content += text.slice(pos, idx); var size = tabSize - col % tabSize; col += size; for (var i = 0; i < size; ++i) content += " "; pos = idx + 1; } } if (style) { var sp = node.appendChild(document.createElement("span")); sp.className = "cm-" + style.replace(/ +/g, " cm-"); sp.appendChild(document.createTextNode(content)); } else { node.appendChild(document.createTextNode(content)); } }; } var lines = splitLines(string), state = CodeMirror.startState(mode); for (var i = 0, e = lines.length; i < e; ++i) { if (i) callback("\n"); var stream = new CodeMirror.StringStream(lines[i]); while (!stream.eol()) { var style = mode.token(stream, state); callback(stream.current(), style, i, stream.start); stream.start = stream.pos; } } }; site_pro/codemirror-3.1/addon/runmode/runmode.js0000644000000000000000000000316112111430706020605 0ustar rootrootCodeMirror.runMode = function(string, modespec, callback, options) { var mode = CodeMirror.getMode(CodeMirror.defaults, modespec); if (callback.nodeType == 1) { var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize; var node = callback, col = 0; node.innerHTML = ""; callback = function(text, style) { if (text == "\n") { node.appendChild(document.createElement("br")); col = 0; return; } var content = ""; // replace tabs for (var pos = 0;;) { var idx = text.indexOf("\t", pos); if (idx == -1) { content += text.slice(pos); col += text.length - pos; break; } else { col += idx - pos; content += text.slice(pos, idx); var size = tabSize - col % tabSize; col += size; for (var i = 0; i < size; ++i) content += " "; pos = idx + 1; } } if (style) { var sp = node.appendChild(document.createElement("span")); sp.className = "cm-" + style.replace(/ +/g, " cm-"); sp.appendChild(document.createTextNode(content)); } else { node.appendChild(document.createTextNode(content)); } }; } var lines = CodeMirror.splitLines(string), state = CodeMirror.startState(mode); for (var i = 0, e = lines.length; i < e; ++i) { if (i) callback("\n"); var stream = new CodeMirror.StringStream(lines[i]); while (!stream.eol()) { var style = mode.token(stream, state); callback(stream.current(), style, i, stream.start); stream.start = stream.pos; } } }; site_pro/codemirror-3.1/addon/runmode/colorize.js0000644000000000000000000000150212111430706020757 0ustar rootrootCodeMirror.colorize = (function() { var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/; function textContent(node, out) { if (node.nodeType == 3) return out.push(node.nodeValue); for (var ch = node.firstChild; ch; ch = ch.nextSibling) { textContent(ch, out); if (isBlock.test(node.nodeType)) out.push("\n"); } } return function(collection, defaultMode) { if (!collection) collection = document.body.getElementsByTagName("pre"); for (var i = 0; i < collection.length; ++i) { var node = collection[i]; var mode = node.getAttribute("data-lang") || defaultMode; if (!mode) continue; var text = []; textContent(node, text); node.innerHTML = ""; CodeMirror.runMode(text.join(""), mode, node); node.className += " cm-s-default"; } }; })(); site_pro/codemirror-3.1/addon/runmode/runmode.node.js0000644000000000000000000000616112111430706021534 0ustar rootroot/* Just enough of CodeMirror to run runMode under node.js */ function splitLines(string){ return string.split(/\r?\n|\r/); }; function StringStream(string) { this.pos = this.start = 0; this.string = string; } StringStream.prototype = { eol: function() {return this.pos >= this.string.length;}, sol: function() {return this.pos == 0;}, peek: function() {return this.string.charAt(this.pos) || null;}, next: function() { if (this.pos < this.string.length) return this.string.charAt(this.pos++); }, eat: function(match) { var ch = this.string.charAt(this.pos); if (typeof match == "string") var ok = ch == match; else var ok = ch && (match.test ? match.test(ch) : match(ch)); if (ok) {++this.pos; return ch;} }, eatWhile: function(match) { var start = this.pos; while (this.eat(match)){} return this.pos > start; }, eatSpace: function() { var start = this.pos; while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos; return this.pos > start; }, skipToEnd: function() {this.pos = this.string.length;}, skipTo: function(ch) { var found = this.string.indexOf(ch, this.pos); if (found > -1) {this.pos = found; return true;} }, backUp: function(n) {this.pos -= n;}, column: function() {return this.start;}, indentation: function() {return 0;}, match: function(pattern, consume, caseInsensitive) { if (typeof pattern == "string") { var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;}; if (cased(this.string).indexOf(cased(pattern), this.pos) == this.pos) { if (consume !== false) this.pos += pattern.length; return true; } } else { var match = this.string.slice(this.pos).match(pattern); if (match && consume !== false) this.pos += match[0].length; return match; } }, current: function(){return this.string.slice(this.start, this.pos);} }; exports.StringStream = StringStream; exports.startState = function(mode, a1, a2) { return mode.startState ? mode.startState(a1, a2) : true; }; var modes = exports.modes = {}, mimeModes = exports.mimeModes = {}; exports.defineMode = function(name, mode) { modes[name] = mode; }; exports.defineMIME = function(mime, spec) { mimeModes[mime] = spec; }; exports.getMode = function(options, spec) { if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) spec = mimeModes[spec]; if (typeof spec == "string") var mname = spec, config = {}; else if (spec != null) var mname = spec.name, config = spec; var mfactory = modes[mname]; if (!mfactory) throw new Error("Unknown mode: " + spec); return mfactory(options, config || {}); }; exports.runMode = function(string, modespec, callback) { var mode = exports.getMode({indentUnit: 2}, modespec); var lines = splitLines(string), state = exports.startState(mode); for (var i = 0, e = lines.length; i < e; ++i) { if (i) callback("\n"); var stream = new exports.StringStream(lines[i]); while (!stream.eol()) { var style = mode.token(stream, state); callback(stream.current(), style, i, stream.start); stream.start = stream.pos; } } }; site_pro/codemirror-3.1/addon/edit/0000755000000000000000000000000012111430706016051 5ustar rootrootsite_pro/codemirror-3.1/addon/edit/closebrackets.js0000644000000000000000000000223312111430706021233 0ustar rootroot(function() { var DEFAULT_BRACKETS = "()[]{}''\"\""; CodeMirror.defineOption("autoCloseBrackets", false, function(cm, val, old) { var wasOn = old && old != CodeMirror.Init; if (val && !wasOn) cm.addKeyMap(buildKeymap(typeof val == "string" ? val : DEFAULT_BRACKETS)); else if (!val && wasOn) cm.removeKeyMap("autoCloseBrackets"); }); function buildKeymap(pairs) { var map = {name : "autoCloseBrackets"}; for (var i = 0; i < pairs.length; i += 2) (function(left, right) { function maybeOverwrite(cm) { var cur = cm.getCursor(), ahead = cm.getRange(cur, CodeMirror.Pos(cur.line, cur.ch + 1)); if (ahead != right) return CodeMirror.Pass; else cm.execCommand("goCharRight"); } map["'" + left + "'"] = function(cm) { if (left == right && maybeOverwrite(cm) != CodeMirror.Pass) return; var cur = cm.getCursor("start"), ahead = CodeMirror.Pos(cur.line, cur.ch + 1); cm.replaceSelection(left + right, {head: ahead, anchor: ahead}); }; if (left != right) map["'" + right + "'"] = maybeOverwrite; })(pairs.charAt(i), pairs.charAt(i + 1)); return map; } })(); site_pro/codemirror-3.1/addon/edit/continuecomment.js0000644000000000000000000000276112111430706021624 0ustar rootroot(function() { var modes = ["clike", "css", "javascript"]; for (var i = 0; i < modes.length; ++i) CodeMirror.extendMode(modes[i], {blockCommentStart: "/*", blockCommentEnd: "*/", blockCommentContinue: " * "}); CodeMirror.commands.newlineAndIndentContinueComment = function(cm) { var pos = cm.getCursor(), token = cm.getTokenAt(pos); var mode = CodeMirror.innerMode(cm.getMode(), token.state).mode; var space; if (token.type == "comment" && mode.blockCommentStart) { var end = token.string.indexOf(mode.blockCommentEnd); var full = cm.getRange(CodeMirror.Pos(pos.line, 0), CodeMirror.Pos(pos.line, token.end)), found; if (end != -1 && end == token.string.length - mode.blockCommentEnd.length) { // Comment ended, don't continue it } else if (token.string.indexOf(mode.blockCommentStart) == 0) { space = full.slice(0, token.start); if (!/^\s*$/.test(space)) { space = ""; for (var i = 0; i < token.start; ++i) space += " "; } } else if ((found = full.indexOf(mode.blockCommentContinue)) != -1 && found + mode.blockCommentContinue.length > token.start && /^\s*$/.test(full.slice(0, found))) { space = full.slice(0, found); } } if (space != null) cm.replaceSelection("\n" + space + mode.blockCommentContinue, "end"); else cm.execCommand("newlineAndIndent"); }; })(); site_pro/codemirror-3.1/addon/edit/continuelist.js0000644000000000000000000000163512111430706021134 0ustar rootroot(function() { CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) { var pos = cm.getCursor(), token = cm.getTokenAt(pos); var space; if (token.className == "string") { var full = cm.getRange({line: pos.line, ch: 0}, {line: pos.line, ch: token.end}); var listStart = /\*|\d+\./, listContinue; if (token.string.search(listStart) == 0) { var reg = /^[\W]*(\d+)\./g; var matches = reg.exec(full); if(matches) listContinue = (parseInt(matches[1]) + 1) + ". "; else listContinue = "* "; space = full.slice(0, token.start); if (!/^\s*$/.test(space)) { space = ""; for (var i = 0; i < token.start; ++i) space += " "; } } } if (space != null) cm.replaceSelection("\n" + space + listContinue, "end"); else cm.execCommand("newlineAndIndent"); }; })(); site_pro/codemirror-3.1/addon/edit/matchbrackets.js0000644000000000000000000000642112111430706021225 0ustar rootroot(function() { var ie_lt8 = /MSIE \d/.test(navigator.userAgent) && (document.documentMode == null || document.documentMode < 8); var Pos = CodeMirror.Pos; // Disable brace matching in long lines, since it'll cause hugely slow updates var maxLineLen = 1000; var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"}; function findMatchingBracket(cm) { var cur = cm.getCursor(), line = cm.getLineHandle(cur.line), pos = cur.ch - 1; var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)]; if (!match) return null; var forward = match.charAt(1) == ">", d = forward ? 1 : -1; var style = cm.getTokenAt(Pos(cur.line, pos + 1)).type; var stack = [line.text.charAt(pos)], re = /[(){}[\]]/; function scan(line, lineNo, start) { if (!line.text) return; var pos = forward ? 0 : line.text.length - 1, end = forward ? line.text.length : -1; if (start != null) pos = start + d; for (; pos != end; pos += d) { var ch = line.text.charAt(pos); if (re.test(ch) && cm.getTokenAt(Pos(lineNo, pos + 1)).type == style) { var match = matching[ch]; if (match.charAt(1) == ">" == forward) stack.push(ch); else if (stack.pop() != match.charAt(0)) return {pos: pos, match: false}; else if (!stack.length) return {pos: pos, match: true}; } } } for (var i = cur.line, found, e = forward ? Math.min(i + 100, cm.lineCount()) : Math.max(-1, i - 100); i != e; i+=d) { if (i == cur.line) found = scan(line, i, pos); else found = scan(cm.getLineHandle(i), i); if (found) break; } return {from: Pos(cur.line, pos), to: found && Pos(i, found.pos), match: found && found.match}; } function matchBrackets(cm, autoclear) { var found = findMatchingBracket(cm); if (!found || cm.getLine(found.from.line).length > maxLineLen || found.to && cm.getLine(found.to.line).length > maxLineLen) return; var style = found.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket"; var one = cm.markText(found.from, Pos(found.from.line, found.from.ch + 1), {className: style}); var two = found.to && cm.markText(found.to, Pos(found.to.line, found.to.ch + 1), {className: style}); // Kludge to work around the IE bug from issue #1193, where text // input stops going to the textare whever this fires. if (ie_lt8 && cm.state.focused) cm.display.input.focus(); var clear = function() { cm.operation(function() { one.clear(); two && two.clear(); }); }; if (autoclear) setTimeout(clear, 800); else return clear; } var currentlyHighlighted = null; function doMatchBrackets(cm) { cm.operation(function() { if (currentlyHighlighted) {currentlyHighlighted(); currentlyHighlighted = null;} if (!cm.somethingSelected()) currentlyHighlighted = matchBrackets(cm, false); }); } CodeMirror.defineOption("matchBrackets", false, function(cm, val) { if (val) cm.on("cursorActivity", doMatchBrackets); else cm.off("cursorActivity", doMatchBrackets); }); CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);}); CodeMirror.defineExtension("findMatchingBracket", function(){return findMatchingBracket(this);}); })(); site_pro/codemirror-3.1/addon/edit/closetag.js0000644000000000000000000000724412111430706020217 0ustar rootroot/** * Tag-closer extension for CodeMirror. * * This extension adds an "autoCloseTags" option that can be set to * either true to get the default behavior, or an object to further * configure its behavior. * * These are supported options: * * `whenClosing` (default true) * Whether to autoclose when the '/' of a closing tag is typed. * `whenOpening` (default true) * Whether to autoclose the tag when the final '>' of an opening * tag is typed. * `dontCloseTags` (default is empty tags for HTML, none for XML) * An array of tag names that should not be autoclosed. * `indentTags` (default is block tags for HTML, none for XML) * An array of tag names that should, when opened, cause a * blank line to be added inside the tag, and the blank line and * closing line to be indented. * * See demos/closetag.html for a usage example. */ (function() { CodeMirror.defineOption("autoCloseTags", false, function(cm, val, old) { if (val && (old == CodeMirror.Init || !old)) { var map = {name: "autoCloseTags"}; if (typeof val != "object" || val.whenClosing) map["'/'"] = function(cm) { return autoCloseTag(cm, '/'); }; if (typeof val != "object" || val.whenOpening) map["'>'"] = function(cm) { return autoCloseTag(cm, '>'); }; cm.addKeyMap(map); } else if (!val && (old != CodeMirror.Init && old)) { cm.removeKeyMap("autoCloseTags"); } }); var htmlDontClose = ["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]; var htmlIndent = ["applet", "blockquote", "body", "button", "div", "dl", "fieldset", "form", "frameset", "h1", "h2", "h3", "h4", "h5", "h6", "head", "html", "iframe", "layer", "legend", "object", "ol", "p", "select", "table", "ul"]; function autoCloseTag(cm, ch) { var pos = cm.getCursor(), tok = cm.getTokenAt(pos); var inner = CodeMirror.innerMode(cm.getMode(), tok.state), state = inner.state; if (inner.mode.name != "xml") return CodeMirror.Pass; var opt = cm.getOption("autoCloseTags"), html = inner.mode.configuration == "html"; var dontCloseTags = (typeof opt == "object" && opt.dontCloseTags) || (html && htmlDontClose); var indentTags = (typeof opt == "object" && opt.indentTags) || (html && htmlIndent); if (ch == ">" && state.tagName) { var tagName = state.tagName; if (tok.end > pos.ch) tagName = tagName.slice(0, tagName.length - tok.end + pos.ch); var lowerTagName = tagName.toLowerCase(); // Don't process the '>' at the end of an end-tag or self-closing tag if (tok.type == "tag" && state.type == "closeTag" || /\/\s*$/.test(tok.string) || dontCloseTags && indexOf(dontCloseTags, lowerTagName) > -1) return CodeMirror.Pass; var doIndent = indentTags && indexOf(indentTags, lowerTagName) > -1; var curPos = doIndent ? CodeMirror.Pos(pos.line + 1, 0) : CodeMirror.Pos(pos.line, pos.ch + 1); cm.replaceSelection(">" + (doIndent ? "\n\n" : "") + "", {head: curPos, anchor: curPos}); if (doIndent) { cm.indentLine(pos.line + 1); cm.indentLine(pos.line + 2); } return; } else if (ch == "/" && tok.string == "<") { var tagName = state.context && state.context.tagName; if (tagName) cm.replaceSelection("/" + tagName + ">", "end"); return; } return CodeMirror.Pass; } function indexOf(collection, elt) { if (collection.indexOf) return collection.indexOf(elt); for (var i = 0, e = collection.length; i < e; ++i) if (collection[i] == elt) return i; return -1; } })(); site_pro/codemirror-3.1/addon/fold/0000755000000000000000000000000012111430706016050 5ustar rootrootsite_pro/codemirror-3.1/addon/fold/foldcode.js0000644000000000000000000001412512111430706020170 0ustar rootroot// the tagRangeFinder function is // Copyright (C) 2011 by Daniel Glazman // released under the MIT license (../../LICENSE) like the rest of CodeMirror CodeMirror.tagRangeFinder = function(cm, start) { var nameStartChar = "A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD"; var nameChar = nameStartChar + "\-\:\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040"; var xmlNAMERegExp = new RegExp("^[" + nameStartChar + "][" + nameChar + "]*"); var lineText = cm.getLine(start.line); var found = false; var tag = null; var pos = start.ch; while (!found) { pos = lineText.indexOf("<", pos); if (-1 == pos) // no tag on line return; if (pos + 1 < lineText.length && lineText[pos + 1] == "/") { // closing tag pos++; continue; } // ok we seem to have a start tag if (!lineText.substr(pos + 1).match(xmlNAMERegExp)) { // not a tag name... pos++; continue; } var gtPos = lineText.indexOf(">", pos + 1); if (-1 == gtPos) { // end of start tag not in line var l = start.line + 1; var foundGt = false; var lastLine = cm.lineCount(); while (l < lastLine && !foundGt) { var lt = cm.getLine(l); gtPos = lt.indexOf(">"); if (-1 != gtPos) { // found a > foundGt = true; var slash = lt.lastIndexOf("/", gtPos); if (-1 != slash && slash < gtPos) { var str = lineText.substr(slash, gtPos - slash + 1); if (!str.match( /\/\s*\>/ )) // yep, that's the end of empty tag return; } } l++; } found = true; } else { var slashPos = lineText.lastIndexOf("/", gtPos); if (-1 == slashPos) { // cannot be empty tag found = true; // don't continue } else { // empty tag? // check if really empty tag var str = lineText.substr(slashPos, gtPos - slashPos + 1); if (!str.match( /\/\s*\>/ )) { // finally not empty found = true; // don't continue } } } if (found) { var subLine = lineText.substr(pos + 1); tag = subLine.match(xmlNAMERegExp); if (tag) { // we have an element name, wooohooo ! tag = tag[0]; // do we have the close tag on same line ??? if (-1 != lineText.indexOf("", pos)) // yep { found = false; } // we don't, so we have a candidate... } else found = false; } if (!found) pos++; } if (found) { var startTag = "(\\<\\/" + tag + "\\>)|(\\<" + tag + "\\>)|(\\<" + tag + "\\s)|(\\<" + tag + "$)"; var startTagRegExp = new RegExp(startTag); var endTag = ""; var depth = 1; var l = start.line + 1; var lastLine = cm.lineCount(); while (l < lastLine) { lineText = cm.getLine(l); var match = lineText.match(startTagRegExp); if (match) { for (var i = 0; i < match.length; i++) { if (match[i] == endTag) depth--; else depth++; if (!depth) return {from: CodeMirror.Pos(start.line, gtPos + 1), to: CodeMirror.Pos(l, match.index)}; } } l++; } return; } }; CodeMirror.braceRangeFinder = function(cm, start) { var line = start.line, lineText = cm.getLine(line); var at = lineText.length, startChar, tokenType; for (;;) { var found = lineText.lastIndexOf("{", at); if (found < start.ch) break; tokenType = cm.getTokenAt(CodeMirror.Pos(line, found + 1)).type; if (!/^(comment|string)/.test(tokenType)) { startChar = found; break; } at = found - 1; } if (startChar == null || lineText.lastIndexOf("}") > startChar) return; var count = 1, lastLine = cm.lineCount(), end, endCh; outer: for (var i = line + 1; i < lastLine; ++i) { var text = cm.getLine(i), pos = 0; for (;;) { var nextOpen = text.indexOf("{", pos), nextClose = text.indexOf("}", pos); if (nextOpen < 0) nextOpen = text.length; if (nextClose < 0) nextClose = text.length; pos = Math.min(nextOpen, nextClose); if (pos == text.length) break; if (cm.getTokenAt(CodeMirror.Pos(i, pos + 1)).type == tokenType) { if (pos == nextOpen) ++count; else if (!--count) { end = i; endCh = pos; break outer; } } ++pos; } } if (end == null || end == line + 1) return; return {from: CodeMirror.Pos(line, startChar + 1), to: CodeMirror.Pos(end, endCh)}; }; CodeMirror.indentRangeFinder = function(cm, start) { var tabSize = cm.getOption("tabSize"), firstLine = cm.getLine(start.line); var myIndent = CodeMirror.countColumn(firstLine, null, tabSize); for (var i = start.line + 1, end = cm.lineCount(); i < end; ++i) { var curLine = cm.getLine(i); if (CodeMirror.countColumn(curLine, null, tabSize) < myIndent && CodeMirror.countColumn(cm.getLine(i-1), null, tabSize) > myIndent) return {from: CodeMirror.Pos(start.line, firstLine.length), to: CodeMirror.Pos(i, curLine.length)}; } }; CodeMirror.newFoldFunction = function(rangeFinder, widget) { if (widget == null) widget = "\u2194"; if (typeof widget == "string") { var text = document.createTextNode(widget); widget = document.createElement("span"); widget.appendChild(text); widget.className = "CodeMirror-foldmarker"; } return function(cm, pos) { if (typeof pos == "number") pos = CodeMirror.Pos(pos, 0); var range = rangeFinder(cm, pos); if (!range) return; var present = cm.findMarksAt(range.from), cleared = 0; for (var i = 0; i < present.length; ++i) { if (present[i].__isFold) { ++cleared; present[i].clear(); } } if (cleared) return; var myWidget = widget.cloneNode(true); CodeMirror.on(myWidget, "mousedown", function() {myRange.clear();}); var myRange = cm.markText(range.from, range.to, { replacedWith: myWidget, clearOnEnter: true, __isFold: true }); }; }; site_pro/codemirror-3.1/addon/fold/collapserange.js0000644000000000000000000000437712111430706021240 0ustar rootroot(function() { CodeMirror.defineOption("collapseRange", false, function(cm, val, old) { var wasOn = old && old != CodeMirror.Init; if (val && !wasOn) enableRangeCollapsing(cm); else if (!val && wasOn) disableRangeCollapsing(cm); }); var gutterClass = "CodeMirror-collapserange"; function enableRangeCollapsing(cm) { cm.on("gutterClick", gutterClick); cm.setOption("gutters", (cm.getOption("gutters") || []).concat([gutterClass])); } function disableRangeCollapsing(cm) { cm.rangeCollapseStart = null; cm.off("gutterClick", gutterClick); var gutters = cm.getOption("gutters"); for (var i = 0; i < gutters.length && gutters[i] != gutterClass; ++i) {} cm.setOption("gutters", gutters.slice(0, i).concat(gutters.slice(i + 1))); } function gutterClick(cm, line, gutter) { if (gutter != gutterClass) return; var start = cm.rangeCollapseStart; if (start) { var old = cm.getLineNumber(start); cm.setGutterMarker(start, gutterClass, null); cm.rangeCollapseStart = null; var from = Math.min(old, line), to = Math.max(old, line); if (from != to) { // Finish this fold var fold = cm.markText(CodeMirror.Pos(from + 1, 0), {line: to - 1}, { collapsed: true, inclusiveLeft: true, inclusiveRight: true, clearOnEnter: true }); var clear = function() { cm.setGutterMarker(topLine, gutterClass, null); cm.setGutterMarker(botLine, gutterClass, null); fold.clear(); }; var topLine = cm.setGutterMarker(from, gutterClass, makeMarker(true, true, clear)); var botLine = cm.setGutterMarker(to, gutterClass, makeMarker(false, true, clear)); CodeMirror.on(fold, "clear", clear); return; } } // Start a new fold cm.rangeCollapseStart = cm.setGutterMarker(line, gutterClass, makeMarker(true, false)); } function makeMarker(isTop, isFinished, handler) { var node = document.createElement("div"); node.innerHTML = isTop ? "\u25bc" : "\u25b2"; if (!isFinished) node.style.color = "red"; node.style.fontSize = "85%"; node.style.cursor = "pointer"; if (handler) CodeMirror.on(node, "mousedown", handler); return node; } })(); site_pro/codemirror-3.1/addon/selection/0000755000000000000000000000000012111430706017111 5ustar rootrootsite_pro/codemirror-3.1/addon/selection/active-line.js0000644000000000000000000000240112111430706021644 0ustar rootroot// Because sometimes you need to style the cursor's line. // // Adds an option 'styleActiveLine' which, when enabled, gives the // active line's wrapping
    the CSS class "CodeMirror-activeline", // and gives its background
    the class "CodeMirror-activeline-background". (function() { "use strict"; var WRAP_CLASS = "CodeMirror-activeline"; var BACK_CLASS = "CodeMirror-activeline-background"; CodeMirror.defineOption("styleActiveLine", false, function(cm, val, old) { var prev = old && old != CodeMirror.Init; if (val && !prev) { updateActiveLine(cm); cm.on("cursorActivity", updateActiveLine); } else if (!val && prev) { cm.off("cursorActivity", updateActiveLine); clearActiveLine(cm); delete cm._activeLine; } }); function clearActiveLine(cm) { if ("_activeLine" in cm) { cm.removeLineClass(cm._activeLine, "wrap", WRAP_CLASS); cm.removeLineClass(cm._activeLine, "background", BACK_CLASS); } } function updateActiveLine(cm) { var line = cm.getLineHandle(cm.getCursor().line); if (cm._activeLine == line) return; clearActiveLine(cm); cm.addLineClass(line, "wrap", WRAP_CLASS); cm.addLineClass(line, "background", BACK_CLASS); cm._activeLine = line; } })(); site_pro/codemirror-3.1/addon/selection/mark-selection.js0000644000000000000000000000175612111430706022375 0ustar rootroot// Because sometimes you need to mark the selected *text*. // // Adds an option 'styleSelectedText' which, when enabled, gives // selected text the CSS class "CodeMirror-selectedtext". (function() { "use strict"; CodeMirror.defineOption("styleSelectedText", false, function(cm, val, old) { var prev = old && old != CodeMirror.Init; if (val && !prev) { updateSelectedText(cm); cm.on("cursorActivity", updateSelectedText); } else if (!val && prev) { cm.off("cursorActivity", updateSelectedText); clearSelectedText(cm); delete cm._selectionMark; } }); function clearSelectedText(cm) { if (cm._selectionMark) cm._selectionMark.clear(); } function updateSelectedText(cm) { clearSelectedText(cm); if (cm.somethingSelected()) cm._selectionMark = cm.markText(cm.getCursor("start"), cm.getCursor("end"), {className: "CodeMirror-selectedtext"}); else cm._selectionMark = null; } })(); site_pro/codemirror-3.1/addon/search/0000755000000000000000000000000012111430706016371 5ustar rootrootsite_pro/codemirror-3.1/addon/search/searchcursor.js0000644000000000000000000001226612111430706021441 0ustar rootroot(function(){ var Pos = CodeMirror.Pos; function SearchCursor(cm, query, pos, caseFold) { this.atOccurrence = false; this.cm = cm; if (caseFold == null && typeof query == "string") caseFold = false; pos = pos ? cm.clipPos(pos) : Pos(0, 0); this.pos = {from: pos, to: pos}; // The matches method is filled in based on the type of query. // It takes a position and a direction, and returns an object // describing the next occurrence of the query, or null if no // more matches were found. if (typeof query != "string") { // Regexp match if (!query.global) query = new RegExp(query.source, query.ignoreCase ? "ig" : "g"); this.matches = function(reverse, pos) { if (reverse) { query.lastIndex = 0; var line = cm.getLine(pos.line).slice(0, pos.ch), match = query.exec(line), start = 0; while (match) { start += match.index + 1; line = line.slice(start); query.lastIndex = 0; var newmatch = query.exec(line); if (newmatch) match = newmatch; else break; } start--; } else { query.lastIndex = pos.ch; var line = cm.getLine(pos.line), match = query.exec(line), start = match && match.index; } if (match && match[0]) return {from: Pos(pos.line, start), to: Pos(pos.line, start + match[0].length), match: match}; }; } else { // String query if (caseFold) query = query.toLowerCase(); var fold = caseFold ? function(str){return str.toLowerCase();} : function(str){return str;}; var target = query.split("\n"); // Different methods for single-line and multi-line queries if (target.length == 1) { if (!query.length) { // Empty string would match anything and never progress, so // we define it to match nothing instead. this.matches = function() {}; } else { this.matches = function(reverse, pos) { var line = fold(cm.getLine(pos.line)), len = query.length, match; if (reverse ? (pos.ch >= len && (match = line.lastIndexOf(query, pos.ch - len)) != -1) : (match = line.indexOf(query, pos.ch)) != -1) return {from: Pos(pos.line, match), to: Pos(pos.line, match + len)}; }; } } else { this.matches = function(reverse, pos) { var ln = pos.line, idx = (reverse ? target.length - 1 : 0), match = target[idx], line = fold(cm.getLine(ln)); var offsetA = (reverse ? line.indexOf(match) + match.length : line.lastIndexOf(match)); if (reverse ? offsetA >= pos.ch || offsetA != match.length : offsetA <= pos.ch || offsetA != line.length - match.length) return; for (;;) { if (reverse ? !ln : ln == cm.lineCount() - 1) return; line = fold(cm.getLine(ln += reverse ? -1 : 1)); match = target[reverse ? --idx : ++idx]; if (idx > 0 && idx < target.length - 1) { if (line != match) return; else continue; } var offsetB = (reverse ? line.lastIndexOf(match) : line.indexOf(match) + match.length); if (reverse ? offsetB != line.length - match.length : offsetB != match.length) return; var start = Pos(pos.line, offsetA), end = Pos(ln, offsetB); return {from: reverse ? end : start, to: reverse ? start : end}; } }; } } } SearchCursor.prototype = { findNext: function() {return this.find(false);}, findPrevious: function() {return this.find(true);}, find: function(reverse) { var self = this, pos = this.cm.clipPos(reverse ? this.pos.from : this.pos.to); function savePosAndFail(line) { var pos = Pos(line, 0); self.pos = {from: pos, to: pos}; self.atOccurrence = false; return false; } for (;;) { if (this.pos = this.matches(reverse, pos)) { if (!this.pos.from || !this.pos.to) { console.log(this.matches, this.pos); } this.atOccurrence = true; return this.pos.match || true; } if (reverse) { if (!pos.line) return savePosAndFail(0); pos = Pos(pos.line-1, this.cm.getLine(pos.line-1).length); } else { var maxLine = this.cm.lineCount(); if (pos.line == maxLine - 1) return savePosAndFail(maxLine); pos = Pos(pos.line + 1, 0); } } }, from: function() {if (this.atOccurrence) return this.pos.from;}, to: function() {if (this.atOccurrence) return this.pos.to;}, replace: function(newText) { if (!this.atOccurrence) return; var lines = CodeMirror.splitLines(newText); this.cm.replaceRange(lines, this.pos.from, this.pos.to); this.pos.to = Pos(this.pos.from.line + lines.length - 1, lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0)); } }; CodeMirror.defineExtension("getSearchCursor", function(query, pos, caseFold) { return new SearchCursor(this, query, pos, caseFold); }); })(); site_pro/codemirror-3.1/addon/search/match-highlighter.js0000644000000000000000000000376012111430706022325 0ustar rootroot// Highlighting text that matches the selection // // Defines an option highlightSelectionMatches, which, when enabled, // will style strings that match the selection throughout the // document. // // The option can be set to true to simply enable it, or to a // {minChars, style} object to explicitly configure it. minChars is // the minimum amount of characters that should be selected for the // behavior to occur, and style is the token style to apply to the // matches. This will be prefixed by "cm-" to create an actual CSS // class name. (function() { var DEFAULT_MIN_CHARS = 2; var DEFAULT_TOKEN_STYLE = "matchhighlight"; function State(options) { this.minChars = typeof options == "object" && options.minChars || DEFAULT_MIN_CHARS; this.style = typeof options == "object" && options.style || DEFAULT_TOKEN_STYLE; this.overlay = null; } CodeMirror.defineOption("highlightSelectionMatches", false, function(cm, val, old) { var prev = old && old != CodeMirror.Init; if (val && !prev) { cm._matchHighlightState = new State(val); cm.on("cursorActivity", highlightMatches); } else if (!val && prev) { var over = cm._matchHighlightState.overlay; if (over) cm.removeOverlay(over); cm._matchHighlightState = null; cm.off("cursorActivity", highlightMatches); } }); function highlightMatches(cm) { cm.operation(function() { var state = cm._matchHighlightState; if (state.overlay) { cm.removeOverlay(state.overlay); state.overlay = null; } if (!cm.somethingSelected()) return; var selection = cm.getSelection().replace(/^\s+|\s+$/g, ""); if (selection.length < state.minChars) return; cm.addOverlay(state.overlay = makeOverlay(selection, state.style)); }); } function makeOverlay(query, style) { return {token: function(stream) { if (stream.match(query)) return style; stream.next(); stream.skipTo(query.charAt(0)) || stream.skipToEnd(); }}; } })(); site_pro/codemirror-3.1/addon/search/search.js0000644000000000000000000001230112111430706020171 0ustar rootroot// Define search commands. Depends on dialog.js or another // implementation of the openDialog method. // Replace works a little oddly -- it will do the replace on the next // Ctrl-G (or whatever is bound to findNext) press. You prevent a // replace by making sure the match is no longer selected when hitting // Ctrl-G. (function() { function searchOverlay(query) { if (typeof query == "string") return {token: function(stream) { if (stream.match(query)) return "searching"; stream.next(); stream.skipTo(query.charAt(0)) || stream.skipToEnd(); }}; return {token: function(stream) { if (stream.match(query)) return "searching"; while (!stream.eol()) { stream.next(); if (stream.match(query, false)) break; } }}; } function SearchState() { this.posFrom = this.posTo = this.query = null; this.overlay = null; } function getSearchState(cm) { return cm._searchState || (cm._searchState = new SearchState()); } function getSearchCursor(cm, query, pos) { // Heuristic: if the query string is all lowercase, do a case insensitive search. return cm.getSearchCursor(query, pos, typeof query == "string" && query == query.toLowerCase()); } function dialog(cm, text, shortText, f) { if (cm.openDialog) cm.openDialog(text, f); else f(prompt(shortText, "")); } function confirmDialog(cm, text, shortText, fs) { if (cm.openConfirm) cm.openConfirm(text, fs); else if (confirm(shortText)) fs[0](); } function parseQuery(query) { var isRE = query.match(/^\/(.*)\/([a-z]*)$/); return isRE ? new RegExp(isRE[1], isRE[2].indexOf("i") == -1 ? "" : "i") : query; } var queryDialog = 'Search: (Use /re/ syntax for regexp search)'; function doSearch(cm, rev) { var state = getSearchState(cm); if (state.query) return findNext(cm, rev); dialog(cm, queryDialog, "Search for:", function(query) { cm.operation(function() { if (!query || state.query) return; state.query = parseQuery(query); cm.removeOverlay(state.overlay); state.overlay = searchOverlay(query); cm.addOverlay(state.overlay); state.posFrom = state.posTo = cm.getCursor(); findNext(cm, rev); }); }); } function findNext(cm, rev) {cm.operation(function() { var state = getSearchState(cm); var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo); if (!cursor.find(rev)) { cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0)); if (!cursor.find(rev)) return; } cm.setSelection(cursor.from(), cursor.to()); state.posFrom = cursor.from(); state.posTo = cursor.to(); });} function clearSearch(cm) {cm.operation(function() { var state = getSearchState(cm); if (!state.query) return; state.query = null; cm.removeOverlay(state.overlay); });} var replaceQueryDialog = 'Replace: (Use /re/ syntax for regexp search)'; var replacementQueryDialog = 'With: '; var doReplaceConfirm = "Replace? "; function replace(cm, all) { dialog(cm, replaceQueryDialog, "Replace:", function(query) { if (!query) return; query = parseQuery(query); dialog(cm, replacementQueryDialog, "Replace with:", function(text) { if (all) { cm.operation(function() { for (var cursor = getSearchCursor(cm, query); cursor.findNext();) { if (typeof query != "string") { var match = cm.getRange(cursor.from(), cursor.to()).match(query); cursor.replace(text.replace(/\$(\d)/, function(_, i) {return match[i];})); } else cursor.replace(text); } }); } else { clearSearch(cm); var cursor = getSearchCursor(cm, query, cm.getCursor()); var advance = function() { var start = cursor.from(), match; if (!(match = cursor.findNext())) { cursor = getSearchCursor(cm, query); if (!(match = cursor.findNext()) || (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return; } cm.setSelection(cursor.from(), cursor.to()); confirmDialog(cm, doReplaceConfirm, "Replace?", [function() {doReplace(match);}, advance]); }; var doReplace = function(match) { cursor.replace(typeof query == "string" ? text : text.replace(/\$(\d)/, function(_, i) {return match[i];})); advance(); }; advance(); } }); }); } CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);}; CodeMirror.commands.findNext = doSearch; CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);}; CodeMirror.commands.clearSearch = clearSearch; CodeMirror.commands.replace = replace; CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);}; })(); site_pro/codemirror-3.1/addon/dialog/0000755000000000000000000000000012111430706016363 5ustar rootrootsite_pro/codemirror-3.1/addon/dialog/dialog.css0000644000000000000000000000076612111430706020345 0ustar rootroot.CodeMirror-dialog { position: absolute; left: 0; right: 0; background: white; z-index: 15; padding: .1em .8em; overflow: hidden; color: #333; } .CodeMirror-dialog-top { border-bottom: 1px solid #eee; top: 0; } .CodeMirror-dialog-bottom { border-top: 1px solid #eee; bottom: 0; } .CodeMirror-dialog input { border: none; outline: none; background: transparent; width: 20em; color: inherit; font-family: monospace; } .CodeMirror-dialog button { font-size: 70%; } site_pro/codemirror-3.1/addon/dialog/dialog.js0000644000000000000000000000457112111430706020167 0ustar rootroot// Open simple dialogs on top of an editor. Relies on dialog.css. (function() { function dialogDiv(cm, template, bottom) { var wrap = cm.getWrapperElement(); var dialog; dialog = wrap.appendChild(document.createElement("div")); if (bottom) { dialog.className = "CodeMirror-dialog CodeMirror-dialog-bottom"; } else { dialog.className = "CodeMirror-dialog CodeMirror-dialog-top"; } dialog.innerHTML = template; return dialog; } CodeMirror.defineExtension("openDialog", function(template, callback, options) { var dialog = dialogDiv(this, template, options && options.bottom); var closed = false, me = this; function close() { if (closed) return; closed = true; dialog.parentNode.removeChild(dialog); } var inp = dialog.getElementsByTagName("input")[0], button; if (inp) { CodeMirror.on(inp, "keydown", function(e) { if (e.keyCode == 13 || e.keyCode == 27) { CodeMirror.e_stop(e); close(); me.focus(); if (e.keyCode == 13) callback(inp.value); } }); if (options && options.value) inp.value = options.value; inp.focus(); CodeMirror.on(inp, "blur", close); } else if (button = dialog.getElementsByTagName("button")[0]) { CodeMirror.on(button, "click", function() { close(); me.focus(); }); button.focus(); CodeMirror.on(button, "blur", close); } return close; }); CodeMirror.defineExtension("openConfirm", function(template, callbacks, options) { var dialog = dialogDiv(this, template, options && options.bottom); var buttons = dialog.getElementsByTagName("button"); var closed = false, me = this, blurring = 1; function close() { if (closed) return; closed = true; dialog.parentNode.removeChild(dialog); me.focus(); } buttons[0].focus(); for (var i = 0; i < buttons.length; ++i) { var b = buttons[i]; (function(callback) { CodeMirror.on(b, "click", function(e) { CodeMirror.e_preventDefault(e); close(); if (callback) callback(me); }); })(callbacks[i]); CodeMirror.on(b, "blur", function() { --blurring; setTimeout(function() { if (blurring <= 0) close(); }, 200); }); CodeMirror.on(b, "focus", function() { ++blurring; }); } }); })(); site_pro/codemirror-3.1/theme/0000755000000000000000000000000012111430706015141 5ustar rootrootsite_pro/codemirror-3.1/theme/erlang-dark.css0000644000000000000000000000232612111430706020045 0ustar rootroot.cm-s-erlang-dark.CodeMirror { background: #002240; color: white; } .cm-s-erlang-dark div.CodeMirror-selected { background: #b36539 !important; } .cm-s-erlang-dark .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } .cm-s-erlang-dark .CodeMirror-linenumber { color: #d0d0d0; } .cm-s-erlang-dark .CodeMirror-cursor { border-left: 1px solid white !important; } .cm-s-erlang-dark span.cm-atom { color: #845dc4; } .cm-s-erlang-dark span.cm-attribute { color: #ff80e1; } .cm-s-erlang-dark span.cm-bracket { color: #ff9d00; } .cm-s-erlang-dark span.cm-builtin { color: #eeaaaa; } .cm-s-erlang-dark span.cm-comment { color: #7777ff; } .cm-s-erlang-dark span.cm-def { color: #ee77aa; } .cm-s-erlang-dark span.cm-error { color: #9d1e15; } .cm-s-erlang-dark span.cm-keyword { color: #ffee80; } .cm-s-erlang-dark span.cm-meta { color: #50fefe; } .cm-s-erlang-dark span.cm-number { color: #ffd0d0; } .cm-s-erlang-dark span.cm-operator { color: #dd1111; } .cm-s-erlang-dark span.cm-string { color: #3ad900; } .cm-s-erlang-dark span.cm-tag { color: #9effff; } .cm-s-erlang-dark span.cm-variable { color: #50fe50; } .cm-s-erlang-dark span.cm-variable-2 { color: #ee00ee; } site_pro/codemirror-3.1/theme/neat.css0000644000000000000000000000101412111430706016576 0ustar rootroot.cm-s-neat span.cm-comment { color: #a86; } .cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; } .cm-s-neat span.cm-string { color: #a22; } .cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; } .cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; } .cm-s-neat span.cm-variable { color: black; } .cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; } .cm-s-neat span.cm-meta {color: #555;} .cm-s-neat span.cm-link { color: #3a3; } site_pro/codemirror-3.1/theme/ambiance-mobile.css0000644000000000000000000000017612111430706020663 0ustar rootroot.cm-s-ambiance.CodeMirror { -webkit-box-shadow: none; -moz-box-shadow: none; -o-box-shadow: none; box-shadow: none; } site_pro/codemirror-3.1/theme/twilight.css0000644000000000000000000000267212111430706017515 0ustar rootroot.cm-s-twilight.CodeMirror { background: #141414; color: #f7f7f7; } /**/ .cm-s-twilight .CodeMirror-selected { background: #323232 !important; } /**/ .cm-s-twilight .CodeMirror-gutters { background: #222; border-right: 1px solid #aaa; } .cm-s-twilight .CodeMirror-linenumber { color: #aaa; } .cm-s-twilight .CodeMirror-cursor { border-left: 1px solid white !important; } .cm-s-twilight .cm-keyword { color: #f9ee98; } /**/ .cm-s-twilight .cm-atom { color: #FC0; } .cm-s-twilight .cm-number { color: #ca7841; } /**/ .cm-s-twilight .cm-def { color: #8DA6CE; } .cm-s-twilight span.cm-variable-2, .cm-s-twilight span.cm-tag { color: #607392; } /**/ .cm-s-twilight span.cm-variable-3, .cm-s-twilight span.cm-def { color: #607392; } /**/ .cm-s-twilight .cm-operator { color: #cda869; } /**/ .cm-s-twilight .cm-comment { color:#777; font-style:italic; font-weight:normal; } /**/ .cm-s-twilight .cm-string { color:#8f9d6a; font-style:italic; } /**/ .cm-s-twilight .cm-string-2 { color:#bd6b18 } /*?*/ .cm-s-twilight .cm-meta { background-color:#141414; color:#f7f7f7; } /*?*/ .cm-s-twilight .cm-error { border-bottom: 1px solid red; } .cm-s-twilight .cm-builtin { color: #cda869; } /*?*/ .cm-s-twilight .cm-tag { color: #997643; } /**/ .cm-s-twilight .cm-attribute { color: #d6bb6d; } /*?*/ .cm-s-twilight .cm-header { color: #FF6400; } .cm-s-twilight .cm-hr { color: #AEAEAE; } .cm-s-twilight .cm-link { color:#ad9361; font-style:italic; text-decoration:none; } /**/ site_pro/codemirror-3.1/theme/blackboard.css0000644000000000000000000000232512111430706017741 0ustar rootroot/* Port of TextMate's Blackboard theme */ .cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; } .cm-s-blackboard .CodeMirror-selected { background: #253B76 !important; } .cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; } .cm-s-blackboard .CodeMirror-linenumber { color: #888; } .cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; } .cm-s-blackboard .cm-keyword { color: #FBDE2D; } .cm-s-blackboard .cm-atom { color: #D8FA3C; } .cm-s-blackboard .cm-number { color: #D8FA3C; } .cm-s-blackboard .cm-def { color: #8DA6CE; } .cm-s-blackboard .cm-variable { color: #FF6400; } .cm-s-blackboard .cm-operator { color: #FBDE2D;} .cm-s-blackboard .cm-comment { color: #AEAEAE; } .cm-s-blackboard .cm-string { color: #61CE3C; } .cm-s-blackboard .cm-string-2 { color: #61CE3C; } .cm-s-blackboard .cm-meta { color: #D8FA3C; } .cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; } .cm-s-blackboard .cm-builtin { color: #8DA6CE; } .cm-s-blackboard .cm-tag { color: #8DA6CE; } .cm-s-blackboard .cm-attribute { color: #8DA6CE; } .cm-s-blackboard .cm-header { color: #FF6400; } .cm-s-blackboard .cm-hr { color: #AEAEAE; } .cm-s-blackboard .cm-link { color: #8DA6CE; } site_pro/codemirror-3.1/theme/solarized.css0000644000000000000000000007026712111430706017663 0ustar rootroot/* Solarized theme for code-mirror http://ethanschoonover.com/solarized */ /* Solarized color pallet http://ethanschoonover.com/solarized/img/solarized-palette.png */ .solarized.base03 { color: #002b36; } .solarized.base02 { color: #073642; } .solarized.base01 { color: #586e75; } .solarized.base00 { color: #657b83; } .solarized.base0 { color: #839496; } .solarized.base1 { color: #93a1a1; } .solarized.base2 { color: #eee8d5; } .solarized.base3 { color: #fdf6e3; } .solarized.solar-yellow { color: #b58900; } .solarized.solar-orange { color: #cb4b16; } .solarized.solar-red { color: #dc322f; } .solarized.solar-magenta { color: #d33682; } .solarized.solar-violet { color: #6c71c4; } .solarized.solar-blue { color: #268bd2; } .solarized.solar-cyan { color: #2aa198; } .solarized.solar-green { color: #859900; } /* Color scheme for code-mirror */ .cm-s-solarized { line-height: 1.45em; font-family: Menlo,Monaco,"Andale Mono","lucida console","Courier New",monospace !important; color-profile: sRGB; rendering-intent: auto; } .cm-s-solarized.cm-s-dark { color: #839496; background-color: #002b36; text-shadow: #002b36 0 1px; } .cm-s-solarized.cm-s-light { background-color: #fdf6e3; color: #657b83; text-shadow: #eee8d5 0 1px; } .cm-s-solarized .CodeMirror-widget { text-shadow: none; } .cm-s-solarized .cm-keyword { color: #cb4b16 } .cm-s-solarized .cm-atom { color: #d33682; } .cm-s-solarized .cm-number { color: #d33682; } .cm-s-solarized .cm-def { color: #2aa198; } .cm-s-solarized .cm-variable { color: #268bd2; } .cm-s-solarized .cm-variable-2 { color: #b58900; } .cm-s-solarized .cm-variable-3 { color: #6c71c4; } .cm-s-solarized .cm-property { color: #2aa198; } .cm-s-solarized .cm-operator {color: #6c71c4;} .cm-s-solarized .cm-comment { color: #586e75; font-style:italic; } .cm-s-solarized .cm-string { color: #859900; } .cm-s-solarized .cm-string-2 { color: #b58900; } .cm-s-solarized .cm-meta { color: #859900; } .cm-s-solarized .cm-error, .cm-s-solarized .cm-invalidchar { color: #586e75; border-bottom: 1px dotted #dc322f; } .cm-s-solarized .cm-qualifier { color: #b58900; } .cm-s-solarized .cm-builtin { color: #d33682; } .cm-s-solarized .cm-bracket { color: #cb4b16; } .cm-s-solarized .CodeMirror-matchingbracket { color: #859900; } .cm-s-solarized .CodeMirror-nonmatchingbracket { color: #dc322f; } .cm-s-solarized .cm-tag { color: #93a1a1 } .cm-s-solarized .cm-attribute { color: #2aa198; } .cm-s-solarized .cm-header { color: #586e75; } .cm-s-solarized .cm-quote { color: #93a1a1; } .cm-s-solarized .cm-hr { color: transparent; border-top: 1px solid #586e75; display: block; } .cm-s-solarized .cm-link { color: #93a1a1; cursor: pointer; } .cm-s-solarized .cm-special { color: #6c71c4; } .cm-s-solarized .cm-em { color: #999; text-decoration: underline; text-decoration-style: dotted; } .cm-s-solarized .cm-strong { color: #eee; } .cm-s-solarized .cm-tab:before { content: "➤"; /*visualize tab character*/ color: #586e75; } .cm-s-solarized.cm-s-dark .CodeMirror-focused .CodeMirror-selected { background: #386774; color: inherit; } .cm-s-solarized.cm-s-dark ::selection { background: #386774; color: inherit; } .cm-s-solarized.cm-s-dark .CodeMirror-selected { background: #586e75; } .cm-s-solarized.cm-s-light .CodeMirror-focused .CodeMirror-selected { background: #eee8d5; color: inherit; } .cm-s-solarized.cm-s-light ::selection { background: #eee8d5; color: inherit; } .cm-s-solarized.cm-s-light .CodeMirror-selected { background: #93a1a1; } /* Editor styling */ /* Little shadow on the view-port of the buffer view */ .cm-s-solarized.CodeMirror { -moz-box-shadow: inset 7px 0 12px -6px #000; -webkit-box-shadow: inset 7px 0 12px -6px #000; box-shadow: inset 7px 0 12px -6px #000; } /* Gutter border and some shadow from it */ .cm-s-solarized .CodeMirror-gutters { padding: 0 15px 0 10px; box-shadow: 0 10px 20px black; border-right: 1px solid; } /* Gutter colors and line number styling based of color scheme (dark / light) */ /* Dark */ .cm-s-solarized.cm-s-dark .CodeMirror-gutters { background-color: #073642; border-color: #00232c; } .cm-s-solarized.cm-s-dark .CodeMirror-linenumber { text-shadow: #021014 0 -1px; } /* Light */ .cm-s-solarized.cm-s-light .CodeMirror-gutters { background-color: #eee8d5; border-color: #eee8d5; } /* Common */ .cm-s-solarized .CodeMirror-linenumber { color: #586e75; } .cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text { color: #586e75; } .cm-s-solarized .CodeMirror-lines { padding-left: 5px; } .cm-s-solarized .CodeMirror-lines .CodeMirror-cursor { border-left: 1px solid #819090; } /* Active line. Negative margin compensates left padding of the text in the view-port */ .cm-s-solarized .activeline { margin-left: -20px; } .cm-s-solarized.cm-s-dark .activeline { background: rgba(255, 255, 255, 0.05); } .cm-s-solarized.cm-s-light .activeline { background: rgba(0, 0, 0, 0.05); } /* View-port and gutter both get little noise background to give it a real feel. */ .cm-s-solarized.CodeMirror, .cm-s-solarized .CodeMirror-gutters { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAQAAAAHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybSwN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyHvOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLjdVsis4Mk80ESF2YpSkzwldjHkjFCUutI/r+EHDU8oCs6yzL3PhWiEooZdFMkymlas4AcI3KmoMMNSQ3tHzjGWCrcJJdYyZC7QFGwjRL9p+MrRkAGWzIaWCn9W0F3TsK01c2ZvQw0byvxuQU0r1lM0qJO7wW0kRIMdDTtXEdzi4VIh+EoIHm0mWtAtpCixlabgn83fKTI7anJe9ST7WIK1DMGpQmYeA58ImV6ezOGOzK2Kgq01pd60cKWiUi9Lievb/0vIDPHQ05Kzt4ddPckQBQtoaurjyHnek/nKzpQLrVgKPjIkh2v4uyezpv+Xoo7fPFXaGFp1vaLKxQ4uUpQQS5VuQs7BCq4xRJv7fwpVvvFEB3j+620haOuocqMhWd6TTPAEx+mdFNGHdranFe95WrWmIvlY4F1Dle2ECgc6cto7SryuqGGGha0tFQ5V53migUKmg6XKAo4qS3mik+0OZpAhOLeZKicacgaYcyx5hypYQE02ZA4xi/pNhOQxR4klNKyqacj+mpxnLTnnGSo85++3ZCZq6lrZkXlGEX3o+C9FieccJbZWVFjC0Yo1FZnJhoYMFoI1hEZ9r6hwg75HwzBNhbZCdJEfJwTPGzJvaKImw1yYX1HDAmpXR+ZJQ/SmgqMNVQb5vgamGwLtt7VwvP7Qk1xpiM5x5Cyv93E06MZmgs0Nya2azIKOYKCGBQQW97RmhKNKF02JZqHEJ4o58qp7X5EcZmc56trXEqzjCBZ1MFGR87Ql2tSTs6CGxS05PTzRQorkbw7aKoKXFDXsYW42VJih/q+FP2BdTzDTwVqOYB13liM50vG7wy28qagyuIXMeQI/Oqq8bcn5wJI50xH00CRntyfpL1T4hydYpoXgNiFzoIUTDZnLNRzh4TBHwbYGDvZkxmlyJloyr6tRihpeUG94GnKtIznREF0tzJG/OOr73JBcrSh1k6WuTprgLU+mnSGnv6Zge0NNz+kTDdH8nuAuTdJDCNb21LCiIuqlYbqGzT3RAoZofQfjFazkqeNWdYaGvYTM001EW2oKPvVk1ldUGSgUtHFwjKM1h9jnFcmy5lChoLNaQMGGDsYbKixlaMBmmsx1QjCfflwTfO/gckW0ruZ3jugKR3R5W9hGUWqCgxuFgsuaCHorotGKzGaeZB9DMsaTnKCpMtwTvOzhYk0rdrArKCqcaWmVk1+F372ur1YkKxgatI8Qfe1gIX9wE9FgS8ESmuABIXnRUbCapcKe+nO7slClSZFzpV/LkLncEb1qiO42fS3R855Su2mCLh62t1SYZZYVmKwIHjREF2uihTzB20JOkz7dkxzYQnK0UOU494wh+VWRc6Un2kpTaVgLDFEkJ/uhzRcI0YKGgpGWOlocBU/a4fKoJ/pEaNV6jip3+Es9VXY078rGnmAdf7t9ylPXS34RBSuYPs1UecZTU78WanhBCHpZ5sAoTz0LGZKjPf9TRypqWEiTvOFglL1fCEY3wY/++rbk7C8bWebA6p6om6PgOL2kp44TFJlVNBXae2rqqdZztOJpT87GQsE9jqCPIe9VReZuQ/CIgacsyZdCpIScSYqcZk8r+nsyCzhyfhOqHGOIvrLknC8wTpFcaYiGC/RU1NRbUeUpocQOnkRpGOrIOcNRx+1uA0UrzhSSt+VyS3SJpnFWkzNDqOFGIWcfR86DnmARTQ1HKIL33ExPiemeOhYSSjzlSUZZuE4TveoJLnBUOFof6KiysCbnAEcZgcUNTDOwkqWu3RWtmGpZwlHhJENdZ3miGz0lJlsKnjbwqSHQjpxnFDlTLLwqJPMZMjd7KrzkSG7VsxXBZE+F8YZkb01Oe00yyRK9psh5SYh29ySPKBo2ylNht7ZkZnsKenjKNJu9PNEyZpaCHv4Kt6RQsLvAVp7M9kIimmCUwGeWqLMmGuIotYMmWNpSahkhZw9FqZsVnKJhsjAHvtHMsTM9fCI06Dx/u3vfUXCqfsKRc4oFY2jMsoo/7DJDwZ1CsIKnJu+J9ldkpmiCxQx1rWjI+T9FwcWWzOuaYH0Hj7klNRVWEQpmaqosakiGNTFHdjS/qnUdmf0NJW5xsL0HhimCCZZSRzmSPTXJQ4aaztAwtZnoabebJ+htCaZ7Cm535ByoqXKbX1WRc4Eh2MkRXWzImVc96Cj4VdOKVxR84VdQsIUM8Psoou2byVHyZFuq7O8otbSQ2UAoeEWTudATLGSpZzVLlXVkPU2Jc+27lsw2jmg5T5VhbeE3BT083K9WsTTkFU/Osi0rC5lRlpwRHUiesNS0sOvmqGML1aRbPAxTJD9ZKtxuob+hhl8cwYGWpJ8nub7t5p6coYbMovZ1BTdaKn1jYD6h4GFDNFyT/Kqe1XCXphXHOKLZmuRSRdBPEfVUXQzJm5YGPGGJdvAEr7hHNdGZnuBvrpciGmopOLf5N0uVMy0FfYToJk90uUCbJupaVpO53UJXR2bVpoU00V2KOo4zMFrBd0Jtz2pa0clT5Q5L8IpQ177mWQejPMEJhuQjS10ref6HHjdEhy1P1EYR7GtO0uSsKJQYLiTnG1rVScj5lyazpqWGl5uBbRWl7m6ixGOOnEsMJR7z8J0n6KMnCdxhiNYQCoZ6CmYLnO8omC3MkW3bktlPmEt/VQQHejL3+dOE5FlPdK/Mq8hZxxJtLyRrepLThYKbLZxkSb5W52vYxNOaOxUF0yxMUPwBTYqCzy01XayYK0sJyWBLqX0MwU5CzoymRzV0EjjeUeLgDpTo6ij42ZAzvD01dHUUTPLU96MdLbBME8nFBn7zJCMtJcZokn8YoqU0FS5WFKyniHobguMcmW8N0XkWZjkyN3hqOMtS08r+/xTBwpZSZ3qiVRX8SzMHHjfUNFjgHEPmY9PL3ykEzxkSre/1ZD6z/NuznuB0RcE1TWTm9zRgfUWVJiG6yrzgmWPXC8EAR4Wxhlad0ZbgQyEz3pG5RVEwwDJH2mgKpjcTiCOzn1lfUWANFbZ2BA8balnEweJC9J0iuaeZoI+ippFCztEKVvckR2iice1JvhVytrQwUAZpgsubCPaU7xUe9vWnaOpaSBEspalykhC9bUlOMpT42ZHca6hyrqKmw/wMR8H5ZmdFoBVJb03O4UL0tSNnvIeRmkrLWqrs78gcrEn2tpcboh0UPOW3UUR9PMk4T4nnNKWmCjlrefhCwxRNztfmIQVdDElvS4m1/WuOujoZCs5XVOjtKPGokJzsYCtFYoWonSPT21DheU/wWhM19FcElwqNGOsp9Q8N/cwXaiND1MmeL1Q5XROtYYgGeFq1aTMsoMmcrKjQrOFQTQ1fmBYhmW6o8Jkjc7iDJRTBIo5kgJD5yMEYA3srCg7VFKwiVJkmRCc5ohGOKhsYMn/XBLdo5taZjlb9YAlGWRimqbCsoY7HFAXLa5I1HPRxMMsQDHFkWtRNniqT9UEeNjcE7RUlrCJ4R2CSJuqlKHWvJXjAUNcITYkenuBRB84TbeepcqTj3zZyFJzgYQdHnqfgI0ddUwS6GqWpsKWhjq9cV0vBAEMN2znq+EBfIWT+pClYw5xsTlJU6GeIBsjGmmANTzJZiIYpgrM0Oa8ZMjd7NP87jxhqGOhJlnQtjuQpB+8aEE00wZFznSJPyHxgH3HkPOsJFvYk8zqCHzTs1BYOa4J3PFU+UVRZxlHDM4YavlNUuMoRveiZA2d7grMNc2g+RbSCEKzmgYsUmWmazFJyoiOZ4KnyhKOGRzWJa0+moyV4TVHDzn51Awtqaphfk/lRQ08FX1iiqxTB/kLwd0VynKfEvI6cd4XMV5bMhZ7gZUWVzYQ6Nm2BYzxJbw3bGthEUUMfgbGeorae6DxHtJoZ6alhZ0+ytiVoK1R4z5PTrOECT/SugseEOlb1MMNR4VRNcJy+V1Hg9ONClSZFZjdHlc6W6FBLdJja2MC5hhpu0DBYEY1TFGwiFAxRRCsYkiM9JRb0JNMVkW6CZYT/2EiTGWmo8k+h4FhDNE7BvppoTSFnmCV5xZKzvcCdDo7VVPnIU+I+Rc68juApC90MwcFCsJ5hDqxgScYKreruyQwTqrzoqDCmhWi4IbhB0Yrt3RGa6GfDv52rKXWhh28dyZaWUvcZeMTBaZoSGyiCtRU5J8iviioHaErs7Jkj61syVzTTgOcUOQ8buFBTYWdL5g3T4qlpe0+wvD63heAXRfCCIed9RbCsp2CiI7raUOYOTU13N8PNHvpaGvayo4a3LLT1lDrVEPT2zLUlheB1R+ZTRfKWJ+dcocLJfi11vyJ51lLqJ0WD7tRwryezjiV5W28uJO9qykzX8JDe2lHl/9oyBwa2UMfOngpXCixvKdXTk3wrsKmiVYdZIqsoWEERjbcUNDuiaQomGoIbFdEHmsyWnuR+IeriKDVLnlawlyNHKwKlSU631PKep8J4Q+ayjkSLKYLhalNHlYvttb6fHm0p6OApsZ4l2VfdqZkjuysy6ysKLlckf1KUutCTs39bmCgEyyoasIWlVaMF7mgmWtBT8Kol5xpH9IGllo8cJdopcvZ2sImlDmMIbtDk3KIpeNiS08lQw11NFPTwVFlPP6pJ2gvRfI7gQUfmNAtf6Gs0wQxDsKGlVBdF8rCa3jzdwMaGHOsItrZk7hAyOzpK9VS06j5F49b0VNGOOfKs3lDToMsMBe9ZWtHFEgxTJLs7qrygKZjUnmCYoeAqeU6jqWuLJup4WghOdvCYJnrSkSzoyRkm5M2StQwVltPkfCAk58tET/CSg+8MUecmotMEnhBKfWBIZsg2ihruMJQaoIm+tkTLKEqspMh00w95gvFCQRtDwTT1gVDDSEVdlwqZfxoQRbK0g+tbiBZxzKlpnpypejdDwTaeOvorMk/IJE10h9CqRe28hhLbe0pMsdSwv4ZbhKivo2BjDWfL8UKJgeavwlwb5KlwhyE4u4XkGE2ytZCznKLCDZZq42VzT8HLCrpruFbIfOIINmh/qCdZ1ZBc65kLHR1Bkyf5zn6pN3SvGKIlFNGplhrO9QSXanLOMQTLCa0YJCRrCZm/CZmrLTm7WzCK4GJDiWUdFeYx1LCFg3NMd0XmCuF3Y5rITLDUsYS9zoHVzwnJoYpSTQoObyEzr4cFBNqYTopoaU/wkyLZ2lPhX/5Y95ulxGTV7KjhWrOZgl8MyUUafjYraNjNU1N3IWcjT5WzWqjwtoarHSUObGYO3GCJZpsBlnJGPd6ZYLyl1GdCA2625IwwJDP8GUKymbzuyPlZlvTUsaUh5zFDhRWFzPKKZLAlWdcQbObgF9tOqOsmB1dqcqYJmWstFbZRRI9poolmqiLnU0POvxScpah2iSL5UJNzgScY5+AuIbpO0YD3NCW+dLMszFSdFCWGqG6eVq2uYVNDdICGD6W7EPRWZEY5gpsE9rUkS3mijzzJnm6UpUFXG1hCUeVoS5WfNcFpblELL2qqrCvMvRfd45oalvKU2tiQ6ePJOVMRXase9iTtLJztPxJKLWpo2CRDcJwn2sWSLKIO1WQWNTCvpVUvOZhgSC40JD0dOctaSqzkCRbXsKlb11Oip6PCJ0IwSJM31j3akRxlP7Rwn6aGaUL0qiLnJkvB3xWZ2+Q1TfCwpQH3G0o92UzmX4o/oJNQMMSQc547wVHhdk+VCw01DFYEnTxzZKAm74QmeNNR1w6WzEhNK15VJzuCdxQ53dRUDws5KvwgBMOEgpcVNe0hZI6RXT1Jd0cyj5nsaEAHgVmGaJIlWdsc5Ui2ElrRR6jrRAttNMEAIWrTDFubkZaok7/AkzfIwfuWVq0jHzuCK4QabtLUMVPB3kJ0oyHTSVFlqMALilJf2Rf8k5aaHtMfayocLBS8L89oKoxpJvnAkDPa0qp5DAUTHKWmCcnthlou8iCKaFFLHWcINd1nyIwXqrSxMNmSs6KmoL2QrKuWtlQ5V0120xQ5vRyZS1rgFkWwhiOwiuQbR0OOVhQM9iS3tiXp4RawRPMp5tDletOOBL95MpM01dZTBM9pkn5qF010rIeHFcFZhmSGpYpTsI6nwhqe5C9ynhlpp5ophuRb6WcJFldkVnVEwwxVfrVkvnWUuNLCg5bgboFHPDlDPDmnK7hUrWiIbjadDclujlZcaokOFup4Ri1kacV6jmrrK1hN9bGwpKEBQ4Q6DvIUXOmo6U5LqQM6EPyiKNjVkPnJkDPNEaxhiFay5ExW1NXVUGqcpYYdPcGiCq7z/TSlbhL4pplWXKd7NZO5QQFrefhRQW/NHOsqcIglc4UhWklR8K0QzbAw08CBDnpbgqXdeD/QUsM4RZXDFBW6WJKe/mFPdH0LtBgiq57wFLzlyQzz82qYx5D5WJP5yVJDW01BfyHnS6HKO/reZqId1WGa4Hkh2kWodJ8i6KoIPlAj2hPt76CzXsVR6koPRzWTfKqIentatYpQw2me4AA3y1Kind3SwoOKZDcFXTwl9tWU6mfgRk9d71sKtlNwrjnYw5tC5n5LdKiGry3JKNlHEd3oaMCFHrazBPMp/uNJ+V7IudcSbeOIdjUEdwl0VHCOZo5t6YluEuaC9mQeMgSfOyKnYGFHcIeQ84yQWbuJYJpZw5CzglDH7gKnWqqM9ZTaXcN0TeYhR84eQtJT76JJ1lREe7WnnvsMmRc9FQ7SBBM9mV3lCUdmHk/S2RAMt0QjFNFqQpWjDPQ01DXWUdDBkXziKPjGEP3VP+zIWU2t7im41FOloyWzn/L6dkUy3VLDaZ6appgDLHPjJEsyvJngWEPUyVBiAaHCTEXwrLvSEbV1e1gKJniicWorC1MUrVjB3uDhJE/wgSOzk1DXpk0k73qCM8xw2UvD5kJmDUfOomqMpWCkJRlvKXGmoeBm18USjVIk04SClxTB6YrgLAPLWYK9HLUt5cmc0vYES8GnTeRc6skZbQkWdxRsIcyBRzx1DbTk9FbU0caTPOgJHhJKnOGIVhQqvKmo0llRw9sabrZkDtdg3PqaKi9oatjY8B+G371paMg6+mZFNNtQ04mWBq3rYLOmtWWQp8KJnpy9DdFensyjdqZ+yY40VJlH8wcdLzC8PZnvHMFUTZUrDTkLyQaGus5X5LzpYAf3i+e/ZlhqGqWhh6Ou6xTR9Z6oi5AZZtp7Mj2EEm8oSpxiYZCHU/1fbGdNNNRRoZMhmilEb2gqHOEJDtXkHK/JnG6IrvbPCwV3NhONVdS1thBMs1T4QOBcTWa2IzhMk2nW5Kyn9tXUtpv9RsG2msxk+ZsQzRQacJncpgke0+T8y5Fzj8BiGo7XlJjaTIlpQs7KFjpqGnKuoyEPeIKnFMkZHvopgh81ySxNFWvJWcKRs70j2FOT012IllEEO1n4pD1513Yg2ssQPOThOkvyrqHUdEXOSEsihmBbTbKX1kLBPWqWkLOqJbjB3GBIZmoa8qWl4CG/iZ7oiA72ZL7TJNeZUY7kFQftDcHHluBzRbCegzMtrRjVQpX2lgoPKKLJAkcbMl01XK2p7yhL8pCBbQ3BN2avJgKvttcrWDK3CiUOVxQ8ZP+pqXKyIxnmBymCg5vJjNfkPK4+c8cIfK8ocVt7kmfd/I5SR1hKvCzUtb+lhgc00ZaO6CyhIQP1Uv4yIZjload72PXX0OIJvnFU+0Zf6MhsJwTfW0r0UwQfW4LNLZl5HK261JCZ4qnBaAreVAS3WrjV0LBnNDUNNDToCEeFfwgcb4gOEqLRhirWkexrCEYKVV711DLYEE1XBEsp5tpTGjorkomKYF9FDXv7fR3BGwbettSxnyL53MBPjsxDZjMh+VUW9NRxq1DhVk+FSxQcaGjV9Pawv6eGByw5qzoy7xk4RsOShqjJwWKe/1pEEfzkobeD/dQJmpqedcyBTy2sr4nGNRH0c0SPWTLrqAc0OQcb/gemKgqucQT7ySWKCn2EUotoCvpZct7RO2sy/QW0IWcXd7pQRQyZVwT2USRO87uhjioTLKV2brpMUcMQRbKH/N2T+UlTpaMls6cmc6CCNy3JdYYSUzzJQ4oSD3oKLncULOiJvjBEC2oqnCJkJluCYy2ZQ5so9YYlZ1VLlQU1mXEW1jZERwj/MUSRc24TdexlqLKfQBtDTScJUV8FszXBEY5ktpD5Ur9hYB4Nb1iikw3JoYpkKX+RodRKFt53MMuRnKSpY31PwYaGaILh3wxJGz9TkTPEETxoCWZrgvOlmyMzxFEwVJE5xZKzvyJ4WxEc16Gd4Xe3Weq4XH2jKRikqOkGQ87hQnC7wBmGYLAnesX3M+S87eFATauuN+Qcrh7xIxXJbUIdMw3JGE3ylCWzrieaqCn4zhGM19TQ3z1oH1AX+pWEqIc7wNGAkULBo/ZxRaV9NNyh4Br3rCHZzbzmSfawBL0dNRwpW1kK9mxPXR9povcdrGSZK9c2k0xwFGzjuniCtRSZCZ6ccZ7gaktmgAOtKbG/JnOkJrjcQTdFMsxRQ2cLY3WTIrlCw1eWKn8R6pvt4GFDso3QoL4a3nLk3G6JrtME3dSenpx7PNFTmga0EaJTLQ061sEeQoWXhSo9LTXsaSjoJQRXeZLtDclbCrYzfzHHeaKjHCVOUkQHO3JeEepr56mhiyaYYKjjNU+Fed1wS5VlhWSqI/hYUdDOkaxiKehoyOnrCV5yBHtbWFqTHCCwtpDcYolesVR5yUzTZBb3RNMd0d6WP+SvhuBmRcGxnuQzT95IC285cr41cLGQ6aJJhmi4TMGempxeimBRQw1tFKV+8jd6KuzoSTqqDxzRtpZkurvKEHxlqXKRIjjfUNNXQsNOsRScoWFLT+YeRZVD3GRN0MdQcKqQjHDMrdGGVu3iYJpQx3WGUvfbmxwFfR20WBq0oYY7LMFhhgYtr8jpaEnaOzjawWWaTP8mMr0t/EPDPoqcnxTBI5o58L7uoWnMrpoqPwgVrlAUWE+V+TQl9rawoyP6QGAlQw2TPRX+YSkxyBC8Z6jhHkXBgQL7WII3DVFnRfCrBfxewv9D6xsyjys4VkhWb9pUU627JllV0YDNHMku/ldNMMXDEo4aFnAkk4U6frNEU4XgZUPmEKHUl44KrzmYamjAbh0JFvGnaTLPu1s9jPCwjFpYiN7z1DTOk/nc07CfDFzmCf7i+bfNHXhDtLeBXzTBT5rkMvWOIxpl4EMh2LGJBu2syDnAEx2naEhHDWMMzPZEhygyS1mS5RTJr5ZkoKbEUoYqr2kqdDUE8ztK7OaIntJkFrIECwv8LJTaVx5XJE86go8dFeZ3FN3rjabCAYpoYEeC9zzJVULBbmZhDyd7ko09ydpNZ3nm2Kee4FPPXHnYEF1nqOFEC08LUVcDvYXkJHW8gTaKCk9YGOeIJhqiE4ToPEepdp7IWFjdwnWaufGMwJJCMtUTTBBK9BGCOy2tGGrJTHIwyEOzp6aPzNMOtlZkDvcEWpP5SVNhfkvDxhmSazTJXYrM9U1E0xwFVwqZQwzJxw6+kGGGUj2FglGGmnb1/G51udRSMNlTw6GGnCcUwVcOpmsqTHa06o72sw1RL02p9z0VbnMLOaIX3QKaYKSCFQzBKEUNHTSc48k53RH9wxGMtpQa5KjjW0W0n6XCCCG4yxNNdhQ4R4l1Ff+2sSd6UFHiIEOyqqFgT01mEUMD+joy75jPhOA+oVVLm309FR4yVOlp4RhLiScNmSmaYF5Pw0STrOIoWMSR2UkRXOMp+M4SHW8o8Zoi6OZgjKOaFar8zZDzkWzvKOjkKBjmCXby8JahhjXULY4KlzgKLvAwxVGhvyd4zxB1d9T0piazmKLCVZY5sKiD0y2ZSYrkUEPUbIk+dlQ4SJHTR50k1DPaUWIdTZW9NJwnJMOECgd7ou/MnppMJ02O1VT4Wsh85MnZzcFTngpXGKo84qmwgKbCL/orR/SzJ2crA+t6Mp94KvxJUeIbT3CQu1uIdlQEOzlKfS3UMcrTiFmOuroocrZrT2AcmamOKg8YomeEKm/rlT2sociMaybaUlFhuqHCM2qIJ+rg4EcDFymiDSxzaHdPcpE62pD5kyM5SBMoA1PaUtfIthS85ig1VPiPPYXgYEMNk4Qq7TXBgo7oT57gPUdwgCHzhIVFPFU6OYJzHAX9m5oNrVjeE61miDrqQ4VSa1oiURTsKHC0IfjNwU2WzK6eqK8jWln4g15TVBnqmDteCJ501PGAocJhhqjZdtBEB6lnhLreFJKxmlKbeGrqLiSThVIbCdGzloasa6lpMQXHCME2boLpJgT7yWaemu6wBONbqGNVRS0PKIL7LckbjmQtR7K8I5qtqel+T/ChJTNIKLjdUMNIRyvOEko9YYl2cwQveBikCNawJKcLBbc7+JM92mysNvd/Fqp8a0k6CNEe7cnZrxlW0wQXaXjaktnRwNOGZKYiONwS7a1JVheq3WgJHlQUGKHKmp4KAxXR/ULURcNgoa4zhKSLpZR3kxRRb0NmD0OFn+UCS7CzI1nbP6+o4x47QZE5xRCt3ZagnYcvmpYQktXdk5YKXTzBC57kKEe0VVuiSYqapssMS3C9p2CKkHOg8B8Pa8p5atrIw3qezIWanMGa5HRDNF6RM9wcacl0N+Q8Z8hsIkSnaIIdHRUOEebAPy1zbCkhM062FCJtif7PU+UtoVXzWKqM1PxXO8cfdruhFQ/a6x3JKYagvVDhQEtNiyiiSQ7OsuRsZUku0CRNDs4Sog6KKjsZgk2bYJqijgsEenoKeniinRXBn/U3lgpPdyDZynQx8IiioMnCep5Ky8mjGs6Wty0l1hUQTcNWswS3WRp2kCNZwJG8omG8JphPUaFbC8lEfabwP7VtM9yoaNCAjpR41VNhrD9LkbN722v0CoZMByFzhaW+MyzRYEWFDQwN2M4/JiT76PuljT3VU/A36eaIThb+R9oZGOAJ9tewkgGvqOMNRWYjT/Cwu99Q8LqDE4TgbLWxJ1jaDDAERsFOFrobgjUsBScaguXU8kKm2RL19tRypSHnHNlHiIZqgufs4opgQdVdwxBNNFBR6kVFqb8ogimOzB6a6HTzrlDHEpYaxjiiA4TMQobkDg2vejjfwJGWmnbVFAw3H3hq2NyQfG7hz4aC+w3BbwbesG0swYayvpAs6++Ri1Vfzx93mFChvyN5xVHTS+0p9aqCAxyZ6ZacZyw5+7uuQkFPR9DDk9NOiE7X1PCYJVjVUqq7JlrHwWALF5nfHNGjApdpqgzx5OwilDhCiDYTgnc9waGW4BdLNNUQvOtpzDOWHDH8D7TR/A/85KljEQu3NREc4Pl/6B1Hhc8Umb5CsKMmGC9EPcxoT2amwHNCmeOEnOPbklnMkbOgIvO5UMOpQrS9UGVdt6iH/fURjhI/WOpaW9OKLYRod6HCUEdOX000wpDZQ6hwg6LgZfOqo1RfT/CrJzjekXOGhpc1VW71ZLbXyyp+93ILbC1kPtIEYx0FIx1VDrLoVzXRKRYWk809yYlC9ImcrinxtabKnzRJk3lAU1OLEN1j2zrYzr2myHRXJFf4h4QKT1qSTzTB5+ZNTzTRkAxX8FcLV2uS8eoQQ2aAkFzvCM72sJIcJET3WPjRk5wi32uSS9rfZajpWEvj9hW42F4o5NytSXYy8IKHay10VYdrcl4SkqscrXpMwyGOgtkajheSxdQqmpxP1L3t4R5PqasFnrQEjytq6qgp9Y09Qx9o4S1FzhUCn1kyHSzBWLemoSGvOqLNhZyBjmCaAUYpMgt4Ck7wBBMMwWKWgjsUwTaGVsxWC1mYoKiyqqeGKYqonSIRQ3KIkHO0pmAxTdBHkbOvfllfr+AA+7gnc50huVKYK393FOyg7rbPO/izI7hE4CnHHHnJ0ogNPRUGeUpsrZZTBJcrovUcJe51BPsr6GkJdhCCsZ6aTtMEb2pqWkqeVtDXE/QVggsU/Nl86d9RMF3DxvZTA58agu810RWawCiSzzXBeU3MMW9oyJUedvNEvQyNu1f10BSMddR1vaLCYpYa/mGocLSiYDcLbQz8aMn5iyF4xBNMs1P0QEOV7o5gaWGuzSeLue4tt3ro7y4Tgm4G/mopdZgl6q0o6KzJWE3mMksNr3r+a6CbT8g5wZNzT9O7fi/zpaOmnz3BRoqos+tv9zMbdpxsqDBOEewtJLt7cg5wtKKbvldpSzRRCD43VFheCI7yZLppggMVBS/KMAdHODJvOwq2NQSbKKKPLdFWQs7Fqo+mpl01JXYRgq8dnGLhTiFzqmWsUMdpllZdbKlyvSdYxhI9YghOtxR8LgSLWHK62mGGVoxzBE8LNWzqH9CUesQzFy5RQzTc56mhi6fgXEWwpKfE5Z7M05ZgZUPmo6auiv8YKzDYwWBLMErIbKHJvOwIrvEdhOBcQ9JdU1NHQ7CXn2XIDFBKU2WAgcX9UAUzDXWd5alwuyJ41Z9rjKLCL4aCp4WarhPm2rH+SaHUYE001JDZ2ZAzXPjdMpZWvC9wmqIB2lLhQ01D5jO06hghWMndbM7yRJMsoCj1vYbnFQVrW9jak3OlEJ3s/96+p33dEPRV5GxiqaGjIthUU6FFEZyqCa5qJrpBdzSw95IUnOPIrCUUjRZQFrbw5PR0R1qiYx3cb6nrWUMrBmmiBQxVHtTew5ICP/ip6g4hed/Akob/32wvBHsIOX83cI8hGeNeNPCIkPmXe8fPKx84OMSRM1MTdXSwjCZ4S30jVGhvqTRak/OVhgGazHuOCud5onEO1lJr6ecVyaOK6H7zqlBlIaHE0oroCgfvGJIdPcmfLNGLjpz7hZwZQpUbFME0A1cIJa7VNORkgfsMBatbKgwwJM9bSvQXeNOvbIjelg6WWvo5kvbKaJJNHexkKNHL9xRyFlH8Ti2riB5wVPhUk7nGkJnoCe428LR/wRGdYIlmWebCyxou1rCk4g/ShugBDX0V0ZQWkh0dOVsagkM0yV6OoLd5ye+pRlsCr0n+KiQrGuq5yJDzrTAXHtLUMduTDBVKrSm3eHL+6ijxhFDX9Z5gVU/wliHYTMiMFpKLNMEywu80wd3meoFmt6VbRMPenhrOc6DVe4pgXU8DnnHakLOIIrlF4FZPIw6R+zxBP0dyq6OOZ4Q5sLKCcz084ok+VsMMyQhNZmmBgX5xIXOEJTmi7VsGTvMTNdHHhpzdbE8Du2oKxgvBqQKdDDnTFOylCFaxR1syz2iqrOI/FEpNc3C6f11/7+ASS6l2inq2ciTrCCzgyemrCL5SVPjQkdPZUmGy2c9Sw9FtR1sS30RmsKPCS4rkIC/2U0MduwucYolGaPjKEyhzmiPYXagyWbYz8LWBDdzRimAXzxx4z8K9hpzlhLq+NiQ97HuKorMUfK/OVvC2JfiHUPCQI/q7J2gjK+tTDNxkCc4TMssqCs4TGtLVwQihyoAWgj9bosU80XGW6Ac9TJGziaUh5+hnFcHOnlaM1iRn29NaqGENTTTSUHCH2tWTeV0osUhH6psuVLjRUmGWhm6OZEshGeNowABHcJ2Bpy2ZszRcKkRXd2QuKVEeXnbfaEq825FguqfgfE2whlChSRMdron+LATTPQ2Z369t4B9C5gs/ylzv+CMmepIDPclFQl13W0rspPd1JOcbghGOEutqCv5qacURQl3dDKyvyJlqKXGPgcM9FfawJAMVmdcspcYKOZc4GjDYkFlK05olNMHyHn4zFNykyOxt99RkHlfwmiHo60l2EKI+mhreEKp080Tbug08BVPcgoqC5zWt+NLDTZ7oNSF51N1qie7Va3uCCwyZbkINf/NED6jzOsBdZjFN8oqG3wxVunqCSYYKf3EdhJyf9YWGf7tRU2oH3VHgPr1fe5J9hOgHd7xQ0y7qBwXr23aGErP0cm64JVjZwsOGqL+mhNgZmhJLW2oY4UhedsyBgzrCKrq7BmcpNVhR6jBPq64Vgi+kn6XE68pp8J5/+0wRHGOpsKenQn9DZntPzjRLZpDAdD2fnSgkG9tmIXnUwQ6WVighs7Yi2MxQ0N3CqYaCXkJ0oyOztMDJjmSSpcpvlrk0RMMOjmArQ04PRV1DO1FwhCVaUVPpKUM03JK5SxPsIWRu8/CGHi8UHChiqGFDTbSRJWeYUDDcH6vJWUxR4k1FXbMUwV6e4AJFXS8oMqsZKqzvYQ9DDQdZckY4aGsIhtlubbd2r3j4QBMoTamdPZk7O/Bf62lacZwneNjQoGcdVU7zJOd7ghsUHOkosagic6cnWc8+4gg285R6zZP5s1/LUbCKIznTwK36PkdwlOrl4U1LwfdCCa+IrvFkmgw1PCAUXKWo0sURXWcI2muKJlgyFzhynCY4RBOsqCjoI1R5zREco0n2Vt09BQtYSizgKNHfUmUrQ5UOCh51BFcLmY7umhYqXKQomOop8bUnWNNQcIiBcYaC6xzMNOS8JQQfeqKBmmglB+97ok/lfk3ygaHSyZaCRTzRxQo6GzLfa2jWBPepw+UmT7SQEJyiyRkhBLMVOfcoMjcK0eZChfUNzFAUzCsEN5vP/X1uP/n/aoMX+K+nw/Hjr/9xOo7j7Pju61tLcgvJpTWXNbfN5jLpi6VfCOviTktKlFusQixdEKWmEBUKNaIpjZRSSOXSgzaaKLdabrm1/9nZ+/f+vd/vz/v9+Xy+zZ7PRorYoZqyLrCwQdEAixxVOEXNNnjX2nUSRlkqGmWowk8lxR50JPy9Bo6qJXaXwNvREBvnThPEPrewryLhcAnj5WE15Fqi8W7R1sAuEu86S4ENikItFN4xkv9Af4nXSnUVcLiA9xzesFpivRRVeFKtsMRaKBhuSbjOELnAUtlSQUpXgdfB4Z1oSbnFEetbQ0IrAe+Y+pqnDcEJFj6S8LDZzZHwY4e3XONNlARraomNEt2bkvGsosA3ioyHm+6jCMbI59wqt4eeara28IzEmyPgoRaUOEDhTVdEJhmCoTWfC0p8aNkCp0oYqih2iqGi4yXeMkOsn4LdLLnmKfh/YogjNsPebeFGR4m9BJHLzB61XQ3BtpISfS2FugsK9FAtLWX1dCRcrCnUp44CNzuCowUZmxSRgYaE6Za0W2u/E7CVXCiI/UOR8aAm1+OSyE3mOUcwyc1zBBeoX1kiKy0Zfxck1Gsyulti11i83QTBF5Kg3pDQThFMVHiPSlK+0cSedng/VaS8bOZbtsBcTcZAR8JP5KeqQ1OYKAi20njdNNRpgnsU//K+JnaXJaGTomr7aYIphoRn9aeShJWKEq9LcozSF7QleEfDI5LYm5bgVkFkRwVDBCVu0DDIkGupo8TZBq+/pMQURYErJQmPKGKjNDkWOLx7Jd5QizdUweIaKrlP7SwJDhZvONjLkOsBBX9UpGxnydhXkfBLQ8IxgojQbLFnJf81JytSljclYYyEFyx0kVBvKWOFJmONpshGAcsduQY5giVNCV51eOdJYo/pLhbvM0uDHSevNKRcrKZIqnCtJeEsO95RoqcgGK4ocZcho1tTYtcZvH41pNQ7vA0WrhIfOSraIIntIAi+NXWCErdbkvrWwjRLrt0NKUdL6KSOscTOdMSOUtBHwL6OLA0vNSdynaWQEnCpIvKaIrJJEbvHkmuNhn6OjM8VkSGSqn1uYJCGHnq9I3aLhNME3t6GjIkO7xrNFumpyTNX/NrwX7CrIRiqqWijI9JO4d1iieykyfiposQIQ8YjjsjlBh6oHWbwRjgYJQn2NgSnNycmJAk3NiXhx44Sxykihxm8ybUwT1OVKySc7vi3OXVkdBJ4AyXBeksDXG0IhgtYY0lY5ahCD0ehborIk5aUWRJviMA7Xt5kyRjonrXENkm8yYqgs8VzgrJmClK20uMM3jRJ0FiQICQF9hdETlLQWRIb5ki6WDfWRPobvO6a4GP5mcOrNzDFELtTkONLh9dXE8xypEg7z8A9jkhrQ6Fhjlg/QVktJXxt4WXzT/03Q8IaQWSqIuEvloQ2mqC9Jfi7wRul4RX3pSPlzpoVlmCtI2jvKHCFhjcM3sN6lqF6HxnKelLjXWbwrpR4xzuCrTUZx2qq9oAh8p6ixCUGr78g8oyjRAtB5CZFwi80VerVpI0h+IeBxa6Zg6kWvpDHaioYYuEsRbDC3eOmC2JvGYLeioxGknL2UATNJN6hmtj1DlpLvDVmocYbrGCVJKOrg4X6DgddLA203BKMFngdJJFtFd7vJLm6KEpc5yjQrkk7M80SGe34X24nSex1Ra5Omgb71JKyg8SrU3i/kARKwWpH0kOGhKkObyfd0ZGjvyXlAkVZ4xRbYJ2irFMkFY1SwyWxr2oo4zlNiV+7zmaweFpT4kR3kaDAFW6xpSqzJay05FtYR4HmZhc9UxKbbfF2V8RG1MBmSaE+kmC6JnaRXK9gsiXhJHl/U0qM0WTcbyhwkYIvFGwjSbjfwhiJt8ZSQU+Bd5+marPMOkVkD0muxYLIfEuhh60x/J92itguihJSEMySVPQnTewnEm+620rTQEMsOfo4/kP/0ARvWjitlpSX7GxBgcMEsd3EEeYWvdytd+Saawi6aCIj1CkGb6Aj9rwhx16Cf3vAwFy5pyLhVonXzy51FDpdEblbkdJbUcEPDEFzQ8qNmhzzLTmmKWKbFCXeEuRabp6rxbvAtLF442QjQ+wEA9eL1xSR7Q0JXzlSHjJ4exq89yR0laScJ/FW6z4a73pFMEfDiRZvuvijIt86RaSFOl01riV2mD1UEvxGk/Geg5aWwGki1zgKPG9J2U8PEg8qYvMsZeytiTRXBMslCU8JSlxi8EabjwUldlDNLfzTUmCgxWsjqWCOHavYAqsknKFIO0yQ61VL5AVFxk6WhEaCAkdJgt9aSkzXlKNX2jEa79waYuc7gq0N3GDJGCBhoiTXUEPsdknCUE1CK0fwsiaylSF2uiDyO4XX3pFhNd7R4itFGc0k/ElBZwWvq+GC6szVeEoS/MZ+qylwpKNKv9Z469UOjqCjwlusicyTxG6VpNxcQ8IncoR4RhLbR+NdpGGmJWOcIzJGUuKPGpQg8rrG21dOMqQssJQ4RxH5jaUqnZuQ0F4Q+cjxLwPtpZbIAk3QTJHQWBE5S1BokoVtDd6lhqr9UpHSUxMcIYl9pojsb8h4SBOsMQcqvOWC2E8EVehqiJ1hrrAEbQxeK0NGZ0Gkq+guSRgniM23bIHVkqwx4hiHd7smaOyglyIyQuM978j4VS08J/A2G1KeMBRo4fBaSNhKUEZfQewVQ/C1I+MgfbEleEzCUw7mKXI0M3hd1EESVji8x5uQ41nxs1q4RMJCCXs7Iq9acpxn22oSDnQ/sJTxsCbHIYZiLyhY05TY0ZLIOQrGaSJDDN4t8pVaIrsqqFdEegtizc1iTew5Q4ayBDMUsQMkXocaYkc0hZua412siZ1rSXlR460zRJ5SlHGe5j801RLMlJTxtaOM3Q1pvxJ45zUlWFD7rsAbpfEm1JHxG0eh8w2R7QQVzBUw28FhFp5QZzq8t2rx2joqulYTWSuJdTYfWwqMFMcovFmSyJPNyLhE4E10pHzYjOC3huArRa571ZsGajQpQx38SBP5pyZB6lMU3khDnp0MBV51BE9o2E+TY5Ml2E8S7C0o6w1xvCZjf0HkVEHCzFoyNmqC+9wdcqN+Tp7jSDheE9ws8Y5V0NJCn2bk2tqSY4okdrEhx1iDN8cSudwepWmAGXKcJXK65H9to8jYQRH7SBF01ESUJdd0TayVInaWhLkOjlXE5irKGOnI6GSWGCJa482zBI9rCr0jyTVcEuzriC1vcr6mwFGSiqy5zMwxBH/TJHwjSPhL8+01kaaSUuMFKTcLEvaUePcrSmwn8DZrgikWb7CGPxkSjhQwrRk57tctmxLsb9sZvL9LSlyuSLlWkqOjwduo8b6Uv1DkmudIeFF2dHCgxVtk8dpIvHpBxhEOdhKk7OLIUSdJ+cSRY57B+0DgGUUlNfpthTfGkauzxrvTsUUaCVhlKeteTXCoJDCa2NOKhOmC4G1H8JBd4OBZReSRGkqcb/CO1PyLJTLB4j1q8JYaIutEjSLX8YKM+a6phdMsdLFUoV5RTm9JSkuDN8WcIon0NZMNZWh1q8C7SJEwV5HxrmnnTrf3KoJBlmCYI2ilSLlfEvlE4011NNgjgthzEua0oKK7JLE7HZHlEl60BLMVFewg4EWNt0ThrVNEVkkiTwpKXSWJzdRENgvKGq4IhjsiezgSFtsfCUq8qki5S1LRQeYQQ4nemmCkImWMw3tFUoUBZk4NOeZYEp4XRKTGa6wJjrWNHBVJR4m3FCnbuD6aak2WsMTh3SZImGCIPKNgsDpVwnsa70K31lCFJZYcwwSMFcQulGTsZuEaSdBXkPGZhu0FsdUO73RHjq8MPGGIfaGIbVTk6iuI3GFgucHrIQkmWSJdBd7BBu+uOryWAhY7+Lki9rK5wtEQzWwvtbqGhIMFwWRJsElsY4m9IIg9L6lCX0VklaPAYkfkZEGDnOWowlBJjtMUkcGK4Lg6EtoZInMUBVYLgn0UsdmCyCz7gIGHFfk+k1QwTh5We7A9x+IdJ6CvIkEagms0hR50eH9UnTQJ+2oiKyVlLFUE+8gBGu8MQ3CppUHesnjTHN4QB/UGPhCTHLFPHMFrCqa73gqObUJGa03wgbhHkrCfpEpzNLE7JDS25FMKhlhKKWKfCgqstLCPu1zBXy0J2ztwjtixBu8UTRn9LVtkmCN2iyFhtME70JHRQ1KVZXqKI/KNIKYMCYs1GUMEKbM1bKOI9LDXC7zbHS+bt+1MTWS9odA9DtrYtpbImQJ2VHh/lisEwaHqUk1kjKTAKknkBEXkbkdMGwq0dnhzLJF3NJH3JVwrqOB4Sca2hti75nmJN0WzxS6UxDYoEpxpa4htVlRjkYE7DZGzJVU72uC9IyhQL4i8YfGWSYLLNcHXloyz7QhNifmKSE9JgfGmuyLhc403Xm9vqcp6gXe3xuuv8F6VJNxkyTHEkHG2g0aKXL0MsXc1bGfgas2//dCONXiNLCX+5mB7eZIl1kHh7ajwpikyzlUUWOVOsjSQlsS+M0R+pPje/dzBXRZGO0rMtgQrLLG9VSu9n6CMXS3BhwYmSoIBhsjNBmZbgusE9BCPCP5triU4VhNbJfE+swSP27aayE8tuTpYYjtrYjMVGZdp2NpS1s6aBnKSHDsbKuplKbHM4a0wMFd/5/DmGyKrJSUaW4IBrqUhx0vyfzTBBLPIUcnZdrAkNsKR0sWRspumSns6Ch0v/qqIbBYUWKvPU/CFoyrDJGwSNFhbA/MlzKqjrO80hRbpKx0Jewsi/STftwGSlKc1JZyAzx05dhLEdnfQvhZOqiHWWEAHC7+30FuRcZUgaO5gpaIK+xsiHRUsqaPElTV40xQZQ107Q9BZE1nryDVGU9ZSQ47bmhBpLcYpUt7S+xuK/FiT8qKjwXYw5ypS2iuCv7q1gtgjhuBuB8LCFY5cUuCNtsQOFcT+4Ih9JX+k8Ea6v0iCIRZOtCT0Et00JW5UeC85Cg0ScK0k411HcG1zKtre3SeITBRk7WfwDhEvaYLTHP9le0m8By0JDwn4TlLW/aJOvGHxdjYUes+ScZigCkYQdNdEOhkiezgShqkx8ueKjI8lDfK2oNiOFvrZH1hS+tk7NV7nOmLHicGWEgubkXKdwdtZknCLJXaCpkrjZBtLZFsDP9CdxWsSr05Sxl6CMmoFbCOgryX40uDtamB7SVmXW4Ihlgpmq+00tBKUUa83WbjLUNkzDmY7cow1JDygyPGlhgGKYKz4vcV7QBNbJIgM11TUqZaMdwTeSguH6rOaw1JRKzaaGyxVm2EJ/uCIrVWUcZUkcp2grMsEjK+DMwS59jQk3Kd6SEq1d0S6uVmO4Bc1lDXTUcHjluCXEq+1OlBDj1pi9zgiXxnKuE0SqTXwhqbETW6RggMEnGl/q49UT2iCzgJvRwVXS2K/d6+ZkyUl7jawSVLit46EwxVljDZwoSQ20sDBihztHfk2yA8NVZghiXwrYHQdfKAOtzsayjhY9bY0yE2CWEeJ9xfzO423xhL5syS2TFJofO2pboHob0nY4GiAgRrvGQEDa/FWSsoaaYl0syRsEt3kWoH3B01shCXhTUWe9w3Bt44SC9QCh3eShQctwbaK2ApLroGCMlZrYqvlY3qYhM0aXpFkPOuoqJ3Dm6fxXrGwVF9gCWZagjPqznfkuMKQ8DPTQRO8ZqG1hPGKEm9IgpGW4DZDgTNriTxvFiq+Lz+0cKfp4wj6OCK9JSnzNSn9LFU7UhKZZMnYwcJ8s8yRsECScK4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC"); } site_pro/codemirror-3.1/theme/elegant.css0000644000000000000000000000112112111430706017265 0ustar rootroot.cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;} .cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;} .cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;} .cm-s-elegant span.cm-variable {color: black;} .cm-s-elegant span.cm-variable-2 {color: #b11;} .cm-s-elegant span.cm-qualifier {color: #555;} .cm-s-elegant span.cm-keyword {color: #730;} .cm-s-elegant span.cm-builtin {color: #30a;} .cm-s-elegant span.cm-error {background-color: #fdd;} .cm-s-elegant span.cm-link {color: #762;} site_pro/codemirror-3.1/theme/vibrant-ink.css0000644000000000000000000000257112111430706020104 0ustar rootroot/* Taken from the popular Visual Studio Vibrant Ink Schema */ .cm-s-vibrant-ink.CodeMirror { background: black; color: white; } .cm-s-vibrant-ink .CodeMirror-selected { background: #35493c !important; } .cm-s-vibrant-ink .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } .cm-s-vibrant-ink .CodeMirror-linenumber { color: #d0d0d0; } .cm-s-vibrant-ink .CodeMirror-cursor { border-left: 1px solid white !important; } .cm-s-vibrant-ink .cm-keyword { color: #CC7832; } .cm-s-vibrant-ink .cm-atom { color: #FC0; } .cm-s-vibrant-ink .cm-number { color: #FFEE98; } .cm-s-vibrant-ink .cm-def { color: #8DA6CE; } .cm-s-vibrant-ink span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #FFC66D } .cm-s-vibrant-ink span.cm-variable-3, .cm-s-cobalt span.cm-def { color: #FFC66D } .cm-s-vibrant-ink .cm-operator { color: #888; } .cm-s-vibrant-ink .cm-comment { color: gray; font-weight: bold; } .cm-s-vibrant-ink .cm-string { color: #A5C25C } .cm-s-vibrant-ink .cm-string-2 { color: red } .cm-s-vibrant-ink .cm-meta { color: #D8FA3C; } .cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; } .cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; } .cm-s-vibrant-ink .cm-tag { color: #8DA6CE; } .cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; } .cm-s-vibrant-ink .cm-header { color: #FF6400; } .cm-s-vibrant-ink .cm-hr { color: #AEAEAE; } .cm-s-vibrant-ink .cm-link { color: blue; } site_pro/codemirror-3.1/theme/ambiance.css0000644000000000000000000006272412111430706017425 0ustar rootroot/* ambiance theme for codemirror */ /* Color scheme */ .cm-s-ambiance .cm-keyword { color: #cda869; } .cm-s-ambiance .cm-atom { color: #CF7EA9; } .cm-s-ambiance .cm-number { color: #78CF8A; } .cm-s-ambiance .cm-def { color: #aac6e3; } .cm-s-ambiance .cm-variable { color: #ffb795; } .cm-s-ambiance .cm-variable-2 { color: #eed1b3; } .cm-s-ambiance .cm-variable-3 { color: #faded3; } .cm-s-ambiance .cm-property { color: #eed1b3; } .cm-s-ambiance .cm-operator {color: #fa8d6a;} .cm-s-ambiance .cm-comment { color: #555; font-style:italic; } .cm-s-ambiance .cm-string { color: #8f9d6a; } .cm-s-ambiance .cm-string-2 { color: #9d937c; } .cm-s-ambiance .cm-meta { color: #D2A8A1; } .cm-s-ambiance .cm-error { color: #AF2018; } .cm-s-ambiance .cm-qualifier { color: yellow; } .cm-s-ambiance .cm-builtin { color: #9999cc; } .cm-s-ambiance .cm-bracket { color: #24C2C7; } .cm-s-ambiance .cm-tag { color: #fee4ff } .cm-s-ambiance .cm-attribute { color: #9B859D; } .cm-s-ambiance .cm-header {color: blue;} .cm-s-ambiance .cm-quote { color: #24C2C7; } .cm-s-ambiance .cm-hr { color: pink; } .cm-s-ambiance .cm-link { color: #F4C20B; } .cm-s-ambiance .cm-special { color: #FF9D00; } .cm-s-ambiance .CodeMirror-matchingbracket { color: #0f0; } .cm-s-ambiance .CodeMirror-nonmatchingbracket { color: #f22; } .cm-s-ambiance .CodeMirror-selected { background: rgba(255, 255, 255, 0.15); } .cm-s-ambiance .CodeMirror-focused .CodeMirror-selected { background: rgba(255, 255, 255, 0.10); } /* Editor styling */ .cm-s-ambiance.CodeMirror { line-height: 1.40em; font-family: Monaco, Menlo,"Andale Mono","lucida console","Courier New",monospace !important; color: #E6E1DC; background-color: #202020; -webkit-box-shadow: inset 0 0 10px black; -moz-box-shadow: inset 0 0 10px black; -o-box-shadow: inset 0 0 10px black; box-shadow: inset 0 0 10px black; } .cm-s-ambiance .CodeMirror-gutters { background: #3D3D3D; border-right: 1px solid #4D4D4D; box-shadow: 0 10px 20px black; } .cm-s-ambiance .CodeMirror-linenumber { text-shadow: 0px 1px 1px #4d4d4d; color: #222; padding: 0 5px; } .cm-s-ambiance .CodeMirror-lines .CodeMirror-cursor { border-left: 1px solid #7991E8; } .cm-s-ambiance .activeline { background: none repeat scroll 0% 0% rgba(255, 255, 255, 0.031); } .cm-s-ambiance.CodeMirror, .cm-s-ambiance .CodeMirror-gutters { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAQAAAAHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybSwN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyHvOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLjdVsis4Mk80ESF2YpSkzwldjHkjFCUutI/r+EHDU8oCs6yzL3PhWiEooZdFMkymlas4AcI3KmoMMNSQ3tHzjGWCrcJJdYyZC7QFGwjRL9p+MrRkAGWzIaWCn9W0F3TsK01c2ZvQw0byvxuQU0r1lM0qJO7wW0kRIMdDTtXEdzi4VIh+EoIHm0mWtAtpCixlabgn83fKTI7anJe9ST7WIK1DMGpQmYeA58ImV6ezOGOzK2Kgq01pd60cKWiUi9Lievb/0vIDPHQ05Kzt4ddPckQBQtoaurjyHnek/nKzpQLrVgKPjIkh2v4uyezpv+Xoo7fPFXaGFp1vaLKxQ4uUpQQS5VuQs7BCq4xRJv7fwpVvvFEB3j+620haOuocqMhWd6TTPAEx+mdFNGHdranFe95WrWmIvlY4F1Dle2ECgc6cto7SryuqGGGha0tFQ5V53migUKmg6XKAo4qS3mik+0OZpAhOLeZKicacgaYcyx5hypYQE02ZA4xi/pNhOQxR4klNKyqacj+mpxnLTnnGSo85++3ZCZq6lrZkXlGEX3o+C9FieccJbZWVFjC0Yo1FZnJhoYMFoI1hEZ9r6hwg75HwzBNhbZCdJEfJwTPGzJvaKImw1yYX1HDAmpXR+ZJQ/SmgqMNVQb5vgamGwLtt7VwvP7Qk1xpiM5x5Cyv93E06MZmgs0Nya2azIKOYKCGBQQW97RmhKNKF02JZqHEJ4o58qp7X5EcZmc56trXEqzjCBZ1MFGR87Ql2tSTs6CGxS05PTzRQorkbw7aKoKXFDXsYW42VJih/q+FP2BdTzDTwVqOYB13liM50vG7wy28qagyuIXMeQI/Oqq8bcn5wJI50xH00CRntyfpL1T4hydYpoXgNiFzoIUTDZnLNRzh4TBHwbYGDvZkxmlyJloyr6tRihpeUG94GnKtIznREF0tzJG/OOr73JBcrSh1k6WuTprgLU+mnSGnv6Zge0NNz+kTDdH8nuAuTdJDCNb21LCiIuqlYbqGzT3RAoZofQfjFazkqeNWdYaGvYTM001EW2oKPvVk1ldUGSgUtHFwjKM1h9jnFcmy5lChoLNaQMGGDsYbKixlaMBmmsx1QjCfflwTfO/gckW0ruZ3jugKR3R5W9hGUWqCgxuFgsuaCHorotGKzGaeZB9DMsaTnKCpMtwTvOzhYk0rdrArKCqcaWmVk1+F372ur1YkKxgatI8Qfe1gIX9wE9FgS8ESmuABIXnRUbCapcKe+nO7slClSZFzpV/LkLncEb1qiO42fS3R855Su2mCLh62t1SYZZYVmKwIHjREF2uihTzB20JOkz7dkxzYQnK0UOU494wh+VWRc6Un2kpTaVgLDFEkJ/uhzRcI0YKGgpGWOlocBU/a4fKoJ/pEaNV6jip3+Es9VXY078rGnmAdf7t9ylPXS34RBSuYPs1UecZTU78WanhBCHpZ5sAoTz0LGZKjPf9TRypqWEiTvOFglL1fCEY3wY/++rbk7C8bWebA6p6om6PgOL2kp44TFJlVNBXae2rqqdZztOJpT87GQsE9jqCPIe9VReZuQ/CIgacsyZdCpIScSYqcZk8r+nsyCzhyfhOqHGOIvrLknC8wTpFcaYiGC/RU1NRbUeUpocQOnkRpGOrIOcNRx+1uA0UrzhSSt+VyS3SJpnFWkzNDqOFGIWcfR86DnmARTQ1HKIL33ExPiemeOhYSSjzlSUZZuE4TveoJLnBUOFof6KiysCbnAEcZgcUNTDOwkqWu3RWtmGpZwlHhJENdZ3miGz0lJlsKnjbwqSHQjpxnFDlTLLwqJPMZMjd7KrzkSG7VsxXBZE+F8YZkb01Oe00yyRK9psh5SYh29ySPKBo2ylNht7ZkZnsKenjKNJu9PNEyZpaCHv4Kt6RQsLvAVp7M9kIimmCUwGeWqLMmGuIotYMmWNpSahkhZw9FqZsVnKJhsjAHvtHMsTM9fCI06Dx/u3vfUXCqfsKRc4oFY2jMsoo/7DJDwZ1CsIKnJu+J9ldkpmiCxQx1rWjI+T9FwcWWzOuaYH0Hj7klNRVWEQpmaqosakiGNTFHdjS/qnUdmf0NJW5xsL0HhimCCZZSRzmSPTXJQ4aaztAwtZnoabebJ+htCaZ7Cm535ByoqXKbX1WRc4Eh2MkRXWzImVc96Cj4VdOKVxR84VdQsIUM8Psoou2byVHyZFuq7O8otbSQ2UAoeEWTudATLGSpZzVLlXVkPU2Jc+27lsw2jmg5T5VhbeE3BT083K9WsTTkFU/Osi0rC5lRlpwRHUiesNS0sOvmqGML1aRbPAxTJD9ZKtxuob+hhl8cwYGWpJ8nub7t5p6coYbMovZ1BTdaKn1jYD6h4GFDNFyT/Kqe1XCXphXHOKLZmuRSRdBPEfVUXQzJm5YGPGGJdvAEr7hHNdGZnuBvrpciGmopOLf5N0uVMy0FfYToJk90uUCbJupaVpO53UJXR2bVpoU00V2KOo4zMFrBd0Jtz2pa0clT5Q5L8IpQ177mWQejPMEJhuQjS10ref6HHjdEhy1P1EYR7GtO0uSsKJQYLiTnG1rVScj5lyazpqWGl5uBbRWl7m6ixGOOnEsMJR7z8J0n6KMnCdxhiNYQCoZ6CmYLnO8omC3MkW3bktlPmEt/VQQHejL3+dOE5FlPdK/Mq8hZxxJtLyRrepLThYKbLZxkSb5W52vYxNOaOxUF0yxMUPwBTYqCzy01XayYK0sJyWBLqX0MwU5CzoymRzV0EjjeUeLgDpTo6ij42ZAzvD01dHUUTPLU96MdLbBME8nFBn7zJCMtJcZokn8YoqU0FS5WFKyniHobguMcmW8N0XkWZjkyN3hqOMtS08r+/xTBwpZSZ3qiVRX8SzMHHjfUNFjgHEPmY9PL3ykEzxkSre/1ZD6z/NuznuB0RcE1TWTm9zRgfUWVJiG6yrzgmWPXC8EAR4Wxhlad0ZbgQyEz3pG5RVEwwDJH2mgKpjcTiCOzn1lfUWANFbZ2BA8balnEweJC9J0iuaeZoI+ippFCztEKVvckR2iice1JvhVytrQwUAZpgsubCPaU7xUe9vWnaOpaSBEspalykhC9bUlOMpT42ZHca6hyrqKmw/wMR8H5ZmdFoBVJb03O4UL0tSNnvIeRmkrLWqrs78gcrEn2tpcboh0UPOW3UUR9PMk4T4nnNKWmCjlrefhCwxRNztfmIQVdDElvS4m1/WuOujoZCs5XVOjtKPGokJzsYCtFYoWonSPT21DheU/wWhM19FcElwqNGOsp9Q8N/cwXaiND1MmeL1Q5XROtYYgGeFq1aTMsoMmcrKjQrOFQTQ1fmBYhmW6o8Jkjc7iDJRTBIo5kgJD5yMEYA3srCg7VFKwiVJkmRCc5ohGOKhsYMn/XBLdo5taZjlb9YAlGWRimqbCsoY7HFAXLa5I1HPRxMMsQDHFkWtRNniqT9UEeNjcE7RUlrCJ4R2CSJuqlKHWvJXjAUNcITYkenuBRB84TbeepcqTj3zZyFJzgYQdHnqfgI0ddUwS6GqWpsKWhjq9cV0vBAEMN2znq+EBfIWT+pClYw5xsTlJU6GeIBsjGmmANTzJZiIYpgrM0Oa8ZMjd7NP87jxhqGOhJlnQtjuQpB+8aEE00wZFznSJPyHxgH3HkPOsJFvYk8zqCHzTs1BYOa4J3PFU+UVRZxlHDM4YavlNUuMoRveiZA2d7grMNc2g+RbSCEKzmgYsUmWmazFJyoiOZ4KnyhKOGRzWJa0+moyV4TVHDzn51Awtqaphfk/lRQ08FX1iiqxTB/kLwd0VynKfEvI6cd4XMV5bMhZ7gZUWVzYQ6Nm2BYzxJbw3bGthEUUMfgbGeorae6DxHtJoZ6alhZ0+ytiVoK1R4z5PTrOECT/SugseEOlb1MMNR4VRNcJy+V1Hg9ONClSZFZjdHlc6W6FBLdJja2MC5hhpu0DBYEY1TFGwiFAxRRCsYkiM9JRb0JNMVkW6CZYT/2EiTGWmo8k+h4FhDNE7BvppoTSFnmCV5xZKzvcCdDo7VVPnIU+I+Rc68juApC90MwcFCsJ5hDqxgScYKreruyQwTqrzoqDCmhWi4IbhB0Yrt3RGa6GfDv52rKXWhh28dyZaWUvcZeMTBaZoSGyiCtRU5J8iviioHaErs7Jkj61syVzTTgOcUOQ8buFBTYWdL5g3T4qlpe0+wvD63heAXRfCCIed9RbCsp2CiI7raUOYOTU13N8PNHvpaGvayo4a3LLT1lDrVEPT2zLUlheB1R+ZTRfKWJ+dcocLJfi11vyJ51lLqJ0WD7tRwryezjiV5W28uJO9qykzX8JDe2lHl/9oyBwa2UMfOngpXCixvKdXTk3wrsKmiVYdZIqsoWEERjbcUNDuiaQomGoIbFdEHmsyWnuR+IeriKDVLnlawlyNHKwKlSU631PKep8J4Q+ayjkSLKYLhalNHlYvttb6fHm0p6OApsZ4l2VfdqZkjuysy6ysKLlckf1KUutCTs39bmCgEyyoasIWlVaMF7mgmWtBT8Kol5xpH9IGllo8cJdopcvZ2sImlDmMIbtDk3KIpeNiS08lQw11NFPTwVFlPP6pJ2gvRfI7gQUfmNAtf6Gs0wQxDsKGlVBdF8rCa3jzdwMaGHOsItrZk7hAyOzpK9VS06j5F49b0VNGOOfKs3lDToMsMBe9ZWtHFEgxTJLs7qrygKZjUnmCYoeAqeU6jqWuLJup4WghOdvCYJnrSkSzoyRkm5M2StQwVltPkfCAk58tET/CSg+8MUecmotMEnhBKfWBIZsg2ihruMJQaoIm+tkTLKEqspMh00w95gvFCQRtDwTT1gVDDSEVdlwqZfxoQRbK0g+tbiBZxzKlpnpypejdDwTaeOvorMk/IJE10h9CqRe28hhLbe0pMsdSwv4ZbhKivo2BjDWfL8UKJgeavwlwb5KlwhyE4u4XkGE2ytZCznKLCDZZq42VzT8HLCrpruFbIfOIINmh/qCdZ1ZBc65kLHR1Bkyf5zn6pN3SvGKIlFNGplhrO9QSXanLOMQTLCa0YJCRrCZm/CZmrLTm7WzCK4GJDiWUdFeYx1LCFg3NMd0XmCuF3Y5rITLDUsYS9zoHVzwnJoYpSTQoObyEzr4cFBNqYTopoaU/wkyLZ2lPhX/5Y95ulxGTV7KjhWrOZgl8MyUUafjYraNjNU1N3IWcjT5WzWqjwtoarHSUObGYO3GCJZpsBlnJGPd6ZYLyl1GdCA2625IwwJDP8GUKymbzuyPlZlvTUsaUh5zFDhRWFzPKKZLAlWdcQbObgF9tOqOsmB1dqcqYJmWstFbZRRI9poolmqiLnU0POvxScpah2iSL5UJNzgScY5+AuIbpO0YD3NCW+dLMszFSdFCWGqG6eVq2uYVNDdICGD6W7EPRWZEY5gpsE9rUkS3mijzzJnm6UpUFXG1hCUeVoS5WfNcFpblELL2qqrCvMvRfd45oalvKU2tiQ6ePJOVMRXase9iTtLJztPxJKLWpo2CRDcJwn2sWSLKIO1WQWNTCvpVUvOZhgSC40JD0dOctaSqzkCRbXsKlb11Oip6PCJ0IwSJM31j3akRxlP7Rwn6aGaUL0qiLnJkvB3xWZ2+Q1TfCwpQH3G0o92UzmX4o/oJNQMMSQc547wVHhdk+VCw01DFYEnTxzZKAm74QmeNNR1w6WzEhNK15VJzuCdxQ53dRUDws5KvwgBMOEgpcVNe0hZI6RXT1Jd0cyj5nsaEAHgVmGaJIlWdsc5Ui2ElrRR6jrRAttNMEAIWrTDFubkZaok7/AkzfIwfuWVq0jHzuCK4QabtLUMVPB3kJ0oyHTSVFlqMALilJf2Rf8k5aaHtMfayocLBS8L89oKoxpJvnAkDPa0qp5DAUTHKWmCcnthlou8iCKaFFLHWcINd1nyIwXqrSxMNmSs6KmoL2QrKuWtlQ5V0120xQ5vRyZS1rgFkWwhiOwiuQbR0OOVhQM9iS3tiXp4RawRPMp5tDletOOBL95MpM01dZTBM9pkn5qF010rIeHFcFZhmSGpYpTsI6nwhqe5C9ynhlpp5ophuRb6WcJFldkVnVEwwxVfrVkvnWUuNLCg5bgboFHPDlDPDmnK7hUrWiIbjadDclujlZcaokOFup4Ri1kacV6jmrrK1hN9bGwpKEBQ4Q6DvIUXOmo6U5LqQM6EPyiKNjVkPnJkDPNEaxhiFay5ExW1NXVUGqcpYYdPcGiCq7z/TSlbhL4pplWXKd7NZO5QQFrefhRQW/NHOsqcIglc4UhWklR8K0QzbAw08CBDnpbgqXdeD/QUsM4RZXDFBW6WJKe/mFPdH0LtBgiq57wFLzlyQzz82qYx5D5WJP5yVJDW01BfyHnS6HKO/reZqId1WGa4Hkh2kWodJ8i6KoIPlAj2hPt76CzXsVR6koPRzWTfKqIentatYpQw2me4AA3y1Kind3SwoOKZDcFXTwl9tWU6mfgRk9d71sKtlNwrjnYw5tC5n5LdKiGry3JKNlHEd3oaMCFHrazBPMp/uNJ+V7IudcSbeOIdjUEdwl0VHCOZo5t6YluEuaC9mQeMgSfOyKnYGFHcIeQ84yQWbuJYJpZw5CzglDH7gKnWqqM9ZTaXcN0TeYhR84eQtJT76JJ1lREe7WnnvsMmRc9FQ7SBBM9mV3lCUdmHk/S2RAMt0QjFNFqQpWjDPQ01DXWUdDBkXziKPjGEP3VP+zIWU2t7im41FOloyWzn/L6dkUy3VLDaZ6appgDLHPjJEsyvJngWEPUyVBiAaHCTEXwrLvSEbV1e1gKJniicWorC1MUrVjB3uDhJE/wgSOzk1DXpk0k73qCM8xw2UvD5kJmDUfOomqMpWCkJRlvKXGmoeBm18USjVIk04SClxTB6YrgLAPLWYK9HLUt5cmc0vYES8GnTeRc6skZbQkWdxRsIcyBRzx1DbTk9FbU0caTPOgJHhJKnOGIVhQqvKmo0llRw9sabrZkDtdg3PqaKi9oatjY8B+G371paMg6+mZFNNtQ04mWBq3rYLOmtWWQp8KJnpy9DdFensyjdqZ+yY40VJlH8wcdLzC8PZnvHMFUTZUrDTkLyQaGus5X5LzpYAf3i+e/ZlhqGqWhh6Ou6xTR9Z6oi5AZZtp7Mj2EEm8oSpxiYZCHU/1fbGdNNNRRoZMhmilEb2gqHOEJDtXkHK/JnG6IrvbPCwV3NhONVdS1thBMs1T4QOBcTWa2IzhMk2nW5Kyn9tXUtpv9RsG2msxk+ZsQzRQacJncpgke0+T8y5Fzj8BiGo7XlJjaTIlpQs7KFjpqGnKuoyEPeIKnFMkZHvopgh81ySxNFWvJWcKRs70j2FOT012IllEEO1n4pD1513Yg2ssQPOThOkvyrqHUdEXOSEsihmBbTbKX1kLBPWqWkLOqJbjB3GBIZmoa8qWl4CG/iZ7oiA72ZL7TJNeZUY7kFQftDcHHluBzRbCegzMtrRjVQpX2lgoPKKLJAkcbMl01XK2p7yhL8pCBbQ3BN2avJgKvttcrWDK3CiUOVxQ8ZP+pqXKyIxnmBymCg5vJjNfkPK4+c8cIfK8ocVt7kmfd/I5SR1hKvCzUtb+lhgc00ZaO6CyhIQP1Uv4yIZjload72PXX0OIJvnFU+0Zf6MhsJwTfW0r0UwQfW4LNLZl5HK261JCZ4qnBaAreVAS3WrjV0LBnNDUNNDToCEeFfwgcb4gOEqLRhirWkexrCEYKVV711DLYEE1XBEsp5tpTGjorkomKYF9FDXv7fR3BGwbettSxnyL53MBPjsxDZjMh+VUW9NRxq1DhVk+FSxQcaGjV9Pawv6eGByw5qzoy7xk4RsOShqjJwWKe/1pEEfzkobeD/dQJmpqedcyBTy2sr4nGNRH0c0SPWTLrqAc0OQcb/gemKgqucQT7ySWKCn2EUotoCvpZct7RO2sy/QW0IWcXd7pQRQyZVwT2USRO87uhjioTLKV2brpMUcMQRbKH/N2T+UlTpaMls6cmc6CCNy3JdYYSUzzJQ4oSD3oKLncULOiJvjBEC2oqnCJkJluCYy2ZQ5so9YYlZ1VLlQU1mXEW1jZERwj/MUSRc24TdexlqLKfQBtDTScJUV8FszXBEY5ktpD5Ur9hYB4Nb1iikw3JoYpkKX+RodRKFt53MMuRnKSpY31PwYaGaILh3wxJGz9TkTPEETxoCWZrgvOlmyMzxFEwVJE5xZKzvyJ4WxEc16Gd4Xe3Weq4XH2jKRikqOkGQ87hQnC7wBmGYLAnesX3M+S87eFATauuN+Qcrh7xIxXJbUIdMw3JGE3ylCWzrieaqCn4zhGM19TQ3z1oH1AX+pWEqIc7wNGAkULBo/ZxRaV9NNyh4Br3rCHZzbzmSfawBL0dNRwpW1kK9mxPXR9povcdrGSZK9c2k0xwFGzjuniCtRSZCZ6ccZ7gaktmgAOtKbG/JnOkJrjcQTdFMsxRQ2cLY3WTIrlCw1eWKn8R6pvt4GFDso3QoL4a3nLk3G6JrtME3dSenpx7PNFTmga0EaJTLQ061sEeQoWXhSo9LTXsaSjoJQRXeZLtDclbCrYzfzHHeaKjHCVOUkQHO3JeEepr56mhiyaYYKjjNU+Fed1wS5VlhWSqI/hYUdDOkaxiKehoyOnrCV5yBHtbWFqTHCCwtpDcYolesVR5yUzTZBb3RNMd0d6WP+SvhuBmRcGxnuQzT95IC285cr41cLGQ6aJJhmi4TMGempxeimBRQw1tFKV+8jd6KuzoSTqqDxzRtpZkurvKEHxlqXKRIjjfUNNXQsNOsRScoWFLT+YeRZVD3GRN0MdQcKqQjHDMrdGGVu3iYJpQx3WGUvfbmxwFfR20WBq0oYY7LMFhhgYtr8jpaEnaOzjawWWaTP8mMr0t/EPDPoqcnxTBI5o58L7uoWnMrpoqPwgVrlAUWE+V+TQl9rawoyP6QGAlQw2TPRX+YSkxyBC8Z6jhHkXBgQL7WII3DVFnRfCrBfxewv9D6xsyjys4VkhWb9pUU627JllV0YDNHMku/ldNMMXDEo4aFnAkk4U6frNEU4XgZUPmEKHUl44KrzmYamjAbh0JFvGnaTLPu1s9jPCwjFpYiN7z1DTOk/nc07CfDFzmCf7i+bfNHXhDtLeBXzTBT5rkMvWOIxpl4EMh2LGJBu2syDnAEx2naEhHDWMMzPZEhygyS1mS5RTJr5ZkoKbEUoYqr2kqdDUE8ztK7OaIntJkFrIECwv8LJTaVx5XJE86go8dFeZ3FN3rjabCAYpoYEeC9zzJVULBbmZhDyd7ko09ydpNZ3nm2Kee4FPPXHnYEF1nqOFEC08LUVcDvYXkJHW8gTaKCk9YGOeIJhqiE4ToPEepdp7IWFjdwnWaufGMwJJCMtUTTBBK9BGCOy2tGGrJTHIwyEOzp6aPzNMOtlZkDvcEWpP5SVNhfkvDxhmSazTJXYrM9U1E0xwFVwqZQwzJxw6+kGGGUj2FglGGmnb1/G51udRSMNlTw6GGnCcUwVcOpmsqTHa06o72sw1RL02p9z0VbnMLOaIX3QKaYKSCFQzBKEUNHTSc48k53RH9wxGMtpQa5KjjW0W0n6XCCCG4yxNNdhQ4R4l1Ff+2sSd6UFHiIEOyqqFgT01mEUMD+joy75jPhOA+oVVLm309FR4yVOlp4RhLiScNmSmaYF5Pw0STrOIoWMSR2UkRXOMp+M4SHW8o8Zoi6OZgjKOaFar8zZDzkWzvKOjkKBjmCXby8JahhjXULY4KlzgKLvAwxVGhvyd4zxB1d9T0piazmKLCVZY5sKiD0y2ZSYrkUEPUbIk+dlQ4SJHTR50k1DPaUWIdTZW9NJwnJMOECgd7ou/MnppMJ02O1VT4Wsh85MnZzcFTngpXGKo84qmwgKbCL/orR/SzJ2crA+t6Mp94KvxJUeIbT3CQu1uIdlQEOzlKfS3UMcrTiFmOuroocrZrT2AcmamOKg8YomeEKm/rlT2sociMaybaUlFhuqHCM2qIJ+rg4EcDFymiDSxzaHdPcpE62pD5kyM5SBMoA1PaUtfIthS85ig1VPiPPYXgYEMNk4Qq7TXBgo7oT57gPUdwgCHzhIVFPFU6OYJzHAX9m5oNrVjeE61miDrqQ4VSa1oiURTsKHC0IfjNwU2WzK6eqK8jWln4g15TVBnqmDteCJ501PGAocJhhqjZdtBEB6lnhLreFJKxmlKbeGrqLiSThVIbCdGzloasa6lpMQXHCME2boLpJgT7yWaemu6wBONbqGNVRS0PKIL7LckbjmQtR7K8I5qtqel+T/ChJTNIKLjdUMNIRyvOEko9YYl2cwQveBikCNawJKcLBbc7+JM92mysNvd/Fqp8a0k6CNEe7cnZrxlW0wQXaXjaktnRwNOGZKYiONwS7a1JVheq3WgJHlQUGKHKmp4KAxXR/ULURcNgoa4zhKSLpZR3kxRRb0NmD0OFn+UCS7CzI1nbP6+o4x47QZE5xRCt3ZagnYcvmpYQktXdk5YKXTzBC57kKEe0VVuiSYqapssMS3C9p2CKkHOg8B8Pa8p5atrIw3qezIWanMGa5HRDNF6RM9wcacl0N+Q8Z8hsIkSnaIIdHRUOEebAPy1zbCkhM062FCJtif7PU+UtoVXzWKqM1PxXO8cfdruhFQ/a6x3JKYagvVDhQEtNiyiiSQ7OsuRsZUku0CRNDs4Sog6KKjsZgk2bYJqijgsEenoKeniinRXBn/U3lgpPdyDZynQx8IiioMnCep5Ky8mjGs6Wty0l1hUQTcNWswS3WRp2kCNZwJG8omG8JphPUaFbC8lEfabwP7VtM9yoaNCAjpR41VNhrD9LkbN722v0CoZMByFzhaW+MyzRYEWFDQwN2M4/JiT76PuljT3VU/A36eaIThb+R9oZGOAJ9tewkgGvqOMNRWYjT/Cwu99Q8LqDE4TgbLWxJ1jaDDAERsFOFrobgjUsBScaguXU8kKm2RL19tRypSHnHNlHiIZqgufs4opgQdVdwxBNNFBR6kVFqb8ogimOzB6a6HTzrlDHEpYaxjiiA4TMQobkDg2vejjfwJGWmnbVFAw3H3hq2NyQfG7hz4aC+w3BbwbesG0swYayvpAs6++Ri1Vfzx93mFChvyN5xVHTS+0p9aqCAxyZ6ZacZyw5+7uuQkFPR9DDk9NOiE7X1PCYJVjVUqq7JlrHwWALF5nfHNGjApdpqgzx5OwilDhCiDYTgnc9waGW4BdLNNUQvOtpzDOWHDH8D7TR/A/85KljEQu3NREc4Pl/6B1Hhc8Umb5CsKMmGC9EPcxoT2amwHNCmeOEnOPbklnMkbOgIvO5UMOpQrS9UGVdt6iH/fURjhI/WOpaW9OKLYRod6HCUEdOX000wpDZQ6hwg6LgZfOqo1RfT/CrJzjekXOGhpc1VW71ZLbXyyp+93ILbC1kPtIEYx0FIx1VDrLoVzXRKRYWk809yYlC9ImcrinxtabKnzRJk3lAU1OLEN1j2zrYzr2myHRXJFf4h4QKT1qSTzTB5+ZNTzTRkAxX8FcLV2uS8eoQQ2aAkFzvCM72sJIcJET3WPjRk5wi32uSS9rfZajpWEvj9hW42F4o5NytSXYy8IKHay10VYdrcl4SkqscrXpMwyGOgtkajheSxdQqmpxP1L3t4R5PqasFnrQEjytq6qgp9Y09Qx9o4S1FzhUCn1kyHSzBWLemoSGvOqLNhZyBjmCaAUYpMgt4Ck7wBBMMwWKWgjsUwTaGVsxWC1mYoKiyqqeGKYqonSIRQ3KIkHO0pmAxTdBHkbOvfllfr+AA+7gnc50huVKYK393FOyg7rbPO/izI7hE4CnHHHnJ0ogNPRUGeUpsrZZTBJcrovUcJe51BPsr6GkJdhCCsZ6aTtMEb2pqWkqeVtDXE/QVggsU/Nl86d9RMF3DxvZTA58agu810RWawCiSzzXBeU3MMW9oyJUedvNEvQyNu1f10BSMddR1vaLCYpYa/mGocLSiYDcLbQz8aMn5iyF4xBNMs1P0QEOV7o5gaWGuzSeLue4tt3ro7y4Tgm4G/mopdZgl6q0o6KzJWE3mMksNr3r+a6CbT8g5wZNzT9O7fi/zpaOmnz3BRoqos+tv9zMbdpxsqDBOEewtJLt7cg5wtKKbvldpSzRRCD43VFheCI7yZLppggMVBS/KMAdHODJvOwq2NQSbKKKPLdFWQs7Fqo+mpl01JXYRgq8dnGLhTiFzqmWsUMdpllZdbKlyvSdYxhI9YghOtxR8LgSLWHK62mGGVoxzBE8LNWzqH9CUesQzFy5RQzTc56mhi6fgXEWwpKfE5Z7M05ZgZUPmo6auiv8YKzDYwWBLMErIbKHJvOwIrvEdhOBcQ9JdU1NHQ7CXn2XIDFBKU2WAgcX9UAUzDXWd5alwuyJ41Z9rjKLCL4aCp4WarhPm2rH+SaHUYE001JDZ2ZAzXPjdMpZWvC9wmqIB2lLhQ01D5jO06hghWMndbM7yRJMsoCj1vYbnFQVrW9jak3OlEJ3s/96+p33dEPRV5GxiqaGjIthUU6FFEZyqCa5qJrpBdzSw95IUnOPIrCUUjRZQFrbw5PR0R1qiYx3cb6nrWUMrBmmiBQxVHtTew5ICP/ip6g4hed/Akob/32wvBHsIOX83cI8hGeNeNPCIkPmXe8fPKx84OMSRM1MTdXSwjCZ4S30jVGhvqTRak/OVhgGazHuOCud5onEO1lJr6ecVyaOK6H7zqlBlIaHE0oroCgfvGJIdPcmfLNGLjpz7hZwZQpUbFME0A1cIJa7VNORkgfsMBatbKgwwJM9bSvQXeNOvbIjelg6WWvo5kvbKaJJNHexkKNHL9xRyFlH8Ti2riB5wVPhUk7nGkJnoCe428LR/wRGdYIlmWebCyxou1rCk4g/ShugBDX0V0ZQWkh0dOVsagkM0yV6OoLd5ye+pRlsCr0n+KiQrGuq5yJDzrTAXHtLUMduTDBVKrSm3eHL+6ijxhFDX9Z5gVU/wliHYTMiMFpKLNMEywu80wd3meoFmt6VbRMPenhrOc6DVe4pgXU8DnnHakLOIIrlF4FZPIw6R+zxBP0dyq6OOZ4Q5sLKCcz084ok+VsMMyQhNZmmBgX5xIXOEJTmi7VsGTvMTNdHHhpzdbE8Du2oKxgvBqQKdDDnTFOylCFaxR1syz2iqrOI/FEpNc3C6f11/7+ASS6l2inq2ciTrCCzgyemrCL5SVPjQkdPZUmGy2c9Sw9FtR1sS30RmsKPCS4rkIC/2U0MduwucYolGaPjKEyhzmiPYXagyWbYz8LWBDdzRimAXzxx4z8K9hpzlhLq+NiQ97HuKorMUfK/OVvC2JfiHUPCQI/q7J2gjK+tTDNxkCc4TMssqCs4TGtLVwQihyoAWgj9bosU80XGW6Ac9TJGziaUh5+hnFcHOnlaM1iRn29NaqGENTTTSUHCH2tWTeV0osUhH6psuVLjRUmGWhm6OZEshGeNowABHcJ2Bpy2ZszRcKkRXd2QuKVEeXnbfaEq825FguqfgfE2whlChSRMdron+LATTPQ2Z369t4B9C5gs/ylzv+CMmepIDPclFQl13W0rspPd1JOcbghGOEutqCv5qacURQl3dDKyvyJlqKXGPgcM9FfawJAMVmdcspcYKOZc4GjDYkFlK05olNMHyHn4zFNykyOxt99RkHlfwmiHo60l2EKI+mhreEKp080Tbug08BVPcgoqC5zWt+NLDTZ7oNSF51N1qie7Va3uCCwyZbkINf/NED6jzOsBdZjFN8oqG3wxVunqCSYYKf3EdhJyf9YWGf7tRU2oH3VHgPr1fe5J9hOgHd7xQ0y7qBwXr23aGErP0cm64JVjZwsOGqL+mhNgZmhJLW2oY4UhedsyBgzrCKrq7BmcpNVhR6jBPq64Vgi+kn6XE68pp8J5/+0wRHGOpsKenQn9DZntPzjRLZpDAdD2fnSgkG9tmIXnUwQ6WVighs7Yi2MxQ0N3CqYaCXkJ0oyOztMDJjmSSpcpvlrk0RMMOjmArQ04PRV1DO1FwhCVaUVPpKUM03JK5SxPsIWRu8/CGHi8UHChiqGFDTbSRJWeYUDDcH6vJWUxR4k1FXbMUwV6e4AJFXS8oMqsZKqzvYQ9DDQdZckY4aGsIhtlubbd2r3j4QBMoTamdPZk7O/Bf62lacZwneNjQoGcdVU7zJOd7ghsUHOkosagic6cnWc8+4gg285R6zZP5s1/LUbCKIznTwK36PkdwlOrl4U1LwfdCCa+IrvFkmgw1PCAUXKWo0sURXWcI2muKJlgyFzhynCY4RBOsqCjoI1R5zREco0n2Vt09BQtYSizgKNHfUmUrQ5UOCh51BFcLmY7umhYqXKQomOop8bUnWNNQcIiBcYaC6xzMNOS8JQQfeqKBmmglB+97ok/lfk3ygaHSyZaCRTzRxQo6GzLfa2jWBPepw+UmT7SQEJyiyRkhBLMVOfcoMjcK0eZChfUNzFAUzCsEN5vP/X1uP/n/aoMX+K+nw/Hjr/9xOo7j7Pju61tLcgvJpTWXNbfN5jLpi6VfCOviTktKlFusQixdEKWmEBUKNaIpjZRSSOXSgzaaKLdabrm1/9nZ+/f+vd/vz/v9+Xy+zZ7PRorYoZqyLrCwQdEAixxVOEXNNnjX2nUSRlkqGmWowk8lxR50JPy9Bo6qJXaXwNvREBvnThPEPrewryLhcAnj5WE15Fqi8W7R1sAuEu86S4ENikItFN4xkv9Af4nXSnUVcLiA9xzesFpivRRVeFKtsMRaKBhuSbjOELnAUtlSQUpXgdfB4Z1oSbnFEetbQ0IrAe+Y+pqnDcEJFj6S8LDZzZHwY4e3XONNlARraomNEt2bkvGsosA3ioyHm+6jCMbI59wqt4eeara28IzEmyPgoRaUOEDhTVdEJhmCoTWfC0p8aNkCp0oYqih2iqGi4yXeMkOsn4LdLLnmKfh/YogjNsPebeFGR4m9BJHLzB61XQ3BtpISfS2FugsK9FAtLWX1dCRcrCnUp44CNzuCowUZmxSRgYaE6Za0W2u/E7CVXCiI/UOR8aAm1+OSyE3mOUcwyc1zBBeoX1kiKy0Zfxck1Gsyulti11i83QTBF5Kg3pDQThFMVHiPSlK+0cSedng/VaS8bOZbtsBcTcZAR8JP5KeqQ1OYKAi20njdNNRpgnsU//K+JnaXJaGTomr7aYIphoRn9aeShJWKEq9LcozSF7QleEfDI5LYm5bgVkFkRwVDBCVu0DDIkGupo8TZBq+/pMQURYErJQmPKGKjNDkWOLx7Jd5QizdUweIaKrlP7SwJDhZvONjLkOsBBX9UpGxnydhXkfBLQ8IxgojQbLFnJf81JytSljclYYyEFyx0kVBvKWOFJmONpshGAcsduQY5giVNCV51eOdJYo/pLhbvM0uDHSevNKRcrKZIqnCtJeEsO95RoqcgGK4ocZcho1tTYtcZvH41pNQ7vA0WrhIfOSraIIntIAi+NXWCErdbkvrWwjRLrt0NKUdL6KSOscTOdMSOUtBHwL6OLA0vNSdynaWQEnCpIvKaIrJJEbvHkmuNhn6OjM8VkSGSqn1uYJCGHnq9I3aLhNME3t6GjIkO7xrNFumpyTNX/NrwX7CrIRiqqWijI9JO4d1iieykyfiposQIQ8YjjsjlBh6oHWbwRjgYJQn2NgSnNycmJAk3NiXhx44Sxykihxm8ybUwT1OVKySc7vi3OXVkdBJ4AyXBeksDXG0IhgtYY0lY5ahCD0ehborIk5aUWRJviMA7Xt5kyRjonrXENkm8yYqgs8VzgrJmClK20uMM3jRJ0FiQICQF9hdETlLQWRIb5ki6WDfWRPobvO6a4GP5mcOrNzDFELtTkONLh9dXE8xypEg7z8A9jkhrQ6Fhjlg/QVktJXxt4WXzT/03Q8IaQWSqIuEvloQ2mqC9Jfi7wRul4RX3pSPlzpoVlmCtI2jvKHCFhjcM3sN6lqF6HxnKelLjXWbwrpR4xzuCrTUZx2qq9oAh8p6ixCUGr78g8oyjRAtB5CZFwi80VerVpI0h+IeBxa6Zg6kWvpDHaioYYuEsRbDC3eOmC2JvGYLeioxGknL2UATNJN6hmtj1DlpLvDVmocYbrGCVJKOrg4X6DgddLA203BKMFngdJJFtFd7vJLm6KEpc5yjQrkk7M80SGe34X24nSex1Ra5Omgb71JKyg8SrU3i/kARKwWpH0kOGhKkObyfd0ZGjvyXlAkVZ4xRbYJ2irFMkFY1SwyWxr2oo4zlNiV+7zmaweFpT4kR3kaDAFW6xpSqzJay05FtYR4HmZhc9UxKbbfF2V8RG1MBmSaE+kmC6JnaRXK9gsiXhJHl/U0qM0WTcbyhwkYIvFGwjSbjfwhiJt8ZSQU+Bd5+marPMOkVkD0muxYLIfEuhh60x/J92itguihJSEMySVPQnTewnEm+620rTQEMsOfo4/kP/0ARvWjitlpSX7GxBgcMEsd3EEeYWvdytd+Saawi6aCIj1CkGb6Aj9rwhx16Cf3vAwFy5pyLhVonXzy51FDpdEblbkdJbUcEPDEFzQ8qNmhzzLTmmKWKbFCXeEuRabp6rxbvAtLF442QjQ+wEA9eL1xSR7Q0JXzlSHjJ4exq89yR0laScJ/FW6z4a73pFMEfDiRZvuvijIt86RaSFOl01riV2mD1UEvxGk/Geg5aWwGki1zgKPG9J2U8PEg8qYvMsZeytiTRXBMslCU8JSlxi8EabjwUldlDNLfzTUmCgxWsjqWCOHavYAqsknKFIO0yQ61VL5AVFxk6WhEaCAkdJgt9aSkzXlKNX2jEa79waYuc7gq0N3GDJGCBhoiTXUEPsdknCUE1CK0fwsiaylSF2uiDyO4XX3pFhNd7R4itFGc0k/ElBZwWvq+GC6szVeEoS/MZ+qylwpKNKv9Z469UOjqCjwlusicyTxG6VpNxcQ8IncoR4RhLbR+NdpGGmJWOcIzJGUuKPGpQg8rrG21dOMqQssJQ4RxH5jaUqnZuQ0F4Q+cjxLwPtpZbIAk3QTJHQWBE5S1BokoVtDd6lhqr9UpHSUxMcIYl9pojsb8h4SBOsMQcqvOWC2E8EVehqiJ1hrrAEbQxeK0NGZ0Gkq+guSRgniM23bIHVkqwx4hiHd7smaOyglyIyQuM978j4VS08J/A2G1KeMBRo4fBaSNhKUEZfQewVQ/C1I+MgfbEleEzCUw7mKXI0M3hd1EESVji8x5uQ41nxs1q4RMJCCXs7Iq9acpxn22oSDnQ/sJTxsCbHIYZiLyhY05TY0ZLIOQrGaSJDDN4t8pVaIrsqqFdEegtizc1iTew5Q4ayBDMUsQMkXocaYkc0hZua412siZ1rSXlR460zRJ5SlHGe5j801RLMlJTxtaOM3Q1pvxJ45zUlWFD7rsAbpfEm1JHxG0eh8w2R7QQVzBUw28FhFp5QZzq8t2rx2joqulYTWSuJdTYfWwqMFMcovFmSyJPNyLhE4E10pHzYjOC3huArRa571ZsGajQpQx38SBP5pyZB6lMU3khDnp0MBV51BE9o2E+TY5Ml2E8S7C0o6w1xvCZjf0HkVEHCzFoyNmqC+9wdcqN+Tp7jSDheE9ws8Y5V0NJCn2bk2tqSY4okdrEhx1iDN8cSudwepWmAGXKcJXK65H9to8jYQRH7SBF01ESUJdd0TayVInaWhLkOjlXE5irKGOnI6GSWGCJa482zBI9rCr0jyTVcEuzriC1vcr6mwFGSiqy5zMwxBH/TJHwjSPhL8+01kaaSUuMFKTcLEvaUePcrSmwn8DZrgikWb7CGPxkSjhQwrRk57tctmxLsb9sZvL9LSlyuSLlWkqOjwduo8b6Uv1DkmudIeFF2dHCgxVtk8dpIvHpBxhEOdhKk7OLIUSdJ+cSRY57B+0DgGUUlNfpthTfGkauzxrvTsUUaCVhlKeteTXCoJDCa2NOKhOmC4G1H8JBd4OBZReSRGkqcb/CO1PyLJTLB4j1q8JYaIutEjSLX8YKM+a6phdMsdLFUoV5RTm9JSkuDN8WcIon0NZMNZWh1q8C7SJEwV5HxrmnnTrf3KoJBlmCYI2ilSLlfEvlE4011NNgjgthzEua0oKK7JLE7HZHlEl60BLMVFewg4EWNt0ThrVNEVkkiTwpKXSWJzdRENgvKGq4IhjsiezgSFtsfCUq8qki5S1LRQeYQQ4nemmCkImWMw3tFUoUBZk4NOeZYEp4XRKTGa6wJjrWNHBVJR4m3FCnbuD6aak2WsMTh3SZImGCIPKNgsDpVwnsa70K31lCFJZYcwwSMFcQulGTsZuEaSdBXkPGZhu0FsdUO73RHjq8MPGGIfaGIbVTk6iuI3GFgucHrIQkmWSJdBd7BBu+uOryWAhY7+Lki9rK5wtEQzWwvtbqGhIMFwWRJsElsY4m9IIg9L6lCX0VklaPAYkfkZEGDnOWowlBJjtMUkcGK4Lg6EtoZInMUBVYLgn0UsdmCyCz7gIGHFfk+k1QwTh5We7A9x+IdJ6CvIkEagms0hR50eH9UnTQJ+2oiKyVlLFUE+8gBGu8MQ3CppUHesnjTHN4QB/UGPhCTHLFPHMFrCqa73gqObUJGa03wgbhHkrCfpEpzNLE7JDS25FMKhlhKKWKfCgqstLCPu1zBXy0J2ztwjtixBu8UTRn9LVtkmCN2iyFhtME70JHRQ1KVZXqKI/KNIKYMCYs1GUMEKbM1bKOI9LDXC7zbHS+bt+1MTWS9odA9DtrYtpbImQJ2VHh/lisEwaHqUk1kjKTAKknkBEXkbkdMGwq0dnhzLJF3NJH3JVwrqOB4Sca2hti75nmJN0WzxS6UxDYoEpxpa4htVlRjkYE7DZGzJVU72uC9IyhQL4i8YfGWSYLLNcHXloyz7QhNifmKSE9JgfGmuyLhc403Xm9vqcp6gXe3xuuv8F6VJNxkyTHEkHG2g0aKXL0MsXc1bGfgas2//dCONXiNLCX+5mB7eZIl1kHh7ajwpikyzlUUWOVOsjSQlsS+M0R+pPje/dzBXRZGO0rMtgQrLLG9VSu9n6CMXS3BhwYmSoIBhsjNBmZbgusE9BCPCP5triU4VhNbJfE+swSP27aayE8tuTpYYjtrYjMVGZdp2NpS1s6aBnKSHDsbKuplKbHM4a0wMFd/5/DmGyKrJSUaW4IBrqUhx0vyfzTBBLPIUcnZdrAkNsKR0sWRspumSns6Ch0v/qqIbBYUWKvPU/CFoyrDJGwSNFhbA/MlzKqjrO80hRbpKx0Jewsi/STftwGSlKc1JZyAzx05dhLEdnfQvhZOqiHWWEAHC7+30FuRcZUgaO5gpaIK+xsiHRUsqaPElTV40xQZQ107Q9BZE1nryDVGU9ZSQ47bmhBpLcYpUt7S+xuK/FiT8qKjwXYw5ypS2iuCv7q1gtgjhuBuB8LCFY5cUuCNtsQOFcT+4Ih9JX+k8Ea6v0iCIRZOtCT0Et00JW5UeC85Cg0ScK0k411HcG1zKtre3SeITBRk7WfwDhEvaYLTHP9le0m8By0JDwn4TlLW/aJOvGHxdjYUes+ScZigCkYQdNdEOhkiezgShqkx8ueKjI8lDfK2oNiOFvrZH1hS+tk7NV7nOmLHicGWEgubkXKdwdtZknCLJXaCpkrjZBtLZFsDP9CdxWsSr05Sxl6CMmoFbCOgryX40uDtamB7SVmXW4Ihlgpmq+00tBKUUa83WbjLUNkzDmY7cow1JDygyPGlhgGKYKz4vcV7QBNbJIgM11TUqZaMdwTeSguH6rOaw1JRKzaaGyxVm2EJ/uCIrVWUcZUkcp2grMsEjK+DMwS59jQk3Kd6SEq1d0S6uVmO4Bc1lDXTUcHjluCXEq+1OlBDj1pi9zgiXxnKuE0SqTXwhqbETW6RggMEnGl/q49UT2iCzgJvRwVXS2K/d6+ZkyUl7jawSVLit46EwxVljDZwoSQ20sDBihztHfk2yA8NVZghiXwrYHQdfKAOtzsayjhY9bY0yE2CWEeJ9xfzO423xhL5syS2TFJofO2pboHob0nY4GiAgRrvGQEDa/FWSsoaaYl0syRsEt3kWoH3B01shCXhTUWe9w3Bt44SC9QCh3eShQctwbaK2ApLroGCMlZrYqvlY3qYhM0aXpFkPOuoqJ3Dm6fxXrGwVF9gCWZagjPqznfkuMKQ8DPTQRO8ZqG1hPGKEm9IgpGW4DZDgTNriTxvFiq+Lz+0cKfp4wj6OCK9JSnzNSn9LFU7UhKZZMnYwcJ8s8yRsECScK4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC"); } site_pro/codemirror-3.1/theme/night.css0000644000000000000000000000215112111430706016763 0ustar rootroot/* Loosely based on the Midnight Textmate theme */ .cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; } .cm-s-night div.CodeMirror-selected { background: #447 !important; } .cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; } .cm-s-night .CodeMirror-linenumber { color: #f8f8f8; } .cm-s-night .CodeMirror-cursor { border-left: 1px solid white !important; } .cm-s-night span.cm-comment { color: #6900a1; } .cm-s-night span.cm-atom { color: #845dc4; } .cm-s-night span.cm-number, .cm-s-night span.cm-attribute { color: #ffd500; } .cm-s-night span.cm-keyword { color: #599eff; } .cm-s-night span.cm-string { color: #37f14a; } .cm-s-night span.cm-meta { color: #7678e2; } .cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; } .cm-s-night span.cm-variable-3, .cm-s-night span.cm-def { color: white; } .cm-s-night span.cm-error { color: #9d1e15; } .cm-s-night span.cm-bracket { color: #8da6ce; } .cm-s-night span.cm-comment { color: #6900a1; } .cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; } .cm-s-night span.cm-link { color: #845dc4; } site_pro/codemirror-3.1/theme/xq-dark.css0000644000000000000000000000440312111430706017223 0ustar rootroot/* Copyright (C) 2011 by MarkLogic Corporation Author: Mike Brevoort Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ .cm-s-xq-dark.CodeMirror { background: #0a001f; color: #f8f8f8; } .cm-s-xq-dark span.CodeMirror-selected { background: #a8f !important; } .cm-s-xq-dark .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; } .cm-s-xq-dark .CodeMirror-linenumber { color: #f8f8f8; } .cm-s-xq-dark .CodeMirror-cursor { border-left: 1px solid white !important; } .cm-s-xq-dark span.cm-keyword {color: #FFBD40;} .cm-s-xq-dark span.cm-atom {color: #6C8CD5;} .cm-s-xq-dark span.cm-number {color: #164;} .cm-s-xq-dark span.cm-def {color: #FFF; text-decoration:underline;} .cm-s-xq-dark span.cm-variable {color: #FFF;} .cm-s-xq-dark span.cm-variable-2 {color: #EEE;} .cm-s-xq-dark span.cm-variable-3 {color: #DDD;} .cm-s-xq-dark span.cm-property {} .cm-s-xq-dark span.cm-operator {} .cm-s-xq-dark span.cm-comment {color: gray;} .cm-s-xq-dark span.cm-string {color: #9FEE00;} .cm-s-xq-dark span.cm-meta {color: yellow;} .cm-s-xq-dark span.cm-error {color: #f00;} .cm-s-xq-dark span.cm-qualifier {color: #FFF700;} .cm-s-xq-dark span.cm-builtin {color: #30a;} .cm-s-xq-dark span.cm-bracket {color: #cc7;} .cm-s-xq-dark span.cm-tag {color: #FFBD40;} .cm-s-xq-dark span.cm-attribute {color: #FFF700;} site_pro/codemirror-3.1/theme/cobalt.css0000644000000000000000000000203012111430706017112 0ustar rootroot.cm-s-cobalt.CodeMirror { background: #002240; color: white; } .cm-s-cobalt div.CodeMirror-selected { background: #b36539 !important; } .cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } .cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; } .cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white !important; } .cm-s-cobalt span.cm-comment { color: #08f; } .cm-s-cobalt span.cm-atom { color: #845dc4; } .cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; } .cm-s-cobalt span.cm-keyword { color: #ffee80; } .cm-s-cobalt span.cm-string { color: #3ad900; } .cm-s-cobalt span.cm-meta { color: #ff9d00; } .cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; } .cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; } .cm-s-cobalt span.cm-error { color: #9d1e15; } .cm-s-cobalt span.cm-bracket { color: #d8d8d8; } .cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; } .cm-s-cobalt span.cm-link { color: #845dc4; } site_pro/codemirror-3.1/theme/lesser-dark.css0000644000000000000000000000370712111430706020076 0ustar rootroot/* http://lesscss.org/ dark theme Ported to CodeMirror by Peter Kroon */ .cm-s-lesser-dark { line-height: 1.3em; } .cm-s-lesser-dark { font-family: 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', 'Monaco', Courier, monospace !important; } .cm-s-lesser-dark.CodeMirror { background: #262626; color: #EBEFE7; text-shadow: 0 -1px 1px #262626; } .cm-s-lesser-dark div.CodeMirror-selected {background: #45443B !important;} /* 33322B*/ .cm-s-lesser-dark .CodeMirror-cursor { border-left: 1px solid white !important; } .cm-s-lesser-dark pre { padding: 0 8px; }/*editable code holder*/ div.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/ .cm-s-lesser-dark .CodeMirror-gutters { background: #262626; border-right:1px solid #aaa; } .cm-s-lesser-dark .CodeMirror-linenumber { color: #777; } .cm-s-lesser-dark span.cm-keyword { color: #599eff; } .cm-s-lesser-dark span.cm-atom { color: #C2B470; } .cm-s-lesser-dark span.cm-number { color: #B35E4D; } .cm-s-lesser-dark span.cm-def {color: white;} .cm-s-lesser-dark span.cm-variable { color:#D9BF8C; } .cm-s-lesser-dark span.cm-variable-2 { color: #669199; } .cm-s-lesser-dark span.cm-variable-3 { color: white; } .cm-s-lesser-dark span.cm-property {color: #92A75C;} .cm-s-lesser-dark span.cm-operator {color: #92A75C;} .cm-s-lesser-dark span.cm-comment { color: #666; } .cm-s-lesser-dark span.cm-string { color: #BCD279; } .cm-s-lesser-dark span.cm-string-2 {color: #f50;} .cm-s-lesser-dark span.cm-meta { color: #738C73; } .cm-s-lesser-dark span.cm-error { color: #9d1e15; } .cm-s-lesser-dark span.cm-qualifier {color: #555;} .cm-s-lesser-dark span.cm-builtin { color: #ff9e59; } .cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; } .cm-s-lesser-dark span.cm-tag { color: #669199; } .cm-s-lesser-dark span.cm-attribute {color: #00c;} .cm-s-lesser-dark span.cm-header {color: #a0a;} .cm-s-lesser-dark span.cm-quote {color: #090;} .cm-s-lesser-dark span.cm-hr {color: #999;} .cm-s-lesser-dark span.cm-link {color: #00c;} site_pro/codemirror-3.1/theme/eclipse.css0000644000000000000000000000203212111430706017274 0ustar rootroot.cm-s-eclipse span.cm-meta {color: #FF1717;} .cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; } .cm-s-eclipse span.cm-atom {color: #219;} .cm-s-eclipse span.cm-number {color: #164;} .cm-s-eclipse span.cm-def {color: #00f;} .cm-s-eclipse span.cm-variable {color: black;} .cm-s-eclipse span.cm-variable-2 {color: #0000C0;} .cm-s-eclipse span.cm-variable-3 {color: #0000C0;} .cm-s-eclipse span.cm-property {color: black;} .cm-s-eclipse span.cm-operator {color: black;} .cm-s-eclipse span.cm-comment {color: #3F7F5F;} .cm-s-eclipse span.cm-string {color: #2A00FF;} .cm-s-eclipse span.cm-string-2 {color: #f50;} .cm-s-eclipse span.cm-error {color: #f00;} .cm-s-eclipse span.cm-qualifier {color: #555;} .cm-s-eclipse span.cm-builtin {color: #30a;} .cm-s-eclipse span.cm-bracket {color: #cc7;} .cm-s-eclipse span.cm-tag {color: #170;} .cm-s-eclipse span.cm-attribute {color: #00c;} .cm-s-eclipse span.cm-link {color: #219;} .cm-s-eclipse .CodeMirror-matchingbracket { border:1px solid grey; color:black !important;; } site_pro/codemirror-3.1/theme/monokai.css0000644000000000000000000000221212111430706017305 0ustar rootroot/* Based on Sublime Text's Monokai theme */ .cm-s-monokai.CodeMirror {background: #272822; color: #f8f8f2;} .cm-s-monokai div.CodeMirror-selected {background: #49483E !important;} .cm-s-monokai .CodeMirror-gutters {background: #272822; border-right: 0px;} .cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;} .cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;} .cm-s-monokai span.cm-comment {color: #75715e;} .cm-s-monokai span.cm-atom {color: #ae81ff;} .cm-s-monokai span.cm-number {color: #ae81ff;} .cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #a6e22e;} .cm-s-monokai span.cm-keyword {color: #f92672;} .cm-s-monokai span.cm-string {color: #e6db74;} .cm-s-monokai span.cm-variable {color: #a6e22e;} .cm-s-monokai span.cm-variable-2 {color: #9effff;} .cm-s-monokai span.cm-def {color: #fd971f;} .cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;} .cm-s-monokai span.cm-bracket {color: #f8f8f2;} .cm-s-monokai span.cm-tag {color: #f92672;} .cm-s-monokai span.cm-link {color: #ae81ff;} .cm-s-monokai .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; } site_pro/codemirror-3.1/theme/rubyblue.css0000644000000000000000000000241612111430706017507 0ustar rootroot.cm-s-rubyblue { font:13px/1.4em Trebuchet, Verdana, sans-serif; } /* - customized editor font - */ .cm-s-rubyblue.CodeMirror { background: #112435; color: white; } .cm-s-rubyblue div.CodeMirror-selected { background: #38566F !important; } .cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; } .cm-s-rubyblue .CodeMirror-linenumber { color: white; } .cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white !important; } .cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; } .cm-s-rubyblue span.cm-atom { color: #F4C20B; } .cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; } .cm-s-rubyblue span.cm-keyword { color: #F0F; } .cm-s-rubyblue span.cm-string { color: #F08047; } .cm-s-rubyblue span.cm-meta { color: #F0F; } .cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; } .cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; } .cm-s-rubyblue span.cm-error { color: #AF2018; } .cm-s-rubyblue span.cm-bracket { color: #F0F; } .cm-s-rubyblue span.cm-link { color: #F4C20B; } .cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; } .cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; } site_pro/codemirror-3.1/CONTRIBUTING.md0000644000000000000000000000572312111430706016277 0ustar rootroot# How to contribute - [Getting help](#getting-help-) - [Submitting bug reports](#submitting-bug-reports-) - [Contributing code](#contributing-code-) ## Getting help [^](#how-to-contribute) Community discussion, questions, and informal bug reporting is done on the [CodeMirror Google group](http://groups.google.com/group/codemirror). ## Submitting bug reports [^](#how-to-contribute) The preferred way to report bugs is to use the [GitHub issue tracker](http://github.com/marijnh/CodeMirror/issues). Before reporting a bug, read these pointers. **Note:** The issue tracker is for *bugs*, not requests for help. Questions should be asked on the [CodeMirror Google group](http://groups.google.com/group/codemirror) instead. ### Reporting bugs effectively - CodeMirror is maintained by volunteers. They don't owe you anything, so be polite. Reports with an indignant or belligerent tone tend to be moved to the bottom of the pile. - Include information about **the browser in which the problem occurred**. Even if you tested several browsers, and the problem occurred in all of them, mention this fact in the bug report. Also include browser version numbers and the operating system that you're on. - Mention which release of CodeMirror you're using. Preferably, try also with the current development snapshot, to ensure the problem has not already been fixed. - Mention very precisely what went wrong. "X is broken" is not a good bug report. What did you expect to happen? What happened instead? Describe the exact steps a maintainer has to take to make the problem occur. We can not fix something that we can not observe. - If the problem can not be reproduced in any of the demos included in the CodeMirror distribution, please provide an HTML document that demonstrates the problem. The best way to do this is to go to [jsbin.com](http://jsbin.com/ihunin/edit), enter it there, press save, and include the resulting link in your bug report. ## Contributing code [^](#how-to-contribute) - Make sure you have a [GitHub Account](https://github.com/signup/free) - Fork [CodeMirror](https://github.com/marijnh/CodeMirror/) ([how to fork a repo](https://help.github.com/articles/fork-a-repo)) - Make your changes - If your changes are easy to test or likely to regress, add tests. Tests for the core go into `test/test.js`, some modes have their own test suite under `mode/XXX/test.js`. Feel free to add new test suites to modes that don't have one yet (be sure to link the new tests into `test/index.html`). - Make sure all tests pass. Visit `test/index.html` in your browser to run them. - Submit a pull request ([how to create a pull request](https://help.github.com/articles/fork-a-repo)) ### Coding standards - 2 spaces per indentation level, no tabs. - Include semicolons after statements. - Note that the linter (`test/lint/lint.js`) which is run after each commit complains about unused variables and functions. Prefix their names with an underscore to muffle it. site_pro/codemirror-3.1/keymap/0000755000000000000000000000000012111430706015325 5ustar rootrootsite_pro/codemirror-3.1/keymap/vim.js0000644000000000000000000027073512111430706016474 0ustar rootroot/** * Supported keybindings: * * Motion: * h, j, k, l * gj, gk * e, E, w, W, b, B, ge, gE * f, F, t, T * $, ^, 0 * gg, G * % * ', ` * * Operator: * d, y, c * dd, yy, cc * g~, g~g~ * >, <, >>, << * * Operator-Motion: * x, X, D, Y, C, ~ * * Action: * a, i, s, A, I, S, o, O * zz, z., z, zt, zb, z- * J * u, Ctrl-r * m * r * * Modes: * ESC - leave insert mode, visual mode, and clear input state. * Ctrl-[, Ctrl-c - same as ESC. * * Registers: unamed, -, a-z, A-Z, 0-9 * (Does not respect the special case for number registers when delete * operator is made with these commands: %, (, ), , /, ?, n, N, {, } ) * TODO: Implement the remaining registers. * Marks: a-z, A-Z, and 0-9 * TODO: Implement the remaining special marks. They have more complex * behavior. * * Code structure: * 1. Default keymap * 2. Variable declarations and short basic helpers * 3. Instance (External API) implementation * 4. Internal state tracking objects (input state, counter) implementation * and instanstiation * 5. Key handler (the main command dispatcher) implementation * 6. Motion, operator, and action implementations * 7. Helper functions for the key handler, motions, operators, and actions * 8. Set up Vim to work as a keymap for CodeMirror. */ (function() { 'use strict'; var defaultKeymap = [ // Key to key mapping. This goes first to make it possible to override // existing mappings. { keys: ['Left'], type: 'keyToKey', toKeys: ['h'] }, { keys: ['Right'], type: 'keyToKey', toKeys: ['l'] }, { keys: ['Up'], type: 'keyToKey', toKeys: ['k'] }, { keys: ['Down'], type: 'keyToKey', toKeys: ['j'] }, { keys: ['Space'], type: 'keyToKey', toKeys: ['l'] }, { keys: ['Backspace'], type: 'keyToKey', toKeys: ['h'] }, { keys: ['Ctrl-Space'], type: 'keyToKey', toKeys: ['W'] }, { keys: ['Ctrl-Backspace'], type: 'keyToKey', toKeys: ['B'] }, { keys: ['Shift-Space'], type: 'keyToKey', toKeys: ['w'] }, { keys: ['Shift-Backspace'], type: 'keyToKey', toKeys: ['b'] }, { keys: ['Ctrl-n'], type: 'keyToKey', toKeys: ['j'] }, { keys: ['Ctrl-p'], type: 'keyToKey', toKeys: ['k'] }, { keys: ['Ctrl-['], type: 'keyToKey', toKeys: ['Esc'] }, { keys: ['Ctrl-c'], type: 'keyToKey', toKeys: ['Esc'] }, { keys: ['s'], type: 'keyToKey', toKeys: ['c', 'l'] }, { keys: ['S'], type: 'keyToKey', toKeys: ['c', 'c'] }, { keys: ['Home'], type: 'keyToKey', toKeys: ['0'] }, { keys: ['End'], type: 'keyToKey', toKeys: ['$'] }, { keys: ['PageUp'], type: 'keyToKey', toKeys: ['Ctrl-b'] }, { keys: ['PageDown'], type: 'keyToKey', toKeys: ['Ctrl-f'] }, // Motions { keys: ['h'], type: 'motion', motion: 'moveByCharacters', motionArgs: { forward: false }}, { keys: ['l'], type: 'motion', motion: 'moveByCharacters', motionArgs: { forward: true }}, { keys: ['j'], type: 'motion', motion: 'moveByLines', motionArgs: { forward: true, linewise: true }}, { keys: ['k'], type: 'motion', motion: 'moveByLines', motionArgs: { forward: false, linewise: true }}, { keys: ['g','j'], type: 'motion', motion: 'moveByDisplayLines', motionArgs: { forward: true, linewise: true }}, { keys: ['g','k'], type: 'motion', motion: 'moveByDisplayLines', motionArgs: { forward: false, linewise: true }}, { keys: ['w'], type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: false }}, { keys: ['W'], type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: false, bigWord: true }}, { keys: ['e'], type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: true, inclusive: true }}, { keys: ['E'], type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: true, bigWord: true, inclusive: true }}, { keys: ['b'], type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false }}, { keys: ['B'], type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false, bigWord: true }}, { keys: ['g', 'e'], type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, inclusive: true }}, { keys: ['g', 'E'], type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, bigWord: true, inclusive: true }}, { keys: ['{'], type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: false }}, { keys: ['}'], type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: true }}, { keys: ['Ctrl-f'], type: 'motion', motion: 'moveByPage', motionArgs: { forward: true }}, { keys: ['Ctrl-b'], type: 'motion', motion: 'moveByPage', motionArgs: { forward: false }}, { keys: ['g', 'g'], type: 'motion', motion: 'moveToLineOrEdgeOfDocument', motionArgs: { forward: false, explicitRepeat: true, linewise: true }}, { keys: ['G'], type: 'motion', motion: 'moveToLineOrEdgeOfDocument', motionArgs: { forward: true, explicitRepeat: true, linewise: true }}, { keys: ['0'], type: 'motion', motion: 'moveToStartOfLine' }, { keys: ['^'], type: 'motion', motion: 'moveToFirstNonWhiteSpaceCharacter' }, { keys: ['$'], type: 'motion', motion: 'moveToEol', motionArgs: { inclusive: true }}, { keys: ['%'], type: 'motion', motion: 'moveToMatchedSymbol', motionArgs: { inclusive: true }}, { keys: ['f', 'character'], type: 'motion', motion: 'moveToCharacter', motionArgs: { forward: true , inclusive: true }}, { keys: ['F', 'character'], type: 'motion', motion: 'moveToCharacter', motionArgs: { forward: false }}, { keys: ['t', 'character'], type: 'motion', motion: 'moveTillCharacter', motionArgs: { forward: true, inclusive: true }}, { keys: ['T', 'character'], type: 'motion', motion: 'moveTillCharacter', motionArgs: { forward: false }}, { keys: ['\'', 'character'], type: 'motion', motion: 'goToMark' }, { keys: ['`', 'character'], type: 'motion', motion: 'goToMark' }, { keys: ['|'], type: 'motion', motion: 'moveToColumn', motionArgs: { }}, // Operators { keys: ['d'], type: 'operator', operator: 'delete' }, { keys: ['y'], type: 'operator', operator: 'yank' }, { keys: ['c'], type: 'operator', operator: 'change', operatorArgs: { enterInsertMode: true } }, { keys: ['>'], type: 'operator', operator: 'indent', operatorArgs: { indentRight: true }}, { keys: ['<'], type: 'operator', operator: 'indent', operatorArgs: { indentRight: false }}, { keys: ['g', '~'], type: 'operator', operator: 'swapcase' }, { keys: ['n'], type: 'motion', motion: 'findNext' }, { keys: ['N'], type: 'motion', motion: 'findPrev' }, // Operator-Motion dual commands { keys: ['x'], type: 'operatorMotion', operator: 'delete', motion: 'moveByCharacters', motionArgs: { forward: true }, operatorMotionArgs: { visualLine: false }}, { keys: ['X'], type: 'operatorMotion', operator: 'delete', motion: 'moveByCharacters', motionArgs: { forward: false }, operatorMotionArgs: { visualLine: true }}, { keys: ['D'], type: 'operatorMotion', operator: 'delete', motion: 'moveToEol', motionArgs: { inclusive: true }, operatorMotionArgs: { visualLine: true }}, { keys: ['Y'], type: 'operatorMotion', operator: 'yank', motion: 'moveToEol', motionArgs: { inclusive: true }, operatorMotionArgs: { visualLine: true }}, { keys: ['C'], type: 'operatorMotion', operator: 'change', operatorArgs: { enterInsertMode: true }, motion: 'moveToEol', motionArgs: { inclusive: true }, operatorMotionArgs: { visualLine: true }}, { keys: ['~'], type: 'operatorMotion', operator: 'swapcase', motion: 'moveByCharacters', motionArgs: { forward: true }}, // Actions { keys: ['a'], type: 'action', action: 'enterInsertMode', actionArgs: { insertAt: 'charAfter' }}, { keys: ['A'], type: 'action', action: 'enterInsertMode', actionArgs: { insertAt: 'eol' }}, { keys: ['i'], type: 'action', action: 'enterInsertMode' }, { keys: ['I'], type: 'action', action: 'enterInsertMode', motion: 'moveToFirstNonWhiteSpaceCharacter' }, { keys: ['o'], type: 'action', action: 'newLineAndEnterInsertMode', actionArgs: { after: true }}, { keys: ['O'], type: 'action', action: 'newLineAndEnterInsertMode', actionArgs: { after: false }}, { keys: ['v'], type: 'action', action: 'toggleVisualMode' }, { keys: ['V'], type: 'action', action: 'toggleVisualMode', actionArgs: { linewise: true }}, { keys: ['J'], type: 'action', action: 'joinLines' }, { keys: ['p'], type: 'action', action: 'paste', actionArgs: { after: true }}, { keys: ['P'], type: 'action', action: 'paste', actionArgs: { after: false }}, { keys: ['r', 'character'], type: 'action', action: 'replace' }, { keys: ['u'], type: 'action', action: 'undo' }, { keys: ['Ctrl-r'], type: 'action', action: 'redo' }, { keys: ['m', 'character'], type: 'action', action: 'setMark' }, { keys: ['\"', 'character'], type: 'action', action: 'setRegister' }, { keys: ['z', 'z'], type: 'action', action: 'scrollToCursor', actionArgs: { position: 'center' }}, { keys: ['z', '.'], type: 'action', action: 'scrollToCursor', actionArgs: { position: 'center' }, motion: 'moveToFirstNonWhiteSpaceCharacter' }, { keys: ['z', 't'], type: 'action', action: 'scrollToCursor', actionArgs: { position: 'top' }}, { keys: ['z', 'Enter'], type: 'action', action: 'scrollToCursor', actionArgs: { position: 'top' }, motion: 'moveToFirstNonWhiteSpaceCharacter' }, { keys: ['z', '-'], type: 'action', action: 'scrollToCursor', actionArgs: { position: 'bottom' }}, { keys: ['z', 'b'], type: 'action', action: 'scrollToCursor', actionArgs: { position: 'bottom' }, motion: 'moveToFirstNonWhiteSpaceCharacter' }, // Text object motions { keys: ['a', 'character'], type: 'motion', motion: 'textObjectManipulation' }, { keys: ['i', 'character'], type: 'motion', motion: 'textObjectManipulation', motionArgs: { textObjectInner: true }}, // Search { keys: ['/'], type: 'search', searchArgs: { forward: true, querySrc: 'prompt' }}, { keys: ['?'], type: 'search', searchArgs: { forward: false, querySrc: 'prompt' }}, { keys: ['*'], type: 'search', searchArgs: { forward: true, querySrc: 'wordUnderCursor' }}, { keys: ['#'], type: 'search', searchArgs: { forward: false, querySrc: 'wordUnderCursor' }}, // Ex command { keys: [':'], type: 'ex' } ]; var Vim = function() { var alphabetRegex = /[A-Za-z]/; var numberRegex = /[\d]/; var whiteSpaceRegex = /\s/; var wordRegexp = [(/\w/), (/[^\w\s]/)], bigWordRegexp = [(/\S/)]; function makeKeyRange(start, size) { var keys = []; for (var i = start; i < start + size; i++) { keys.push(String.fromCharCode(i)); } return keys; } var upperCaseAlphabet = makeKeyRange(65, 26); var lowerCaseAlphabet = makeKeyRange(97, 26); var numbers = makeKeyRange(48, 10); var SPECIAL_SYMBOLS = '~`!@#$%^&*()_-+=[{}]\\|/?.,<>:;\"\''; var specialSymbols = SPECIAL_SYMBOLS.split(''); var specialKeys = ['Left', 'Right', 'Up', 'Down', 'Space', 'Backspace', 'Esc', 'Home', 'End', 'PageUp', 'PageDown', 'Enter']; var validMarks = upperCaseAlphabet.concat(lowerCaseAlphabet).concat( numbers).concat(['<', '>']); var validRegisters = upperCaseAlphabet.concat(lowerCaseAlphabet).concat( numbers).concat('-\"'.split('')); function isAlphabet(k) { return alphabetRegex.test(k); } function isLine(cm, line) { return line >= cm.firstLine() && line <= cm.lastLine(); } function isLowerCase(k) { return (/^[a-z]$/).test(k); } function isMatchableSymbol(k) { return '()[]{}'.indexOf(k) != -1; } function isNumber(k) { return numberRegex.test(k); } function isUpperCase(k) { return (/^[A-Z]$/).test(k); } function isAlphanumeric(k) { return (/^[\w]$/).test(k); } function isWhiteSpace(k) { return whiteSpaceRegex.test(k); } function isWhiteSpaceString(k) { return (/^\s*$/).test(k); } function inRangeInclusive(x, start, end) { return x >= start && x <= end; } function inArray(val, arr) { for (var i = 0; i < arr.length; i++) { if (arr[i] == val) { return true; } } return false; } // Global Vim state. Call getVimGlobalState to get and initialize. var vimGlobalState; function getVimGlobalState() { if (!vimGlobalState) { vimGlobalState = { // The current search query. searchQuery: null, // Whether we are searching backwards. searchIsReversed: false, registerController: new RegisterController({}) }; } return vimGlobalState; } function getVimState(cm) { if (!cm.vimState) { // Store instance state in the CodeMirror object. cm.vimState = { inputState: new InputState(), // When using jk for navigation, if you move from a longer line to a // shorter line, the cursor may clip to the end of the shorter line. // If j is pressed again and cursor goes to the next line, the // cursor should go back to its horizontal position on the longer // line if it can. This is to keep track of the horizontal position. lastHPos: -1, // Doing the same with screen-position for gj/gk lastHSPos: -1, // The last motion command run. Cleared if a non-motion command gets // executed in between. lastMotion: null, marks: {}, visualMode: false, // If we are in visual line mode. No effect if visualMode is false. visualLine: false }; } return cm.vimState; } var vimApi= { buildKeyMap: function() { // TODO: Convert keymap into dictionary format for fast lookup. }, // Testing hook, though it might be useful to expose the register // controller anyways. getRegisterController: function() { return getVimGlobalState().registerController; }, // Testing hook. clearVimGlobalState_: function() { vimGlobalState = null; }, map: function(lhs, rhs) { // Add user defined key bindings. exCommandDispatcher.map(lhs, rhs); }, defineEx: function(name, prefix, func){ if (name.indexOf(prefix) === 0) { exCommands[name]=func; exCommandDispatcher.commandMap_[prefix]={name:name, shortName:prefix, type:'api'}; }else throw new Error("(Vim.defineEx) \""+prefix+"\" is not a prefix of \""+name+"\", command not registered"); }, // Initializes vim state variable on the CodeMirror object. Should only be // called lazily by handleKey or for testing. maybeInitState: function(cm) { getVimState(cm); }, // This is the outermost function called by CodeMirror, after keys have // been mapped to their Vim equivalents. handleKey: function(cm, key) { var command; var vim = getVimState(cm); if (key == 'Esc') { // Clear input state and get back to normal mode. vim.inputState.reset(); if (vim.visualMode) { exitVisualMode(cm, vim); } return; } if (vim.visualMode && cursorEqual(cm.getCursor('head'), cm.getCursor('anchor'))) { // The selection was cleared. Exit visual mode. exitVisualMode(cm, vim); } if (!vim.visualMode && !cursorEqual(cm.getCursor('head'), cm.getCursor('anchor'))) { vim.visualMode = true; vim.visualLine = false; } if (key != '0' || (key == '0' && vim.inputState.getRepeat() === 0)) { // Have to special case 0 since it's both a motion and a number. command = commandDispatcher.matchCommand(key, defaultKeymap, vim); } if (!command) { if (isNumber(key)) { // Increment count unless count is 0 and key is 0. vim.inputState.pushRepeatDigit(key); } return; } if (command.type == 'keyToKey') { // TODO: prevent infinite recursion. for (var i = 0; i < command.toKeys.length; i++) { this.handleKey(cm, command.toKeys[i]); } } else { commandDispatcher.processCommand(cm, vim, command); } } }; // Represents the current input state. function InputState() { this.reset(); } InputState.prototype.reset = function() { this.prefixRepeat = []; this.motionRepeat = []; this.operator = null; this.operatorArgs = null; this.motion = null; this.motionArgs = null; this.keyBuffer = []; // For matching multi-key commands. this.registerName = null; // Defaults to the unamed register. }; InputState.prototype.pushRepeatDigit = function(n) { if (!this.operator) { this.prefixRepeat = this.prefixRepeat.concat(n); } else { this.motionRepeat = this.motionRepeat.concat(n); } }; InputState.prototype.getRepeat = function() { var repeat = 0; if (this.prefixRepeat.length > 0 || this.motionRepeat.length > 0) { repeat = 1; if (this.prefixRepeat.length > 0) { repeat *= parseInt(this.prefixRepeat.join(''), 10); } if (this.motionRepeat.length > 0) { repeat *= parseInt(this.motionRepeat.join(''), 10); } } return repeat; }; /* * Register stores information about copy and paste registers. Besides * text, a register must store whether it is linewise (i.e., when it is * pasted, should it insert itself into a new line, or should the text be * inserted at the cursor position.) */ function Register(text, linewise) { this.clear(); if (text) { this.set(text, linewise); } } Register.prototype = { set: function(text, linewise) { this.text = text; this.linewise = !!linewise; }, append: function(text, linewise) { // if this register has ever been set to linewise, use linewise. if (linewise || this.linewise) { this.text += '\n' + text; this.linewise = true; } else { this.text += text; } }, clear: function() { this.text = ''; this.linewise = false; }, toString: function() { return this.text; } }; /* * vim registers allow you to keep many independent copy and paste buffers. * See http://usevim.com/2012/04/13/registers/ for an introduction. * * RegisterController keeps the state of all the registers. An initial * state may be passed in. The unnamed register '"' will always be * overridden. */ function RegisterController(registers) { this.registers = registers; this.unamedRegister = registers['\"'] = new Register(); } RegisterController.prototype = { pushText: function(registerName, operator, text, linewise) { // Lowercase and uppercase registers refer to the same register. // Uppercase just means append. var register = this.isValidRegister(registerName) ? this.getRegister(registerName) : null; // if no register/an invalid register was specified, things go to the // default registers if (!register) { switch (operator) { case 'yank': // The 0 register contains the text from the most recent yank. this.registers['0'] = new Register(text, linewise); break; case 'delete': case 'change': if (text.indexOf('\n') == -1) { // Delete less than 1 line. Update the small delete register. this.registers['-'] = new Register(text, linewise); } else { // Shift down the contents of the numbered registers and put the // deleted text into register 1. this.shiftNumericRegisters_(); this.registers['1'] = new Register(text, linewise); } break; } // Make sure the unnamed register is set to what just happened this.unamedRegister.set(text, linewise); return; } // If we've gotten to this point, we've actually specified a register var append = isUpperCase(registerName); if (append) { register.append(text, linewise); // The unamed register always has the same value as the last used // register. this.unamedRegister.append(text, linewise); } else { register.set(text, linewise); this.unamedRegister.set(text, linewise); } }, // Gets the register named @name. If one of @name doesn't already exist, // create it. If @name is invalid, return the unamedRegister. getRegister: function(name) { if (!this.isValidRegister(name)) { return this.unamedRegister; } name = name.toLowerCase(); if (!this.registers[name]) { this.registers[name] = new Register(); } return this.registers[name]; }, isValidRegister: function(name) { return name && inArray(name, validRegisters); }, shiftNumericRegisters_: function() { for (var i = 9; i >= 2; i--) { this.registers[i] = this.getRegister('' + (i - 1)); } } }; var commandDispatcher = { matchCommand: function(key, keyMap, vim) { var inputState = vim.inputState; var keys = inputState.keyBuffer.concat(key); for (var i = 0; i < keyMap.length; i++) { var command = keyMap[i]; if (matchKeysPartial(keys, command.keys)) { if (keys.length < command.keys.length) { // Matches part of a multi-key command. Buffer and wait for next // stroke. inputState.keyBuffer.push(key); return null; } else { if (inputState.operator && command.type == 'action') { // Ignore matched action commands after an operator. Operators // only operate on motions. This check is really for text // objects since aW, a[ etcs conflicts with a. continue; } // Matches whole comand. Return the command. if (command.keys[keys.length - 1] == 'character') { inputState.selectedCharacter = keys[keys.length - 1]; } inputState.keyBuffer = []; return command; } } } // Clear the buffer since there are no partial matches. inputState.keyBuffer = []; return null; }, processCommand: function(cm, vim, command) { switch (command.type) { case 'motion': this.processMotion(cm, vim, command); break; case 'operator': this.processOperator(cm, vim, command); break; case 'operatorMotion': this.processOperatorMotion(cm, vim, command); break; case 'action': this.processAction(cm, vim, command); break; case 'search': this.processSearch(cm, vim, command); break; case 'ex': case 'keyToEx': this.processEx(cm, vim, command); break; default: break; } }, processMotion: function(cm, vim, command) { vim.inputState.motion = command.motion; vim.inputState.motionArgs = copyArgs(command.motionArgs); this.evalInput(cm, vim); }, processOperator: function(cm, vim, command) { var inputState = vim.inputState; if (inputState.operator) { if (inputState.operator == command.operator) { // Typing an operator twice like 'dd' makes the operator operate // linewise inputState.motion = 'expandToLine'; inputState.motionArgs = { linewise: true }; this.evalInput(cm, vim); return; } else { // 2 different operators in a row doesn't make sense. inputState.reset(); } } inputState.operator = command.operator; inputState.operatorArgs = copyArgs(command.operatorArgs); if (vim.visualMode) { // Operating on a selection in visual mode. We don't need a motion. this.evalInput(cm, vim); } }, processOperatorMotion: function(cm, vim, command) { var visualMode = vim.visualMode; var operatorMotionArgs = copyArgs(command.operatorMotionArgs); if (operatorMotionArgs) { // Operator motions may have special behavior in visual mode. if (visualMode && operatorMotionArgs.visualLine) { vim.visualLine = true; } } this.processOperator(cm, vim, command); if (!visualMode) { this.processMotion(cm, vim, command); } }, processAction: function(cm, vim, command) { var inputState = vim.inputState; var repeat = inputState.getRepeat(); var repeatIsExplicit = !!repeat; var actionArgs = copyArgs(command.actionArgs) || {}; if (inputState.selectedCharacter) { actionArgs.selectedCharacter = inputState.selectedCharacter; } // Actions may or may not have motions and operators. Do these first. if (command.operator) { this.processOperator(cm, vim, command); } if (command.motion) { this.processMotion(cm, vim, command); } if (command.motion || command.operator) { this.evalInput(cm, vim); } actionArgs.repeat = repeat || 1; actionArgs.repeatIsExplicit = repeatIsExplicit; actionArgs.registerName = inputState.registerName; inputState.reset(); vim.lastMotion = null, actions[command.action](cm, actionArgs, vim); }, processSearch: function(cm, vim, command) { if (!cm.getSearchCursor) { // Search depends on SearchCursor. return; } var forward = command.searchArgs.forward; getSearchState(cm).setReversed(!forward); var promptPrefix = (forward) ? '/' : '?'; function handleQuery(query, ignoreCase, smartCase) { updateSearchQuery(cm, query, ignoreCase, smartCase); commandDispatcher.processMotion(cm, vim, { type: 'motion', motion: 'findNext' }); } function onPromptClose(query) { handleQuery(query, true /** ignoreCase */, true /** smartCase */); } switch (command.searchArgs.querySrc) { case 'prompt': showPrompt(cm, onPromptClose, promptPrefix, searchPromptDesc); break; case 'wordUnderCursor': var word = expandWordUnderCursor(cm, false /** inclusive */, true /** forward */, false /** bigWord */, true /** noSymbol */); var isKeyword = true; if (!word) { word = expandWordUnderCursor(cm, false /** inclusive */, true /** forward */, false /** bigWord */, false /** noSymbol */); isKeyword = false; } if (!word) { return; } var query = cm.getLine(word.start.line).substring(word.start.ch, word.end.ch + 1); if (isKeyword) { query = '\\b' + query + '\\b'; } else { query = escapeRegex(query); } cm.setCursor(word.start); handleQuery(query, true /** ignoreCase */, false /** smartCase */); break; } }, processEx: function(cm, vim, command) { function onPromptClose(input) { exCommandDispatcher.processCommand(cm, input); } if (command.type == 'keyToEx') { // Handle user defined Ex to Ex mappings exCommandDispatcher.processCommand(cm, command.exArgs.input); } else { if (vim.visualMode) { showPrompt(cm, onPromptClose, ':', undefined, '\'<,\'>'); } else { showPrompt(cm, onPromptClose, ':'); } } }, evalInput: function(cm, vim) { // If the motion comand is set, execute both the operator and motion. // Otherwise return. var inputState = vim.inputState; var motion = inputState.motion; var motionArgs = inputState.motionArgs || {}; var operator = inputState.operator; var operatorArgs = inputState.operatorArgs || {}; var registerName = inputState.registerName; var selectionEnd = cm.getCursor('head'); var selectionStart = cm.getCursor('anchor'); // The difference between cur and selection cursors are that cur is // being operated on and ignores that there is a selection. var curStart = copyCursor(selectionEnd); var curOriginal = copyCursor(curStart); var curEnd; var repeat; if (motionArgs.repeat !== undefined) { // If motionArgs specifies a repeat, that takes precedence over the // input state's repeat. Used by Ex mode and can be user defined. repeat = inputState.motionArgs.repeat; } else { repeat = inputState.getRepeat(); } if (repeat > 0 && motionArgs.explicitRepeat) { motionArgs.repeatIsExplicit = true; } else if (motionArgs.noRepeat || (!motionArgs.explicitRepeat && repeat === 0)) { repeat = 1; motionArgs.repeatIsExplicit = false; } if (inputState.selectedCharacter) { // If there is a character input, stick it in all of the arg arrays. motionArgs.selectedCharacter = operatorArgs.selectedCharacter = inputState.selectedCharacter; } motionArgs.repeat = repeat; inputState.reset(); if (motion) { var motionResult = motions[motion](cm, motionArgs, vim); vim.lastMotion = motions[motion]; if (!motionResult) { return; } if (motionResult instanceof Array) { curStart = motionResult[0]; curEnd = motionResult[1]; } else { curEnd = motionResult; } // TODO: Handle null returns from motion commands better. if (!curEnd) { curEnd = { ch: curStart.ch, line: curStart.line }; } if (vim.visualMode) { // Check if the selection crossed over itself. Will need to shift // the start point if that happened. if (cursorIsBefore(selectionStart, selectionEnd) && (cursorEqual(selectionStart, curEnd) || cursorIsBefore(curEnd, selectionStart))) { // The end of the selection has moved from after the start to // before the start. We will shift the start right by 1. selectionStart.ch += 1; } else if (cursorIsBefore(selectionEnd, selectionStart) && (cursorEqual(selectionStart, curEnd) || cursorIsBefore(selectionStart, curEnd))) { // The opposite happened. We will shift the start left by 1. selectionStart.ch -= 1; } selectionEnd = curEnd; if (vim.visualLine) { if (cursorIsBefore(selectionStart, selectionEnd)) { selectionStart.ch = 0; selectionEnd.ch = lineLength(cm, selectionEnd.line); } else { selectionEnd.ch = 0; selectionStart.ch = lineLength(cm, selectionStart.line); } } cm.setSelection(selectionStart, selectionEnd); updateMark(cm, vim, '<', cursorIsBefore(selectionStart, selectionEnd) ? selectionStart : selectionEnd); updateMark(cm, vim, '>', cursorIsBefore(selectionStart, selectionEnd) ? selectionEnd : selectionStart); } else if (!operator) { curEnd = clipCursorToContent(cm, curEnd); cm.setCursor(curEnd.line, curEnd.ch); } } if (operator) { var inverted = false; vim.lastMotion = null; operatorArgs.repeat = repeat; // Indent in visual mode needs this. if (vim.visualMode) { curStart = selectionStart; curEnd = selectionEnd; motionArgs.inclusive = true; } // Swap start and end if motion was backward. if (cursorIsBefore(curEnd, curStart)) { var tmp = curStart; curStart = curEnd; curEnd = tmp; inverted = true; } if (motionArgs.inclusive && !(vim.visualMode && inverted)) { // Move the selection end one to the right to include the last // character. curEnd.ch++; } var linewise = motionArgs.linewise || (vim.visualMode && vim.visualLine); if (linewise) { // Expand selection to entire line. expandSelectionToLine(cm, curStart, curEnd); } else if (motionArgs.forward) { // Clip to trailing newlines only if we the motion goes forward. clipToLine(cm, curStart, curEnd); } operatorArgs.registerName = registerName; // Keep track of linewise as it affects how paste and change behave. operatorArgs.linewise = linewise; operators[operator](cm, operatorArgs, vim, curStart, curEnd, curOriginal); if (vim.visualMode) { exitVisualMode(cm, vim); } if (operatorArgs.enterInsertMode) { actions.enterInsertMode(cm); } } } }; /** * typedef {Object{line:number,ch:number}} Cursor An object containing the * position of the cursor. */ // All of the functions below return Cursor objects. var motions = { expandToLine: function(cm, motionArgs) { // Expands forward to end of line, and then to next line if repeat is // >1. Does not handle backward motion! var cur = cm.getCursor(); return { line: cur.line + motionArgs.repeat - 1, ch: Infinity }; }, findNext: function(cm, motionArgs, vim) { return findNext(cm, false /** prev */, motionArgs.repeat); }, findPrev: function(cm, motionArgs, vim) { return findNext(cm, true /** prev */, motionArgs.repeat); }, goToMark: function(cm, motionArgs, vim) { var mark = vim.marks[motionArgs.selectedCharacter]; if (mark) { return mark.find(); } return null; }, moveByCharacters: function(cm, motionArgs) { var cur = cm.getCursor(); var repeat = motionArgs.repeat; var ch = motionArgs.forward ? cur.ch + repeat : cur.ch - repeat; return { line: cur.line, ch: ch }; }, moveByLines: function(cm, motionArgs, vim) { var cur = cm.getCursor(); var endCh = cur.ch; // Depending what our last motion was, we may want to do different // things. If our last motion was moving vertically, we want to // preserve the HPos from our last horizontal move. If our last motion // was going to the end of a line, moving vertically we should go to // the end of the line, etc. switch (vim.lastMotion) { case this.moveByLines: case this.moveByDisplayLines: case this.moveToColumn: case this.moveToEol: endCh = vim.lastHPos; break; default: vim.lastHPos = endCh; } var repeat = motionArgs.repeat; var line = motionArgs.forward ? cur.line + repeat : cur.line - repeat; if (line < cm.firstLine() || line > cm.lastLine() ) { return null; } vim.lastHSPos = cm.charCoords({line:line, ch:endCh},"div").left; return { line: line, ch: endCh }; }, moveByDisplayLines: function(cm, motionArgs, vim) { var cur = cm.getCursor(); switch (vim.lastMotion) { case this.moveByDisplayLines: case this.moveByLines: case this.moveToColumn: case this.moveToEol: break; default: vim.lastHSPos = cm.charCoords(cur,"div").left; } var repeat = motionArgs.repeat; var res=cm.findPosV(cur,(motionArgs.forward ? repeat : -repeat),"line",vim.lastHSPos); if(res.hitSide)return null; vim.lastHPos = res.ch; return res; }, moveByPage: function(cm, motionArgs) { // CodeMirror only exposes functions that move the cursor page down, so // doing this bad hack to move the cursor and move it back. evalInput // will move the cursor to where it should be in the end. var curStart = cm.getCursor(); var repeat = motionArgs.repeat; cm.moveV((motionArgs.forward ? repeat : -repeat), 'page'); var curEnd = cm.getCursor(); cm.setCursor(curStart); return curEnd; }, moveByParagraph: function(cm, motionArgs) { var line = cm.getCursor().line; var repeat = motionArgs.repeat; var inc = motionArgs.forward ? 1 : -1; for (var i = 0; i < repeat; i++) { if ((!motionArgs.forward && line === cm.firstLine() ) || (motionArgs.forward && line == cm.lastLine())) { break; } line += inc; while (line !== cm.firstLine() && line != cm.lastLine() && cm.getLine(line)) { line += inc; } } return { line: line, ch: 0 }; }, moveByWords: function(cm, motionArgs) { return moveToWord(cm, motionArgs.repeat, !!motionArgs.forward, !!motionArgs.wordEnd, !!motionArgs.bigWord); }, moveTillCharacter: function(cm, motionArgs) { var repeat = motionArgs.repeat; var curEnd = moveToCharacter(cm, repeat, motionArgs.forward, motionArgs.selectedCharacter); var increment = motionArgs.forward ? -1 : 1; curEnd.ch += increment; return curEnd; }, moveToCharacter: function(cm, motionArgs) { var repeat = motionArgs.repeat; return moveToCharacter(cm, repeat, motionArgs.forward, motionArgs.selectedCharacter); }, moveToColumn: function(cm, motionArgs, vim) { var repeat = motionArgs.repeat; // repeat is equivalent to which column we want to move to! vim.lastHPos = repeat - 1; vim.lastHSPos = cm.charCoords(cm.getCursor(),"div").left; return moveToColumn(cm, repeat); }, moveToEol: function(cm, motionArgs, vim) { var cur = cm.getCursor(); vim.lastHPos = Infinity; var retval={ line: cur.line + motionArgs.repeat - 1, ch: Infinity } var end=cm.clipPos(retval); end.ch--; vim.lastHSPos = cm.charCoords(end,"div").left; return retval; }, moveToFirstNonWhiteSpaceCharacter: function(cm) { // Go to the start of the line where the text begins, or the end for // whitespace-only lines var cursor = cm.getCursor(); var line = cm.getLine(cursor.line); return { line: cursor.line, ch: findFirstNonWhiteSpaceCharacter(cm.getLine(cursor.line)) }; }, moveToMatchedSymbol: function(cm, motionArgs) { var cursor = cm.getCursor(); var symbol = cm.getLine(cursor.line).charAt(cursor.ch); if (isMatchableSymbol(symbol)) { return findMatchedSymbol(cm, cm.getCursor(), motionArgs.symbol); } else { return cursor; } }, moveToStartOfLine: function(cm) { var cursor = cm.getCursor(); return { line: cursor.line, ch: 0 }; }, moveToLineOrEdgeOfDocument: function(cm, motionArgs) { var lineNum = motionArgs.forward ? cm.lastLine() : cm.firstLine(); if (motionArgs.repeatIsExplicit) { lineNum = motionArgs.repeat - cm.getOption('firstLineNumber'); } return { line: lineNum, ch: findFirstNonWhiteSpaceCharacter(cm.getLine(lineNum)) }; }, textObjectManipulation: function(cm, motionArgs) { var character = motionArgs.selectedCharacter; // Inclusive is the difference between a and i // TODO: Instead of using the additional text object map to perform text // object operations, merge the map into the defaultKeyMap and use // motionArgs to define behavior. Define separate entries for 'aw', // 'iw', 'a[', 'i[', etc. var inclusive = !motionArgs.textObjectInner; if (!textObjects[character]) { // No text object defined for this, don't move. return null; } var tmp = textObjects[character](cm, inclusive); var start = tmp.start; var end = tmp.end; return [start, end]; } }; var operators = { change: function(cm, operatorArgs, vim, curStart, curEnd) { getVimGlobalState().registerController.pushText( operatorArgs.registerName, 'change', cm.getRange(curStart, curEnd), operatorArgs.linewise); if (operatorArgs.linewise) { // Delete starting at the first nonwhitespace character of the first // line, instead of from the start of the first line. This way we get // an indent when we get into insert mode. This behavior isn't quite // correct because we should treat this as a completely new line, and // indent should be whatever codemirror thinks is the right indent. // But cm.indentLine doesn't seem work on empty lines. // TODO: Fix the above. curStart.ch = findFirstNonWhiteSpaceCharacter(cm.getLine(curStart.line)); // Insert an additional newline so that insert mode can start there. // curEnd should be on the first character of the new line. cm.replaceRange('\n', curStart, curEnd); } else { cm.replaceRange('', curStart, curEnd); } cm.setCursor(curStart); }, // delete is a javascript keyword. 'delete': function(cm, operatorArgs, vim, curStart, curEnd) { getVimGlobalState().registerController.pushText( operatorArgs.registerName, 'delete', cm.getRange(curStart, curEnd), operatorArgs.linewise); cm.replaceRange('', curStart, curEnd); if (operatorArgs.linewise) { cm.setCursor(motions.moveToFirstNonWhiteSpaceCharacter(cm)); } else { cm.setCursor(curStart); } }, indent: function(cm, operatorArgs, vim, curStart, curEnd) { var startLine = curStart.line; var endLine = curEnd.line; // In visual mode, n> shifts the selection right n times, instead of // shifting n lines right once. var repeat = (vim.visualMode) ? operatorArgs.repeat : 1; if (operatorArgs.linewise) { // The only way to delete a newline is to delete until the start of // the next line, so in linewise mode evalInput will include the next // line. We don't want this in indent, so we go back a line. endLine--; } for (var i = startLine; i <= endLine; i++) { for (var j = 0; j < repeat; j++) { cm.indentLine(i, operatorArgs.indentRight); } } cm.setCursor(curStart); cm.setCursor(motions.moveToFirstNonWhiteSpaceCharacter(cm)); }, swapcase: function(cm, operatorArgs, vim, curStart, curEnd, curOriginal) { var toSwap = cm.getRange(curStart, curEnd); var swapped = ''; for (var i = 0; i < toSwap.length; i++) { var character = toSwap.charAt(i); swapped += isUpperCase(character) ? character.toLowerCase() : character.toUpperCase(); } cm.replaceRange(swapped, curStart, curEnd); cm.setCursor(curOriginal); }, yank: function(cm, operatorArgs, vim, curStart, curEnd, curOriginal) { getVimGlobalState().registerController.pushText( operatorArgs.registerName, 'yank', cm.getRange(curStart, curEnd), operatorArgs.linewise); cm.setCursor(curOriginal); } }; var actions = { scrollToCursor: function(cm, actionArgs) { var lineNum = cm.getCursor().line; var heightProp = window.getComputedStyle(cm.getScrollerElement()). getPropertyValue('height'); var height = parseInt(heightProp); var y = cm.charCoords({line: lineNum, ch: 0}, "local").top; var halfHeight = parseInt(height) / 2; switch (actionArgs.position) { case 'center': y = y - (height / 2) + 10; break; case 'bottom': y = y - height; break; case 'top': break; } cm.scrollTo(null, y); // The calculations are slightly off, use scrollIntoView to nudge the // view into the right place. cm.scrollIntoView(); }, enterInsertMode: function(cm, actionArgs) { var insertAt = (actionArgs) ? actionArgs.insertAt : null; if (insertAt == 'eol') { var cursor = cm.getCursor(); cursor = { line: cursor.line, ch: lineLength(cm, cursor.line) }; cm.setCursor(cursor); } else if (insertAt == 'charAfter') { cm.setCursor(offsetCursor(cm.getCursor(), 0, 1)); } cm.setOption('keyMap', 'vim-insert'); }, toggleVisualMode: function(cm, actionArgs, vim) { var repeat = actionArgs.repeat; var curStart = cm.getCursor(); var curEnd; // TODO: The repeat should actually select number of characters/lines // equal to the repeat times the size of the previous visual // operation. if (!vim.visualMode) { vim.visualMode = true; vim.visualLine = !!actionArgs.linewise; if (vim.visualLine) { curStart.ch = 0; curEnd = clipCursorToContent(cm, { line: curStart.line + repeat - 1, ch: lineLength(cm, curStart.line) }, true /** includeLineBreak */); } else { curEnd = clipCursorToContent(cm, { line: curStart.line, ch: curStart.ch + repeat }, true /** includeLineBreak */); } // Make the initial selection. if (!actionArgs.repeatIsExplicit && !vim.visualLine) { // This is a strange case. Here the implicit repeat is 1. The // following commands lets the cursor hover over the 1 character // selection. cm.setCursor(curEnd); cm.setSelection(curEnd, curStart); } else { cm.setSelection(curStart, curEnd); } } else { curStart = cm.getCursor('anchor'); curEnd = cm.getCursor('head'); if (!vim.visualLine && actionArgs.linewise) { // Shift-V pressed in characterwise visual mode. Switch to linewise // visual mode instead of exiting visual mode. vim.visualLine = true; curStart.ch = cursorIsBefore(curStart, curEnd) ? 0 : lineLength(cm, curStart.line); curEnd.ch = cursorIsBefore(curStart, curEnd) ? lineLength(cm, curEnd.line) : 0; cm.setSelection(curStart, curEnd); } else if (vim.visualLine && !actionArgs.linewise) { // v pressed in linewise visual mode. Switch to characterwise visual // mode instead of exiting visual mode. vim.visualLine = false; } else { exitVisualMode(cm, vim); } } updateMark(cm, vim, '<', cursorIsBefore(curStart, curEnd) ? curStart : curEnd); updateMark(cm, vim, '>', cursorIsBefore(curStart, curEnd) ? curEnd : curStart); }, joinLines: function(cm, actionArgs, vim) { var curStart, curEnd; if (vim.visualMode) { curStart = cm.getCursor('anchor'); curEnd = cm.getCursor('head'); curEnd.ch = lineLength(cm, curEnd.line) - 1; } else { // Repeat is the number of lines to join. Minimum 2 lines. var repeat = Math.max(actionArgs.repeat, 2); curStart = cm.getCursor(); curEnd = clipCursorToContent(cm, { line: curStart.line + repeat - 1, ch: Infinity }); } var finalCh = 0; cm.operation(function() { for (var i = curStart.line; i < curEnd.line; i++) { finalCh = lineLength(cm, curStart.line); var tmp = { line: curStart.line + 1, ch: lineLength(cm, curStart.line + 1) }; var text = cm.getRange(curStart, tmp); text = text.replace(/\n\s*/g, ' '); cm.replaceRange(text, curStart, tmp); } var curFinalPos = { line: curStart.line, ch: finalCh }; cm.setCursor(curFinalPos); }); }, newLineAndEnterInsertMode: function(cm, actionArgs) { var insertAt = cm.getCursor(); if (insertAt.line === cm.firstLine() && !actionArgs.after) { // Special case for inserting newline before start of document. cm.replaceRange('\n', { line: cm.firstLine(), ch: 0 }); cm.setCursor(cm.firstLine(), 0); } else { insertAt.line = (actionArgs.after) ? insertAt.line : insertAt.line - 1; insertAt.ch = lineLength(cm, insertAt.line); cm.setCursor(insertAt); var newlineFn = CodeMirror.commands.newlineAndIndentContinueComment || CodeMirror.commands.newlineAndIndent; newlineFn(cm); } this.enterInsertMode(cm); }, paste: function(cm, actionArgs, vim) { var cur = cm.getCursor(); var register = getVimGlobalState().registerController.getRegister( actionArgs.registerName); if (!register.text) { return; } for (var text = '', i = 0; i < actionArgs.repeat; i++) { text += register.text; } var linewise = register.linewise; if (linewise) { if (actionArgs.after) { // Move the newline at the end to the start instead, and paste just // before the newline character of the line we are on right now. text = '\n' + text.slice(0, text.length - 1); cur.ch = lineLength(cm, cur.line); } else { cur.ch = 0; } } else { cur.ch += actionArgs.after ? 1 : 0; } cm.replaceRange(text, cur); // Now fine tune the cursor to where we want it. var curPosFinal; var idx; if (linewise && actionArgs.after) { curPosFinal = { line: cur.line + 1, ch: findFirstNonWhiteSpaceCharacter(cm.getLine(cur.line + 1)) }; } else if (linewise && !actionArgs.after) { curPosFinal = { line: cur.line, ch: findFirstNonWhiteSpaceCharacter(cm.getLine(cur.line)) }; } else if (!linewise && actionArgs.after) { idx = cm.indexFromPos(cur); curPosFinal = cm.posFromIndex(idx + text.length - 1); } else { idx = cm.indexFromPos(cur); curPosFinal = cm.posFromIndex(idx + text.length); } cm.setCursor(curPosFinal); }, undo: function(cm, actionArgs) { repeatFn(cm, CodeMirror.commands.undo, actionArgs.repeat)(); }, redo: function(cm, actionArgs) { repeatFn(cm, CodeMirror.commands.redo, actionArgs.repeat)(); }, setRegister: function(cm, actionArgs, vim) { vim.inputState.registerName = actionArgs.selectedCharacter; }, setMark: function(cm, actionArgs, vim) { var markName = actionArgs.selectedCharacter; updateMark(cm, vim, markName, cm.getCursor()); }, replace: function(cm, actionArgs) { var replaceWith = actionArgs.selectedCharacter; var curStart = cm.getCursor(); var line = cm.getLine(curStart.line); var replaceTo = curStart.ch + actionArgs.repeat; if (replaceTo > line.length) { return; } var curEnd = { line: curStart.line, ch: replaceTo }; var replaceWithStr = ''; for (var i = 0; i < curEnd.ch - curStart.ch; i++) { replaceWithStr += replaceWith; } cm.replaceRange(replaceWithStr, curStart, curEnd); cm.setCursor(offsetCursor(curEnd, 0, -1)); } }; var textObjects = { // TODO: lots of possible exceptions that can be thrown here. Try da( // outside of a () block. // TODO: implement text objects for the reverse like }. Should just be // an additional mapping after moving to the defaultKeyMap. 'w': function(cm, inclusive) { return expandWordUnderCursor(cm, inclusive, true /** forward */, false /** bigWord */); }, 'W': function(cm, inclusive) { return expandWordUnderCursor(cm, inclusive, true /** forward */, true /** bigWord */); }, '{': function(cm, inclusive) { return selectCompanionObject(cm, '}', inclusive); }, '(': function(cm, inclusive) { return selectCompanionObject(cm, ')', inclusive); }, '[': function(cm, inclusive) { return selectCompanionObject(cm, ']', inclusive); }, '\'': function(cm, inclusive) { return findBeginningAndEnd(cm, "'", inclusive); }, '\"': function(cm, inclusive) { return findBeginningAndEnd(cm, '"', inclusive); } }; /* * Below are miscellaneous utility functions used by vim.js */ /** * Clips cursor to ensure that line is within the buffer's range * If includeLineBreak is true, then allow cur.ch == lineLength. */ function clipCursorToContent(cm, cur, includeLineBreak) { var line = Math.min(Math.max(cm.firstLine(), cur.line), cm.lastLine() ); var maxCh = lineLength(cm, line) - 1; maxCh = (includeLineBreak) ? maxCh + 1 : maxCh; var ch = Math.min(Math.max(0, cur.ch), maxCh); return { line: line, ch: ch }; } // Merge arguments in place, for overriding arguments. function mergeArgs(to, from) { for (var prop in from) { if (from.hasOwnProperty(prop)) { to[prop] = from[prop]; } } } function copyArgs(args) { var ret = {}; for (var prop in args) { if (args.hasOwnProperty(prop)) { ret[prop] = args[prop]; } } return ret; } function offsetCursor(cur, offsetLine, offsetCh) { return { line: cur.line + offsetLine, ch: cur.ch + offsetCh }; } function arrayEq(a1, a2) { if (a1.length != a2.length) { return false; } for (var i = 0; i < a1.length; i++) { if (a1[i] != a2[i]) { return false; } } return true; } function matchKeysPartial(pressed, mapped) { for (var i = 0; i < pressed.length; i++) { // 'character' means any character. For mark, register commads, etc. if (pressed[i] != mapped[i] && mapped[i] != 'character') { return false; } } return true; } function arrayIsSubsetFromBeginning(small, big) { for (var i = 0; i < small.length; i++) { if (small[i] != big[i]) { return false; } } return true; } function repeatFn(cm, fn, repeat) { return function() { for (var i = 0; i < repeat; i++) { fn(cm); } }; } function copyCursor(cur) { return { line: cur.line, ch: cur.ch }; } function cursorEqual(cur1, cur2) { return cur1.ch == cur2.ch && cur1.line == cur2.line; } function cursorIsBefore(cur1, cur2) { if (cur1.line < cur2.line) { return true; } else if (cur1.line == cur2.line && cur1.ch < cur2.ch) { return true; } return false; } function lineLength(cm, lineNum) { return cm.getLine(lineNum).length; } function reverse(s){ return s.split("").reverse().join(""); } function trim(s) { if (s.trim) { return s.trim(); } else { return s.replace(/^\s+|\s+$/g, ''); } } function escapeRegex(s) { return s.replace(/([.?*+$\[\]\/\\(){}|\-])/g, "\\$1"); } function exitVisualMode(cm, vim) { vim.visualMode = false; vim.visualLine = false; var selectionStart = cm.getCursor('anchor'); var selectionEnd = cm.getCursor('head'); if (!cursorEqual(selectionStart, selectionEnd)) { // Clear the selection and set the cursor only if the selection has not // already been cleared. Otherwise we risk moving the cursor somewhere // it's not supposed to be. cm.setCursor(clipCursorToContent(cm, selectionEnd)); } } // Remove any trailing newlines from the selection. For // example, with the caret at the start of the last word on the line, // 'dw' should word, but not the newline, while 'w' should advance the // caret to the first character of the next line. function clipToLine(cm, curStart, curEnd) { var selection = cm.getRange(curStart, curEnd); var lines = selection.split('\n'); if (lines.length > 1 && isWhiteSpaceString(lines.pop())) { curEnd.line--; curEnd.ch = lineLength(cm, curEnd.line); } } // Expand the selection to line ends. function expandSelectionToLine(cm, curStart, curEnd) { curStart.ch = 0; curEnd.ch = 0; curEnd.line++; } function findFirstNonWhiteSpaceCharacter(text) { if (!text) { return 0; } var firstNonWS = text.search(/\S/); return firstNonWS == -1 ? text.length : firstNonWS; } function expandWordUnderCursor(cm, inclusive, forward, bigWord, noSymbol) { var cur = cm.getCursor(); var line = cm.getLine(cur.line); var idx = cur.ch; // Seek to first word or non-whitespace character, depending on if // noSymbol is true. var textAfterIdx = line.substring(idx); var firstMatchedChar; if (noSymbol) { firstMatchedChar = textAfterIdx.search(/\w/); } else { firstMatchedChar = textAfterIdx.search(/\S/); } if (firstMatchedChar == -1) { return null; } idx += firstMatchedChar; textAfterIdx = line.substring(idx); var textBeforeIdx = line.substring(0, idx); var matchRegex; // Greedy matchers for the "word" we are trying to expand. if (bigWord) { matchRegex = /^\S+/; } else { if ((/\w/).test(line.charAt(idx))) { matchRegex = /^\w+/; } else { matchRegex = /^[^\w\s]+/; } } var wordAfterRegex = matchRegex.exec(textAfterIdx); var wordStart = idx; var wordEnd = idx + wordAfterRegex[0].length - 1; // TODO: Find a better way to do this. It will be slow on very long lines. var wordBeforeRegex = matchRegex.exec(reverse(textBeforeIdx)); if (wordBeforeRegex) { wordStart -= wordBeforeRegex[0].length; } if (inclusive) { wordEnd++; } return { start: { line: cur.line, ch: wordStart }, end: { line: cur.line, ch: wordEnd }}; } /* * Returns the boundaries of the next word. If the cursor in the middle of * the word, then returns the boundaries of the current word, starting at * the cursor. If the cursor is at the start/end of a word, and we are going * forward/backward, respectively, find the boundaries of the next word. * * @param {CodeMirror} cm CodeMirror object. * @param {Cursor} cur The cursor position. * @param {boolean} forward True to search forward. False to search * backward. * @param {boolean} bigWord True if punctuation count as part of the word. * False if only [a-zA-Z0-9] characters count as part of the word. * @return {Object{from:number, to:number, line: number}} The boundaries of * the word, or null if there are no more words. */ // TODO: Treat empty lines (with no whitespace) as words. function findWord(cm, cur, forward, bigWord) { var lineNum = cur.line; var pos = cur.ch; var line = cm.getLine(lineNum); var dir = forward ? 1 : -1; var regexps = bigWord ? bigWordRegexp : wordRegexp; while (true) { var stop = (dir > 0) ? line.length : -1; var wordStart = stop, wordEnd = stop; // Find bounds of next word. while (pos != stop) { var foundWord = false; for (var i = 0; i < regexps.length && !foundWord; ++i) { if (regexps[i].test(line.charAt(pos))) { wordStart = pos; // Advance to end of word. while (pos != stop && regexps[i].test(line.charAt(pos))) { pos += dir; } wordEnd = pos; foundWord = wordStart != wordEnd; if (wordStart == cur.ch && lineNum == cur.line && wordEnd == wordStart + dir) { // We started at the end of a word. Find the next one. continue; } else { return { from: Math.min(wordStart, wordEnd + 1), to: Math.max(wordStart, wordEnd), line: lineNum }; } } } if (!foundWord) { pos += dir; } } // Advance to next/prev line. lineNum += dir; if (!isLine(cm, lineNum)) { return null; } line = cm.getLine(lineNum); pos = (dir > 0) ? 0 : line.length; } // Should never get here. throw 'The impossible happened.'; } /** * @param {CodeMirror} cm CodeMirror object. * @param {int} repeat Number of words to move past. * @param {boolean} forward True to search forward. False to search * backward. * @param {boolean} wordEnd True to move to end of word. False to move to * beginning of word. * @param {boolean} bigWord True if punctuation count as part of the word. * False if only alphabet characters count as part of the word. * @return {Cursor} The position the cursor should move to. */ function moveToWord(cm, repeat, forward, wordEnd, bigWord) { var cur = cm.getCursor(); for (var i = 0; i < repeat; i++) { var startCh = cur.ch, startLine = cur.line, word; var movedToNextWord = false; while (!movedToNextWord) { // Search and advance. word = findWord(cm, cur, forward, bigWord); movedToNextWord = true; if (word) { // Move to the word we just found. If by moving to the word we end // up in the same spot, then move an extra character and search // again. cur.line = word.line; if (forward && wordEnd) { // 'e' cur.ch = word.to - 1; } else if (forward && !wordEnd) { // 'w' if (inRangeInclusive(cur.ch, word.from, word.to) && word.line == startLine) { // Still on the same word. Go to the next one. movedToNextWord = false; cur.ch = word.to - 1; } else { cur.ch = word.from; } } else if (!forward && wordEnd) { // 'ge' if (inRangeInclusive(cur.ch, word.from, word.to) && word.line == startLine) { // still on the same word. Go to the next one. movedToNextWord = false; cur.ch = word.from; } else { cur.ch = word.to; } } else if (!forward && !wordEnd) { // 'b' cur.ch = word.from; } } else { // No more words to be found. Move to the end. if (forward) { return { line: cur.line, ch: lineLength(cm, cur.line) }; } else { return { line: cur.line, ch: 0 }; } } } } return cur; } function moveToCharacter(cm, repeat, forward, character) { var cur = cm.getCursor(); var start = cur.ch; var idx; for (var i = 0; i < repeat; i ++) { var line = cm.getLine(cur.line); idx = charIdxInLine(start, line, character, forward, true); if (idx == -1) { return cur; } start = idx; } return { line: cm.getCursor().line, ch: idx }; } function moveToColumn(cm, repeat) { // repeat is always >= 1, so repeat - 1 always corresponds // to the column we want to go to. var line = cm.getCursor().line; return clipCursorToContent(cm, { line: line, ch: repeat - 1 }); } function updateMark(cm, vim, markName, pos) { if (!inArray(markName, validMarks)) { return; } if (vim.marks[markName]) { vim.marks[markName].clear(); } vim.marks[markName] = cm.setBookmark(pos); } function charIdxInLine(start, line, character, forward, includeChar) { // Search for char in line. // motion_options: {forward, includeChar} // If includeChar = true, include it too. // If forward = true, search forward, else search backwards. // If char is not found on this line, do nothing var idx; if (forward) { idx = line.indexOf(character, start + 1); if (idx != -1 && !includeChar) { idx -= 1; } } else { idx = line.lastIndexOf(character, start - 1); if (idx != -1 && !includeChar) { idx += 1; } } return idx; } function findMatchedSymbol(cm, cur, symb) { var line = cur.line; symb = symb ? symb : cm.getLine(line).charAt(cur.ch); // Are we at the opening or closing char var forwards = inArray(symb, ['(', '[', '{']); var reverseSymb = ({ '(': ')', ')': '(', '[': ']', ']': '[', '{': '}', '}': '{'})[symb]; // Couldn't find a matching symbol, abort if (!reverseSymb) { return cur; } // set our increment to move forward (+1) or backwards (-1) // depending on which bracket we're matching var increment = ({'(': 1, '{': 1, '[': 1})[symb] || -1; var depth = 1, nextCh = symb, index = cur.ch, lineText = cm.getLine(line); // Simple search for closing paren--just count openings and closings till // we find our match // TODO: use info from CodeMirror to ignore closing brackets in comments // and quotes, etc. while (nextCh && depth > 0) { index += increment; nextCh = lineText.charAt(index); if (!nextCh) { line += increment; lineText = cm.getLine(line) || ''; if (increment > 0) { index = 0; } else { var lineLen = lineText.length; index = (lineLen > 0) ? (lineLen-1) : 0; } nextCh = lineText.charAt(index); } if (nextCh === symb) { depth++; } else if (nextCh === reverseSymb) { depth--; } } if (nextCh) { return { line: line, ch: index }; } return cur; } function selectCompanionObject(cm, revSymb, inclusive) { var cur = cm.getCursor(); var end = findMatchedSymbol(cm, cur, revSymb); var start = findMatchedSymbol(cm, end); start.ch += inclusive ? 1 : 0; end.ch += inclusive ? 0 : 1; return { start: start, end: end }; } function regexLastIndexOf(string, pattern, startIndex) { for (var i = !startIndex ? string.length : startIndex; i >= 0; --i) { if (pattern.test(string.charAt(i))) { return i; } } return -1; } // Takes in a symbol and a cursor and tries to simulate text objects that // have identical opening and closing symbols // TODO support across multiple lines function findBeginningAndEnd(cm, symb, inclusive) { var cur = cm.getCursor(); var line = cm.getLine(cur.line); var chars = line.split(''); var start, end, i, len; var firstIndex = chars.indexOf(symb); // the decision tree is to always look backwards for the beginning first, // but if the cursor is in front of the first instance of the symb, // then move the cursor forward if (cur.ch < firstIndex) { cur.ch = firstIndex; // Why is this line even here??? // cm.setCursor(cur.line, firstIndex+1); } // otherwise if the cursor is currently on the closing symbol else if (firstIndex < cur.ch && chars[cur.ch] == symb) { end = cur.ch; // assign end to the current cursor --cur.ch; // make sure to look backwards } // if we're currently on the symbol, we've got a start if (chars[cur.ch] == symb && !end) { start = cur.ch + 1; // assign start to ahead of the cursor } else { // go backwards to find the start for (i = cur.ch; i > -1 && !start; i--) { if (chars[i] == symb) { start = i + 1; } } } // look forwards for the end symbol if (start && !end) { for (i = start, len = chars.length; i < len && !end; i++) { if (chars[i] == symb) { end = i; } } } // nothing found if (!start || !end) { return { start: cur, end: cur }; } // include the symbols if (inclusive) { --start; ++end; } return { start: { line: cur.line, ch: start }, end: { line: cur.line, ch: end } }; } // Search functions function SearchState() { // Highlighted text that match the query. this.marked = null; } SearchState.prototype = { getQuery: function() { return getVimGlobalState().query; }, setQuery: function(query) { getVimGlobalState().query = query; }, getMarked: function() { return this.marked; }, setMarked: function(marked) { this.marked = marked; }, getOverlay: function() { return this.searchOverlay; }, setOverlay: function(overlay) { this.searchOverlay = overlay; }, isReversed: function() { return getVimGlobalState().isReversed; }, setReversed: function(reversed) { getVimGlobalState().isReversed = reversed; } }; function getSearchState(cm) { var vim = getVimState(cm); return vim.searchState_ || (vim.searchState_ = new SearchState()); } function dialog(cm, text, shortText, callback, initialValue) { if (cm.openDialog) { cm.openDialog(text, callback, { bottom: true, value: initialValue }); } else { callback(prompt(shortText, "")); } } function findUnescapedSlashes(str) { var escapeNextChar = false; var slashes = []; for (var i = 0; i < str.length; i++) { var c = str.charAt(i); if (!escapeNextChar && c == '/') { slashes.push(i); } escapeNextChar = (c == '\\'); } return slashes; } /** * Extract the regular expression from the query and return a Regexp object. * Returns null if the query is blank. * If ignoreCase is passed in, the Regexp object will have the 'i' flag set. * If smartCase is passed in, and the query contains upper case letters, * then ignoreCase is overridden, and the 'i' flag will not be set. * If the query contains the /i in the flag part of the regular expression, * then both ignoreCase and smartCase are ignored, and 'i' will be passed * through to the Regex object. */ function parseQuery(cm, query, ignoreCase, smartCase) { // First try to extract regex + flags from the input. If no flags found, // extract just the regex. IE does not accept flags directly defined in // the regex string in the form /regex/flags var slashes = findUnescapedSlashes(query); var regexPart; var forceIgnoreCase; if (!slashes.length) { // Query looks like 'regexp' regexPart = query; } else { // Query looks like 'regexp/...' regexPart = query.substring(0, slashes[0]); var flagsPart = query.substring(slashes[0]); forceIgnoreCase = (flagsPart.indexOf('i') != -1); } if (!regexPart) { return null; } if (smartCase) { ignoreCase = (/^[^A-Z]*$/).test(regexPart); } try { var regexp = new RegExp(regexPart, (ignoreCase || forceIgnoreCase) ? 'i' : undefined); return regexp; } catch (e) { showConfirm(cm, 'Invalid regex: ' + regexPart); } } function showConfirm(cm, text) { if (cm.openConfirm) { cm.openConfirm('' + text + ' ', function() {}, {bottom: true}); } else { alert(text); } } function makePrompt(prefix, desc) { var raw = ''; if (prefix) { raw += '' + prefix + ''; } raw += ' ' + ''; if (desc) { raw += ''; raw += desc; raw += ''; } return raw; } var searchPromptDesc = '(Javascript regexp)'; function showPrompt(cm, onPromptClose, prefix, desc, initialValue) { var shortText = (prefix || '') + ' ' + (desc || ''); dialog(cm, makePrompt(prefix, desc), shortText, onPromptClose, initialValue); } function regexEqual(r1, r2) { if (r1 instanceof RegExp && r2 instanceof RegExp) { var props = ["global", "multiline", "ignoreCase", "source"]; for (var i = 0; i < props.length; i++) { var prop = props[i]; if (r1[prop] !== r2[prop]) { return(false); } } return(true); } return(false); } function updateSearchQuery(cm, rawQuery, ignoreCase, smartCase) { cm.operation(function() { var state = getSearchState(cm); if (!rawQuery) { return; } var query = parseQuery(cm, rawQuery, !!ignoreCase, !!smartCase); if (!query) { return; } if (regexEqual(query, state.getQuery())) { return; } clearSearchHighlight(cm); highlightSearchMatches(cm, query); state.setQuery(query); }); } function searchOverlay(query) { return { token: function(stream) { var match = stream.match(query, false); if (match) { if (!stream.sol()) { // Backtrack 1 to match \b stream.backUp(1); if (!query.exec(stream.next() + match[0])) { stream.next(); return null; } } stream.match(query); return "searching"; } while (!stream.eol()) { stream.next(); if (stream.match(query, false)) break; } }, query: query }; } function highlightSearchMatches(cm, query) { if (cm.addOverlay) { var overlay = getSearchState(cm).getOverlay(); if (!overlay || query != overlay.query) { if (overlay) { cm.removeOverlay(overlay); } overlay = searchOverlay(query); cm.addOverlay(overlay); getSearchState(cm).setOverlay(overlay); } } else { // TODO: Highlight only text inside the viewport. Highlighting everything // is inefficient and expensive. if (cm.lineCount() < 2000) { // This is too expensive on big documents. var marked = []; for (var cursor = cm.getSearchCursor(query); cursor.findNext();) { marked.push(cm.markText(cursor.from(), cursor.to(), { className: 'cm-searching' })); } getSearchState(cm).setMarked(marked); } } } function findNext(cm, prev, repeat) { return cm.operation(function() { var state = getSearchState(cm); var query = state.getQuery(); if (!query) { return; } if (!state.getMarked()) { highlightSearchMatches(cm, query); } var pos = cm.getCursor(); // If search is initiated with ? instead of /, negate direction. prev = (state.isReversed()) ? !prev : prev; if (!prev) { pos.ch += 1; } var cursor = cm.getSearchCursor(query, pos); for (var i = 0; i < repeat; i++) { if (!cursor.find(prev)) { // SearchCursor may have returned null because it hit EOF, wrap // around and try again. cursor = cm.getSearchCursor(query, (prev) ? { line: cm.lastLine() } : {line: cm.firstLine(), ch: 0} ); if (!cursor.find(prev)) { return; } } } return cursor.from(); });} function clearSearchHighlight(cm) { if (cm.addOverlay) { cm.removeOverlay(getSearchState(cm).getOverlay()); getSearchState(cm).setOverlay(null); } else { cm.operation(function() { var state = getSearchState(cm); if (!state.getQuery()) { return; } var marked = state.getMarked(); if (!marked) { return; } for (var i = 0; i < marked.length; ++i) { marked[i].clear(); } state.setMarked(null); }); } } /** * Check if pos is in the specified range, INCLUSIVE. * Range can be specified with 1 or 2 arguments. * If the first range argument is an array, treat it as an array of line * numbers. Match pos against any of the lines. * If the first range argument is a number, * if there is only 1 range argument, check if pos has the same line * number * if there are 2 range arguments, then check if pos is in between the two * range arguments. */ function isInRange(pos, start, end) { if (typeof pos != 'number') { // Assume it is a cursor position. Get the line number. pos = pos.line; } if (start instanceof Array) { return inArray(pos, start); } else { if (end) { return (pos >= start && pos <= end); } else { return pos == start; } } } // Ex command handling // Care must be taken when adding to the default Ex command map. For any // pair of commands that have a shared prefix, at least one of their // shortNames must not match the prefix of the other command. var defaultExCommandMap = [ { name: 'map', type: 'builtIn' }, { name: 'write', shortName: 'w', type: 'builtIn' }, { name: 'undo', shortName: 'u', type: 'builtIn' }, { name: 'redo', shortName: 'red', type: 'builtIn' }, { name: 'substitute', shortName: 's', type: 'builtIn'}, { name: 'nohlsearch', shortName: 'noh', type: 'builtIn'} ]; Vim.ExCommandDispatcher = function() { this.buildCommandMap_(); }; Vim.ExCommandDispatcher.prototype = { processCommand: function(cm, input) { var inputStream = new CodeMirror.StringStream(input); var params = {}; params.input = input; try { this.parseInput_(cm, inputStream, params); } catch(e) { showConfirm(cm, e); return; } var commandName; if (!params.commandName) { // If only a line range is defined, move to the line. if (params.line !== undefined) { commandName = 'move'; } } else { var command = this.matchCommand_(params.commandName); if (command) { commandName = command.name; this.parseCommandArgs_(inputStream, params, command); if (command.type == 'exToKey') { // Handle Ex to Key mapping. for (var i = 0; i < command.toKeys.length; i++) { vim.handleKey(cm, command.toKeys[i]); } return; } else if (command.type == 'exToEx') { // Handle Ex to Ex mapping. this.processCommand(cm, command.toInput); return; } } } if (!commandName) { showConfirm(cm, 'Not an editor command ":' + input + '"'); return; } exCommands[commandName](cm, params); }, parseInput_: function(cm, inputStream, result) { inputStream.eatWhile(':'); // Parse range. if (inputStream.eat('%')) { result.line = cm.firstLine(); result.lineEnd = cm.lastLine(); } else { result.line = this.parseLineSpec_(cm, inputStream); if (result.line !== undefined && inputStream.eat(',')) { result.lineEnd = this.parseLineSpec_(cm, inputStream); } } // Parse command name. var commandMatch = inputStream.match(/^(\w+)/); if (commandMatch) { result.commandName = commandMatch[1]; } else { result.commandName = inputStream.match(/.*/)[0]; } return result; }, parseLineSpec_: function(cm, inputStream) { var numberMatch = inputStream.match(/^(\d+)/); if (numberMatch) { return parseInt(numberMatch[1], 10) - 1; } switch (inputStream.next()) { case '.': return cm.getCursor().line; case '$': return cm.lastLine(); case '\'': var mark = getVimState(cm).marks[inputStream.next()]; if (mark && mark.find()) { return mark.find().line; } else { throw "Mark not set"; } break; default: inputStream.backUp(1); return cm.getCursor().line; } }, parseCommandArgs_: function(inputStream, params, command) { if (inputStream.eol()) { return; } params.argString = inputStream.match(/.*/)[0]; // Parse command-line arguments var delim = command.argDelimiter || /\s+/; var args = trim(params.argString).split(delim); if (args.length && args[0]) { params.args = args; } }, matchCommand_: function(commandName) { // Return the command in the command map that matches the shortest // prefix of the passed in command name. The match is guaranteed to be // unambiguous if the defaultExCommandMap's shortNames are set up // correctly. (see @code{defaultExCommandMap}). for (var i = commandName.length; i > 0; i--) { var prefix = commandName.substring(0, i); if (this.commandMap_[prefix]) { var command = this.commandMap_[prefix]; if (command.name.indexOf(commandName) === 0) { return command; } } } return null; }, buildCommandMap_: function() { this.commandMap_ = {}; for (var i = 0; i < defaultExCommandMap.length; i++) { var command = defaultExCommandMap[i]; var key = command.shortName || command.name; this.commandMap_[key] = command; } }, map: function(lhs, rhs) { if (lhs != ':' && lhs.charAt(0) == ':') { var commandName = lhs.substring(1); if (rhs != ':' && rhs.charAt(0) == ':') { // Ex to Ex mapping this.commandMap_[commandName] = { name: commandName, type: 'exToEx', toInput: rhs.substring(1) }; } else { // Ex to key mapping this.commandMap_[commandName] = { name: commandName, type: 'exToKey', toKeys: parseKeyString(rhs) }; } } else { if (rhs != ':' && rhs.charAt(0) == ':') { // Key to Ex mapping. defaultKeymap.unshift({ keys: parseKeyString(lhs), type: 'keyToEx', exArgs: { input: rhs.substring(1) }}); } else { // Key to key mapping defaultKeymap.unshift({ keys: parseKeyString(lhs), type: 'keyToKey', toKeys: parseKeyString(rhs) }); } } } }; // Converts a key string sequence of the form abd into Vim's // keymap representation. function parseKeyString(str) { var idx = 0; var keys = []; while (idx < str.length) { if (str.charAt(idx) != '<') { keys.push(str.charAt(idx)); idx++; continue; } // Vim key notation here means desktop Vim key-notation. // See :help key-notation in desktop Vim. var vimKeyNotationStart = ++idx; while (str.charAt(idx++) != '>') {} var vimKeyNotation = str.substring(vimKeyNotationStart, idx - 1); var mod=''; var match = (/^C-(.+)$/).exec(vimKeyNotation); if (match) { mod='Ctrl-'; vimKeyNotation=match[1]; } var key; switch (vimKeyNotation) { case 'BS': key = 'Backspace'; break; case 'CR': key = 'Enter'; break; case 'Del': key = 'Delete'; break; default: key = vimKeyNotation; break; } keys.push(mod + key); } return keys; } var exCommands = { map: function(cm, params) { var mapArgs = params.args; if (!mapArgs || mapArgs.length < 2) { if (cm) { showConfirm(cm, 'Invalid mapping: ' + params.input); } return; } exCommandDispatcher.map(mapArgs[0], mapArgs[1], cm); }, move: function(cm, params) { commandDispatcher.processMotion(cm, getVimState(cm), { motion: 'moveToLineOrEdgeOfDocument', motionArgs: { forward: false, explicitRepeat: true, linewise: true, repeat: params.line+1 }}); }, substitute: function(cm, params) { var argString = params.argString; var slashes = findUnescapedSlashes(argString); if (slashes[0] !== 0) { showConfirm(cm, 'Substitutions should be of the form ' + ':s/pattern/replace/'); return; } var regexPart = argString.substring(slashes[0] + 1, slashes[1]); var replacePart = ''; var flagsPart; var count; if (slashes[1]) { replacePart = argString.substring(slashes[1] + 1, slashes[2]); } if (slashes[2]) { // After the 3rd slash, we can have flags followed by a space followed // by count. var trailing = argString.substring(slashes[2] + 1).split(' '); flagsPart = trailing[0]; count = parseInt(trailing[1]); } if (flagsPart) { regexPart = regexPart + '/' + flagsPart; } if (regexPart) { // If regex part is empty, then use the previous query. Otherwise use // the regex part as the new query. updateSearchQuery(cm, regexPart, true /** ignoreCase */, true /** smartCase */); } var state = getSearchState(cm); var query = state.getQuery(); var lineStart = params.line || cm.firstLine(); var lineEnd = params.lineEnd || lineStart; if (count) { lineStart = lineEnd; lineEnd = lineStart + count - 1; } var startPos = clipCursorToContent(cm, { line: lineStart, ch: 0 }); function doReplace() { for (var cursor = cm.getSearchCursor(query, startPos); cursor.findNext() && isInRange(cursor.from(), lineStart, lineEnd);) { var text = cm.getRange(cursor.from(), cursor.to()); var newText = text.replace(query, replacePart); cursor.replace(newText); } var vim = getVimState(cm); if (vim.visualMode) { exitVisualMode(cm, vim); } } if (cm.compoundChange) { // Only exists in v2 cm.compoundChange(doReplace); } else { cm.operation(doReplace); } }, redo: CodeMirror.commands.redo, undo: CodeMirror.commands.undo, write: function(cm) { if (CodeMirror.commands.save) { // If a save command is defined, call it. CodeMirror.commands.save(cm); } else { // Saves to text area if no save command is defined. cm.save(); } }, nohlsearch: function(cm) { clearSearchHighlight(cm); } }; var exCommandDispatcher = new Vim.ExCommandDispatcher(); // Register Vim with CodeMirror function buildVimKeyMap() { /** * Handle the raw key event from CodeMirror. Translate the * Shift + key modifier to the resulting letter, while preserving other * modifers. */ // TODO: Figure out a way to catch capslock. function handleKeyEvent_(cm, key, modifier) { if (isUpperCase(key)) { // Convert to lower case if shift is not the modifier since the key // we get from CodeMirror is always upper case. if (modifier == 'Shift') { modifier = null; } else { key = key.toLowerCase(); } } if (modifier) { // Vim will parse modifier+key combination as a single key. key = modifier + '-' + key; } vim.handleKey(cm, key); } // Closure to bind CodeMirror, key, modifier. function keyMapper(key, modifier) { return function(cm) { handleKeyEvent_(cm, key, modifier); }; } var modifiers = ['Shift', 'Ctrl']; var keyMap = { 'nofallthrough': true, 'style': 'fat-cursor' }; function bindKeys(keys, modifier) { for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (!modifier && inArray(key, specialSymbols)) { // Wrap special symbols with '' because that's how CodeMirror binds // them. key = "'" + key + "'"; } if (modifier) { keyMap[modifier + '-' + key] = keyMapper(keys[i], modifier); } else { keyMap[key] = keyMapper(keys[i]); } } } bindKeys(upperCaseAlphabet); bindKeys(upperCaseAlphabet, 'Shift'); bindKeys(upperCaseAlphabet, 'Ctrl'); bindKeys(specialSymbols); bindKeys(specialSymbols, 'Ctrl'); bindKeys(numbers); bindKeys(numbers, 'Ctrl'); bindKeys(specialKeys); bindKeys(specialKeys, 'Ctrl'); return keyMap; } CodeMirror.keyMap.vim = buildVimKeyMap(); function exitInsertMode(cm) { cm.setCursor(cm.getCursor().line, cm.getCursor().ch-1, true); cm.setOption('keyMap', 'vim'); } CodeMirror.keyMap['vim-insert'] = { // TODO: override navigation keys so that Esc will cancel automatic // indentation from o, O, i_ 'Esc': exitInsertMode, 'Ctrl-[': exitInsertMode, 'Ctrl-C': exitInsertMode, 'Ctrl-N': 'autocomplete', 'Ctrl-P': 'autocomplete', 'Enter': function(cm) { var fn = CodeMirror.commands.newlineAndIndentContinueComment || CodeMirror.commands.newlineAndIndent; fn(cm); }, fallthrough: ['default'] }; return vimApi; }; // Initialize Vim and make it available as an API. var vim = Vim(); CodeMirror.Vim = vim; } )(); site_pro/codemirror-3.1/keymap/emacs.js0000644000000000000000000000262312111430706016756 0ustar rootroot// TODO number prefixes (function() { // Really primitive kill-ring implementation. var killRing = []; function addToRing(str) { killRing.push(str); if (killRing.length > 50) killRing.shift(); } function getFromRing() { return killRing[killRing.length - 1] || ""; } function popFromRing() { if (killRing.length > 1) killRing.pop(); return getFromRing(); } CodeMirror.keyMap.emacs = { "Ctrl-X": function(cm) {cm.setOption("keyMap", "emacs-Ctrl-X");}, "Ctrl-W": function(cm) {addToRing(cm.getSelection()); cm.replaceSelection("");}, "Ctrl-Alt-W": function(cm) {addToRing(cm.getSelection()); cm.replaceSelection("");}, "Alt-W": function(cm) {addToRing(cm.getSelection());}, "Ctrl-Y": function(cm) {cm.replaceSelection(getFromRing());}, "Alt-Y": function(cm) {cm.replaceSelection(popFromRing());}, "Ctrl-/": "undo", "Shift-Ctrl--": "undo", "Shift-Alt-,": "goDocStart", "Shift-Alt-.": "goDocEnd", "Ctrl-S": "findNext", "Ctrl-R": "findPrev", "Ctrl-G": "clearSearch", "Shift-Alt-5": "replace", "Ctrl-Z": "undo", "Cmd-Z": "undo", "Alt-/": "autocomplete", "Alt-V": "goPageUp", "Ctrl-J": "newlineAndIndent", "Enter": false, "Tab": "indentAuto", fallthrough: ["basic", "emacsy"] }; CodeMirror.keyMap["emacs-Ctrl-X"] = { "Ctrl-S": "save", "Ctrl-W": "save", "S": "saveAll", "F": "open", "U": "undo", "K": "close", auto: "emacs", nofallthrough: true }; })(); site_pro/codemirror-3.1/package.json0000644000000000000000000000161112111430706016324 0ustar rootroot{ "name": "codemirror", "version":"3.10.00", "main": "codemirror.js", "description": "In-browser code editing made bearable", "licenses": [{"type": "MIT", "url": "http://codemirror.net/LICENSE"}], "directories": {"lib": "./lib"}, "scripts": {"test": "node ./test/run.js"}, "devDependencies": {"node-static": "0.6.0"}, "bugs": "http://github.com/marijnh/CodeMirror/issues", "keywords": ["JavaScript", "CodeMirror", "Editor"], "homepage": "http://codemirror.net", "maintainers":[{"name": "Marijn Haverbeke", "email": "marijnh@gmail.com", "web": "http://marijnhaverbeke.nl"}], "repositories": [{"type": "git", "url": "http://marijnhaverbeke.nl/git/codemirror"}, {"type": "git", "url": "https://github.com/marijnh/CodeMirror.git"}] } site_pro/codemirror-3.1/test/0000755000000000000000000000000012111430706015016 5ustar rootrootsite_pro/codemirror-3.1/test/mode_test.css0000644000000000000000000000026312111430706017514 0ustar rootroot.mt-output .mt-token { border: 1px solid #ddd; white-space: pre; font-family: "Consolas", monospace; text-align: center; } .mt-output .mt-style { font-size: x-small; } site_pro/codemirror-3.1/test/lint/0000755000000000000000000000000012111430706015764 5ustar rootrootsite_pro/codemirror-3.1/test/lint/walk.js0000644000000000000000000001723512111430706017270 0ustar rootroot// AST walker module for Mozilla Parser API compatible trees (function(exports) { "use strict"; // A simple walk is one where you simply specify callbacks to be // called on specific nodes. The last two arguments are optional. A // simple use would be // // walk.simple(myTree, { // Expression: function(node) { ... } // }); // // to do something with all expressions. All Parser API node types // can be used to identify node types, as well as Expression, // Statement, and ScopeBody, which denote categories of nodes. // // The base argument can be used to pass a custom (recursive) // walker, and state can be used to give this walked an initial // state. exports.simple = function(node, visitors, base, state) { if (!base) base = exports; function c(node, st, override) { var type = override || node.type, found = visitors[type]; if (found) found(node, st); base[type](node, st, c); } c(node, state); }; // A recursive walk is one where your functions override the default // walkers. They can modify and replace the state parameter that's // threaded through the walk, and can opt how and whether to walk // their child nodes (by calling their third argument on these // nodes). exports.recursive = function(node, state, funcs, base) { var visitor = exports.make(funcs, base); function c(node, st, override) { visitor[override || node.type](node, st, c); } c(node, state); }; // Used to create a custom walker. Will fill in all missing node // type properties with the defaults. exports.make = function(funcs, base) { if (!base) base = exports; var visitor = {}; for (var type in base) visitor[type] = funcs.hasOwnProperty(type) ? funcs[type] : base[type]; return visitor; }; function skipThrough(node, st, c) { c(node, st); } function ignore(node, st, c) {} // Node walkers. exports.Program = exports.BlockStatement = function(node, st, c) { for (var i = 0; i < node.body.length; ++i) c(node.body[i], st, "Statement"); }; exports.Statement = skipThrough; exports.EmptyStatement = ignore; exports.ExpressionStatement = function(node, st, c) { c(node.expression, st, "Expression"); }; exports.IfStatement = function(node, st, c) { c(node.test, st, "Expression"); c(node.consequent, st, "Statement"); if (node.alternate) c(node.alternate, st, "Statement"); }; exports.LabeledStatement = function(node, st, c) { c(node.body, st, "Statement"); }; exports.BreakStatement = exports.ContinueStatement = ignore; exports.WithStatement = function(node, st, c) { c(node.object, st, "Expression"); c(node.body, st, "Statement"); }; exports.SwitchStatement = function(node, st, c) { c(node.discriminant, st, "Expression"); for (var i = 0; i < node.cases.length; ++i) { var cs = node.cases[i]; if (cs.test) c(cs.test, st, "Expression"); for (var j = 0; j < cs.consequent.length; ++j) c(cs.consequent[j], st, "Statement"); } }; exports.ReturnStatement = function(node, st, c) { if (node.argument) c(node.argument, st, "Expression"); }; exports.ThrowStatement = function(node, st, c) { c(node.argument, st, "Expression"); }; exports.TryStatement = function(node, st, c) { c(node.block, st, "Statement"); for (var i = 0; i < node.handlers.length; ++i) c(node.handlers[i].body, st, "ScopeBody"); if (node.finalizer) c(node.finalizer, st, "Statement"); }; exports.WhileStatement = function(node, st, c) { c(node.test, st, "Expression"); c(node.body, st, "Statement"); }; exports.DoWhileStatement = exports.WhileStatement; exports.ForStatement = function(node, st, c) { if (node.init) c(node.init, st, "ForInit"); if (node.test) c(node.test, st, "Expression"); if (node.update) c(node.update, st, "Expression"); c(node.body, st, "Statement"); }; exports.ForInStatement = function(node, st, c) { c(node.left, st, "ForInit"); c(node.right, st, "Expression"); c(node.body, st, "Statement"); }; exports.ForInit = function(node, st, c) { if (node.type == "VariableDeclaration") c(node, st); else c(node, st, "Expression"); }; exports.DebuggerStatement = ignore; exports.FunctionDeclaration = function(node, st, c) { c(node, st, "Function"); }; exports.VariableDeclaration = function(node, st, c) { for (var i = 0; i < node.declarations.length; ++i) { var decl = node.declarations[i]; if (decl.init) c(decl.init, st, "Expression"); } }; exports.Function = function(node, st, c) { c(node.body, st, "ScopeBody"); }; exports.ScopeBody = function(node, st, c) { c(node, st, "Statement"); }; exports.Expression = skipThrough; exports.ThisExpression = ignore; exports.ArrayExpression = function(node, st, c) { for (var i = 0; i < node.elements.length; ++i) { var elt = node.elements[i]; if (elt) c(elt, st, "Expression"); } }; exports.ObjectExpression = function(node, st, c) { for (var i = 0; i < node.properties.length; ++i) c(node.properties[i].value, st, "Expression"); }; exports.FunctionExpression = exports.FunctionDeclaration; exports.SequenceExpression = function(node, st, c) { for (var i = 0; i < node.expressions.length; ++i) c(node.expressions[i], st, "Expression"); }; exports.UnaryExpression = exports.UpdateExpression = function(node, st, c) { c(node.argument, st, "Expression"); }; exports.BinaryExpression = exports.AssignmentExpression = exports.LogicalExpression = function(node, st, c) { c(node.left, st, "Expression"); c(node.right, st, "Expression"); }; exports.ConditionalExpression = function(node, st, c) { c(node.test, st, "Expression"); c(node.consequent, st, "Expression"); c(node.alternate, st, "Expression"); }; exports.NewExpression = exports.CallExpression = function(node, st, c) { c(node.callee, st, "Expression"); if (node.arguments) for (var i = 0; i < node.arguments.length; ++i) c(node.arguments[i], st, "Expression"); }; exports.MemberExpression = function(node, st, c) { c(node.object, st, "Expression"); if (node.computed) c(node.property, st, "Expression"); }; exports.Identifier = exports.Literal = ignore; // A custom walker that keeps track of the scope chain and the // variables defined in it. function makeScope(prev) { return {vars: Object.create(null), prev: prev}; } exports.scopeVisitor = exports.make({ Function: function(node, scope, c) { var inner = makeScope(scope); for (var i = 0; i < node.params.length; ++i) inner.vars[node.params[i].name] = {type: "argument", node: node.params[i]}; if (node.id) { var decl = node.type == "FunctionDeclaration"; (decl ? scope : inner).vars[node.id.name] = {type: decl ? "function" : "function name", node: node.id}; } c(node.body, inner, "ScopeBody"); }, TryStatement: function(node, scope, c) { c(node.block, scope, "Statement"); for (var i = 0; i < node.handlers.length; ++i) { var handler = node.handlers[i], inner = makeScope(scope); inner.vars[handler.param.name] = {type: "catch clause", node: handler.param}; c(handler.body, inner, "ScopeBody"); } if (node.finalizer) c(node.finalizer, scope, "Statement"); }, VariableDeclaration: function(node, scope, c) { for (var i = 0; i < node.declarations.length; ++i) { var decl = node.declarations[i]; scope.vars[decl.id.name] = {type: "var", node: decl.id}; if (decl.init) c(decl.init, scope, "Expression"); } } }); })(typeof exports == "undefined" ? acorn.walk = {} : exports); site_pro/codemirror-3.1/test/lint/lint.js0000644000000000000000000000616312111430706017276 0ustar rootroot/* Simple linter, based on the Acorn [1] parser module All of the existing linters either cramp my style or have huge dependencies (Closure). So here's a very simple, non-invasive one that only spots - missing semicolons and trailing commas - variables or properties that are reserved words - assigning to a variable you didn't declare [1]: https://github.com/marijnh/acorn/ */ var fs = require("fs"), acorn = require("./acorn.js"), walk = require("./walk.js"); var scopePasser = walk.make({ ScopeBody: function(node, prev, c) { c(node, node.scope); } }); function checkFile(fileName) { var file = fs.readFileSync(fileName, "utf8"); var badChar = file.match(/[\x00-\x08\x0b\x0c\x0e-\x19\uFEFF]/); if (badChar) fail("Undesirable character " + badChar[0].charCodeAt(0) + " at position " + badChar.index, {source: fileName}); try { var parsed = acorn.parse(file, { locations: true, ecmaVersion: 3, strictSemicolons: true, allowTrailingCommas: false, forbidReserved: true, sourceFile: fileName }); } catch (e) { fail(e.message, {source: fileName}); return; } var scopes = []; walk.simple(parsed, { ScopeBody: function(node, scope) { node.scope = scope; scopes.push(scope); } }, walk.scopeVisitor, {vars: Object.create(null)}); var ignoredGlobals = Object.create(null); function inScope(name, scope) { for (var cur = scope; cur; cur = cur.prev) if (name in cur.vars) return true; } function checkLHS(node, scope) { if (node.type == "Identifier" && !(node.name in ignoredGlobals) && !inScope(node.name, scope)) { ignoredGlobals[node.name] = true; fail("Assignment to global variable", node.loc); } } walk.simple(parsed, { UpdateExpression: function(node, scope) {checkLHS(node.argument, scope);}, AssignmentExpression: function(node, scope) {checkLHS(node.left, scope);}, Identifier: function(node, scope) { // Mark used identifiers for (var cur = scope; cur; cur = cur.prev) if (node.name in cur.vars) { cur.vars[node.name].used = true; return; } }, FunctionExpression: function(node) { if (node.id) fail("Named function expression", node.loc); } }, scopePasser); for (var i = 0; i < scopes.length; ++i) { var scope = scopes[i]; for (var name in scope.vars) { var info = scope.vars[name]; if (!info.used && info.type != "catch clause" && info.type != "function name" && name.charAt(0) != "_") fail("Unused " + info.type + " " + name, info.node.loc); } } } var failed = false; function fail(msg, pos) { if (pos.start) msg += " (" + pos.start.line + ":" + pos.start.column + ")"; console.log(pos.source.match(/[^\/]+$/)[0] + ": " + msg); failed = true; } function checkDir(dir) { fs.readdirSync(dir).forEach(function(file) { var fname = dir + "/" + file; if (/\.js$/.test(file)) checkFile(fname); else if (fs.lstatSync(fname).isDirectory()) checkDir(fname); }); } exports.checkDir = checkDir; exports.checkFile = checkFile; exports.success = function() { return !failed; }; site_pro/codemirror-3.1/test/lint/parse-js.js0000644000000000000000000015524012111430706020055 0ustar rootroot/*********************************************************************** A JavaScript tokenizer / parser / beautifier / compressor. This version is suitable for Node.js. With minimal changes (the exports stuff) it should work on any JS platform. This file contains the tokenizer/parser. It is a port to JavaScript of parse-js [1], a JavaScript parser library written in Common Lisp by Marijn Haverbeke. Thank you Marijn! [1] http://marijn.haverbeke.nl/parse-js/ Exported functions: - tokenizer(code) -- returns a function. Call the returned function to fetch the next token. - parse(code) -- returns an AST of the given JavaScript code. -------------------------------- (C) --------------------------------- Author: Mihai Bazon http://mihai.bazon.net/blog Distributed under the BSD license: Copyright 2010 (c) Mihai Bazon Based on parse-js (http://marijn.haverbeke.nl/parse-js/). Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ***********************************************************************/ /* -----[ Tokenizer (constants) ]----- */ var KEYWORDS = array_to_hash([ "break", "case", "catch", "const", "continue", "debugger", "default", "delete", "do", "else", "finally", "for", "function", "if", "in", "instanceof", "new", "return", "switch", "throw", "try", "typeof", "var", "void", "while", "with" ]); var RESERVED_WORDS = array_to_hash([ "abstract", "boolean", "byte", "char", "class", "double", "enum", "export", "extends", "final", "float", "goto", "implements", "import", "int", "interface", "long", "native", "package", "private", "protected", "public", "short", "static", "super", "synchronized", "throws", "transient", "volatile" ]); var KEYWORDS_BEFORE_EXPRESSION = array_to_hash([ "return", "new", "delete", "throw", "else", "case" ]); var KEYWORDS_ATOM = array_to_hash([ "false", "null", "true", "undefined" ]); var OPERATOR_CHARS = array_to_hash(characters("+-*&%=<>!?|~^")); var RE_HEX_NUMBER = /^0x[0-9a-f]+$/i; var RE_OCT_NUMBER = /^0[0-7]+$/; var RE_DEC_NUMBER = /^\d*\.?\d*(?:e[+-]?\d*(?:\d\.?|\.?\d)\d*)?$/i; var OPERATORS = array_to_hash([ "in", "instanceof", "typeof", "new", "void", "delete", "++", "--", "+", "-", "!", "~", "&", "|", "^", "*", "/", "%", ">>", "<<", ">>>", "<", ">", "<=", ">=", "==", "===", "!=", "!==", "?", "=", "+=", "-=", "/=", "*=", "%=", ">>=", "<<=", ">>>=", "|=", "^=", "&=", "&&", "||" ]); var WHITESPACE_CHARS = array_to_hash(characters(" \u00a0\n\r\t\f\u000b\u200b\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000")); var PUNC_BEFORE_EXPRESSION = array_to_hash(characters("[{(,.;:")); var PUNC_CHARS = array_to_hash(characters("[]{}(),;:")); var REGEXP_MODIFIERS = array_to_hash(characters("gmsiy")); /* -----[ Tokenizer ]----- */ var UNICODE = { // Unicode 6.1 letter: new RegExp("[\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F0\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"), combining_mark: new RegExp("[\\u0300-\\u036F\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u08FE\\u0900-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C01-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C82\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D02\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u19B0-\\u19C0\\u19C8\\u19C9\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1DC0-\\u1DE6\\u1DFC-\\u1DFF\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE26]"), connector_punctuation: new RegExp("[\\u005F\\u203F\\u2040\\u2054\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF3F]"), digit: new RegExp("[\\u0030-\\u0039\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19]") }; function is_letter(ch) { return UNICODE.letter.test(ch); }; function is_digit(ch) { ch = ch.charCodeAt(0); return ch >= 48 && ch <= 57; }; function is_unicode_digit(ch) { return UNICODE.digit.test(ch); } function is_alphanumeric_char(ch) { return is_digit(ch) || is_letter(ch); }; function is_unicode_combining_mark(ch) { return UNICODE.combining_mark.test(ch); }; function is_unicode_connector_punctuation(ch) { return UNICODE.connector_punctuation.test(ch); }; function is_identifier_start(ch) { return ch == "$" || ch == "_" || is_letter(ch); }; function is_identifier_char(ch) { return is_identifier_start(ch) || is_unicode_combining_mark(ch) || is_unicode_digit(ch) || is_unicode_connector_punctuation(ch) || ch == "\u200c" // zero-width non-joiner || ch == "\u200d" // zero-width joiner (in my ECMA-262 PDF, this is also 200c) ; }; function parse_js_number(num) { if (RE_HEX_NUMBER.test(num)) { return parseInt(num.substr(2), 16); } else if (RE_OCT_NUMBER.test(num)) { return parseInt(num.substr(1), 8); } else if (RE_DEC_NUMBER.test(num)) { return parseFloat(num); } }; function JS_Parse_Error(message, line, col, pos) { this.message = message; this.line = line + 1; this.col = col + 1; this.pos = pos + 1; this.stack = new Error().stack; }; JS_Parse_Error.prototype.toString = function() { return this.message + " (line: " + this.line + ", col: " + this.col + ", pos: " + this.pos + ")" + "\n\n" + this.stack; }; function js_error(message, line, col, pos) { throw new JS_Parse_Error(message, line, col, pos); }; function is_token(token, type, val) { return token.type == type && (val == null || token.value == val); }; var EX_EOF = {}; function tokenizer($TEXT) { var S = { text : $TEXT.replace(/\r\n?|[\n\u2028\u2029]/g, "\n").replace(/^\uFEFF/, ''), pos : 0, tokpos : 0, line : 0, tokline : 0, col : 0, tokcol : 0, newline_before : false, regex_allowed : false, comments_before : [] }; function peek() { return S.text.charAt(S.pos); }; function next(signal_eof, in_string) { var ch = S.text.charAt(S.pos++); if (signal_eof && !ch) throw EX_EOF; if (ch == "\n") { S.newline_before = S.newline_before || !in_string; ++S.line; S.col = 0; } else { ++S.col; } return ch; }; function eof() { return !S.peek(); }; function find(what, signal_eof) { var pos = S.text.indexOf(what, S.pos); if (signal_eof && pos == -1) throw EX_EOF; return pos; }; function start_token() { S.tokline = S.line; S.tokcol = S.col; S.tokpos = S.pos; }; function token(type, value, is_comment) { S.regex_allowed = ((type == "operator" && !HOP(UNARY_POSTFIX, value)) || (type == "keyword" && HOP(KEYWORDS_BEFORE_EXPRESSION, value)) || (type == "punc" && HOP(PUNC_BEFORE_EXPRESSION, value))); var ret = { type : type, value : value, line : S.tokline, col : S.tokcol, pos : S.tokpos, endpos : S.pos, nlb : S.newline_before }; if (!is_comment) { ret.comments_before = S.comments_before; S.comments_before = []; // make note of any newlines in the comments that came before for (var i = 0, len = ret.comments_before.length; i < len; i++) { ret.nlb = ret.nlb || ret.comments_before[i].nlb; } } S.newline_before = false; return ret; }; function skip_whitespace() { while (HOP(WHITESPACE_CHARS, peek())) next(); }; function read_while(pred) { var ret = "", ch = peek(), i = 0; while (ch && pred(ch, i++)) { ret += next(); ch = peek(); } return ret; }; function parse_error(err) { js_error(err, S.tokline, S.tokcol, S.tokpos); }; function read_num(prefix) { var has_e = false, after_e = false, has_x = false, has_dot = prefix == "."; var num = read_while(function(ch, i){ if (ch == "x" || ch == "X") { if (has_x) return false; return has_x = true; } if (!has_x && (ch == "E" || ch == "e")) { if (has_e) return false; return has_e = after_e = true; } if (ch == "-") { if (after_e || (i == 0 && !prefix)) return true; return false; } if (ch == "+") return after_e; after_e = false; if (ch == ".") { if (!has_dot && !has_x && !has_e) return has_dot = true; return false; } return is_alphanumeric_char(ch); }); if (prefix) num = prefix + num; var valid = parse_js_number(num); if (!isNaN(valid)) { return token("num", valid); } else { parse_error("Invalid syntax: " + num); } }; function read_escaped_char(in_string) { var ch = next(true, in_string); switch (ch) { case "n" : return "\n"; case "r" : return "\r"; case "t" : return "\t"; case "b" : return "\b"; case "v" : return "\u000b"; case "f" : return "\f"; case "0" : return "\0"; case "x" : return String.fromCharCode(hex_bytes(2)); case "u" : return String.fromCharCode(hex_bytes(4)); case "\n": return ""; default : return ch; } }; function hex_bytes(n) { var num = 0; for (; n > 0; --n) { var digit = parseInt(next(true), 16); if (isNaN(digit)) parse_error("Invalid hex-character pattern in string"); num = (num << 4) | digit; } return num; }; function read_string() { return with_eof_error("Unterminated string constant", function(){ var quote = next(), ret = ""; for (;;) { var ch = next(true); if (ch == "\\") { // read OctalEscapeSequence (XXX: deprecated if "strict mode") // https://github.com/mishoo/UglifyJS/issues/178 var octal_len = 0, first = null; ch = read_while(function(ch){ if (ch >= "0" && ch <= "7") { if (!first) { first = ch; return ++octal_len; } else if (first <= "3" && octal_len <= 2) return ++octal_len; else if (first >= "4" && octal_len <= 1) return ++octal_len; } return false; }); if (octal_len > 0) ch = String.fromCharCode(parseInt(ch, 8)); else ch = read_escaped_char(true); } else if (ch == quote) break; ret += ch; } return token("string", ret); }); }; function read_line_comment() { next(); var i = find("\n"), ret; if (i == -1) { ret = S.text.substr(S.pos); S.pos = S.text.length; } else { ret = S.text.substring(S.pos, i); S.pos = i; } return token("comment1", ret, true); }; function read_multiline_comment() { next(); return with_eof_error("Unterminated multiline comment", function(){ var i = find("*/", true), text = S.text.substring(S.pos, i); S.pos = i + 2; S.line += text.split("\n").length - 1; S.newline_before = S.newline_before || text.indexOf("\n") >= 0; // https://github.com/mishoo/UglifyJS/issues/#issue/100 if (/^@cc_on/i.test(text)) { warn("WARNING: at line " + S.line); warn("*** Found \"conditional comment\": " + text); warn("*** UglifyJS DISCARDS ALL COMMENTS. This means your code might no longer work properly in Internet Explorer."); } return token("comment2", text, true); }); }; function read_name() { var backslash = false, name = "", ch, escaped = false, hex; while ((ch = peek()) != null) { if (!backslash) { if (ch == "\\") escaped = backslash = true, next(); else if (is_identifier_char(ch)) name += next(); else break; } else { if (ch != "u") parse_error("Expecting UnicodeEscapeSequence -- uXXXX"); ch = read_escaped_char(); if (!is_identifier_char(ch)) parse_error("Unicode char: " + ch.charCodeAt(0) + " is not valid in identifier"); name += ch; backslash = false; } } if (HOP(KEYWORDS, name) && escaped) { hex = name.charCodeAt(0).toString(16).toUpperCase(); name = "\\u" + "0000".substr(hex.length) + hex + name.slice(1); } return name; }; function read_regexp(regexp) { return with_eof_error("Unterminated regular expression", function(){ var prev_backslash = false, ch, in_class = false; while ((ch = next(true))) if (prev_backslash) { regexp += "\\" + ch; prev_backslash = false; } else if (ch == "[") { in_class = true; regexp += ch; } else if (ch == "]" && in_class) { in_class = false; regexp += ch; } else if (ch == "/" && !in_class) { break; } else if (ch == "\\") { prev_backslash = true; } else { regexp += ch; } var mods = read_name(); return token("regexp", [ regexp, mods ]); }); }; function read_operator(prefix) { function grow(op) { if (!peek()) return op; var bigger = op + peek(); if (HOP(OPERATORS, bigger)) { next(); return grow(bigger); } else { return op; } }; return token("operator", grow(prefix || next())); }; function handle_slash() { next(); var regex_allowed = S.regex_allowed; switch (peek()) { case "/": S.comments_before.push(read_line_comment()); S.regex_allowed = regex_allowed; return next_token(); case "*": S.comments_before.push(read_multiline_comment()); S.regex_allowed = regex_allowed; return next_token(); } return S.regex_allowed ? read_regexp("") : read_operator("/"); }; function handle_dot() { next(); return is_digit(peek()) ? read_num(".") : token("punc", "."); }; function read_word() { var word = read_name(); return !HOP(KEYWORDS, word) ? token("name", word) : HOP(OPERATORS, word) ? token("operator", word) : HOP(KEYWORDS_ATOM, word) ? token("atom", word) : token("keyword", word); }; function with_eof_error(eof_error, cont) { try { return cont(); } catch(ex) { if (ex === EX_EOF) parse_error(eof_error); else throw ex; } }; function next_token(force_regexp) { if (force_regexp != null) return read_regexp(force_regexp); skip_whitespace(); start_token(); var ch = peek(); if (!ch) return token("eof"); if (is_digit(ch)) return read_num(); if (ch == '"' || ch == "'") return read_string(); if (HOP(PUNC_CHARS, ch)) return token("punc", next()); if (ch == ".") return handle_dot(); if (ch == "/") return handle_slash(); if (HOP(OPERATOR_CHARS, ch)) return read_operator(); if (ch == "\\" || is_identifier_start(ch)) return read_word(); parse_error("Unexpected character '" + ch + "'"); }; next_token.context = function(nc) { if (nc) S = nc; return S; }; return next_token; }; /* -----[ Parser (constants) ]----- */ var UNARY_PREFIX = array_to_hash([ "typeof", "void", "delete", "--", "++", "!", "~", "-", "+" ]); var UNARY_POSTFIX = array_to_hash([ "--", "++" ]); var ASSIGNMENT = (function(a, ret, i){ while (i < a.length) { ret[a[i]] = a[i].substr(0, a[i].length - 1); i++; } return ret; })( ["+=", "-=", "/=", "*=", "%=", ">>=", "<<=", ">>>=", "|=", "^=", "&="], { "=": true }, 0 ); var PRECEDENCE = (function(a, ret){ for (var i = 0, n = 1; i < a.length; ++i, ++n) { var b = a[i]; for (var j = 0; j < b.length; ++j) { ret[b[j]] = n; } } return ret; })( [ ["||"], ["&&"], ["|"], ["^"], ["&"], ["==", "===", "!=", "!=="], ["<", ">", "<=", ">=", "in", "instanceof"], [">>", "<<", ">>>"], ["+", "-"], ["*", "/", "%"] ], {} ); var STATEMENTS_WITH_LABELS = array_to_hash([ "for", "do", "while", "switch" ]); var ATOMIC_START_TOKEN = array_to_hash([ "atom", "num", "string", "regexp", "name" ]); /* -----[ Parser ]----- */ function NodeWithToken(str, start, end) { this.name = str; this.start = start; this.end = end; }; NodeWithToken.prototype.toString = function() { return this.name; }; function parse($TEXT, exigent_mode, embed_tokens) { var S = { input : typeof $TEXT == "string" ? tokenizer($TEXT, true) : $TEXT, token : null, prev : null, peeked : null, in_function : 0, in_directives : true, in_loop : 0, labels : [] }; S.token = next(); function is(type, value) { return is_token(S.token, type, value); }; function peek() { return S.peeked || (S.peeked = S.input()); }; function next() { S.prev = S.token; if (S.peeked) { S.token = S.peeked; S.peeked = null; } else { S.token = S.input(); } S.in_directives = S.in_directives && ( S.token.type == "string" || is("punc", ";") ); return S.token; }; function prev() { return S.prev; }; function croak(msg, line, col, pos) { var ctx = S.input.context(); js_error(msg, line != null ? line : ctx.tokline, col != null ? col : ctx.tokcol, pos != null ? pos : ctx.tokpos); }; function token_error(token, msg) { croak(msg, token.line, token.col); }; function unexpected(token) { if (token == null) token = S.token; token_error(token, "Unexpected token: " + token.type + " (" + token.value + ")"); }; function expect_token(type, val) { if (is(type, val)) { return next(); } token_error(S.token, "Unexpected token " + S.token.type + ", expected " + type); }; function expect(punc) { return expect_token("punc", punc); }; function can_insert_semicolon() { return !exigent_mode && ( S.token.nlb || is("eof") || is("punc", "}") ); }; function semicolon() { if (is("punc", ";")) next(); else if (!can_insert_semicolon()) unexpected(); }; function as() { return slice(arguments); }; function parenthesised() { expect("("); var ex = expression(); expect(")"); return ex; }; function add_tokens(str, start, end) { return str instanceof NodeWithToken ? str : new NodeWithToken(str, start, end); }; function maybe_embed_tokens(parser) { if (embed_tokens) return function() { var start = S.token; var ast = parser.apply(this, arguments); ast[0] = add_tokens(ast[0], start, prev()); return ast; }; else return parser; }; var statement = maybe_embed_tokens(function() { if (is("operator", "/") || is("operator", "/=")) { S.peeked = null; S.token = S.input(S.token.value.substr(1)); // force regexp } switch (S.token.type) { case "string": var dir = S.in_directives, stat = simple_statement(); if (dir && stat[1][0] == "string" && !is("punc", ",")) return as("directive", stat[1][1]); return stat; case "num": case "regexp": case "operator": case "atom": return simple_statement(); case "name": return is_token(peek(), "punc", ":") ? labeled_statement(prog1(S.token.value, next, next)) : simple_statement(); case "punc": switch (S.token.value) { case "{": return as("block", block_()); case "[": case "(": return simple_statement(); case ";": next(); return as("block"); default: unexpected(); } case "keyword": switch (prog1(S.token.value, next)) { case "break": return break_cont("break"); case "continue": return break_cont("continue"); case "debugger": semicolon(); return as("debugger"); case "do": return (function(body){ expect_token("keyword", "while"); return as("do", prog1(parenthesised, semicolon), body); })(in_loop(statement)); case "for": return for_(); case "function": return function_(true); case "if": return if_(); case "return": if (S.in_function == 0) croak("'return' outside of function"); return as("return", is("punc", ";") ? (next(), null) : can_insert_semicolon() ? null : prog1(expression, semicolon)); case "switch": return as("switch", parenthesised(), switch_block_()); case "throw": if (S.token.nlb) croak("Illegal newline after 'throw'"); return as("throw", prog1(expression, semicolon)); case "try": return try_(); case "var": return prog1(var_, semicolon); case "const": return prog1(const_, semicolon); case "while": return as("while", parenthesised(), in_loop(statement)); case "with": return as("with", parenthesised(), statement()); default: unexpected(); } } }); function labeled_statement(label) { S.labels.push(label); var start = S.token, stat = statement(); if (exigent_mode && !HOP(STATEMENTS_WITH_LABELS, stat[0])) unexpected(start); S.labels.pop(); return as("label", label, stat); }; function simple_statement() { return as("stat", prog1(expression, semicolon)); }; function break_cont(type) { var name; if (!can_insert_semicolon()) { name = is("name") ? S.token.value : null; } if (name != null) { next(); if (!member(name, S.labels)) croak("Label " + name + " without matching loop or statement"); } else if (S.in_loop == 0) croak(type + " not inside a loop or switch"); semicolon(); return as(type, name); }; function for_() { expect("("); var init = null; if (!is("punc", ";")) { init = is("keyword", "var") ? (next(), var_(true)) : expression(true, true); if (is("operator", "in")) { if (init[0] == "var" && init[1].length > 1) croak("Only one variable declaration allowed in for..in loop"); return for_in(init); } } return regular_for(init); }; function regular_for(init) { expect(";"); var test = is("punc", ";") ? null : expression(); expect(";"); var step = is("punc", ")") ? null : expression(); expect(")"); return as("for", init, test, step, in_loop(statement)); }; function for_in(init) { var lhs = init[0] == "var" ? as("name", init[1][0]) : init; next(); var obj = expression(); expect(")"); return as("for-in", init, lhs, obj, in_loop(statement)); }; var function_ = function(in_statement) { var name = is("name") ? prog1(S.token.value, next) : null; if (in_statement && !name) unexpected(); expect("("); return as(in_statement ? "defun" : "function", name, // arguments (function(first, a){ while (!is("punc", ")")) { if (first) first = false; else expect(","); if (!is("name")) unexpected(); a.push(S.token.value); next(); } next(); return a; })(true, []), // body (function(){ ++S.in_function; var loop = S.in_loop; S.in_directives = true; S.in_loop = 0; var a = block_(); --S.in_function; S.in_loop = loop; return a; })()); }; function if_() { var cond = parenthesised(), body = statement(), belse; if (is("keyword", "else")) { next(); belse = statement(); } return as("if", cond, body, belse); }; function block_() { expect("{"); var a = []; while (!is("punc", "}")) { if (is("eof")) unexpected(); a.push(statement()); } next(); return a; }; var switch_block_ = curry(in_loop, function(){ expect("{"); var a = [], cur = null; while (!is("punc", "}")) { if (is("eof")) unexpected(); if (is("keyword", "case")) { next(); cur = []; a.push([ expression(), cur ]); expect(":"); } else if (is("keyword", "default")) { next(); expect(":"); cur = []; a.push([ null, cur ]); } else { if (!cur) unexpected(); cur.push(statement()); } } next(); return a; }); function try_() { var body = block_(), bcatch, bfinally; if (is("keyword", "catch")) { next(); expect("("); if (!is("name")) croak("Name expected"); var name = S.token.value; next(); expect(")"); bcatch = [ name, block_() ]; } if (is("keyword", "finally")) { next(); bfinally = block_(); } if (!bcatch && !bfinally) croak("Missing catch/finally blocks"); return as("try", body, bcatch, bfinally); }; function vardefs(no_in) { var a = []; for (;;) { if (!is("name")) unexpected(); var name = S.token.value; next(); if (is("operator", "=")) { next(); a.push([ name, expression(false, no_in) ]); } else { a.push([ name ]); } if (!is("punc", ",")) break; next(); } return a; }; function var_(no_in) { return as("var", vardefs(no_in)); }; function const_() { return as("const", vardefs()); }; function new_() { var newexp = expr_atom(false), args; if (is("punc", "(")) { next(); args = expr_list(")"); } else { args = []; } return subscripts(as("new", newexp, args), true); }; var expr_atom = maybe_embed_tokens(function(allow_calls) { if (is("operator", "new")) { next(); return new_(); } if (is("punc")) { switch (S.token.value) { case "(": next(); return subscripts(prog1(expression, curry(expect, ")")), allow_calls); case "[": next(); return subscripts(array_(), allow_calls); case "{": next(); return subscripts(object_(), allow_calls); } unexpected(); } if (is("keyword", "function")) { next(); return subscripts(function_(false), allow_calls); } if (HOP(ATOMIC_START_TOKEN, S.token.type)) { var atom = S.token.type == "regexp" ? as("regexp", S.token.value[0], S.token.value[1]) : as(S.token.type, S.token.value); return subscripts(prog1(atom, next), allow_calls); } unexpected(); }); function expr_list(closing, allow_trailing_comma, allow_empty) { var first = true, a = []; while (!is("punc", closing)) { if (first) first = false; else expect(","); if (allow_trailing_comma && is("punc", closing)) break; if (is("punc", ",") && allow_empty) { a.push([ "atom", "undefined" ]); } else { a.push(expression(false)); } } next(); return a; }; function array_() { return as("array", expr_list("]", !exigent_mode, true)); }; function object_() { var first = true, a = []; while (!is("punc", "}")) { if (first) first = false; else expect(","); if (!exigent_mode && is("punc", "}")) // allow trailing comma break; var type = S.token.type; var name = as_property_name(); if (type == "name" && (name == "get" || name == "set") && !is("punc", ":")) { a.push([ as_name(), function_(false), name ]); } else { expect(":"); a.push([ name, expression(false) ]); } // FIXME [!!] Line not in original parse-js, // added to be able to warn about unquoted // keyword properties a[a.length - 1].type = type; } next(); return as("object", a); }; function as_property_name() { switch (S.token.type) { case "num": case "string": return prog1(S.token.value, next); } return as_name(); }; function as_name() { switch (S.token.type) { case "name": case "operator": case "keyword": case "atom": return prog1(S.token.value, next); default: unexpected(); } }; function subscripts(expr, allow_calls) { if (is("punc", ".")) { next(); return subscripts(as("dot", expr, as_name()), allow_calls); } if (is("punc", "[")) { next(); return subscripts(as("sub", expr, prog1(expression, curry(expect, "]"))), allow_calls); } if (allow_calls && is("punc", "(")) { next(); return subscripts(as("call", expr, expr_list(")")), true); } return expr; }; function maybe_unary(allow_calls) { if (is("operator") && HOP(UNARY_PREFIX, S.token.value)) { return make_unary("unary-prefix", prog1(S.token.value, next), maybe_unary(allow_calls)); } var val = expr_atom(allow_calls); while (is("operator") && HOP(UNARY_POSTFIX, S.token.value) && !S.token.nlb) { val = make_unary("unary-postfix", S.token.value, val); next(); } return val; }; function make_unary(tag, op, expr) { if ((op == "++" || op == "--") && !is_assignable(expr)) croak("Invalid use of " + op + " operator"); return as(tag, op, expr); }; function expr_op(left, min_prec, no_in) { var op = is("operator") ? S.token.value : null; if (op && op == "in" && no_in) op = null; var prec = op != null ? PRECEDENCE[op] : null; if (prec != null && prec > min_prec) { next(); var right = expr_op(maybe_unary(true), prec, no_in); return expr_op(as("binary", op, left, right), min_prec, no_in); } return left; }; function expr_ops(no_in) { return expr_op(maybe_unary(true), 0, no_in); }; function maybe_conditional(no_in) { var expr = expr_ops(no_in); if (is("operator", "?")) { next(); var yes = expression(false); expect(":"); return as("conditional", expr, yes, expression(false, no_in)); } return expr; }; function is_assignable(expr) { if (!exigent_mode) return true; switch (expr[0]+"") { case "dot": case "sub": case "new": case "call": return true; case "name": return expr[1] != "this"; } }; function maybe_assign(no_in) { var left = maybe_conditional(no_in), val = S.token.value; if (is("operator") && HOP(ASSIGNMENT, val)) { if (is_assignable(left)) { next(); return as("assign", ASSIGNMENT[val], left, maybe_assign(no_in)); } croak("Invalid assignment"); } return left; }; var expression = maybe_embed_tokens(function(commas, no_in) { if (arguments.length == 0) commas = true; var expr = maybe_assign(no_in); if (commas && is("punc", ",")) { next(); return as("seq", expr, expression(true, no_in)); } return expr; }); function in_loop(cont) { try { ++S.in_loop; return cont(); } finally { --S.in_loop; } }; return as("toplevel", (function(a){ while (!is("eof")) a.push(statement()); return a; })([])); }; /* -----[ Utilities ]----- */ function curry(f) { var args = slice(arguments, 1); return function() { return f.apply(this, args.concat(slice(arguments))); }; }; function prog1(ret) { if (ret instanceof Function) ret = ret(); for (var i = 1, n = arguments.length; --n > 0; ++i) arguments[i](); return ret; }; function array_to_hash(a) { var ret = {}; for (var i = 0; i < a.length; ++i) ret[a[i]] = true; return ret; }; function slice(a, start) { return Array.prototype.slice.call(a, start || 0); }; function characters(str) { return str.split(""); }; function member(name, array) { for (var i = array.length; --i >= 0;) if (array[i] == name) return true; return false; }; function HOP(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }; var warn = function() {}; /* -----[ Exports ]----- */ exports.tokenizer = tokenizer; exports.parse = parse; exports.slice = slice; exports.curry = curry; exports.member = member; exports.array_to_hash = array_to_hash; exports.PRECEDENCE = PRECEDENCE; exports.KEYWORDS_ATOM = KEYWORDS_ATOM; exports.RESERVED_WORDS = RESERVED_WORDS; exports.KEYWORDS = KEYWORDS; exports.ATOMIC_START_TOKEN = ATOMIC_START_TOKEN; exports.OPERATORS = OPERATORS; exports.is_alphanumeric_char = is_alphanumeric_char; exports.is_identifier_start = is_identifier_start; exports.is_identifier_char = is_identifier_char; exports.set_logger = function(logger) { warn = logger; }; // Local variables: // js-indent-level: 8 // End: site_pro/codemirror-3.1/test/lint/acorn.js0000644000000000000000000017425112111430706017436 0ustar rootroot// Acorn is a tiny, fast JavaScript parser written in JavaScript. // // Acorn was written by Marijn Haverbeke and released under an MIT // license. The Unicode regexps (for identifiers and whitespace) were // taken from [Esprima](http://esprima.org) by Ariya Hidayat. // // Git repositories for Acorn are available at // // http://marijnhaverbeke.nl/git/acorn // https://github.com/marijnh/acorn.git // // Please use the [github bug tracker][ghbt] to report issues. // // [ghbt]: https://github.com/marijnh/acorn/issues (function(exports) { "use strict"; exports.version = "0.0.1"; // The main exported interface (under `window.acorn` when in the // browser) is a `parse` function that takes a code string and // returns an abstract syntax tree as specified by [Mozilla parser // API][api], with the caveat that the SpiderMonkey-specific syntax // (`let`, `yield`, inline XML, etc) is not recognized. // // [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API var options, input, inputLen, sourceFile; exports.parse = function(inpt, opts) { input = String(inpt); inputLen = input.length; options = opts || {}; for (var opt in defaultOptions) if (!options.hasOwnProperty(opt)) options[opt] = defaultOptions[opt]; sourceFile = options.sourceFile || null; return parseTopLevel(options.program); }; // A second optional argument can be given to further configure // the parser process. These options are recognized: var defaultOptions = exports.defaultOptions = { // `ecmaVersion` indicates the ECMAScript version to parse. Must // be either 3 or 5. This // influences support for strict mode, the set of reserved words, and // support for getters and setter. ecmaVersion: 5, // Turn on `strictSemicolons` to prevent the parser from doing // automatic semicolon insertion. strictSemicolons: false, // When `allowTrailingCommas` is false, the parser will not allow // trailing commas in array and object literals. allowTrailingCommas: true, // By default, reserved words are not enforced. Enable // `forbidReserved` to enforce them. forbidReserved: false, // When `trackComments` is turned on, the parser will attach // `commentsBefore` and `commentsAfter` properties to AST nodes // holding arrays of strings. A single comment may appear in both // a `commentsBefore` and `commentsAfter` array (of the nodes // after and before it), but never twice in the before (or after) // array of different nodes. trackComments: false, // When `locations` is on, `loc` properties holding objects with // `start` and `end` properties in `{line, column}` form (with // line being 1-based and column 0-based) will be attached to the // nodes. locations: false, // Nodes have their start and end characters offsets recorded in // `start` and `end` properties (directly on the node, rather than // the `loc` object, which holds line/column data. To also add a // [semi-standardized][range] `range` property holding a `[start, // end]` array with the same numbers, set the `ranges` option to // `true`. // // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678 ranges: false, // It is possible to parse multiple files into a single AST by // passing the tree produced by parsing the first file as // `program` option in subsequent parses. This will add the // toplevel forms of the parsed file to the `Program` (top) node // of an existing parse tree. program: null, // When `location` is on, you can pass this to record the source // file in every node's `loc` object. sourceFile: null }; // The `getLineInfo` function is mostly useful when the // `locations` option is off (for performance reasons) and you // want to find the line/column position for a given character // offset. `input` should be the code string that the offset refers // into. var getLineInfo = exports.getLineInfo = function(input, offset) { for (var line = 1, cur = 0;;) { lineBreak.lastIndex = cur; var match = lineBreak.exec(input); if (match && match.index < offset) { ++line; cur = match.index + match[0].length; } else break; } return {line: line, column: offset - cur}; }; // Acorn is organized as a tokenizer and a recursive-descent parser. // Both use (closure-)global variables to keep their state and // communicate. We already saw the `options`, `input`, and // `inputLen` variables above (set in `parse`). // The current position of the tokenizer in the input. var tokPos; // The start and end offsets of the current token. var tokStart, tokEnd; // When `options.locations` is true, these hold objects // containing the tokens start and end line/column pairs. var tokStartLoc, tokEndLoc; // The type and value of the current token. Token types are objects, // named by variables against which they can be compared, and // holding properties that describe them (indicating, for example, // the precedence of an infix operator, and the original name of a // keyword token). The kind of value that's held in `tokVal` depends // on the type of the token. For literals, it is the literal value, // for operators, the operator name, and so on. var tokType, tokVal; // These are used to hold arrays of comments when // `options.trackComments` is true. var tokCommentsBefore, tokCommentsAfter; // Interal state for the tokenizer. To distinguish between division // operators and regular expressions, it remembers whether the last // token was one that is allowed to be followed by an expression. // (If it is, a slash is probably a regexp, if it isn't it's a // division operator. See the `parseStatement` function for a // caveat.) var tokRegexpAllowed, tokComments; // When `options.locations` is true, these are used to keep // track of the current line, and know when a new line has been // entered. See the `curLineLoc` function. var tokCurLine, tokLineStart, tokLineStartNext; // These store the position of the previous token, which is useful // when finishing a node and assigning its `end` position. var lastStart, lastEnd, lastEndLoc; // This is the parser's state. `inFunction` is used to reject // `return` statements outside of functions, `labels` to verify that // `break` and `continue` have somewhere to jump to, and `strict` // indicates whether strict mode is on. var inFunction, labels, strict; // This function is used to raise exceptions on parse errors. It // takes either a `{line, column}` object or an offset integer (into // the current `input`) as `pos` argument. It attaches the position // to the end of the error message, and then raises a `SyntaxError` // with that message. function raise(pos, message) { if (typeof pos == "number") pos = getLineInfo(input, pos); message += " (" + pos.line + ":" + pos.column + ")"; throw new SyntaxError(message); } // ## Token types // The assignment of fine-grained, information-carrying type objects // allows the tokenizer to store the information it has about a // token in a way that is very cheap for the parser to look up. // All token type variables start with an underscore, to make them // easy to recognize. // These are the general types. The `type` property is only used to // make them recognizeable when debugging. var _num = {type: "num"}, _regexp = {type: "regexp"}, _string = {type: "string"}; var _name = {type: "name"}, _eof = {type: "eof"}; // Keyword tokens. The `keyword` property (also used in keyword-like // operators) indicates that the token originated from an // identifier-like word, which is used when parsing property names. // // The `beforeExpr` property is used to disambiguate between regular // expressions and divisions. It is set on all token types that can // be followed by an expression (thus, a slash after them would be a // regular expression). // // `isLoop` marks a keyword as starting a loop, which is important // to know when parsing a label, in order to allow or disallow // continue jumps to that label. var _break = {keyword: "break"}, _case = {keyword: "case", beforeExpr: true}, _catch = {keyword: "catch"}; var _continue = {keyword: "continue"}, _debugger = {keyword: "debugger"}, _default = {keyword: "default"}; var _do = {keyword: "do", isLoop: true}, _else = {keyword: "else", beforeExpr: true}; var _finally = {keyword: "finally"}, _for = {keyword: "for", isLoop: true}, _function = {keyword: "function"}; var _if = {keyword: "if"}, _return = {keyword: "return", beforeExpr: true}, _switch = {keyword: "switch"}; var _throw = {keyword: "throw", beforeExpr: true}, _try = {keyword: "try"}, _var = {keyword: "var"}; var _while = {keyword: "while", isLoop: true}, _with = {keyword: "with"}, _new = {keyword: "new", beforeExpr: true}; var _this = {keyword: "this"}; // The keywords that denote values. var _null = {keyword: "null", atomValue: null}, _true = {keyword: "true", atomValue: true}; var _false = {keyword: "false", atomValue: false}; // Some keywords are treated as regular operators. `in` sometimes // (when parsing `for`) needs to be tested against specifically, so // we assign a variable name to it for quick comparing. var _in = {keyword: "in", binop: 7, beforeExpr: true}; // Map keyword names to token types. var keywordTypes = {"break": _break, "case": _case, "catch": _catch, "continue": _continue, "debugger": _debugger, "default": _default, "do": _do, "else": _else, "finally": _finally, "for": _for, "function": _function, "if": _if, "return": _return, "switch": _switch, "throw": _throw, "try": _try, "var": _var, "while": _while, "with": _with, "null": _null, "true": _true, "false": _false, "new": _new, "in": _in, "instanceof": {keyword: "instanceof", binop: 7}, "this": _this, "typeof": {keyword: "typeof", prefix: true}, "void": {keyword: "void", prefix: true}, "delete": {keyword: "delete", prefix: true}}; // Punctuation token types. Again, the `type` property is purely for debugging. var _bracketL = {type: "[", beforeExpr: true}, _bracketR = {type: "]"}, _braceL = {type: "{", beforeExpr: true}; var _braceR = {type: "}"}, _parenL = {type: "(", beforeExpr: true}, _parenR = {type: ")"}; var _comma = {type: ",", beforeExpr: true}, _semi = {type: ";", beforeExpr: true}; var _colon = {type: ":", beforeExpr: true}, _dot = {type: "."}, _question = {type: "?", beforeExpr: true}; // Operators. These carry several kinds of properties to help the // parser use them properly (the presence of these properties is // what categorizes them as operators). // // `binop`, when present, specifies that this operator is a binary // operator, and will refer to its precedence. // // `prefix` and `postfix` mark the operator as a prefix or postfix // unary operator. `isUpdate` specifies that the node produced by // the operator should be of type UpdateExpression rather than // simply UnaryExpression (`++` and `--`). // // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as // binary operators with a very low precedence, that should result // in AssignmentExpression nodes. var _slash = {binop: 10, beforeExpr: true}, _eq = {isAssign: true, beforeExpr: true}; var _assign = {isAssign: true, beforeExpr: true}, _plusmin = {binop: 9, prefix: true, beforeExpr: true}; var _incdec = {postfix: true, prefix: true, isUpdate: true}, _prefix = {prefix: true, beforeExpr: true}; var _bin1 = {binop: 1, beforeExpr: true}, _bin2 = {binop: 2, beforeExpr: true}; var _bin3 = {binop: 3, beforeExpr: true}, _bin4 = {binop: 4, beforeExpr: true}; var _bin5 = {binop: 5, beforeExpr: true}, _bin6 = {binop: 6, beforeExpr: true}; var _bin7 = {binop: 7, beforeExpr: true}, _bin8 = {binop: 8, beforeExpr: true}; var _bin10 = {binop: 10, beforeExpr: true}; // This is a trick taken from Esprima. It turns out that, on // non-Chrome browsers, to check whether a string is in a set, a // predicate containing a big ugly `switch` statement is faster than // a regular expression, and on Chrome the two are about on par. // This function uses `eval` (non-lexical) to produce such a // predicate from a space-separated string of words. // // It starts by sorting the words by length. function makePredicate(words) { words = words.split(" "); var f = "", cats = []; out: for (var i = 0; i < words.length; ++i) { for (var j = 0; j < cats.length; ++j) if (cats[j][0].length == words[i].length) { cats[j].push(words[i]); continue out; } cats.push([words[i]]); } function compareTo(arr) { if (arr.length == 1) return f += "return str === " + JSON.stringify(arr[0]) + ";"; f += "switch(str){"; for (var i = 0; i < arr.length; ++i) f += "case " + JSON.stringify(arr[i]) + ":"; f += "return true}return false;"; } // When there are more than three length categories, an outer // switch first dispatches on the lengths, to save on comparisons. if (cats.length > 3) { cats.sort(function(a, b) {return b.length - a.length;}); f += "switch(str.length){"; for (var i = 0; i < cats.length; ++i) { var cat = cats[i]; f += "case " + cat[0].length + ":"; compareTo(cat); } f += "}"; // Otherwise, simply generate a flat `switch` statement. } else { compareTo(words); } return new Function("str", f); } // The ECMAScript 3 reserved word list. var isReservedWord3 = makePredicate("abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile"); // ECMAScript 5 reserved words. var isReservedWord5 = makePredicate("class enum extends super const export import"); // The additional reserved words in strict mode. var isStrictReservedWord = makePredicate("implements interface let package private protected public static yield"); // The forbidden variable names in strict mode. var isStrictBadIdWord = makePredicate("eval arguments"); // And the keywords. var isKeyword = makePredicate("break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this"); // ## Character categories // Big ugly regular expressions that match characters in the // whitespace, identifier, and identifier-start categories. These // are only applied when a character is found to actually have a // code point above 128. var nonASCIIwhitespace = /[\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]/; var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; var nonASCIIidentifierChars = "\u0371-\u0374\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u0620-\u0649\u0672-\u06d3\u06e7-\u06e8\u06fb-\u06fc\u0730-\u074a\u0800-\u0814\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0840-\u0857\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962-\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09d7\u09df-\u09e0\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5f-\u0b60\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2-\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d46-\u0d48\u0d57\u0d62-\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e34-\u0e3a\u0e40-\u0e45\u0e50-\u0e59\u0eb4-\u0eb9\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f41-\u0f47\u0f71-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1029\u1040-\u1049\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u170e-\u1710\u1720-\u1730\u1740-\u1750\u1772\u1773\u1780-\u17b2\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1920-\u192b\u1930-\u193b\u1951-\u196d\u19b0-\u19c0\u19c8-\u19c9\u19d0-\u19d9\u1a00-\u1a15\u1a20-\u1a53\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b46-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1bb0-\u1bb9\u1be6-\u1bf3\u1c00-\u1c22\u1c40-\u1c49\u1c5b-\u1c7d\u1cd0-\u1cd2\u1d00-\u1dbe\u1e01-\u1f15\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2d81-\u2d96\u2de0-\u2dff\u3021-\u3028\u3099\u309a\ua640-\ua66d\ua674-\ua67d\ua69f\ua6f0-\ua6f1\ua7f8-\ua800\ua806\ua80b\ua823-\ua827\ua880-\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8f3-\ua8f7\ua900-\ua909\ua926-\ua92d\ua930-\ua945\ua980-\ua983\ua9b3-\ua9c0\uaa00-\uaa27\uaa40-\uaa41\uaa4c-\uaa4d\uaa50-\uaa59\uaa7b\uaae0-\uaae9\uaaf2-\uaaf3\uabc0-\uabe1\uabec\uabed\uabf0-\uabf9\ufb20-\ufb28\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); // Whether a single character denotes a newline. var newline = /[\n\r\u2028\u2029]/; // Matches a whole line break (where CRLF is considered a single // line break). Used to count lines. var lineBreak = /\r\n|[\n\r\u2028\u2029]/g; // Test whether a given character code starts an identifier. function isIdentifierStart(code) { if (code < 65) return code === 36; if (code < 91) return true; if (code < 97) return code === 95; if (code < 123)return true; return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); } // Test whether a given character is part of an identifier. function isIdentifierChar(code) { if (code < 48) return code === 36; if (code < 58) return true; if (code < 65) return false; if (code < 91) return true; if (code < 97) return code === 95; if (code < 123)return true; return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); } // ## Tokenizer // These are used when `options.locations` is on, in order to track // the current line number and start of line offset, in order to set // `tokStartLoc` and `tokEndLoc`. function nextLineStart() { lineBreak.lastIndex = tokLineStart; var match = lineBreak.exec(input); return match ? match.index + match[0].length : input.length + 1; } function curLineLoc() { while (tokLineStartNext <= tokPos) { ++tokCurLine; tokLineStart = tokLineStartNext; tokLineStartNext = nextLineStart(); } return {line: tokCurLine, column: tokPos - tokLineStart}; } // Reset the token state. Used at the start of a parse. function initTokenState() { tokCurLine = 1; tokPos = tokLineStart = 0; tokLineStartNext = nextLineStart(); tokRegexpAllowed = true; tokComments = null; skipSpace(); } // Called at the end of every token. Sets `tokEnd`, `tokVal`, // `tokCommentsAfter`, and `tokRegexpAllowed`, and skips the space // after the token, so that the next one's `tokStart` will point at // the right position. function finishToken(type, val) { tokEnd = tokPos; if (options.locations) tokEndLoc = curLineLoc(); tokType = type; skipSpace(); tokVal = val; tokCommentsAfter = tokComments; tokRegexpAllowed = type.beforeExpr; } function skipBlockComment() { var end = input.indexOf("*/", tokPos += 2); if (end === -1) raise(tokPos - 2, "Unterminated comment"); if (options.trackComments) (tokComments || (tokComments = [])).push(input.slice(tokPos, end)); tokPos = end + 2; } function skipLineComment() { var start = tokPos; var ch = input.charCodeAt(tokPos+=2); while (tokPos < inputLen && ch !== 10 && ch !== 13 && ch !== 8232 && ch !== 8329) { ++tokPos; ch = input.charCodeAt(tokPos); } (tokComments || (tokComments = [])).push(input.slice(start, tokPos)); } // Called at the start of the parse and after every token. Skips // whitespace and comments, and, if `options.trackComments` is on, // will store all skipped comments in `tokComments`. function skipSpace() { tokComments = null; while (tokPos < inputLen) { var ch = input.charCodeAt(tokPos); if (ch === 47) { // '/' var next = input.charCodeAt(tokPos+1); if (next === 42) { // '*' skipBlockComment(); } else if (next === 47) { // '/' skipLineComment(); } else break; } else if (ch < 14 && ch > 8) { ++tokPos; } else if (ch === 32 || ch === 160) { // ' ', '\xa0' ++tokPos; } else if (ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) { ++tokPos; } else { break; } } } // ### Token reading // This is the function that is called to fetch the next token. It // is somewhat obscure, because it works in character codes rather // than characters, and because operator parsing has been inlined // into it. // // All in the name of speed. // // The `forceRegexp` parameter is used in the one case where the // `tokRegexpAllowed` trick does not work. See `parseStatement`. function readToken(forceRegexp) { tokStart = tokPos; if (options.locations) tokStartLoc = curLineLoc(); tokCommentsBefore = tokComments; if (forceRegexp) return readRegexp(); if (tokPos >= inputLen) return finishToken(_eof); var code = input.charCodeAt(tokPos); // Identifier or keyword. '\uXXXX' sequences are allowed in // identifiers, so '\' also dispatches to that. if (isIdentifierStart(code) || code === 92 /* '\' */) return readWord(); var next = input.charCodeAt(tokPos+1); switch(code) { // The interpretation of a dot depends on whether it is followed // by a digit. case 46: // '.' if (next >= 48 && next <= 57) return readNumber(String.fromCharCode(code)); ++tokPos; return finishToken(_dot); // Punctuation tokens. case 40: ++tokPos; return finishToken(_parenL); case 41: ++tokPos; return finishToken(_parenR); case 59: ++tokPos; return finishToken(_semi); case 44: ++tokPos; return finishToken(_comma); case 91: ++tokPos; return finishToken(_bracketL); case 93: ++tokPos; return finishToken(_bracketR); case 123: ++tokPos; return finishToken(_braceL); case 125: ++tokPos; return finishToken(_braceR); case 58: ++tokPos; return finishToken(_colon); case 63: ++tokPos; return finishToken(_question); // '0x' is a hexadecimal number. case 48: // '0' if (next === 120 || next === 88) return readHexNumber(); // Anything else beginning with a digit is an integer, octal // number, or float. case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9 return readNumber(String.fromCharCode(code)); // Quotes produce strings. case 34: case 39: // '"', "'" return readString(code); // Operators are parsed inline in tiny state machines. '=' (61) is // often referred to. `finishOp` simply skips the amount of // characters it is given as second argument, and returns a token // of the type given by its first argument. case 47: // '/' if (tokRegexpAllowed) {++tokPos; return readRegexp();} if (next === 61) return finishOp(_assign, 2); return finishOp(_slash, 1); case 37: case 42: // '%*' if (next === 61) return finishOp(_assign, 2); return finishOp(_bin10, 1); case 124: case 38: // '|&' if (next === code) return finishOp(code === 124 ? _bin1 : _bin2, 2); if (next === 61) return finishOp(_assign, 2); return finishOp(code === 124 ? _bin3 : _bin5, 1); case 94: // '^' if (next === 61) return finishOp(_assign, 2); return finishOp(_bin4, 1); case 43: case 45: // '+-' if (next === code) return finishOp(_incdec, 2); if (next === 61) return finishOp(_assign, 2); return finishOp(_plusmin, 1); case 60: case 62: // '<>' var size = 1; if (next === code) { size = code === 62 && input.charCodeAt(tokPos+2) === 62 ? 3 : 2; if (input.charCodeAt(tokPos + size) === 61) return finishOp(_assign, size + 1); return finishOp(_bin8, size); } if (next === 61) size = input.charCodeAt(tokPos+2) === 61 ? 3 : 2; return finishOp(_bin7, size); case 61: case 33: // '=!' if (next === 61) return finishOp(_bin6, input.charCodeAt(tokPos+2) === 61 ? 3 : 2); return finishOp(code === 61 ? _eq : _prefix, 1); case 126: // '~' return finishOp(_prefix, 1); } // If we are here, we either found a non-ASCII identifier // character, or something that's entirely disallowed. var ch = String.fromCharCode(code); if (ch === "\\" || nonASCIIidentifierStart.test(ch)) return readWord(); raise(tokPos, "Unexpected character '" + ch + "'"); } function finishOp(type, size) { var str = input.slice(tokPos, tokPos + size); tokPos += size; finishToken(type, str); } // Parse a regular expression. Some context-awareness is necessary, // since a '/' inside a '[]' set does not end the expression. function readRegexp() { var content = "", escaped, inClass, start = tokPos; for (;;) { if (tokPos >= inputLen) raise(start, "Unterminated regular expression"); var ch = input.charAt(tokPos); if (newline.test(ch)) raise(start, "Unterminated regular expression"); if (!escaped) { if (ch === "[") inClass = true; else if (ch === "]" && inClass) inClass = false; else if (ch === "/" && !inClass) break; escaped = ch === "\\"; } else escaped = false; ++tokPos; } var content = input.slice(start, tokPos); ++tokPos; // Need to use `readWord1` because '\uXXXX' sequences are allowed // here (don't ask). var mods = readWord1(); if (mods && !/^[gmsiy]*$/.test(mods)) raise(start, "Invalid regexp flag"); return finishToken(_regexp, new RegExp(content, mods)); } // Read an integer in the given radix. Return null if zero digits // were read, the integer value otherwise. When `len` is given, this // will return `null` unless the integer has exactly `len` digits. function readInt(radix, len) { var start = tokPos, total = 0; for (;;) { var code = input.charCodeAt(tokPos), val; if (code >= 97) val = code - 97 + 10; // a else if (code >= 65) val = code - 65 + 10; // A else if (code >= 48 && code <= 57) val = code - 48; // 0-9 else val = Infinity; if (val >= radix) break; ++tokPos; total = total * radix + val; } if (tokPos === start || len != null && tokPos - start !== len) return null; return total; } function readHexNumber() { tokPos += 2; // 0x var val = readInt(16); if (val == null) raise(tokStart + 2, "Expected hexadecimal number"); if (isIdentifierStart(input.charCodeAt(tokPos))) raise(tokPos, "Identifier directly after number"); return finishToken(_num, val); } // Read an integer, octal integer, or floating-point number. function readNumber(ch) { var start = tokPos, isFloat = ch === "."; if (!isFloat && readInt(10) == null) raise(start, "Invalid number"); if (isFloat || input.charAt(tokPos) === ".") { var next = input.charAt(++tokPos); if (next === "-" || next === "+") ++tokPos; if (readInt(10) === null && ch === ".") raise(start, "Invalid number"); isFloat = true; } if (/e/i.test(input.charAt(tokPos))) { var next = input.charAt(++tokPos); if (next === "-" || next === "+") ++tokPos; if (readInt(10) === null) raise(start, "Invalid number") isFloat = true; } if (isIdentifierStart(input.charCodeAt(tokPos))) raise(tokPos, "Identifier directly after number"); var str = input.slice(start, tokPos), val; if (isFloat) val = parseFloat(str); else if (ch !== "0" || str.length === 1) val = parseInt(str, 10); else if (/[89]/.test(str) || strict) raise(start, "Invalid number"); else val = parseInt(str, 8); return finishToken(_num, val); } // Read a string value, interpreting backslash-escapes. function readString(quote) { tokPos++; var str = []; for (;;) { if (tokPos >= inputLen) raise(tokStart, "Unterminated string constant"); var ch = input.charCodeAt(tokPos); if (ch === quote) { ++tokPos; return finishToken(_string, String.fromCharCode.apply(null, str)); } if (ch === 92) { // '\' ch = input.charCodeAt(++tokPos); var octal = /^[0-7]+/.exec(input.slice(tokPos, tokPos + 3)); if (octal) octal = octal[0]; while (octal && parseInt(octal, 8) > 255) octal = octal.slice(0, octal.length - 1); if (octal === "0") octal = null; ++tokPos; if (octal) { if (strict) raise(tokPos - 2, "Octal literal in strict mode"); str.push(parseInt(octal, 8)); tokPos += octal.length - 1; } else { switch (ch) { case 110: str.push(10); break; // 'n' -> '\n' case 114: str.push(13); break; // 'r' -> '\r' case 120: str.push(readHexChar(2)); break; // 'x' case 117: str.push(readHexChar(4)); break; // 'u' case 85: str.push(readHexChar(8)); break; // 'U' case 116: str.push(9); break; // 't' -> '\t' case 98: str.push(8); break; // 'b' -> '\b' case 118: str.push(11); break; // 'v' -> '\u000b' case 102: str.push(12); break; // 'f' -> '\f' case 48: str.push(0); break; // 0 -> '\0' case 13: if (input.charCodeAt(tokPos) === 10) ++tokPos; // '\r\n' case 10: break; // ' \n' default: str.push(ch); break; } } } else { if (ch === 13 || ch === 10 || ch === 8232 || ch === 8329) raise(tokStart, "Unterminated string constant"); if (ch !== 92) str.push(ch); // '\' ++tokPos; } } } // Used to read character escape sequences ('\x', '\u', '\U'). function readHexChar(len) { var n = readInt(16, len); if (n === null) raise(tokStart, "Bad character escape sequence"); return n; } // Used to signal to callers of `readWord1` whether the word // contained any escape sequences. This is needed because words with // escape sequences must not be interpreted as keywords. var containsEsc; // Read an identifier, and return it as a string. Sets `containsEsc` // to whether the word contained a '\u' escape. // // Only builds up the word character-by-character when it actually // containeds an escape, as a micro-optimization. function readWord1() { containsEsc = false; var word, first = true, start = tokPos; for (;;) { var ch = input.charCodeAt(tokPos); if (isIdentifierChar(ch)) { if (containsEsc) word += input.charAt(tokPos); ++tokPos; } else if (ch === 92) { // "\" if (!containsEsc) word = input.slice(start, tokPos); containsEsc = true; if (input.charCodeAt(++tokPos) != 117) // "u" raise(tokPos, "Expecting Unicode escape sequence \\uXXXX"); ++tokPos; var esc = readHexChar(4); var escStr = String.fromCharCode(esc); if (!escStr) raise(tokPos - 1, "Invalid Unicode escape"); if (!(first ? isIdentifierStart(esc) : isIdentifierChar(esc))) raise(tokPos - 4, "Invalid Unicode escape"); word += escStr; } else { break; } first = false; } return containsEsc ? word : input.slice(start, tokPos); } // Read an identifier or keyword token. Will check for reserved // words when necessary. function readWord() { var word = readWord1(); var type = _name; if (!containsEsc) { if (isKeyword(word)) type = keywordTypes[word]; else if (options.forbidReserved && (options.ecmaVersion === 3 ? isReservedWord3 : isReservedWord5)(word) || strict && isStrictReservedWord(word)) raise(tokStart, "The keyword '" + word + "' is reserved"); } return finishToken(type, word); } // ## Parser // A recursive descent parser operates by defining functions for all // syntactic elements, and recursively calling those, each function // advancing the input stream and returning an AST node. Precedence // of constructs (for example, the fact that `!x[1]` means `!(x[1])` // instead of `(!x)[1]` is handled by the fact that the parser // function that parses unary prefix operators is called first, and // in turn calls the function that parses `[]` subscripts — that // way, it'll receive the node for `x[1]` already parsed, and wraps // *that* in the unary operator node. // // Acorn uses an [operator precedence parser][opp] to handle binary // operator precedence, because it is much more compact than using // the technique outlined above, which uses different, nesting // functions to specify precedence, for all of the ten binary // precedence levels that JavaScript defines. // // [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser // ### Parser utilities // Continue to the next token. function next() { lastStart = tokStart; lastEnd = tokEnd; lastEndLoc = tokEndLoc; readToken(); } // Enter strict mode. Re-reads the next token to please pedantic // tests ("use strict"; 010; -- should fail). function setStrict(strct) { strict = strct; tokPos = lastEnd; skipSpace(); readToken(); } // Start an AST node, attaching a start offset and optionally a // `commentsBefore` property to it. function startNode() { var node = {type: null, start: tokStart, end: null}; if (options.trackComments && tokCommentsBefore) { node.commentsBefore = tokCommentsBefore; tokCommentsBefore = null; } if (options.locations) node.loc = {start: tokStartLoc, end: null, source: sourceFile}; if (options.ranges) node.range = [tokStart, 0]; return node; } // Start a node whose start offset/comments information should be // based on the start of another node. For example, a binary // operator node is only started after its left-hand side has // already been parsed. function startNodeFrom(other) { var node = {type: null, start: other.start}; if (other.commentsBefore) { node.commentsBefore = other.commentsBefore; other.commentsBefore = null; } if (options.locations) node.loc = {start: other.loc.start, end: null, source: other.loc.source}; if (options.ranges) node.range = [other.range[0], 0]; return node; } // Finish an AST node, adding `type`, `end`, and `commentsAfter` // properties. // // We keep track of the last node that we finished, in order // 'bubble' `commentsAfter` properties up to the biggest node. I.e. // in '`1 + 1 // foo', the comment should be attached to the binary // operator node, not the second literal node. var lastFinishedNode; function finishNode(node, type) { node.type = type; node.end = lastEnd; if (options.trackComments) { if (tokCommentsAfter) { node.commentsAfter = tokCommentsAfter; tokCommentsAfter = null; } else if (lastFinishedNode && lastFinishedNode.end === lastEnd) { node.commentsAfter = lastFinishedNode.commentsAfter; lastFinishedNode.commentsAfter = null; } lastFinishedNode = node; } if (options.locations) node.loc.end = lastEndLoc; if (options.ranges) node.range[1] = lastEnd; return node; } // Test whether a statement node is the string literal `"use strict"`. function isUseStrict(stmt) { return options.ecmaVersion >= 5 && stmt.type === "ExpressionStatement" && stmt.expression.type === "Literal" && stmt.expression.value === "use strict"; } // Predicate that tests whether the next token is of the given // type, and if yes, consumes it as a side effect. function eat(type) { if (tokType === type) { next(); return true; } } // Test whether a semicolon can be inserted at the current position. function canInsertSemicolon() { return !options.strictSemicolons && (tokType === _eof || tokType === _braceR || newline.test(input.slice(lastEnd, tokStart))); } // Consume a semicolon, or, failing that, see if we are allowed to // pretend that there is a semicolon at this position. function semicolon() { if (!eat(_semi) && !canInsertSemicolon()) unexpected(); } // Expect a token of a given type. If found, consume it, otherwise, // raise an unexpected token error. function expect(type) { if (tokType === type) next(); else unexpected(); } // Raise an unexpected token error. function unexpected() { raise(tokStart, "Unexpected token"); } // Verify that a node is an lval — something that can be assigned // to. function checkLVal(expr) { if (expr.type !== "Identifier" && expr.type !== "MemberExpression") raise(expr.start, "Assigning to rvalue"); if (strict && expr.type === "Identifier" && isStrictBadIdWord(expr.name)) raise(expr.start, "Assigning to " + expr.name + " in strict mode"); } // ### Statement parsing // Parse a program. Initializes the parser, reads any number of // statements, and wraps them in a Program node. Optionally takes a // `program` argument. If present, the statements will be appended // to its body instead of creating a new node. function parseTopLevel(program) { initTokenState(); lastStart = lastEnd = tokPos; if (options.locations) lastEndLoc = curLineLoc(); inFunction = strict = null; labels = []; readToken(); var node = program || startNode(), first = true; if (!program) node.body = []; while (tokType !== _eof) { var stmt = parseStatement(); node.body.push(stmt); if (first && isUseStrict(stmt)) setStrict(true); first = false; } return finishNode(node, "Program"); }; var loopLabel = {kind: "loop"}, switchLabel = {kind: "switch"}; // Parse a single statement. // // If expecting a statement and finding a slash operator, parse a // regular expression literal. This is to handle cases like // `if (foo) /blah/.exec(foo);`, where looking at the previous token // does not help. function parseStatement() { if (tokType === _slash) readToken(true); var starttype = tokType, node = startNode(); // Most types of statements are recognized by the keyword they // start with. Many are trivial to parse, some require a bit of // complexity. switch (starttype) { case _break: case _continue: next(); var isBreak = starttype === _break; if (eat(_semi) || canInsertSemicolon()) node.label = null; else if (tokType !== _name) unexpected(); else { node.label = parseIdent(); semicolon(); } // Verify that there is an actual destination to break or // continue to. for (var i = 0; i < labels.length; ++i) { var lab = labels[i]; if (node.label == null || lab.name === node.label.name) { if (lab.kind != null && (isBreak || lab.kind === "loop")) break; if (node.label && isBreak) break; } } if (i === labels.length) raise(node.start, "Unsyntactic " + starttype.keyword); return finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement"); case _debugger: next(); return finishNode(node, "DebuggerStatement"); case _do: next(); labels.push(loopLabel); node.body = parseStatement(); labels.pop(); expect(_while); node.test = parseParenExpression(); semicolon(); return finishNode(node, "DoWhileStatement"); // Disambiguating between a `for` and a `for`/`in` loop is // non-trivial. Basically, we have to parse the init `var` // statement or expression, disallowing the `in` operator (see // the second parameter to `parseExpression`), and then check // whether the next token is `in`. When there is no init part // (semicolon immediately after the opening parenthesis), it is // a regular `for` loop. case _for: next(); labels.push(loopLabel); expect(_parenL); if (tokType === _semi) return parseFor(node, null); if (tokType === _var) { var init = startNode(); next(); parseVar(init, true); if (init.declarations.length === 1 && eat(_in)) return parseForIn(node, init); return parseFor(node, init); } var init = parseExpression(false, true); if (eat(_in)) {checkLVal(init); return parseForIn(node, init);} return parseFor(node, init); case _function: next(); return parseFunction(node, true); case _if: next(); node.test = parseParenExpression(); node.consequent = parseStatement(); node.alternate = eat(_else) ? parseStatement() : null; return finishNode(node, "IfStatement"); case _return: if (!inFunction) raise(tokStart, "'return' outside of function"); next(); // In `return` (and `break`/`continue`), the keywords with // optional arguments, we eagerly look for a semicolon or the // possibility to insert one. if (eat(_semi) || canInsertSemicolon()) node.argument = null; else { node.argument = parseExpression(); semicolon(); } return finishNode(node, "ReturnStatement"); case _switch: next(); node.discriminant = parseParenExpression(); node.cases = []; expect(_braceL); labels.push(switchLabel); // Statements under must be grouped (by label) in SwitchCase // nodes. `cur` is used to keep the node that we are currently // adding statements to. for (var cur, sawDefault; tokType != _braceR;) { if (tokType === _case || tokType === _default) { var isCase = tokType === _case; if (cur) finishNode(cur, "SwitchCase"); node.cases.push(cur = startNode()); cur.consequent = []; next(); if (isCase) cur.test = parseExpression(); else { if (sawDefault) raise(lastStart, "Multiple default clauses"); sawDefault = true; cur.test = null; } expect(_colon); } else { if (!cur) unexpected(); cur.consequent.push(parseStatement()); } } if (cur) finishNode(cur, "SwitchCase"); next(); // Closing brace labels.pop(); return finishNode(node, "SwitchStatement"); case _throw: next(); if (newline.test(input.slice(lastEnd, tokStart))) raise(lastEnd, "Illegal newline after throw"); node.argument = parseExpression(); return finishNode(node, "ThrowStatement"); case _try: next(); node.block = parseBlock(); node.handlers = []; while (tokType === _catch) { var clause = startNode(); next(); expect(_parenL); clause.param = parseIdent(); if (strict && isStrictBadIdWord(clause.param.name)) raise(clause.param.start, "Binding " + clause.param.name + " in strict mode"); expect(_parenR); clause.guard = null; clause.body = parseBlock(); node.handlers.push(finishNode(clause, "CatchClause")); } node.finalizer = eat(_finally) ? parseBlock() : null; if (!node.handlers.length && !node.finalizer) raise(node.start, "Missing catch or finally clause"); return finishNode(node, "TryStatement"); case _var: next(); node = parseVar(node); semicolon(); return node; case _while: next(); node.test = parseParenExpression(); labels.push(loopLabel); node.body = parseStatement(); labels.pop(); return finishNode(node, "WhileStatement"); case _with: if (strict) raise(tokStart, "'with' in strict mode"); next(); node.object = parseParenExpression(); node.body = parseStatement(); return finishNode(node, "WithStatement"); case _braceL: return parseBlock(); case _semi: next(); return finishNode(node, "EmptyStatement"); // If the statement does not start with a statement keyword or a // brace, it's an ExpressionStatement or LabeledStatement. We // simply start parsing an expression, and afterwards, if the // next token is a colon and the expression was a simple // Identifier node, we switch to interpreting it as a label. default: var maybeName = tokVal, expr = parseExpression(); if (starttype === _name && expr.type === "Identifier" && eat(_colon)) { for (var i = 0; i < labels.length; ++i) if (labels[i].name === maybeName) raise(expr.start, "Label '" + maybeName + "' is already declared"); var kind = tokType.isLoop ? "loop" : tokType === _switch ? "switch" : null; labels.push({name: maybeName, kind: kind}); node.body = parseStatement(); node.label = expr; return finishNode(node, "LabeledStatement"); } else { node.expression = expr; semicolon(); return finishNode(node, "ExpressionStatement"); } } } // Used for constructs like `switch` and `if` that insist on // parentheses around their expression. function parseParenExpression() { expect(_parenL); var val = parseExpression(); expect(_parenR); return val; } // Parse a semicolon-enclosed block of statements, handling `"use // strict"` declarations when `allowStrict` is true (used for // function bodies). function parseBlock(allowStrict) { var node = startNode(), first = true, strict = false, oldStrict; node.body = []; expect(_braceL); while (!eat(_braceR)) { var stmt = parseStatement(); node.body.push(stmt); if (first && isUseStrict(stmt)) { oldStrict = strict; setStrict(strict = true); } first = false } if (strict && !oldStrict) setStrict(false); return finishNode(node, "BlockStatement"); } // Parse a regular `for` loop. The disambiguation code in // `parseStatement` will already have parsed the init statement or // expression. function parseFor(node, init) { node.init = init; expect(_semi); node.test = tokType === _semi ? null : parseExpression(); expect(_semi); node.update = tokType === _parenR ? null : parseExpression(); expect(_parenR); node.body = parseStatement(); labels.pop(); return finishNode(node, "ForStatement"); } // Parse a `for`/`in` loop. function parseForIn(node, init) { node.left = init; node.right = parseExpression(); expect(_parenR); node.body = parseStatement(); labels.pop(); return finishNode(node, "ForInStatement"); } // Parse a list of variable declarations. function parseVar(node, noIn) { node.declarations = []; node.kind = "var"; for (;;) { var decl = startNode(); decl.id = parseIdent(); if (strict && isStrictBadIdWord(decl.id.name)) raise(decl.id.start, "Binding " + decl.id.name + " in strict mode"); decl.init = eat(_eq) ? parseExpression(true, noIn) : null; node.declarations.push(finishNode(decl, "VariableDeclarator")); if (!eat(_comma)) break; } return finishNode(node, "VariableDeclaration"); } // ### Expression parsing // These nest, from the most general expression type at the top to // 'atomic', nondivisible expression types at the bottom. Most of // the functions will simply let the function(s) below them parse, // and, *if* the syntactic construct they handle is present, wrap // the AST node that the inner parser gave them in another node. // Parse a full expression. The arguments are used to forbid comma // sequences (in argument lists, array literals, or object literals) // or the `in` operator (in for loops initalization expressions). function parseExpression(noComma, noIn) { var expr = parseMaybeAssign(noIn); if (!noComma && tokType === _comma) { var node = startNodeFrom(expr); node.expressions = [expr]; while (eat(_comma)) node.expressions.push(parseMaybeAssign(noIn)); return finishNode(node, "SequenceExpression"); } return expr; } // Parse an assignment expression. This includes applications of // operators like `+=`. function parseMaybeAssign(noIn) { var left = parseMaybeConditional(noIn); if (tokType.isAssign) { var node = startNodeFrom(left); node.operator = tokVal; node.left = left; next(); node.right = parseMaybeAssign(noIn); checkLVal(left); return finishNode(node, "AssignmentExpression"); } return left; } // Parse a ternary conditional (`?:`) operator. function parseMaybeConditional(noIn) { var expr = parseExprOps(noIn); if (eat(_question)) { var node = startNodeFrom(expr); node.test = expr; node.consequent = parseExpression(true); expect(_colon); node.alternate = parseExpression(true, noIn); return finishNode(node, "ConditionalExpression"); } return expr; } // Start the precedence parser. function parseExprOps(noIn) { return parseExprOp(parseMaybeUnary(noIn), -1, noIn); } // Parse binary operators with the operator precedence parsing // algorithm. `left` is the left-hand side of the operator. // `minPrec` provides context that allows the function to stop and // defer further parser to one of its callers when it encounters an // operator that has a lower precedence than the set it is parsing. function parseExprOp(left, minPrec, noIn) { var prec = tokType.binop; if (prec != null && (!noIn || tokType !== _in)) { if (prec > minPrec) { var node = startNodeFrom(left); node.left = left; node.operator = tokVal; next(); node.right = parseExprOp(parseMaybeUnary(noIn), prec, noIn); var node = finishNode(node, /&&|\|\|/.test(node.operator) ? "LogicalExpression" : "BinaryExpression"); return parseExprOp(node, minPrec, noIn); } } return left; } // Parse unary operators, both prefix and postfix. function parseMaybeUnary(noIn) { if (tokType.prefix) { var node = startNode(), update = tokType.isUpdate; node.operator = tokVal; node.prefix = true; next(); node.argument = parseMaybeUnary(noIn); if (update) checkLVal(node.argument); else if (strict && node.operator === "delete" && node.argument.type === "Identifier") raise(node.start, "Deleting local variable in strict mode"); return finishNode(node, update ? "UpdateExpression" : "UnaryExpression"); } var expr = parseExprSubscripts(); while (tokType.postfix && !canInsertSemicolon()) { var node = startNodeFrom(expr); node.operator = tokVal; node.prefix = false; node.argument = expr; checkLVal(expr); next(); expr = finishNode(node, "UpdateExpression"); } return expr; } // Parse call, dot, and `[]`-subscript expressions. function parseExprSubscripts() { return parseSubscripts(parseExprAtom()); } function parseSubscripts(base, noCalls) { if (eat(_dot)) { var node = startNodeFrom(base); node.object = base; node.property = parseIdent(true); node.computed = false; return parseSubscripts(finishNode(node, "MemberExpression"), noCalls); } else if (eat(_bracketL)) { var node = startNodeFrom(base); node.object = base; node.property = parseExpression(); node.computed = true; expect(_bracketR); return parseSubscripts(finishNode(node, "MemberExpression"), noCalls); } else if (!noCalls && eat(_parenL)) { var node = startNodeFrom(base); node.callee = base; node.arguments = parseExprList(_parenR, false); return parseSubscripts(finishNode(node, "CallExpression"), noCalls); } else return base; } // Parse an atomic expression — either a single token that is an // expression, an expression started by a keyword like `function` or // `new`, or an expression wrapped in punctuation like `()`, `[]`, // or `{}`. function parseExprAtom() { switch (tokType) { case _this: var node = startNode(); next(); return finishNode(node, "ThisExpression"); case _name: return parseIdent(); case _num: case _string: case _regexp: var node = startNode(); node.value = tokVal; node.raw = input.slice(tokStart, tokEnd); next(); return finishNode(node, "Literal"); case _null: case _true: case _false: var node = startNode(); node.value = tokType.atomValue; next(); return finishNode(node, "Literal"); case _parenL: next(); var val = parseExpression(); expect(_parenR); return val; case _bracketL: var node = startNode(); next(); node.elements = parseExprList(_bracketR, true, true); return finishNode(node, "ArrayExpression"); case _braceL: return parseObj(); case _function: var node = startNode(); next(); return parseFunction(node, false); case _new: return parseNew(); default: unexpected(); } } // New's precedence is slightly tricky. It must allow its argument // to be a `[]` or dot subscript expression, but not a call — at // least, not without wrapping it in parentheses. Thus, it uses the function parseNew() { var node = startNode(); next(); node.callee = parseSubscripts(parseExprAtom(false), true); if (eat(_parenL)) node.arguments = parseExprList(_parenR, false); else node.arguments = []; return finishNode(node, "NewExpression"); } // Parse an object literal. function parseObj() { var node = startNode(), first = true, sawGetSet = false; node.properties = []; next(); while (!eat(_braceR)) { if (!first) { expect(_comma); if (options.allowTrailingCommas && eat(_braceR)) break; } else first = false; var prop = {key: parsePropertyName()}, isGetSet = false, kind; if (eat(_colon)) { prop.value = parseExpression(true); kind = prop.kind = "init"; } else if (options.ecmaVersion >= 5 && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set")) { isGetSet = sawGetSet = true; kind = prop.kind = prop.key.name; prop.key = parsePropertyName(); if (!tokType === _parenL) unexpected(); prop.value = parseFunction(startNode(), false); } else unexpected(); // getters and setters are not allowed to clash — either with // each other or with an init property — and in strict mode, // init properties are also not allowed to be repeated. if (prop.key.type === "Identifier" && (strict || sawGetSet)) { for (var i = 0; i < node.properties.length; ++i) { var other = node.properties[i]; if (other.key.name === prop.key.name) { var conflict = kind == other.kind || isGetSet && other.kind === "init" || kind === "init" && (other.kind === "get" || other.kind === "set"); if (conflict && !strict && kind === "init" && other.kind === "init") conflict = false; if (conflict) raise(prop.key.start, "Redefinition of property"); } } } node.properties.push(prop); } return finishNode(node, "ObjectExpression"); } function parsePropertyName() { if (tokType === _num || tokType === _string) return parseExprAtom(); return parseIdent(true); } // Parse a function declaration or literal (depending on the // `isStatement` parameter). function parseFunction(node, isStatement) { if (tokType === _name) node.id = parseIdent(); else if (isStatement) unexpected(); else node.id = null; node.params = []; var first = true; expect(_parenL); while (!eat(_parenR)) { if (!first) expect(_comma); else first = false; node.params.push(parseIdent()); } // Start a new scope with regard to labels and the `inFunction` // flag (restore them to their old value afterwards). var oldInFunc = inFunction, oldLabels = labels; inFunction = true; labels = []; node.body = parseBlock(true); inFunction = oldInFunc; labels = oldLabels; // If this is a strict mode function, verify that argument names // are not repeated, and it does not try to bind the words `eval` // or `arguments`. if (strict || node.body.body.length && isUseStrict(node.body.body[0])) { for (var i = node.id ? -1 : 0; i < node.params.length; ++i) { var id = i < 0 ? node.id : node.params[i]; if (isStrictReservedWord(id.name) || isStrictBadIdWord(id.name)) raise(id.start, "Defining '" + id.name + "' in strict mode"); if (i >= 0) for (var j = 0; j < i; ++j) if (id.name === node.params[j].name) raise(id.start, "Argument name clash in strict mode"); } } return finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression"); } // Parses a comma-separated list of expressions, and returns them as // an array. `close` is the token type that ends the list, and // `allowEmpty` can be turned on to allow subsequent commas with // nothing in between them to be parsed as `null` (which is needed // for array literals). function parseExprList(close, allowTrailingComma, allowEmpty) { var elts = [], first = true; while (!eat(close)) { if (!first) { expect(_comma); if (allowTrailingComma && options.allowTrailingCommas && eat(close)) break; } else first = false; if (allowEmpty && tokType === _comma) elts.push(null); else elts.push(parseExpression(true)); } return elts; } // Parse the next token as an identifier. If `liberal` is true (used // when parsing properties), it will also convert keywords into // identifiers. function parseIdent(liberal) { var node = startNode(); node.name = tokType === _name ? tokVal : (liberal && !options.forbidReserved && tokType.keyword) || unexpected(); next(); return finishNode(node, "Identifier"); } })(typeof exports === "undefined" ? (window.acorn = {}) : exports); site_pro/codemirror-3.1/test/test.js0000644000000000000000000013260712111430706016344 0ustar rootrootvar Pos = CodeMirror.Pos; function forEach(arr, f) { for (var i = 0, e = arr.length; i < e; ++i) f(arr[i]); } function addDoc(cm, width, height) { var content = [], line = ""; for (var i = 0; i < width; ++i) line += "x"; for (var i = 0; i < height; ++i) content.push(line); cm.setValue(content.join("\n")); } function byClassName(elt, cls) { if (elt.getElementsByClassName) return elt.getElementsByClassName(cls); var found = [], re = new RegExp("\\b" + cls + "\\b"); function search(elt) { if (elt.nodeType == 3) return; if (re.test(elt.className)) found.push(elt); for (var i = 0, e = elt.childNodes.length; i < e; ++i) search(elt.childNodes[i]); } search(elt); return found; } var ie_lt8 = /MSIE [1-7]\b/.test(navigator.userAgent); var mac = /Mac/.test(navigator.platform); var phantom = /PhantomJS/.test(navigator.userAgent); var opera = /Opera\/\./.test(navigator.userAgent); var opera_version = opera && navigator.userAgent.match(/Version\/(\d+\.\d+)/); if (opera_version) opera_version = Number(opera_version); var opera_lt10 = opera && (!opera_version || opera_version < 10); test("core_fromTextArea", function() { var te = document.getElementById("code"); te.value = "CONTENT"; var cm = CodeMirror.fromTextArea(te); is(!te.offsetHeight); eq(cm.getValue(), "CONTENT"); cm.setValue("foo\nbar"); eq(cm.getValue(), "foo\nbar"); cm.save(); is(/^foo\r?\nbar$/.test(te.value)); cm.setValue("xxx"); cm.toTextArea(); is(te.offsetHeight); eq(te.value, "xxx"); }); testCM("getRange", function(cm) { eq(cm.getLine(0), "1234"); eq(cm.getLine(1), "5678"); eq(cm.getLine(2), null); eq(cm.getLine(-1), null); eq(cm.getRange(Pos(0, 0), Pos(0, 3)), "123"); eq(cm.getRange(Pos(0, -1), Pos(0, 200)), "1234"); eq(cm.getRange(Pos(0, 2), Pos(1, 2)), "34\n56"); eq(cm.getRange(Pos(1, 2), Pos(100, 0)), "78"); }, {value: "1234\n5678"}); testCM("replaceRange", function(cm) { eq(cm.getValue(), ""); cm.replaceRange("foo\n", Pos(0, 0)); eq(cm.getValue(), "foo\n"); cm.replaceRange("a\nb", Pos(0, 1)); eq(cm.getValue(), "fa\nboo\n"); eq(cm.lineCount(), 3); cm.replaceRange("xyzzy", Pos(0, 0), Pos(1, 1)); eq(cm.getValue(), "xyzzyoo\n"); cm.replaceRange("abc", Pos(0, 0), Pos(10, 0)); eq(cm.getValue(), "abc"); eq(cm.lineCount(), 1); }); testCM("selection", function(cm) { cm.setSelection(Pos(0, 4), Pos(2, 2)); is(cm.somethingSelected()); eq(cm.getSelection(), "11\n222222\n33"); eqPos(cm.getCursor(false), Pos(2, 2)); eqPos(cm.getCursor(true), Pos(0, 4)); cm.setSelection(Pos(1, 0)); is(!cm.somethingSelected()); eq(cm.getSelection(), ""); eqPos(cm.getCursor(true), Pos(1, 0)); cm.replaceSelection("abc"); eq(cm.getSelection(), "abc"); eq(cm.getValue(), "111111\nabc222222\n333333"); cm.replaceSelection("def", "end"); eq(cm.getSelection(), ""); eqPos(cm.getCursor(true), Pos(1, 3)); cm.setCursor(Pos(2, 1)); eqPos(cm.getCursor(true), Pos(2, 1)); cm.setCursor(1, 2); eqPos(cm.getCursor(true), Pos(1, 2)); }, {value: "111111\n222222\n333333"}); testCM("extendSelection", function(cm) { cm.setExtending(true); addDoc(cm, 10, 10); cm.setSelection(Pos(3, 5)); eqPos(cm.getCursor("head"), Pos(3, 5)); eqPos(cm.getCursor("anchor"), Pos(3, 5)); cm.setSelection(Pos(2, 5), Pos(5, 5)); eqPos(cm.getCursor("head"), Pos(5, 5)); eqPos(cm.getCursor("anchor"), Pos(2, 5)); eqPos(cm.getCursor("start"), Pos(2, 5)); eqPos(cm.getCursor("end"), Pos(5, 5)); cm.setSelection(Pos(5, 5), Pos(2, 5)); eqPos(cm.getCursor("head"), Pos(2, 5)); eqPos(cm.getCursor("anchor"), Pos(5, 5)); eqPos(cm.getCursor("start"), Pos(2, 5)); eqPos(cm.getCursor("end"), Pos(5, 5)); cm.extendSelection(Pos(3, 2)); eqPos(cm.getCursor("head"), Pos(3, 2)); eqPos(cm.getCursor("anchor"), Pos(5, 5)); cm.extendSelection(Pos(6, 2)); eqPos(cm.getCursor("head"), Pos(6, 2)); eqPos(cm.getCursor("anchor"), Pos(5, 5)); cm.extendSelection(Pos(6, 3), Pos(6, 4)); eqPos(cm.getCursor("head"), Pos(6, 4)); eqPos(cm.getCursor("anchor"), Pos(5, 5)); cm.extendSelection(Pos(0, 3), Pos(0, 4)); eqPos(cm.getCursor("head"), Pos(0, 3)); eqPos(cm.getCursor("anchor"), Pos(5, 5)); cm.extendSelection(Pos(4, 5), Pos(6, 5)); eqPos(cm.getCursor("head"), Pos(6, 5)); eqPos(cm.getCursor("anchor"), Pos(4, 5)); cm.setExtending(false); cm.extendSelection(Pos(0, 3), Pos(0, 4)); eqPos(cm.getCursor("head"), Pos(0, 4)); eqPos(cm.getCursor("anchor"), Pos(0, 3)); }); testCM("lines", function(cm) { eq(cm.getLine(0), "111111"); eq(cm.getLine(1), "222222"); eq(cm.getLine(-1), null); cm.removeLine(1); cm.setLine(1, "abc"); eq(cm.getValue(), "111111\nabc"); }, {value: "111111\n222222\n333333"}); testCM("indent", function(cm) { cm.indentLine(1); eq(cm.getLine(1), " blah();"); cm.setOption("indentUnit", 8); cm.indentLine(1); eq(cm.getLine(1), "\tblah();"); cm.setOption("indentUnit", 10); cm.setOption("tabSize", 4); cm.indentLine(1); eq(cm.getLine(1), "\t\t blah();"); }, {value: "if (x) {\nblah();\n}", indentUnit: 3, indentWithTabs: true, tabSize: 8}); test("core_defaults", function() { var defsCopy = {}, defs = CodeMirror.defaults; for (var opt in defs) defsCopy[opt] = defs[opt]; defs.indentUnit = 5; defs.value = "uu"; defs.enterMode = "keep"; defs.tabindex = 55; var place = document.getElementById("testground"), cm = CodeMirror(place); try { eq(cm.getOption("indentUnit"), 5); cm.setOption("indentUnit", 10); eq(defs.indentUnit, 5); eq(cm.getValue(), "uu"); eq(cm.getOption("enterMode"), "keep"); eq(cm.getInputField().tabIndex, 55); } finally { for (var opt in defsCopy) defs[opt] = defsCopy[opt]; place.removeChild(cm.getWrapperElement()); } }); testCM("lineInfo", function(cm) { eq(cm.lineInfo(-1), null); var mark = document.createElement("span"); var lh = cm.setGutterMarker(1, "FOO", mark); var info = cm.lineInfo(1); eq(info.text, "222222"); eq(info.gutterMarkers.FOO, mark); eq(info.line, 1); eq(cm.lineInfo(2).gutterMarkers, null); cm.setGutterMarker(lh, "FOO", null); eq(cm.lineInfo(1).gutterMarkers, null); cm.setGutterMarker(1, "FOO", mark); cm.setGutterMarker(0, "FOO", mark); cm.clearGutter("FOO"); eq(cm.lineInfo(0).gutterMarkers, null); eq(cm.lineInfo(1).gutterMarkers, null); }, {value: "111111\n222222\n333333"}); testCM("coords", function(cm) { cm.setSize(null, 100); addDoc(cm, 32, 200); var top = cm.charCoords(Pos(0, 0)); var bot = cm.charCoords(Pos(200, 30)); is(top.left < bot.left); is(top.top < bot.top); is(top.top < top.bottom); cm.scrollTo(null, 100); var top2 = cm.charCoords(Pos(0, 0)); is(top.top > top2.top); eq(top.left, top2.left); }); testCM("coordsChar", function(cm) { addDoc(cm, 35, 70); for (var ch = 0; ch <= 35; ch += 5) { for (var line = 0; line < 70; line += 5) { cm.setCursor(line, ch); var coords = cm.charCoords(Pos(line, ch)); var pos = cm.coordsChar({left: coords.left, top: coords.top + 5}); eqPos(pos, Pos(line, ch)); } } }); testCM("posFromIndex", function(cm) { cm.setValue( "This function should\n" + "convert a zero based index\n" + "to line and ch." ); var examples = [ { index: -1, line: 0, ch: 0 }, // <- Tests clipping { index: 0, line: 0, ch: 0 }, { index: 10, line: 0, ch: 10 }, { index: 39, line: 1, ch: 18 }, { index: 55, line: 2, ch: 7 }, { index: 63, line: 2, ch: 15 }, { index: 64, line: 2, ch: 15 } // <- Tests clipping ]; for (var i = 0; i < examples.length; i++) { var example = examples[i]; var pos = cm.posFromIndex(example.index); eq(pos.line, example.line); eq(pos.ch, example.ch); if (example.index >= 0 && example.index < 64) eq(cm.indexFromPos(pos), example.index); } }); testCM("undo", function(cm) { cm.setLine(0, "def"); eq(cm.historySize().undo, 1); cm.undo(); eq(cm.getValue(), "abc"); eq(cm.historySize().undo, 0); eq(cm.historySize().redo, 1); cm.redo(); eq(cm.getValue(), "def"); eq(cm.historySize().undo, 1); eq(cm.historySize().redo, 0); cm.setValue("1\n\n\n2"); cm.clearHistory(); eq(cm.historySize().undo, 0); for (var i = 0; i < 20; ++i) { cm.replaceRange("a", Pos(0, 0)); cm.replaceRange("b", Pos(3, 0)); } eq(cm.historySize().undo, 40); for (var i = 0; i < 40; ++i) cm.undo(); eq(cm.historySize().redo, 40); eq(cm.getValue(), "1\n\n\n2"); }, {value: "abc"}); testCM("undoDepth", function(cm) { cm.replaceRange("d", Pos(0)); cm.replaceRange("e", Pos(0)); cm.replaceRange("f", Pos(0)); cm.undo(); cm.undo(); cm.undo(); eq(cm.getValue(), "abcd"); }, {value: "abc", undoDepth: 2}); testCM("undoDoesntClearValue", function(cm) { cm.undo(); eq(cm.getValue(), "x"); }, {value: "x"}); testCM("undoMultiLine", function(cm) { cm.operation(function() { cm.replaceRange("x", Pos(0, 0)); cm.replaceRange("y", Pos(1, 0)); }); cm.undo(); eq(cm.getValue(), "abc\ndef\nghi"); cm.operation(function() { cm.replaceRange("y", Pos(1, 0)); cm.replaceRange("x", Pos(0, 0)); }); cm.undo(); eq(cm.getValue(), "abc\ndef\nghi"); cm.operation(function() { cm.replaceRange("y", Pos(2, 0)); cm.replaceRange("x", Pos(1, 0)); cm.replaceRange("z", Pos(2, 0)); }); cm.undo(); eq(cm.getValue(), "abc\ndef\nghi", 3); }, {value: "abc\ndef\nghi"}); testCM("undoComposite", function(cm) { cm.replaceRange("y", Pos(1)); cm.operation(function() { cm.replaceRange("x", Pos(0)); cm.replaceRange("z", Pos(2)); }); eq(cm.getValue(), "ax\nby\ncz\n"); cm.undo(); eq(cm.getValue(), "a\nby\nc\n"); cm.undo(); eq(cm.getValue(), "a\nb\nc\n"); cm.redo(); cm.redo(); eq(cm.getValue(), "ax\nby\ncz\n"); }, {value: "a\nb\nc\n"}); testCM("undoSelection", function(cm) { cm.setSelection(Pos(0, 2), Pos(0, 4)); cm.replaceSelection(""); cm.setCursor(Pos(1, 0)); cm.undo(); eqPos(cm.getCursor(true), Pos(0, 2)); eqPos(cm.getCursor(false), Pos(0, 4)); cm.setCursor(Pos(1, 0)); cm.redo(); eqPos(cm.getCursor(true), Pos(0, 2)); eqPos(cm.getCursor(false), Pos(0, 2)); }, {value: "abcdefgh\n"}); testCM("markTextSingleLine", function(cm) { forEach([{a: 0, b: 1, c: "", f: 2, t: 5}, {a: 0, b: 4, c: "", f: 0, t: 2}, {a: 1, b: 2, c: "x", f: 3, t: 6}, {a: 4, b: 5, c: "", f: 3, t: 5}, {a: 4, b: 5, c: "xx", f: 3, t: 7}, {a: 2, b: 5, c: "", f: 2, t: 3}, {a: 2, b: 5, c: "abcd", f: 6, t: 7}, {a: 2, b: 6, c: "x", f: null, t: null}, {a: 3, b: 6, c: "", f: null, t: null}, {a: 0, b: 9, c: "hallo", f: null, t: null}, {a: 4, b: 6, c: "x", f: 3, t: 4}, {a: 4, b: 8, c: "", f: 3, t: 4}, {a: 6, b: 6, c: "a", f: 3, t: 6}, {a: 8, b: 9, c: "", f: 3, t: 6}], function(test) { cm.setValue("1234567890"); var r = cm.markText(Pos(0, 3), Pos(0, 6), {className: "foo"}); cm.replaceRange(test.c, Pos(0, test.a), Pos(0, test.b)); var f = r.find(); eq(f && f.from.ch, test.f); eq(f && f.to.ch, test.t); }); }); testCM("markTextMultiLine", function(cm) { function p(v) { return v && Pos(v[0], v[1]); } forEach([{a: [0, 0], b: [0, 5], c: "", f: [0, 0], t: [2, 5]}, {a: [0, 0], b: [0, 5], c: "foo\n", f: [1, 0], t: [3, 5]}, {a: [0, 1], b: [0, 10], c: "", f: [0, 1], t: [2, 5]}, {a: [0, 5], b: [0, 6], c: "x", f: [0, 6], t: [2, 5]}, {a: [0, 0], b: [1, 0], c: "", f: [0, 0], t: [1, 5]}, {a: [0, 6], b: [2, 4], c: "", f: [0, 5], t: [0, 7]}, {a: [0, 6], b: [2, 4], c: "aa", f: [0, 5], t: [0, 9]}, {a: [1, 2], b: [1, 8], c: "", f: [0, 5], t: [2, 5]}, {a: [0, 5], b: [2, 5], c: "xx", f: null, t: null}, {a: [0, 0], b: [2, 10], c: "x", f: null, t: null}, {a: [1, 5], b: [2, 5], c: "", f: [0, 5], t: [1, 5]}, {a: [2, 0], b: [2, 3], c: "", f: [0, 5], t: [2, 2]}, {a: [2, 5], b: [3, 0], c: "a\nb", f: [0, 5], t: [2, 5]}, {a: [2, 3], b: [3, 0], c: "x", f: [0, 5], t: [2, 3]}, {a: [1, 1], b: [1, 9], c: "1\n2\n3", f: [0, 5], t: [4, 5]}], function(test) { cm.setValue("aaaaaaaaaa\nbbbbbbbbbb\ncccccccccc\ndddddddd\n"); var r = cm.markText(Pos(0, 5), Pos(2, 5), {className: "CodeMirror-matchingbracket"}); cm.replaceRange(test.c, p(test.a), p(test.b)); var f = r.find(); eqPos(f && f.from, p(test.f)); eqPos(f && f.to, p(test.t)); }); }); testCM("markTextUndo", function(cm) { var marker1, marker2, bookmark; marker1 = cm.markText(Pos(0, 1), Pos(0, 3), {className: "CodeMirror-matchingbracket"}); marker2 = cm.markText(Pos(0, 0), Pos(2, 1), {className: "CodeMirror-matchingbracket"}); bookmark = cm.setBookmark(Pos(1, 5)); cm.operation(function(){ cm.replaceRange("foo", Pos(0, 2)); cm.replaceRange("bar\nbaz\nbug\n", Pos(2, 0), Pos(3, 0)); }); var v1 = cm.getValue(); cm.setValue(""); eq(marker1.find(), null); eq(marker2.find(), null); eq(bookmark.find(), null); cm.undo(); eqPos(bookmark.find(), Pos(1, 5), "still there"); cm.undo(); var m1Pos = marker1.find(), m2Pos = marker2.find(); eqPos(m1Pos.from, Pos(0, 1)); eqPos(m1Pos.to, Pos(0, 3)); eqPos(m2Pos.from, Pos(0, 0)); eqPos(m2Pos.to, Pos(2, 1)); eqPos(bookmark.find(), Pos(1, 5)); cm.redo(); cm.redo(); eq(bookmark.find(), null); cm.undo(); eqPos(bookmark.find(), Pos(1, 5)); eq(cm.getValue(), v1); }, {value: "1234\n56789\n00\n"}); testCM("markTextStayGone", function(cm) { var m1 = cm.markText(Pos(0, 0), Pos(0, 1)); cm.replaceRange("hi", Pos(0, 2)); m1.clear(); cm.undo(); eq(m1.find(), null); }, {value: "hello"}); testCM("undoPreservesNewMarks", function(cm) { cm.markText(Pos(0, 3), Pos(0, 4)); cm.markText(Pos(1, 1), Pos(1, 3)); cm.replaceRange("", Pos(0, 3), Pos(3, 1)); var mBefore = cm.markText(Pos(0, 0), Pos(0, 1)); var mAfter = cm.markText(Pos(0, 5), Pos(0, 6)); var mAround = cm.markText(Pos(0, 2), Pos(0, 4)); cm.undo(); eqPos(mBefore.find().from, Pos(0, 0)); eqPos(mBefore.find().to, Pos(0, 1)); eqPos(mAfter.find().from, Pos(3, 3)); eqPos(mAfter.find().to, Pos(3, 4)); eqPos(mAround.find().from, Pos(0, 2)); eqPos(mAround.find().to, Pos(3, 2)); var found = cm.findMarksAt(Pos(2, 2)); eq(found.length, 1); eq(found[0], mAround); }, {value: "aaaa\nbbbb\ncccc\ndddd"}); testCM("markClearBetween", function(cm) { cm.setValue("aaa\nbbb\nccc\nddd\n"); cm.markText(Pos(0, 0), Pos(2)); cm.replaceRange("aaa\nbbb\nccc", Pos(0, 0), Pos(2)); eq(cm.findMarksAt(Pos(1, 1)).length, 0); }); testCM("bookmark", function(cm) { function p(v) { return v && Pos(v[0], v[1]); } forEach([{a: [1, 0], b: [1, 1], c: "", d: [1, 4]}, {a: [1, 1], b: [1, 1], c: "xx", d: [1, 7]}, {a: [1, 4], b: [1, 5], c: "ab", d: [1, 6]}, {a: [1, 4], b: [1, 6], c: "", d: null}, {a: [1, 5], b: [1, 6], c: "abc", d: [1, 5]}, {a: [1, 6], b: [1, 8], c: "", d: [1, 5]}, {a: [1, 4], b: [1, 4], c: "\n\n", d: [3, 1]}, {bm: [1, 9], a: [1, 1], b: [1, 1], c: "\n", d: [2, 8]}], function(test) { cm.setValue("1234567890\n1234567890\n1234567890"); var b = cm.setBookmark(p(test.bm) || Pos(1, 5)); cm.replaceRange(test.c, p(test.a), p(test.b)); eqPos(b.find(), p(test.d)); }); }); testCM("bookmarkInsertLeft", function(cm) { var br = cm.setBookmark(Pos(0, 2), {insertLeft: false}); var bl = cm.setBookmark(Pos(0, 2), {insertLeft: true}); cm.setCursor(Pos(0, 2)); cm.replaceSelection("hi"); eqPos(br.find(), Pos(0, 2)); eqPos(bl.find(), Pos(0, 4)); cm.replaceRange("", Pos(0, 4), Pos(0, 5)); cm.replaceRange("", Pos(0, 2), Pos(0, 4)); cm.replaceRange("", Pos(0, 1), Pos(0, 2)); // Verify that deleting next to bookmarks doesn't kill them eqPos(br.find(), Pos(0, 1)); eqPos(bl.find(), Pos(0, 1)); }, {value: "abcdef"}); testCM("getAllMarks", function(cm) { addDoc(cm, 10, 10); var m1 = cm.setBookmark(Pos(0, 2)); var m2 = cm.markText(Pos(0, 2), Pos(3, 2)); var m3 = cm.markText(Pos(1, 2), Pos(1, 8)); var m4 = cm.markText(Pos(8, 0), Pos(9, 0)); eq(cm.getAllMarks().length, 4); m1.clear(); m3.clear(); eq(cm.getAllMarks().length, 2); }); testCM("bug577", function(cm) { cm.setValue("a\nb"); cm.clearHistory(); cm.setValue("fooooo"); cm.undo(); }); testCM("scrollSnap", function(cm) { cm.setSize(100, 100); addDoc(cm, 200, 200); cm.setCursor(Pos(100, 180)); var info = cm.getScrollInfo(); is(info.left > 0 && info.top > 0); cm.setCursor(Pos(0, 0)); info = cm.getScrollInfo(); is(info.left == 0 && info.top == 0, "scrolled clean to top"); cm.setCursor(Pos(100, 180)); cm.setCursor(Pos(199, 0)); info = cm.getScrollInfo(); is(info.left == 0 && info.top + 2 > info.height - cm.getScrollerElement().clientHeight, "scrolled clean to bottom"); }); testCM("selectionPos", function(cm) { cm.setSize(100, 100); addDoc(cm, 200, 100); cm.setSelection(Pos(1, 100), Pos(98, 100)); var lineWidth = cm.charCoords(Pos(0, 200), "local").left; var lineHeight = (cm.charCoords(Pos(99)).top - cm.charCoords(Pos(0)).top) / 100; cm.scrollTo(0, 0); var selElt = byClassName(cm.getWrapperElement(), "CodeMirror-selected"); var outer = cm.getWrapperElement().getBoundingClientRect(); var sawMiddle, sawTop, sawBottom; for (var i = 0, e = selElt.length; i < e; ++i) { var box = selElt[i].getBoundingClientRect(); var atLeft = box.left - outer.left < 30; var width = box.right - box.left; var atRight = box.right - outer.left > .8 * lineWidth; if (atLeft && atRight) { sawMiddle = true; is(box.bottom - box.top > 90 * lineHeight, "middle high"); is(width > .9 * lineWidth, "middle wide"); } else { is(width > .4 * lineWidth, "top/bot wide enough"); is(width < .6 * lineWidth, "top/bot slim enough"); if (atLeft) { sawBottom = true; is(box.top - outer.top > 96 * lineHeight, "bot below"); } else if (atRight) { sawTop = true; is(box.top - outer.top < 2.1 * lineHeight, "top above"); } } } is(sawTop && sawBottom && sawMiddle, "all parts"); }, null); testCM("restoreHistory", function(cm) { cm.setValue("abc\ndef"); cm.setLine(1, "hello"); cm.setLine(0, "goop"); cm.undo(); var storedVal = cm.getValue(), storedHist = cm.getHistory(); if (window.JSON) storedHist = JSON.parse(JSON.stringify(storedHist)); eq(storedVal, "abc\nhello"); cm.setValue(""); cm.clearHistory(); eq(cm.historySize().undo, 0); cm.setValue(storedVal); cm.setHistory(storedHist); cm.redo(); eq(cm.getValue(), "goop\nhello"); cm.undo(); cm.undo(); eq(cm.getValue(), "abc\ndef"); }); testCM("doubleScrollbar", function(cm) { var dummy = document.body.appendChild(document.createElement("p")); dummy.style.cssText = "height: 50px; overflow: scroll; width: 50px"; var scrollbarWidth = dummy.offsetWidth + 1 - dummy.clientWidth; document.body.removeChild(dummy); if (scrollbarWidth < 2) return; cm.setSize(null, 100); addDoc(cm, 1, 300); var wrap = cm.getWrapperElement(); is(wrap.offsetWidth - byClassName(wrap, "CodeMirror-lines")[0].offsetWidth <= scrollbarWidth * 1.5); }); testCM("weirdLinebreaks", function(cm) { cm.setValue("foo\nbar\rbaz\r\nquux\n\rplop"); is(cm.getValue(), "foo\nbar\nbaz\nquux\n\nplop"); is(cm.lineCount(), 6); cm.setValue("\n\n"); is(cm.lineCount(), 3); }); testCM("setSize", function(cm) { cm.setSize(100, 100); var wrap = cm.getWrapperElement(); is(wrap.offsetWidth, 100); is(wrap.offsetHeight, 100); cm.setSize("100%", "3em"); is(wrap.style.width, "100%"); is(wrap.style.height, "3em"); cm.setSize(null, 40); is(wrap.style.width, "100%"); is(wrap.style.height, "40px"); }); function foldLines(cm, start, end, autoClear) { return cm.markText(Pos(start, 0), Pos(end - 1), { inclusiveLeft: true, inclusiveRight: true, collapsed: true, clearOnEnter: autoClear }); } testCM("collapsedLines", function(cm) { addDoc(cm, 4, 10); var range = foldLines(cm, 4, 5), cleared = 0; CodeMirror.on(range, "clear", function() {cleared++;}); cm.setCursor(Pos(3, 0)); CodeMirror.commands.goLineDown(cm); eqPos(cm.getCursor(), Pos(5, 0)); cm.setLine(3, "abcdefg"); cm.setCursor(Pos(3, 6)); CodeMirror.commands.goLineDown(cm); eqPos(cm.getCursor(), Pos(5, 4)); cm.setLine(3, "ab"); cm.setCursor(Pos(3, 2)); CodeMirror.commands.goLineDown(cm); eqPos(cm.getCursor(), Pos(5, 2)); cm.operation(function() {range.clear(); range.clear();}); eq(cleared, 1); }); testCM("collapsedRangeCoordsChar", function(cm) { var pos_1_3 = cm.charCoords(Pos(1, 3)); pos_1_3.left += 2; pos_1_3.top += 2; var opts = {collapsed: true, inclusiveLeft: true, inclusiveRight: true}; var m1 = cm.markText(Pos(0, 0), Pos(2, 0), opts); eqPos(cm.coordsChar(pos_1_3), Pos(3, 3)); m1.clear(); var m1 = cm.markText(Pos(0, 0), Pos(1, 1), opts); var m2 = cm.markText(Pos(1, 1), Pos(2, 0), opts); eqPos(cm.coordsChar(pos_1_3), Pos(3, 3)); m1.clear(); m2.clear(); var m1 = cm.markText(Pos(0, 0), Pos(1, 6), opts); eqPos(cm.coordsChar(pos_1_3), Pos(3, 3)); }, {value: "123456\nabcdef\nghijkl\nmnopqr\n"}); testCM("hiddenLinesAutoUnfold", function(cm) { var range = foldLines(cm, 1, 3, true), cleared = 0; CodeMirror.on(range, "clear", function() {cleared++;}); cm.setCursor(Pos(3, 0)); eq(cleared, 0); cm.execCommand("goCharLeft"); eq(cleared, 1); range = foldLines(cm, 1, 3, true); CodeMirror.on(range, "clear", function() {cleared++;}); eqPos(cm.getCursor(), Pos(3, 0)); cm.setCursor(Pos(0, 3)); cm.execCommand("goCharRight"); eq(cleared, 2); }, {value: "abc\ndef\nghi\njkl"}); testCM("hiddenLinesSelectAll", function(cm) { // Issue #484 addDoc(cm, 4, 20); foldLines(cm, 0, 10); foldLines(cm, 11, 20); CodeMirror.commands.selectAll(cm); eqPos(cm.getCursor(true), Pos(10, 0)); eqPos(cm.getCursor(false), Pos(10, 4)); }); testCM("everythingFolded", function(cm) { addDoc(cm, 2, 2); function enterPress() { cm.triggerOnKeyDown({type: "keydown", keyCode: 13, preventDefault: function(){}, stopPropagation: function(){}}); } var fold = foldLines(cm, 0, 2); enterPress(); eq(cm.getValue(), "xx\nxx"); fold.clear(); fold = foldLines(cm, 0, 2, true); eq(fold.find(), null); enterPress(); eq(cm.getValue(), "\nxx\nxx"); }); testCM("structuredFold", function(cm) { addDoc(cm, 4, 8); var range = cm.markText(Pos(1, 2), Pos(6, 2), { replacedWith: document.createTextNode("Q") }); cm.setCursor(0, 3); CodeMirror.commands.goLineDown(cm); eqPos(cm.getCursor(), Pos(6, 2)); CodeMirror.commands.goCharLeft(cm); eqPos(cm.getCursor(), Pos(1, 2)); CodeMirror.commands.delCharAfter(cm); eq(cm.getValue(), "xxxx\nxxxx\nxxxx"); addDoc(cm, 4, 8); range = cm.markText(Pos(1, 2), Pos(6, 2), { replacedWith: document.createTextNode("x"), clearOnEnter: true }); var cleared = 0; CodeMirror.on(range, "clear", function(){++cleared;}); cm.setCursor(0, 3); CodeMirror.commands.goLineDown(cm); eqPos(cm.getCursor(), Pos(6, 2)); CodeMirror.commands.goCharLeft(cm); eqPos(cm.getCursor(), Pos(6, 1)); eq(cleared, 1); range.clear(); eq(cleared, 1); range = cm.markText(Pos(1, 2), Pos(6, 2), { replacedWith: document.createTextNode("Q"), clearOnEnter: true }); range.clear(); cm.setCursor(1, 2); CodeMirror.commands.goCharRight(cm); eqPos(cm.getCursor(), Pos(1, 3)); }, null); testCM("nestedFold", function(cm) { addDoc(cm, 10, 3); function fold(ll, cl, lr, cr) { return cm.markText(Pos(ll, cl), Pos(lr, cr), {collapsed: true}); } var inner1 = fold(0, 6, 1, 3), inner2 = fold(0, 2, 1, 8), outer = fold(0, 1, 2, 3), inner0 = fold(0, 5, 0, 6); cm.setCursor(0, 1); CodeMirror.commands.goCharRight(cm); eqPos(cm.getCursor(), Pos(2, 3)); inner0.clear(); CodeMirror.commands.goCharLeft(cm); eqPos(cm.getCursor(), Pos(0, 1)); outer.clear(); CodeMirror.commands.goCharRight(cm); eqPos(cm.getCursor(), Pos(0, 2)); CodeMirror.commands.goCharRight(cm); eqPos(cm.getCursor(), Pos(1, 8)); inner2.clear(); CodeMirror.commands.goCharLeft(cm); eqPos(cm.getCursor(), Pos(1, 7)); cm.setCursor(0, 5); CodeMirror.commands.goCharRight(cm); eqPos(cm.getCursor(), Pos(0, 6)); CodeMirror.commands.goCharRight(cm); eqPos(cm.getCursor(), Pos(1, 3)); }); testCM("badNestedFold", function(cm) { addDoc(cm, 4, 4); cm.markText(Pos(0, 2), Pos(3, 2), {collapsed: true}); var caught; try {cm.markText(Pos(0, 1), Pos(0, 3), {collapsed: true});} catch(e) {caught = e;} is(caught instanceof Error, "no error"); is(/overlap/i.test(caught.message), "wrong error"); }); testCM("inlineWidget", function(cm) { var w = cm.setBookmark(Pos(0, 2), {widget: document.createTextNode("uu")}); cm.setCursor(0, 2); CodeMirror.commands.goLineDown(cm); eqPos(cm.getCursor(), Pos(1, 4)); cm.setCursor(0, 2); cm.replaceSelection("hi"); eqPos(w.find(), Pos(0, 2)); cm.setCursor(0, 1); cm.replaceSelection("ay"); eqPos(w.find(), Pos(0, 4)); eq(cm.getLine(0), "uayuhiuu"); }, {value: "uuuu\nuuuuuu"}); testCM("wrappingAndResizing", function(cm) { cm.setSize(null, "auto"); cm.setOption("lineWrapping", true); var wrap = cm.getWrapperElement(), h0 = wrap.offsetHeight; var doc = "xxx xxx xxx xxx xxx"; cm.setValue(doc); for (var step = 10, w = cm.charCoords(Pos(0, 18), "div").right;; w += step) { cm.setSize(w); if (wrap.offsetHeight <= h0 * (opera_lt10 ? 1.2 : 1.5)) { if (step == 10) { w -= 10; step = 1; } else break; } } // Ensure that putting the cursor at the end of the maximally long // line doesn't cause wrapping to happen. cm.setCursor(Pos(0, doc.length)); eq(wrap.offsetHeight, h0); cm.replaceSelection("x"); is(wrap.offsetHeight > h0, "wrapping happens"); // Now add a max-height and, in a document consisting of // almost-wrapped lines, go over it so that a scrollbar appears. cm.setValue(doc + "\n" + doc + "\n"); cm.getScrollerElement().style.maxHeight = "100px"; cm.replaceRange("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n!\n", Pos(2, 0)); forEach([Pos(0, doc.length), Pos(0, doc.length - 1), Pos(0, 0), Pos(1, doc.length), Pos(1, doc.length - 1)], function(pos) { var coords = cm.charCoords(pos); eqPos(pos, cm.coordsChar({left: coords.left + 2, top: coords.top + 5})); }); }, null, ie_lt8); testCM("measureEndOfLine", function(cm) { cm.setSize(null, "auto"); var inner = byClassName(cm.getWrapperElement(), "CodeMirror-lines")[0].firstChild; var lh = inner.offsetHeight; for (var step = 10, w = cm.charCoords(Pos(0, 7), "div").right;; w += step) { cm.setSize(w); if (inner.offsetHeight < 2.5 * lh) { if (step == 10) { w -= 10; step = 1; } else break; } } cm.setValue(cm.getValue() + "\n\n"); var endPos = cm.charCoords(Pos(0, 18), "local"); is(endPos.top > lh * .8, "not at top"); is(endPos.left > w - 20, "not at right"); endPos = cm.charCoords(Pos(0, 18)); eqPos(cm.coordsChar({left: endPos.left, top: endPos.top + 5}), Pos(0, 18)); }, {mode: "text/html", value: "", lineWrapping: true}, ie_lt8 || opera_lt10); testCM("scrollVerticallyAndHorizontally", function(cm) { cm.setSize(100, 100); addDoc(cm, 40, 40); cm.setCursor(39); var wrap = cm.getWrapperElement(), bar = byClassName(wrap, "CodeMirror-vscrollbar")[0]; is(bar.offsetHeight < wrap.offsetHeight, "vertical scrollbar limited by horizontal one"); var cursorBox = byClassName(wrap, "CodeMirror-cursor")[0].getBoundingClientRect(); var editorBox = wrap.getBoundingClientRect(); is(cursorBox.bottom < editorBox.top + cm.getScrollerElement().clientHeight, "bottom line visible"); }, {lineNumbers: true}); testCM("moveVstuck", function(cm) { var lines = byClassName(cm.getWrapperElement(), "CodeMirror-lines")[0].firstChild, h0 = lines.offsetHeight; var val = "fooooooooooooooooooooooooo baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar\n"; cm.setValue(val); for (var w = cm.charCoords(Pos(0, 26), "div").right * 2.8;; w += 5) { cm.setSize(w); if (lines.offsetHeight <= 3.5 * h0) break; } cm.setCursor(Pos(0, val.length - 1)); cm.moveV(-1, "line"); eqPos(cm.getCursor(), Pos(0, 26)); }, {lineWrapping: true}, ie_lt8 || opera_lt10); testCM("clickTab", function(cm) { var p0 = cm.charCoords(Pos(0, 0)); eqPos(cm.coordsChar({left: p0.left + 5, top: p0.top + 5}), Pos(0, 0)); eqPos(cm.coordsChar({left: p0.right - 5, top: p0.top + 5}), Pos(0, 1)); }, {value: "\t\n\n", lineWrapping: true, tabSize: 8}); testCM("verticalScroll", function(cm) { cm.setSize(100, 200); cm.setValue("foo\nbar\nbaz\n"); var sc = cm.getScrollerElement(), baseWidth = sc.scrollWidth; cm.setLine(0, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah"); is(sc.scrollWidth > baseWidth, "scrollbar present"); cm.setLine(0, "foo"); eq(sc.scrollWidth, baseWidth, "scrollbar gone"); cm.setLine(0, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah"); cm.setLine(1, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbh"); is(sc.scrollWidth > baseWidth, "present again"); var curWidth = sc.scrollWidth; cm.setLine(0, "foo"); is(sc.scrollWidth < curWidth, "scrollbar smaller"); is(sc.scrollWidth > baseWidth, "but still present"); }); testCM("extraKeys", function(cm) { var outcome; function fakeKey(expected, code, props) { if (typeof code == "string") code = code.charCodeAt(0); var e = {type: "keydown", keyCode: code, preventDefault: function(){}, stopPropagation: function(){}}; if (props) for (var n in props) e[n] = props[n]; outcome = null; cm.triggerOnKeyDown(e); eq(outcome, expected); } CodeMirror.commands.testCommand = function() {outcome = "tc";}; CodeMirror.commands.goTestCommand = function() {outcome = "gtc";}; cm.setOption("extraKeys", {"Shift-X": function() {outcome = "sx";}, "X": function() {outcome = "x";}, "Ctrl-Alt-U": function() {outcome = "cau";}, "End": "testCommand", "Home": "goTestCommand", "Tab": false}); fakeKey(null, "U"); fakeKey("cau", "U", {ctrlKey: true, altKey: true}); fakeKey(null, "U", {shiftKey: true, ctrlKey: true, altKey: true}); fakeKey("x", "X"); fakeKey("sx", "X", {shiftKey: true}); fakeKey("tc", 35); fakeKey(null, 35, {shiftKey: true}); fakeKey("gtc", 36); fakeKey("gtc", 36, {shiftKey: true}); fakeKey(null, 9); }, null, window.opera && mac); testCM("wordMovementCommands", function(cm) { cm.execCommand("goWordLeft"); eqPos(cm.getCursor(), Pos(0, 0)); cm.execCommand("goWordRight"); cm.execCommand("goWordRight"); eqPos(cm.getCursor(), Pos(0, 7)); cm.execCommand("goWordLeft"); eqPos(cm.getCursor(), Pos(0, 5)); cm.execCommand("goWordRight"); cm.execCommand("goWordRight"); eqPos(cm.getCursor(), Pos(0, 12)); cm.execCommand("goWordLeft"); eqPos(cm.getCursor(), Pos(0, 9)); cm.execCommand("goWordRight"); cm.execCommand("goWordRight"); cm.execCommand("goWordRight"); eqPos(cm.getCursor(), Pos(1, 1)); cm.execCommand("goWordRight"); eqPos(cm.getCursor(), Pos(1, 9)); cm.execCommand("goWordRight"); eqPos(cm.getCursor(), Pos(1, 13)); cm.execCommand("goWordRight"); cm.execCommand("goWordRight"); eqPos(cm.getCursor(), Pos(2, 0)); }, {value: "this is (the) firstline.\na foo12\u00e9\u00f8\u00d7bar\n"}); testCM("charMovementCommands", function(cm) { cm.execCommand("goCharLeft"); cm.execCommand("goColumnLeft"); eqPos(cm.getCursor(), Pos(0, 0)); cm.execCommand("goCharRight"); cm.execCommand("goCharRight"); eqPos(cm.getCursor(), Pos(0, 2)); cm.setCursor(Pos(1, 0)); cm.execCommand("goColumnLeft"); eqPos(cm.getCursor(), Pos(1, 0)); cm.execCommand("goCharLeft"); eqPos(cm.getCursor(), Pos(0, 5)); cm.execCommand("goColumnRight"); eqPos(cm.getCursor(), Pos(0, 5)); cm.execCommand("goCharRight"); eqPos(cm.getCursor(), Pos(1, 0)); cm.execCommand("goLineEnd"); eqPos(cm.getCursor(), Pos(1, 5)); cm.execCommand("goLineStartSmart"); eqPos(cm.getCursor(), Pos(1, 1)); cm.execCommand("goLineStartSmart"); eqPos(cm.getCursor(), Pos(1, 0)); cm.setCursor(Pos(2, 0)); cm.execCommand("goCharRight"); cm.execCommand("goColumnRight"); eqPos(cm.getCursor(), Pos(2, 0)); }, {value: "line1\n ine2\n"}); testCM("verticalMovementCommands", function(cm) { cm.execCommand("goLineUp"); eqPos(cm.getCursor(), Pos(0, 0)); cm.execCommand("goLineDown"); if (!phantom) // This fails in PhantomJS, though not in a real Webkit eqPos(cm.getCursor(), Pos(1, 0)); cm.setCursor(Pos(1, 12)); cm.execCommand("goLineDown"); eqPos(cm.getCursor(), Pos(2, 5)); cm.execCommand("goLineDown"); eqPos(cm.getCursor(), Pos(3, 0)); cm.execCommand("goLineUp"); eqPos(cm.getCursor(), Pos(2, 5)); cm.execCommand("goLineUp"); eqPos(cm.getCursor(), Pos(1, 12)); cm.execCommand("goPageDown"); eqPos(cm.getCursor(), Pos(5, 0)); cm.execCommand("goPageDown"); cm.execCommand("goLineDown"); eqPos(cm.getCursor(), Pos(5, 0)); cm.execCommand("goPageUp"); eqPos(cm.getCursor(), Pos(0, 0)); }, {value: "line1\nlong long line2\nline3\n\nline5\n"}); testCM("verticalMovementCommandsWrapping", function(cm) { cm.setSize(120); cm.setCursor(Pos(0, 5)); cm.execCommand("goLineDown"); eq(cm.getCursor().line, 0); is(cm.getCursor().ch > 5, "moved beyond wrap"); for (var i = 0; ; ++i) { is(i < 20, "no endless loop"); cm.execCommand("goLineDown"); var cur = cm.getCursor(); if (cur.line == 1) eq(cur.ch, 5); if (cur.line == 2) { eq(cur.ch, 1); break; } } }, {value: "a very long line that wraps around somehow so that we can test cursor movement\nshortone\nk", lineWrapping: true}); testCM("rtlMovement", function(cm) { forEach(["خحج", "خحabcخحج", "abخحخحجcd", "abخde", "abخح2342خ1حج", "خ1ح2خح3حxج", "خحcd", "1خحcd", "abcdeح1ج", "خمرحبها مها!", "foobarر"], function(line) { var inv = line.charAt(0) == "خ"; cm.setValue(line + "\n"); cm.execCommand(inv ? "goLineEnd" : "goLineStart"); var cursor = byClassName(cm.getWrapperElement(), "CodeMirror-cursor")[0]; var prevX = cursor.offsetLeft, prevY = cursor.offsetTop; for (var i = 0; i <= line.length; ++i) { cm.execCommand("goCharRight"); if (i == line.length) is(cursor.offsetTop > prevY, "next line"); else is(cursor.offsetLeft > prevX, "moved right"); prevX = cursor.offsetLeft; prevY = cursor.offsetTop; } cm.setCursor(0, 0); cm.execCommand(inv ? "goLineStart" : "goLineEnd"); prevX = cursor.offsetLeft; for (var i = 0; i < line.length; ++i) { cm.execCommand("goCharLeft"); is(cursor.offsetLeft < prevX, "moved left"); prevX = cursor.offsetLeft; } }); }, {rtlMoveVisually: true}); // Verify that updating a line clears its bidi ordering testCM("bidiUpdate", function(cm) { cm.setCursor(Pos(0, 2)); cm.replaceSelection("خحج", "start"); cm.execCommand("goCharRight"); eqPos(cm.getCursor(), Pos(0, 4)); }, {value: "abcd\n"}); testCM("movebyTextUnit", function(cm) { cm.setValue("בְּרֵאשִ\ńéée\n"); cm.execCommand("goLineEnd"); for (var i = 0; i < 4; ++i) cm.execCommand("goCharRight"); eqPos(cm.getCursor(), Pos(0, 0)); cm.execCommand("goCharRight"); eqPos(cm.getCursor(), Pos(1, 0)); cm.execCommand("goCharRight"); cm.execCommand("goCharRight"); eqPos(cm.getCursor(), Pos(1, 3)); cm.execCommand("goCharRight"); cm.execCommand("goCharRight"); eqPos(cm.getCursor(), Pos(1, 6)); }); testCM("lineChangeEvents", function(cm) { addDoc(cm, 3, 5); var log = [], want = ["ch 0", "ch 1", "del 2", "ch 0", "ch 0", "del 1", "del 3", "del 4"]; for (var i = 0; i < 5; ++i) { CodeMirror.on(cm.getLineHandle(i), "delete", function(i) { return function() {log.push("del " + i);}; }(i)); CodeMirror.on(cm.getLineHandle(i), "change", function(i) { return function() {log.push("ch " + i);}; }(i)); } cm.replaceRange("x", Pos(0, 1)); cm.replaceRange("xy", Pos(1, 1), Pos(2)); cm.replaceRange("foo\nbar", Pos(0, 1)); cm.replaceRange("", Pos(0, 0), Pos(cm.lineCount())); eq(log.length, want.length, "same length"); for (var i = 0; i < log.length; ++i) eq(log[i], want[i]); }); testCM("scrollEntirelyToRight", function(cm) { addDoc(cm, 500, 2); cm.setCursor(Pos(0, 500)); var wrap = cm.getWrapperElement(), cur = byClassName(wrap, "CodeMirror-cursor")[0]; is(wrap.getBoundingClientRect().right > cur.getBoundingClientRect().left); }); testCM("lineWidgets", function(cm) { addDoc(cm, 500, 3); var last = cm.charCoords(Pos(2, 0)); var node = document.createElement("div"); node.innerHTML = "hi"; var widget = cm.addLineWidget(1, node); is(last.top < cm.charCoords(Pos(2, 0)).top, "took up space"); cm.setCursor(Pos(1, 1)); cm.execCommand("goLineDown"); eqPos(cm.getCursor(), Pos(2, 1)); cm.execCommand("goLineUp"); eqPos(cm.getCursor(), Pos(1, 1)); }); testCM("lineWidgetFocus", function(cm) { var place = document.getElementById("testground"); place.className = "offscreen"; try { addDoc(cm, 500, 10); var node = document.createElement("input"); var widget = cm.addLineWidget(1, node); node.focus(); eq(document.activeElement, node); cm.replaceRange("new stuff", Pos(1, 0)); eq(document.activeElement, node); } finally { place.className = ""; } }); testCM("getLineNumber", function(cm) { addDoc(cm, 2, 20); var h1 = cm.getLineHandle(1); eq(cm.getLineNumber(h1), 1); cm.replaceRange("hi\nbye\n", Pos(0, 0)); eq(cm.getLineNumber(h1), 3); cm.setValue(""); eq(cm.getLineNumber(h1), null); }); testCM("jumpTheGap", function(cm) { var longLine = "abcdef ghiklmnop qrstuvw xyz "; longLine += longLine; longLine += longLine; longLine += longLine; cm.setLine(2, longLine); cm.setSize("200px", null); cm.getWrapperElement().style.lineHeight = 2; cm.refresh(); cm.setCursor(Pos(0, 1)); cm.execCommand("goLineDown"); eqPos(cm.getCursor(), Pos(1, 1)); cm.execCommand("goLineDown"); eqPos(cm.getCursor(), Pos(2, 1)); cm.execCommand("goLineDown"); eq(cm.getCursor().line, 2); is(cm.getCursor().ch > 1); cm.execCommand("goLineUp"); eqPos(cm.getCursor(), Pos(2, 1)); cm.execCommand("goLineUp"); eqPos(cm.getCursor(), Pos(1, 1)); var node = document.createElement("div"); node.innerHTML = "hi"; node.style.height = "30px"; cm.addLineWidget(0, node); cm.addLineWidget(1, node.cloneNode(true), {above: true}); cm.setCursor(Pos(0, 2)); cm.execCommand("goLineDown"); eqPos(cm.getCursor(), Pos(1, 2)); cm.execCommand("goLineUp"); eqPos(cm.getCursor(), Pos(0, 2)); }, {lineWrapping: true, value: "abc\ndef\nghi\njkl\n"}); testCM("addLineClass", function(cm) { function cls(line, text, bg, wrap) { var i = cm.lineInfo(line); eq(i.textClass, text); eq(i.bgClass, bg); eq(i.wrapClass, wrap); } cm.addLineClass(0, "text", "foo"); cm.addLineClass(0, "text", "bar"); cm.addLineClass(1, "background", "baz"); cm.addLineClass(1, "wrap", "foo"); cls(0, "foo bar", null, null); cls(1, null, "baz", "foo"); var lines = cm.display.lineDiv; eq(byClassName(lines, "foo").length, 2); eq(byClassName(lines, "bar").length, 1); eq(byClassName(lines, "baz").length, 1); cm.removeLineClass(0, "text", "foo"); cls(0, "bar", null, null); cm.removeLineClass(0, "text", "foo"); cls(0, "bar", null, null); cm.removeLineClass(0, "text", "bar"); cls(0, null, null, null); cm.addLineClass(1, "wrap", "quux"); cls(1, null, "baz", "foo quux"); cm.removeLineClass(1, "wrap"); cls(1, null, "baz", null); }, {value: "hohoho\n"}); testCM("atomicMarker", function(cm) { addDoc(cm, 10, 10); function atom(ll, cl, lr, cr, li, ri) { return cm.markText(Pos(ll, cl), Pos(lr, cr), {atomic: true, inclusiveLeft: li, inclusiveRight: ri}); } var m = atom(0, 1, 0, 5); cm.setCursor(Pos(0, 1)); cm.execCommand("goCharRight"); eqPos(cm.getCursor(), Pos(0, 5)); cm.execCommand("goCharLeft"); eqPos(cm.getCursor(), Pos(0, 1)); m.clear(); m = atom(0, 0, 0, 5, true); eqPos(cm.getCursor(), Pos(0, 5), "pushed out"); cm.execCommand("goCharLeft"); eqPos(cm.getCursor(), Pos(0, 5)); m.clear(); m = atom(8, 4, 9, 10, false, true); cm.setCursor(Pos(9, 8)); eqPos(cm.getCursor(), Pos(8, 4), "set"); cm.execCommand("goCharRight"); eqPos(cm.getCursor(), Pos(8, 4), "char right"); cm.execCommand("goLineDown"); eqPos(cm.getCursor(), Pos(8, 4), "line down"); cm.execCommand("goCharLeft"); eqPos(cm.getCursor(), Pos(8, 3)); m.clear(); m = atom(1, 1, 3, 8); cm.setCursor(Pos(2, 0)); eqPos(cm.getCursor(), Pos(3, 8)); cm.execCommand("goCharLeft"); eqPos(cm.getCursor(), Pos(1, 1)); cm.execCommand("goCharRight"); eqPos(cm.getCursor(), Pos(3, 8)); cm.execCommand("goLineUp"); eqPos(cm.getCursor(), Pos(1, 1)); cm.execCommand("goLineDown"); eqPos(cm.getCursor(), Pos(3, 8)); cm.execCommand("delCharBefore"); eq(cm.getValue().length, 80, "del chunk"); m = atom(3, 0, 5, 5); cm.setCursor(Pos(3, 0)); cm.execCommand("delWordAfter"); eq(cm.getValue().length, 53, "del chunk"); }); testCM("readOnlyMarker", function(cm) { function mark(ll, cl, lr, cr, at) { return cm.markText(Pos(ll, cl), Pos(lr, cr), {readOnly: true, atomic: at}); } var m = mark(0, 1, 0, 4); cm.setCursor(Pos(0, 2)); cm.replaceSelection("hi", "end"); eqPos(cm.getCursor(), Pos(0, 2)); eq(cm.getLine(0), "abcde"); cm.execCommand("selectAll"); cm.replaceSelection("oops"); eq(cm.getValue(), "oopsbcd"); cm.undo(); eqPos(m.find().from, Pos(0, 1)); eqPos(m.find().to, Pos(0, 4)); m.clear(); cm.setCursor(Pos(0, 2)); cm.replaceSelection("hi"); eq(cm.getLine(0), "abhicde"); eqPos(cm.getCursor(), Pos(0, 4)); m = mark(0, 2, 2, 2, true); cm.setSelection(Pos(1, 1), Pos(2, 4)); cm.replaceSelection("t", "end"); eqPos(cm.getCursor(), Pos(2, 3)); eq(cm.getLine(2), "klto"); cm.execCommand("goCharLeft"); cm.execCommand("goCharLeft"); eqPos(cm.getCursor(), Pos(0, 2)); cm.setSelection(Pos(0, 1), Pos(0, 3)); cm.replaceSelection("xx"); eqPos(cm.getCursor(), Pos(0, 3)); eq(cm.getLine(0), "axxhicde"); }, {value: "abcde\nfghij\nklmno\n"}); testCM("dirtyBit", function(cm) { eq(cm.isClean(), true); cm.replaceSelection("boo"); eq(cm.isClean(), false); cm.undo(); eq(cm.isClean(), true); cm.replaceSelection("boo"); cm.replaceSelection("baz"); cm.undo(); eq(cm.isClean(), false); cm.markClean(); eq(cm.isClean(), true); cm.undo(); eq(cm.isClean(), false); cm.redo(); eq(cm.isClean(), true); }); testCM("addKeyMap", function(cm) { function sendKey(code) { cm.triggerOnKeyDown({type: "keydown", keyCode: code, preventDefault: function(){}, stopPropagation: function(){}}); } sendKey(39); eqPos(cm.getCursor(), Pos(0, 1)); var test = 0; var map1 = {Right: function() { ++test; }}, map2 = {Right: function() { test += 10; }} cm.addKeyMap(map1); sendKey(39); eqPos(cm.getCursor(), Pos(0, 1)); eq(test, 1); cm.addKeyMap(map2); sendKey(39); eq(test, 2); cm.removeKeyMap(map1); sendKey(39); eq(test, 12); cm.removeKeyMap(map2); sendKey(39); eq(test, 12); eqPos(cm.getCursor(), Pos(0, 2)); cm.addKeyMap({Right: function() { test = 55; }, name: "mymap"}); sendKey(39); eq(test, 55); cm.removeKeyMap("mymap"); sendKey(39); eqPos(cm.getCursor(), Pos(0, 3)); }, {value: "abc"}); testCM("findPosH", function(cm) { forEach([{from: Pos(0, 0), to: Pos(0, 1), by: 1}, {from: Pos(0, 0), to: Pos(0, 0), by: -1, hitSide: true}, {from: Pos(0, 0), to: Pos(0, 4), by: 1, unit: "word"}, {from: Pos(0, 0), to: Pos(0, 8), by: 2, unit: "word"}, {from: Pos(0, 0), to: Pos(2, 0), by: 20, unit: "word", hitSide: true}, {from: Pos(0, 7), to: Pos(0, 5), by: -1, unit: "word"}, {from: Pos(0, 4), to: Pos(0, 8), by: 1, unit: "word"}, {from: Pos(1, 0), to: Pos(1, 18), by: 3, unit: "word"}, {from: Pos(1, 22), to: Pos(1, 5), by: -3, unit: "word"}, {from: Pos(1, 15), to: Pos(1, 10), by: -5}, {from: Pos(1, 15), to: Pos(1, 10), by: -5, unit: "column"}, {from: Pos(1, 15), to: Pos(1, 0), by: -50, unit: "column", hitSide: true}, {from: Pos(1, 15), to: Pos(1, 24), by: 50, unit: "column", hitSide: true}, {from: Pos(1, 15), to: Pos(2, 0), by: 50, hitSide: true}], function(t) { var r = cm.findPosH(t.from, t.by, t.unit || "char"); eqPos(r, t.to); eq(!!r.hitSide, !!t.hitSide); }); }, {value: "line one\nline two.something.other\n"}); testCM("beforeChange", function(cm) { cm.on("beforeChange", function(cm, change) { var text = []; for (var i = 0; i < change.text.length; ++i) text.push(change.text[i].replace(/\s/g, "_")); change.update(null, null, text); }); cm.setValue("hello, i am a\nnew document\n"); eq(cm.getValue(), "hello,_i_am_a\nnew_document\n"); CodeMirror.on(cm.getDoc(), "beforeChange", function(doc, change) { if (change.from.line == 0) change.cancel(); }); cm.setValue("oops"); // Canceled eq(cm.getValue(), "hello,_i_am_a\nnew_document\n"); cm.replaceRange("hey hey hey", Pos(1, 0), Pos(2, 0)); eq(cm.getValue(), "hello,_i_am_a\nhey_hey_hey"); }, {value: "abcdefghijk"}); testCM("beforeSelectionChange", function(cm) { function notAtEnd(cm, pos) { var len = cm.getLine(pos.line).length; if (!len || pos.ch == len) return Pos(pos.line, pos.ch - 1); return pos; } cm.on("beforeSelectionChange", function(cm, sel) { sel.head = notAtEnd(cm, sel.head); sel.anchor = notAtEnd(cm, sel.anchor); }); addDoc(cm, 10, 10); cm.execCommand("goLineEnd"); eqPos(cm.getCursor(), Pos(0, 9)); cm.execCommand("selectAll"); eqPos(cm.getCursor("start"), Pos(0, 0)); eqPos(cm.getCursor("end"), Pos(9, 9)); });site_pro/codemirror-3.1/test/driver.js0000644000000000000000000001000012111430706016636 0ustar rootrootvar tests = [], debug = null, debugUsed = new Array(), allNames = []; function Failure(why) {this.message = why;} Failure.prototype.toString = function() { return this.message; }; function indexOf(collection, elt) { if (collection.indexOf) return collection.indexOf(elt); for (var i = 0, e = collection.length; i < e; ++i) if (collection[i] == elt) return i; return -1; } function test(name, run, expectedFail) { // Force unique names var originalName = name; var i = 2; // Second function would be NAME_2 while (indexOf(allNames, name) !== -1){ name = originalName + "_" + i; i++; } allNames.push(name); // Add test tests.push({name: name, func: run, expectedFail: expectedFail}); return name; } function testCM(name, run, opts, expectedFail) { return test("core_" + name, function() { var place = document.getElementById("testground"), cm = CodeMirror(place, opts); var successful = false; try { run(cm); successful = true; } finally { if ((debug && !successful) || verbose) { place.style.visibility = "visible"; } else { place.removeChild(cm.getWrapperElement()); } } }, expectedFail); } function runTests(callback) { if (debug) { if (indexOf(debug, "verbose") === 0) { verbose = true; debug.splice(0, 1); } if (debug.length < 1) { debug = null; } } var totalTime = 0; function step(i) { if (i === tests.length){ running = false; return callback("done"); } var test = tests[i], expFail = test.expectedFail, startTime = +new Date; if (debug !== null) { var debugIndex = indexOf(debug, test.name); if (debugIndex !== -1) { // Remove from array for reporting incorrect tests later debug.splice(debugIndex, 1); } else { var wildcardName = test.name.split("_")[0] + "_*"; debugIndex = indexOf(debug, wildcardName); if (debugIndex !== -1) { // Remove from array for reporting incorrect tests later debug.splice(debugIndex, 1); debugUsed.push(wildcardName); } else { debugIndex = indexOf(debugUsed, wildcardName); if (debugIndex == -1) return step(i + 1); } } } var threw = false; try { var message = test.func(); } catch(e) { threw = true; if (expFail) callback("expected", test.name); else if (e instanceof Failure) callback("fail", test.name, e.message); else { var pos = /\bat .*?([^\/:]+):(\d+):/.exec(e.stack); callback("error", test.name, e.toString() + (pos ? " (" + pos[1] + ":" + pos[2] + ")" : "")); } } if (!threw) { if (expFail) callback("fail", test.name, message || "expected failure, but succeeded"); else callback("ok", test.name, message); } if (!quit) { // Run next test var delay = 0; totalTime += (+new Date) - startTime; if (totalTime > 500){ totalTime = 0; delay = 50; } setTimeout(function(){step(i + 1);}, delay); } else { // Quit tests running = false; return null; } } step(0); } function label(str, msg) { if (msg) return str + " (" + msg + ")"; return str; } function eq(a, b, msg) { if (a != b) throw new Failure(label(a + " != " + b, msg)); } function eqPos(a, b, msg) { function str(p) { return "{line:" + p.line + ",ch:" + p.ch + "}"; } if (a == b) return; if (a == null) throw new Failure(label("comparing null to " + str(b), msg)); if (b == null) throw new Failure(label("comparing " + str(a) + " to null", msg)); if (a.line != b.line || a.ch != b.ch) throw new Failure(label(str(a) + " != " + str(b), msg)); } function is(a, msg) { if (!a) throw new Failure(label("assertion failed", msg)); } function countTests() { if (!debug) return tests.length; var sum = 0; for (var i = 0; i < tests.length; ++i) { var name = tests[i].name; if (indexOf(debug, name) != -1 || indexOf(debug, name.split("_")[0] + "_*") != -1) ++sum; } return sum; } site_pro/codemirror-3.1/test/vim_test.js0000644000000000000000000011111412111430706017205 0ustar rootrootvar code = '' + ' wOrd1 (#%\n' + ' word3] \n' + 'aopop pop 0 1 2 3 4\n' + ' (a) [b] {c} \n' + 'int getchar(void) {\n' + ' static char buf[BUFSIZ];\n' + ' static char *bufp = buf;\n' + ' if (n == 0) { /* buffer is empty */\n' + ' n = read(0, buf, sizeof buf);\n' + ' bufp = buf;\n' + ' }\n' + ' return (--n >= 0) ? (unsigned char) *bufp++ : EOF;\n' + '}\n'; var lines = (function() { lineText = code.split('\n'); var ret = []; for (var i = 0; i < lineText.length; i++) { ret[i] = { line: i, length: lineText[i].length, lineText: lineText[i], textStart: /^\s*/.exec(lineText[i])[0].length }; } return ret; })(); var endOfDocument = makeCursor(lines.length - 1, lines[lines.length - 1].length); var wordLine = lines[0]; var bigWordLine = lines[1]; var charLine = lines[2]; var bracesLine = lines[3]; var word1 = { start: { line: wordLine.line, ch: 1 }, end: { line: wordLine.line, ch: 5 } }; var word2 = { start: { line: wordLine.line, ch: word1.end.ch + 2 }, end: { line: wordLine.line, ch: word1.end.ch + 4 } }; var word3 = { start: { line: bigWordLine.line, ch: 1 }, end: { line: bigWordLine.line, ch: 5 } }; var bigWord1 = word1; var bigWord2 = word2; var bigWord3 = { start: { line: bigWordLine.line, ch: 1 }, end: { line: bigWordLine.line, ch: 7 } }; var bigWord4 = { start: { line: bigWordLine.line, ch: bigWord1.end.ch + 3 }, end: { line: bigWordLine.line, ch: bigWord1.end.ch + 7 } } var oChars = [ { line: charLine.line, ch: 1 }, { line: charLine.line, ch: 3 }, { line: charLine.line, ch: 7 } ]; var pChars = [ { line: charLine.line, ch: 2 }, { line: charLine.line, ch: 4 }, { line: charLine.line, ch: 6 }, { line: charLine.line, ch: 8 } ]; var numChars = [ { line: charLine.line, ch: 10 }, { line: charLine.line, ch: 12 }, { line: charLine.line, ch: 14 }, { line: charLine.line, ch: 16 }, { line: charLine.line, ch: 18 }]; var parens1 = { start: { line: bracesLine.line, ch: 1 }, end: { line: bracesLine.line, ch: 3 } }; var squares1 = { start: { line: bracesLine.line, ch: 5 }, end: { line: bracesLine.line, ch: 7 } }; var curlys1 = { start: { line: bracesLine.line, ch: 9 }, end: { line: bracesLine.line, ch: 11 } }; function copyCursor(cur) { return { ch: cur.ch, line: cur.line }; } function testVim(name, run, opts, expectedFail) { var vimOpts = { lineNumbers: true, keyMap: 'vim', showCursorWhenSelecting: true, value: code }; for (var prop in opts) { if (opts.hasOwnProperty(prop)) { vimOpts[prop] = opts[prop]; } } return test('vim_' + name, function() { var place = document.getElementById("testground"); var cm = CodeMirror(place, vimOpts); CodeMirror.Vim.maybeInitState(cm); var vim = cm.vimState; function doKeysFn(cm) { return function(args) { if (args instanceof Array) { arguments = args; } for (var i = 0; i < arguments.length; i++) { CodeMirror.Vim.handleKey(cm, arguments[i]); } } } function doExFn(cm) { return function(command) { cm.openDialog = helpers.fakeOpenDialog(command); helpers.doKeys(':'); } } function assertCursorAtFn(cm) { return function(line, ch) { var pos; if (ch == null && typeof line.line == 'number') { pos = line; } else { pos = makeCursor(line, ch); } eqPos(pos, cm.getCursor()); } } function fakeOpenDialog(result) { return function(text, callback) { return callback(result); } } var helpers = { doKeys: doKeysFn(cm), doEx: doExFn(cm), assertCursorAt: assertCursorAtFn(cm), fakeOpenDialog: fakeOpenDialog, getRegisterController: function() { return CodeMirror.Vim.getRegisterController(); } } CodeMirror.Vim.clearVimGlobalState_(); var successful = false; try { run(cm, vim, helpers); successful = true; } finally { if ((debug && !successful) || verbose) { place.style.visibility = "visible"; } else { place.removeChild(cm.getWrapperElement()); } } }, expectedFail); }; /** * @param name Name of the test * @param keys An array of keys or a string with a single key to simulate. * @param endPos The expected end position of the cursor. * @param startPos The position the cursor should start at, defaults to 0, 0. */ function testMotion(name, keys, endPos, startPos) { testVim(name, function(cm, vim, helpers) { if (!startPos) { startPos = { line: 0, ch: 0 }; } cm.setCursor(startPos); helpers.doKeys(keys); helpers.assertCursorAt(endPos); }); }; function makeCursor(line, ch) { return { line: line, ch: ch }; }; function offsetCursor(cur, offsetLine, offsetCh) { return { line: cur.line + offsetLine, ch: cur.ch + offsetCh }; }; // Motion tests testMotion('|', '|', makeCursor(0, 0), makeCursor(0,4)); testMotion('|_repeat', ['3', '|'], makeCursor(0, 2), makeCursor(0,4)); testMotion('h', 'h', makeCursor(0, 0), word1.start); testMotion('h_repeat', ['3', 'h'], offsetCursor(word1.end, 0, -3), word1.end); testMotion('l', 'l', makeCursor(0, 1)); testMotion('l_repeat', ['2', 'l'], makeCursor(0, 2)); testMotion('j', 'j', offsetCursor(word1.end, 1, 0), word1.end); testMotion('j_repeat', ['2', 'j'], offsetCursor(word1.end, 2, 0), word1.end); testMotion('k', 'k', offsetCursor(word3.end, -1, 0), word3.end); testMotion('k_repeat', ['2', 'k'], makeCursor(0, 4), makeCursor(2, 4)); testMotion('w', 'w', word1.start); testMotion('w_repeat', ['2', 'w'], word2.start); testMotion('w_wrap', ['w'], word3.start, word2.start); testMotion('w_endOfDocument', 'w', endOfDocument, endOfDocument); testMotion('W', 'W', bigWord1.start); testMotion('W_repeat', ['2', 'W'], bigWord3.start, bigWord1.start); testMotion('e', 'e', word1.end); testMotion('e_repeat', ['2', 'e'], word2.end); testMotion('e_wrap', 'e', word3.end, word2.end); testMotion('e_endOfDocument', 'e', endOfDocument, endOfDocument); testMotion('b', 'b', word3.start, word3.end); testMotion('b_repeat', ['2', 'b'], word2.start, word3.end); testMotion('b_wrap', 'b', word2.start, word3.start); testMotion('b_startOfDocument', 'b', makeCursor(0, 0), makeCursor(0, 0)); testMotion('ge', ['g', 'e'], word2.end, word3.end); testMotion('ge_repeat', ['2', 'g', 'e'], word1.end, word3.start); testMotion('ge_wrap', ['g', 'e'], word2.end, word3.start); testMotion('ge_startOfDocument', ['g', 'e'], makeCursor(0, 0), makeCursor(0, 0)); testMotion('gg', ['g', 'g'], makeCursor(lines[0].line, lines[0].textStart), makeCursor(3, 1)); testMotion('gg_repeat', ['3', 'g', 'g'], makeCursor(lines[2].line, lines[2].textStart)); testMotion('G', 'G', makeCursor(lines[lines.length - 1].line, lines[lines.length - 1].textStart), makeCursor(3, 1)); testMotion('G_repeat', ['3', 'G'], makeCursor(lines[2].line, lines[2].textStart)); // TODO: Make the test code long enough to test Ctrl-F and Ctrl-B. testMotion('0', '0', makeCursor(0, 0), makeCursor(0, 8)); testMotion('^', '^', makeCursor(0, lines[0].textStart), makeCursor(0, 8)); testMotion('$', '$', makeCursor(0, lines[0].length - 1), makeCursor(0, 1)); testMotion('$_repeat', ['2', '$'], makeCursor(1, lines[1].length - 1), makeCursor(0, 3)); testMotion('f', ['f', 'p'], pChars[0], makeCursor(charLine.line, 0)); testMotion('f_repeat', ['2', 'f', 'p'], pChars[2], pChars[0]); testMotion('f_num', ['f', '2'], numChars[2], makeCursor(charLine.line, 0)); testMotion('t', ['t','p'], offsetCursor(pChars[0], 0, -1), makeCursor(charLine.line, 0)); testMotion('t_repeat', ['2', 't', 'p'], offsetCursor(pChars[2], 0, -1), pChars[0]); testMotion('F', ['F', 'p'], pChars[0], pChars[1]); testMotion('F_repeat', ['2', 'F', 'p'], pChars[0], pChars[2]); testMotion('T', ['T', 'p'], offsetCursor(pChars[0], 0, 1), pChars[1]); testMotion('T_repeat', ['2', 'T', 'p'], offsetCursor(pChars[0], 0, 1), pChars[2]); testMotion('%_parens', ['%'], parens1.end, parens1.start); testMotion('%_squares', ['%'], squares1.end, squares1.start); testMotion('%_braces', ['%'], curlys1.end, curlys1.start); // Make sure that moving down after going to the end of a line always leaves you // at the end of a line, but preserves the offset in other cases testVim('Changing lines after Eol operation', function(cm, vim, helpers) { var startPos = { line: 0, ch: 0 }; cm.setCursor(startPos); helpers.doKeys(['$']); helpers.doKeys(['j']); // After moving to Eol and then down, we should be at Eol of line 2 helpers.assertCursorAt({ line: 1, ch: lines[1].length - 1 }); helpers.doKeys(['j']); // After moving down, we should be at Eol of line 3 helpers.assertCursorAt({ line: 2, ch: lines[2].length - 1 }); helpers.doKeys(['h']); helpers.doKeys(['j']); // After moving back one space and then down, since line 4 is shorter than line 2, we should // be at Eol of line 2 - 1 helpers.assertCursorAt({ line: 3, ch: lines[3].length - 1 }); helpers.doKeys(['j']); helpers.doKeys(['j']); // After moving down again, since line 3 has enough characters, we should be back to the // same place we were at on line 1 helpers.assertCursorAt({ line: 5, ch: lines[2].length - 2 }); }); //making sure gj and gk recover from clipping testVim('gj_gk_clipping', function(cm,vim,helpers){ cm.setCursor(0, 1); helpers.doKeys('g','j','g','j'); helpers.assertCursorAt(2, 1); helpers.doKeys('g','k','g','k'); helpers.assertCursorAt(0, 1); },{value: 'line 1\n\nline 2'}); //testing a mix of j/k and gj/gk testVim('j_k_and_gj_gk', function(cm,vim,helpers){ cm.setSize(120); cm.setCursor(0, 0); //go to the last character on the first line helpers.doKeys('$'); //move up/down on the column within the wrapped line //side-effect: cursor is not locked to eol anymore helpers.doKeys('g','k'); var cur=cm.getCursor(); eq(cur.line,0); is((cur.ch<176),'gk didn\'t move cursor back (1)'); helpers.doKeys('g','j'); helpers.assertCursorAt(0, 176); //should move to character 177 on line 2 (j/k preserve character index within line) helpers.doKeys('j'); //due to different line wrapping, the cursor can be on a different screen-x now //gj and gk preserve screen-x on movement, much like moveV helpers.doKeys('3','g','k'); cur=cm.getCursor(); eq(cur.line,1); is((cur.ch<176),'gk didn\'t move cursor back (2)'); helpers.doKeys('g','j','2','g','j'); //should return to the same character-index helpers.doKeys('k'); helpers.assertCursorAt(0, 176); },{ lineWrapping:true, value: 'This line is intentially long to test movement of gj and gk over wrapped lines. I will start on the end of this line, then make a step up and back to set the origin for j and k.\nThis line is supposed to be even longer than the previous. I will jump here and make another wiggle with gj and gk, before I jump back to the line above. Both wiggles should not change my cursor\'s target character but both j/k and gj/gk change each other\'s reference position.'}); testVim('}', function(cm, vim, helpers) { cm.setCursor(0, 0); helpers.doKeys('}'); helpers.assertCursorAt(1, 0); cm.setCursor(0, 0); helpers.doKeys('2', '}'); helpers.assertCursorAt(4, 0); cm.setCursor(0, 0); helpers.doKeys('6', '}'); helpers.assertCursorAt(5, 0); }, { value: 'a\n\nb\nc\n\nd' }); testVim('{', function(cm, vim, helpers) { cm.setCursor(5, 0); helpers.doKeys('{'); helpers.assertCursorAt(4, 0); cm.setCursor(5, 0); helpers.doKeys('2', '{'); helpers.assertCursorAt(1, 0); cm.setCursor(5, 0); helpers.doKeys('6', '{'); helpers.assertCursorAt(0, 0); }, { value: 'a\n\nb\nc\n\nd' }); // Operator tests testVim('dl', function(cm, vim, helpers) { var curStart = makeCursor(0, 0); cm.setCursor(curStart); helpers.doKeys('d', 'l'); eq('word1 ', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq(' ', register.text); is(!register.linewise); eqPos(curStart, cm.getCursor()); }, { value: ' word1 ' }); testVim('dl_eol', function(cm, vim, helpers) { var curStart = makeCursor(0, 6); cm.setCursor(curStart); helpers.doKeys('d', 'l'); eq(' word1', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq(' ', register.text); is(!register.linewise); helpers.assertCursorAt(0, 6); }, { value: ' word1 ' }); testVim('dl_repeat', function(cm, vim, helpers) { var curStart = makeCursor(0, 0); cm.setCursor(curStart); helpers.doKeys('2', 'd', 'l'); eq('ord1 ', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq(' w', register.text); is(!register.linewise); eqPos(curStart, cm.getCursor()); }, { value: ' word1 ' }); testVim('dh', function(cm, vim, helpers) { var curStart = makeCursor(0, 3); cm.setCursor(curStart); helpers.doKeys('d', 'h'); eq(' wrd1 ', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('o', register.text); is(!register.linewise); eqPos(offsetCursor(curStart, 0 , -1), cm.getCursor()); }, { value: ' word1 ' }); testVim('dj', function(cm, vim, helpers) { var curStart = makeCursor(0, 3); cm.setCursor(curStart); helpers.doKeys('d', 'j'); eq(' word3', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq(' word1\nword2\n', register.text); is(register.linewise); helpers.assertCursorAt(0, 1); }, { value: ' word1\nword2\n word3' }); testVim('dj_end_of_document', function(cm, vim, helpers) { var curStart = makeCursor(0, 3); cm.setCursor(curStart); helpers.doKeys('d', 'j'); eq(' word1 ', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('', register.text); is(!register.linewise); helpers.assertCursorAt(0, 3); }, { value: ' word1 ' }); testVim('dk', function(cm, vim, helpers) { var curStart = makeCursor(1, 3); cm.setCursor(curStart); helpers.doKeys('d', 'k'); eq(' word3', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq(' word1\nword2\n', register.text); is(register.linewise); helpers.assertCursorAt(0, 1); }, { value: ' word1\nword2\n word3' }); testVim('dk_start_of_document', function(cm, vim, helpers) { var curStart = makeCursor(0, 3); cm.setCursor(curStart); helpers.doKeys('d', 'k'); eq(' word1 ', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('', register.text); is(!register.linewise); helpers.assertCursorAt(0, 3); }, { value: ' word1 ' }); testVim('dw_space', function(cm, vim, helpers) { var curStart = makeCursor(0, 0); cm.setCursor(curStart); helpers.doKeys('d', 'w'); eq('word1 ', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq(' ', register.text); is(!register.linewise); eqPos(curStart, cm.getCursor()); }, { value: ' word1 ' }); testVim('dw_word', function(cm, vim, helpers) { var curStart = makeCursor(0, 1); cm.setCursor(curStart); helpers.doKeys('d', 'w'); eq(' word2', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('word1 ', register.text); is(!register.linewise); eqPos(curStart, cm.getCursor()); }, { value: ' word1 word2' }); testVim('dw_only_word', function(cm, vim, helpers) { // Test that if there is only 1 word left, dw deletes till the end of the // line. var curStart = makeCursor(0, 1); cm.setCursor(curStart); helpers.doKeys('d', 'w'); eq(' ', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('word1 ', register.text); is(!register.linewise); eqPos(curStart, cm.getCursor()); }, { value: ' word1 ' }); testVim('dw_eol', function(cm, vim, helpers) { // Assert that dw does not delete the newline if last word to delete is at end // of line. var curStart = makeCursor(0, 1); cm.setCursor(curStart); helpers.doKeys('d', 'w'); eq(' \nword2', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('word1', register.text); is(!register.linewise); eqPos(curStart, cm.getCursor()); }, { value: ' word1\nword2' }); testVim('dw_repeat', function(cm, vim, helpers) { // Assert that dw does delete newline if it should go to the next line, and // that repeat works properly. var curStart = makeCursor(0, 1); cm.setCursor(curStart); helpers.doKeys('d', '2', 'w'); eq(' ', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('word1\nword2', register.text); is(!register.linewise); eqPos(curStart, cm.getCursor()); }, { value: ' word1\nword2' }); testVim('d_inclusive', function(cm, vim, helpers) { // Assert that when inclusive is set, the character the cursor is on gets // deleted too. var curStart = makeCursor(0, 1); cm.setCursor(curStart); helpers.doKeys('d', 'e'); eq(' ', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('word1', register.text); is(!register.linewise); eqPos(curStart, cm.getCursor()); }, { value: ' word1 ' }); testVim('d_reverse', function(cm, vim, helpers) { // Test that deleting in reverse works. cm.setCursor(1, 0); helpers.doKeys('d', 'b'); eq(' word2 ', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('word1\n', register.text); is(!register.linewise); helpers.assertCursorAt(0, 1); }, { value: ' word1\nword2 ' }); testVim('dd', function(cm, vim, helpers) { cm.setCursor(0, 3); var expectedBuffer = cm.getRange({ line: 0, ch: 0 }, { line: 1, ch: 0 }); var expectedLineCount = cm.lineCount() - 1; helpers.doKeys('d', 'd'); eq(expectedLineCount, cm.lineCount()); var register = helpers.getRegisterController().getRegister(); eq(expectedBuffer, register.text); is(register.linewise); helpers.assertCursorAt(0, lines[1].textStart); }); testVim('dd_prefix_repeat', function(cm, vim, helpers) { cm.setCursor(0, 3); var expectedBuffer = cm.getRange({ line: 0, ch: 0 }, { line: 2, ch: 0 }); var expectedLineCount = cm.lineCount() - 2; helpers.doKeys('2', 'd', 'd'); eq(expectedLineCount, cm.lineCount()); var register = helpers.getRegisterController().getRegister(); eq(expectedBuffer, register.text); is(register.linewise); helpers.assertCursorAt(0, lines[2].textStart); }); testVim('dd_motion_repeat', function(cm, vim, helpers) { cm.setCursor(0, 3); var expectedBuffer = cm.getRange({ line: 0, ch: 0 }, { line: 2, ch: 0 }); var expectedLineCount = cm.lineCount() - 2; helpers.doKeys('d', '2', 'd'); eq(expectedLineCount, cm.lineCount()); var register = helpers.getRegisterController().getRegister(); eq(expectedBuffer, register.text); is(register.linewise); helpers.assertCursorAt(0, lines[2].textStart); }); testVim('dd_multiply_repeat', function(cm, vim, helpers) { cm.setCursor(0, 3); var expectedBuffer = cm.getRange({ line: 0, ch: 0 }, { line: 6, ch: 0 }); var expectedLineCount = cm.lineCount() - 6; helpers.doKeys('2', 'd', '3', 'd'); eq(expectedLineCount, cm.lineCount()); var register = helpers.getRegisterController().getRegister(); eq(expectedBuffer, register.text); is(register.linewise); helpers.assertCursorAt(0, lines[6].textStart); }); // Yank commands should behave the exact same as d commands, expect that nothing // gets deleted. testVim('yw_repeat', function(cm, vim, helpers) { // Assert that yw does yank newline if it should go to the next line, and // that repeat works properly. var curStart = makeCursor(0, 1); cm.setCursor(curStart); helpers.doKeys('y', '2', 'w'); eq(' word1\nword2', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('word1\nword2', register.text); is(!register.linewise); eqPos(curStart, cm.getCursor()); }, { value: ' word1\nword2' }); testVim('yy_multiply_repeat', function(cm, vim, helpers) { var curStart = makeCursor(0, 3); cm.setCursor(curStart); var expectedBuffer = cm.getRange({ line: 0, ch: 0 }, { line: 6, ch: 0 }); var expectedLineCount = cm.lineCount(); helpers.doKeys('2', 'y', '3', 'y'); eq(expectedLineCount, cm.lineCount()); var register = helpers.getRegisterController().getRegister(); eq(expectedBuffer, register.text); is(register.linewise); eqPos(curStart, cm.getCursor()); }); // Change commands behave like d commands except that it also enters insert // mode. In addition, when the change is linewise, an additional newline is // inserted so that insert mode starts on that line. testVim('cw_repeat', function(cm, vim, helpers) { // Assert that cw does delete newline if it should go to the next line, and // that repeat works properly. var curStart = makeCursor(0, 1); cm.setCursor(curStart); helpers.doKeys('c', '2', 'w'); eq(' ', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('word1\nword2', register.text); is(!register.linewise); eqPos(curStart, cm.getCursor()); eq('vim-insert', cm.getOption('keyMap')); }, { value: ' word1\nword2' }); testVim('cc_multiply_repeat', function(cm, vim, helpers) { cm.setCursor(0, 3); var expectedBuffer = cm.getRange({ line: 0, ch: 0 }, { line: 6, ch: 0 }); var expectedLineCount = cm.lineCount() - 5; helpers.doKeys('2', 'c', '3', 'c'); eq(expectedLineCount, cm.lineCount()); var register = helpers.getRegisterController().getRegister(); eq(expectedBuffer, register.text); is(register.linewise); helpers.assertCursorAt(0, lines[0].textStart); eq('vim-insert', cm.getOption('keyMap')); }); // Swapcase commands edit in place and do not modify registers. testVim('g~w_repeat', function(cm, vim, helpers) { // Assert that dw does delete newline if it should go to the next line, and // that repeat works properly. var curStart = makeCursor(0, 1); cm.setCursor(curStart); helpers.doKeys('g', '~', '2', 'w'); eq(' WORD1\nWORD2', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('', register.text); is(!register.linewise); eqPos(curStart, cm.getCursor()); }, { value: ' word1\nword2' }); testVim('g~g~', function(cm, vim, helpers) { var curStart = makeCursor(0, 3); cm.setCursor(curStart); var expectedLineCount = cm.lineCount(); var expectedValue = cm.getValue().toUpperCase(); helpers.doKeys('2', 'g', '~', '3', 'g', '~'); eq(expectedValue, cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('', register.text); is(!register.linewise); eqPos(curStart, cm.getCursor()); }, { value: ' word1\nword2\nword3\nword4\nword5\nword6' }); testVim('>{motion}', function(cm, vim, helpers) { cm.setCursor(1, 3); var expectedLineCount = cm.lineCount(); var expectedValue = ' word1\n word2\nword3 '; helpers.doKeys('>', 'k'); eq(expectedValue, cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('', register.text); is(!register.linewise); helpers.assertCursorAt(0, 3); }, { value: ' word1\nword2\nword3 ', indentUnit: 2 }); testVim('>>', function(cm, vim, helpers) { cm.setCursor(0, 3); var expectedLineCount = cm.lineCount(); var expectedValue = ' word1\n word2\nword3 '; helpers.doKeys('2', '>', '>'); eq(expectedValue, cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('', register.text); is(!register.linewise); helpers.assertCursorAt(0, 3); }, { value: ' word1\nword2\nword3 ', indentUnit: 2 }); testVim('<{motion}', function(cm, vim, helpers) { cm.setCursor(1, 3); var expectedLineCount = cm.lineCount(); var expectedValue = ' word1\nword2\nword3 '; helpers.doKeys('<', 'k'); eq(expectedValue, cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('', register.text); is(!register.linewise); helpers.assertCursorAt(0, 1); }, { value: ' word1\n word2\nword3 ', indentUnit: 2 }); testVim('<<', function(cm, vim, helpers) { cm.setCursor(0, 3); var expectedLineCount = cm.lineCount(); var expectedValue = ' word1\nword2\nword3 '; helpers.doKeys('2', '<', '<'); eq(expectedValue, cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('', register.text); is(!register.linewise); helpers.assertCursorAt(0, 1); }, { value: ' word1\n word2\nword3 ', indentUnit: 2 }); // Operator-motion tests testVim('D', function(cm, vim, helpers) { var curStart = makeCursor(0, 3); cm.setCursor(curStart); helpers.doKeys('D'); eq(' wo\nword2\n word3', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('rd1', register.text); is(!register.linewise); helpers.assertCursorAt(0, 3); }, { value: ' word1\nword2\n word3' }); testVim('C', function(cm, vim, helpers) { var curStart = makeCursor(0, 3); cm.setCursor(curStart); helpers.doKeys('C'); eq(' wo\nword2\n word3', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('rd1', register.text); is(!register.linewise); helpers.assertCursorAt(0, 3); eq('vim-insert', cm.getOption('keyMap')); }, { value: ' word1\nword2\n word3' }); testVim('Y', function(cm, vim, helpers) { var curStart = makeCursor(0, 3); cm.setCursor(curStart); helpers.doKeys('Y'); eq(' word1\nword2\n word3', cm.getValue()); var register = helpers.getRegisterController().getRegister(); eq('rd1', register.text); is(!register.linewise); helpers.assertCursorAt(0, 3); }, { value: ' word1\nword2\n word3' }); // Action tests testVim('a', function(cm, vim, helpers) { cm.setCursor(0, 1); helpers.doKeys('a'); helpers.assertCursorAt(0, 2); eq('vim-insert', cm.getOption('keyMap')); }); testVim('a_eol', function(cm, vim, helpers) { cm.setCursor(0, lines[0].length - 1); helpers.doKeys('a'); helpers.assertCursorAt(0, lines[0].length); eq('vim-insert', cm.getOption('keyMap')); }); testVim('i', function(cm, vim, helpers) { cm.setCursor(0, 1); helpers.doKeys('i'); helpers.assertCursorAt(0, 1); eq('vim-insert', cm.getOption('keyMap')); }); testVim('A', function(cm, vim, helpers) { cm.setCursor(0, 0); helpers.doKeys('A'); helpers.assertCursorAt(0, lines[0].length); eq('vim-insert', cm.getOption('keyMap')); }); testVim('I', function(cm, vim, helpers) { cm.setCursor(0, 4); helpers.doKeys('I'); helpers.assertCursorAt(0, lines[0].textStart); eq('vim-insert', cm.getOption('keyMap')); }); testVim('o', function(cm, vim, helpers) { cm.setCursor(0, 4); helpers.doKeys('o'); eq('word1\n\nword2', cm.getValue()); helpers.assertCursorAt(1, 0); eq('vim-insert', cm.getOption('keyMap')); }, { value: 'word1\nword2' }); testVim('O', function(cm, vim, helpers) { cm.setCursor(0, 4); helpers.doKeys('O'); eq('\nword1\nword2', cm.getValue()); helpers.assertCursorAt(0, 0); eq('vim-insert', cm.getOption('keyMap')); }, { value: 'word1\nword2' }); testVim('J', function(cm, vim, helpers) { cm.setCursor(0, 4); helpers.doKeys('J'); var expectedValue = 'word1 word2\nword3\n word4'; eq(expectedValue, cm.getValue()); helpers.assertCursorAt(0, expectedValue.indexOf('word2') - 1); }, { value: 'word1 \n word2\nword3\n word4' }); testVim('J_repeat', function(cm, vim, helpers) { cm.setCursor(0, 4); helpers.doKeys('3', 'J'); var expectedValue = 'word1 word2 word3\n word4'; eq(expectedValue, cm.getValue()); helpers.assertCursorAt(0, expectedValue.indexOf('word3') - 1); }, { value: 'word1 \n word2\nword3\n word4' }); testVim('p', function(cm, vim, helpers) { cm.setCursor(0, 1); helpers.getRegisterController().pushText('"', 'yank', 'abc\ndef', false); helpers.doKeys('p'); eq('__abc\ndef_', cm.getValue()); helpers.assertCursorAt(1, 2); }, { value: '___' }); testVim('p_register', function(cm, vim, helpers) { cm.setCursor(0, 1); helpers.getRegisterController().getRegister('a').set('abc\ndef', false); helpers.doKeys('"', 'a', 'p'); eq('__abc\ndef_', cm.getValue()); helpers.assertCursorAt(1, 2); }, { value: '___' }); testVim('p_wrong_register', function(cm, vim, helpers) { cm.setCursor(0, 1); helpers.getRegisterController().getRegister('a').set('abc\ndef', false); helpers.doKeys('p'); eq('___', cm.getValue()); helpers.assertCursorAt(0, 1); }, { value: '___' }); testVim('p_line', function(cm, vim, helpers) { cm.setCursor(0, 1); helpers.getRegisterController().pushText('"', 'yank', ' a\nd\n', true); helpers.doKeys('2', 'p'); eq('___\n a\nd\n a\nd', cm.getValue()); helpers.assertCursorAt(1, 2); }, { value: '___' }); testVim('P', function(cm, vim, helpers) { cm.setCursor(0, 1); helpers.getRegisterController().pushText('"', 'yank', 'abc\ndef', false); helpers.doKeys('P'); eq('_abc\ndef__', cm.getValue()); helpers.assertCursorAt(1, 3); }, { value: '___' }); testVim('P_line', function(cm, vim, helpers) { cm.setCursor(0, 1); helpers.getRegisterController().pushText('"', 'yank', ' a\nd\n', true); helpers.doKeys('2', 'P'); eq(' a\nd\n a\nd\n___', cm.getValue()); helpers.assertCursorAt(0, 2); }, { value: '___' }); testVim('r', function(cm, vim, helpers) { cm.setCursor(0, 1); helpers.doKeys('3', 'r', 'u'); eq('wuuuet', cm.getValue()); helpers.assertCursorAt(0, 3); }, { value: 'wordet' }); testVim('mark', function(cm, vim, helpers) { cm.setCursor(2, 2); helpers.doKeys('m', 't'); cm.setCursor(0, 0); helpers.doKeys('\'', 't'); helpers.assertCursorAt(2, 2); cm.setCursor(0, 0); helpers.doKeys('`', 't'); helpers.assertCursorAt(2, 2); }); testVim('visual', function(cm, vim, helpers) { helpers.doKeys('l', 'v', 'l', 'l'); helpers.assertCursorAt(0, 3); eqPos(makeCursor(0, 1), cm.getCursor('anchor')); helpers.doKeys('d'); eq('15', cm.getValue()); }, { value: '12345' }); testVim('visual_line', function(cm, vim, helpers) { helpers.doKeys('l', 'V', 'l', 'j', 'j', 'd'); eq(' 4\n 5', cm.getValue()); }, { value: ' 1\n 2\n 3\n 4\n 5' }); testVim('visual_marks', function(cm, vim, helpers) { helpers.doKeys('l', 'v', 'l', 'l', 'v'); // Test visual mode marks cm.setCursor(0, 0); helpers.doKeys('\'', '<'); helpers.assertCursorAt(0, 1); helpers.doKeys('\'', '>'); helpers.assertCursorAt(0, 3); }); testVim('visual_join', function(cm, vim, helpers) { helpers.doKeys('l', 'V', 'l', 'j', 'j', 'J'); eq(' 1 2 3\n 4\n 5', cm.getValue()); }, { value: ' 1\n 2\n 3\n 4\n 5' }); testVim('/ and n/N', function(cm, vim, helpers) { cm.openDialog = helpers.fakeOpenDialog('match'); helpers.doKeys('/'); helpers.assertCursorAt(0, 11); helpers.doKeys('n'); helpers.assertCursorAt(1, 6); helpers.doKeys('N'); helpers.assertCursorAt(0, 11); cm.setCursor(0, 0); helpers.doKeys('2', '/'); helpers.assertCursorAt(1, 6); }, { value: 'match nope match \n nope Match' }); testVim('/_case', function(cm, vim, helpers) { cm.openDialog = helpers.fakeOpenDialog('Match'); helpers.doKeys('/'); helpers.assertCursorAt(1, 6); }, { value: 'match nope match \n nope Match' }); testVim('? and n/N', function(cm, vim, helpers) { cm.openDialog = helpers.fakeOpenDialog('match'); helpers.doKeys('?'); helpers.assertCursorAt(1, 6); helpers.doKeys('n'); helpers.assertCursorAt(0, 11); helpers.doKeys('N'); helpers.assertCursorAt(1, 6); cm.setCursor(0, 0); helpers.doKeys('2', '?'); helpers.assertCursorAt(0, 11); }, { value: 'match nope match \n nope Match' }); //:noh should clear highlighting of search-results but allow to resume search through n testVim('noh_clearSearchHighlight', function(cm, vim, helpers) { cm.openDialog = helpers.fakeOpenDialog('match'); helpers.doKeys('?'); helpers.doEx('noh'); eq(vim.searchState_.getOverlay(),null,'match-highlighting wasn\'t cleared'); helpers.doKeys('n'); helpers.assertCursorAt(0, 11,'can\'t resume search after clearing highlighting'); }, { value: 'match nope match \n nope Match' }); testVim('*', function(cm, vim, helpers) { cm.setCursor(0, 9); helpers.doKeys('*'); helpers.assertCursorAt(0, 22); cm.setCursor(0, 9); helpers.doKeys('2', '*'); helpers.assertCursorAt(1, 8); }, { value: 'nomatch match nomatch match \nnomatch Match' }); testVim('*_no_word', function(cm, vim, helpers) { cm.setCursor(0, 0); helpers.doKeys('*'); helpers.assertCursorAt(0, 0); }, { value: ' \n match \n' }); testVim('*_symbol', function(cm, vim, helpers) { cm.setCursor(0, 0); helpers.doKeys('*'); helpers.assertCursorAt(1, 0); }, { value: ' /}\n/} match \n' }); testVim('#', function(cm, vim, helpers) { cm.setCursor(0, 9); helpers.doKeys('#'); helpers.assertCursorAt(1, 8); cm.setCursor(0, 9); helpers.doKeys('2', '#'); helpers.assertCursorAt(0, 22); }, { value: 'nomatch match nomatch match \nnomatch Match' }); testVim('*_seek', function(cm, vim, helpers) { // Should skip over space and symbols. cm.setCursor(0, 3); helpers.doKeys('*'); helpers.assertCursorAt(0, 22); }, { value: ' := match nomatch match \nnomatch Match' }); testVim('#', function(cm, vim, helpers) { // Should skip over space and symbols. cm.setCursor(0, 3); helpers.doKeys('#'); helpers.assertCursorAt(1, 8); }, { value: ' := match nomatch match \nnomatch Match' }); testVim('ex_write', function(cm, vim, helpers) { var tmp = CodeMirror.commands.save; var written; var actualCm; CodeMirror.commands.save = function(cm) { written = true; actualCm = cm; }; // Test that w, wr, wri ... write all trigger :write. var command = 'write'; for (var i = 1; i < command.length; i++) { written = false; actualCm = null; helpers.doEx(command.substring(0, i)); eq(written, true); eq(actualCm, cm); } CodeMirror.commands.save = tmp; }); testVim('ex_substitute_same_line', function(cm, vim, helpers) { cm.setCursor(1, 0); helpers.doEx('s/one/two'); eq('one one\n two two', cm.getValue()); }, { value: 'one one\n one one'}); testVim('ex_substitute_global', function(cm, vim, helpers) { cm.setCursor(1, 0); helpers.doEx('%s/one/two'); eq('two two\n two two', cm.getValue()); }, { value: 'one one\n one one'}); testVim('ex_substitute_input_range', function(cm, vim, helpers) { cm.setCursor(1, 0); helpers.doEx('1,3s/\\d/0'); eq('0\n0\n0\n4', cm.getValue()); }, { value: '1\n2\n3\n4' }); testVim('ex_substitute_visual_range', function(cm, vim, helpers) { cm.setCursor(1, 0); // Set last visual mode selection marks '< and '> at lines 2 and 4 helpers.doKeys('V', '2', 'j', 'v'); helpers.doEx('\'<,\'>s/\\d/0'); eq('1\n0\n0\n0\n5', cm.getValue()); }, { value: '1\n2\n3\n4\n5' }); testVim('ex_substitute_capture', function(cm, vim, helpers) { cm.setCursor(1, 0); helpers.doEx('s/(\\d+)/$1$1/') eq('a1111 a1212 a1313', cm.getValue()); }, { value: 'a11 a12 a13' }); testVim('ex_substitute_empty_query', function(cm, vim, helpers) { // If the query is empty, use last query. cm.setCursor(1, 0); cm.openDialog = helpers.fakeOpenDialog('1'); helpers.doKeys('/'); helpers.doEx('s//b'); eq('abb ab2 ab3', cm.getValue()); }, { value: 'a11 a12 a13' }); testVim('ex_substitute_count', function(cm, vim, helpers) { cm.setCursor(1, 0); helpers.doEx('s/\\d/0/i 2'); eq('1\n0\n0\n4', cm.getValue()); }, { value: '1\n2\n3\n4' }); testVim('ex_substitute_count_with_range', function(cm, vim, helpers) { cm.setCursor(1, 0); helpers.doEx('1,3s/\\d/0/ 3'); eq('1\n2\n0\n0', cm.getValue()); }, { value: '1\n2\n3\n4' }); // TODO: Reset key maps after each test. testVim('ex_map_key2key', function(cm, vim, helpers) { helpers.doEx('map a x'); helpers.doKeys('a'); helpers.assertCursorAt(0, 0); eq('bc', cm.getValue()); }, { value: 'abc' }); testVim('ex_map_key2key_to_colon', function(cm, vim, helpers) { helpers.doEx('map ; :'); var dialogOpened = false; cm.openDialog = function() { dialogOpened = true; } helpers.doKeys(';'); eq(dialogOpened, true); }); testVim('ex_map_ex2key:', function(cm, vim, helpers) { helpers.doEx('map :del x'); helpers.doEx('del'); helpers.assertCursorAt(0, 0); eq('bc', cm.getValue()); }, { value: 'abc' }); testVim('ex_map_ex2ex', function(cm, vim, helpers) { helpers.doEx('map :del :w'); var tmp = CodeMirror.commands.save; var written = false; var actualCm; CodeMirror.commands.save = function(cm) { written = true; actualCm = cm; }; helpers.doEx('del'); CodeMirror.commands.save = tmp; eq(written, true); eq(actualCm, cm); }); testVim('ex_map_key2ex', function(cm, vim, helpers) { helpers.doEx('map a :w'); var tmp = CodeMirror.commands.save; var written = false; var actualCm; CodeMirror.commands.save = function(cm) { written = true; actualCm = cm; }; helpers.doKeys('a'); CodeMirror.commands.save = tmp; eq(written, true); eq(actualCm, cm); }); // Testing registration of functions as ex-commands and mapping to -keys testVim('ex_api_test', function(cm, vim, helpers) { var res=false; var val='from'; CodeMirror.Vim.defineEx('extest','ext',function(cm,params){ if(params.args)val=params.args[0]; else res=true; }); helpers.doEx(':ext to'); eq(val,'to','Defining ex-command failed'); CodeMirror.Vim.map('',':ext'); helpers.doKeys('Ctrl-Enter','Space'); is(res,'Mapping to key failed'); }); // For now, this test needs to be last because it messes up : for future tests. testVim('ex_map_key2key_from_colon', function(cm, vim, helpers) { helpers.doEx('map : x'); helpers.doKeys(':'); helpers.assertCursorAt(0, 0); eq('bc', cm.getValue()); }, { value: 'abc' }); site_pro/codemirror-3.1/test/index.html0000644000000000000000000001503612111430706017020 0ustar rootroot CodeMirror: Test Suite

    CodeMirror: Test Suite

    A limited set of programmatic sanity tests for CodeMirror.

    Ran 0 of 0 tests

    Please enable JavaScript...

    site_pro/codemirror-3.1/test/phantom_driver.js0000644000000000000000000000163112111430706020376 0ustar rootrootvar page = require('webpage').create(); page.open("http://localhost:3000/test/index.html", function (status) { if (status != "success") { console.log("page couldn't be loaded successfully"); phantom.exit(1); } waitFor(function () { return page.evaluate(function () { var output = document.getElementById('status'); if (!output) { return false; } return (/^(\d+ failures?|all passed)/i).test(output.innerText); }); }, function () { var failed = page.evaluate(function () { return window.failed; }); var output = page.evaluate(function () { return document.getElementById('output').innerText + "\n" + document.getElementById('status').innerText; }); console.log(output); phantom.exit(failed > 0 ? 1 : 0); }); }); function waitFor (test, cb) { if (test()) { cb(); } else { setTimeout(function () { waitFor(test, cb); }, 250); } } site_pro/codemirror-3.1/test/run.js0000755000000000000000000000155212111430706016166 0ustar rootroot#!/usr/bin/env node var lint = require("./lint/lint"); lint.checkDir("mode"); lint.checkDir("lib"); lint.checkDir("addon"); var ok = lint.success(); var files = new (require('node-static').Server)('.'); var server = require('http').createServer(function (req, res) { req.addListener('end', function () { files.serve(req, res); }); }).addListener('error', function (err) { throw err; }).listen(3000, function () { var child_process = require('child_process'); child_process.exec("which phantomjs", function (err) { if (err) { console.error("PhantomJS is not installed. Download from http://phantomjs.org"); process.exit(1); } var cmd = 'phantomjs test/phantom_driver.js'; child_process.exec(cmd, function (err, stdout) { server.close(); console.log(stdout); process.exit(err || !ok ? 1 : 0); }); }); }); site_pro/codemirror-3.1/test/mode_test.js0000644000000000000000000001370212111430706017342 0ustar rootroot/** * Helper to test CodeMirror highlighting modes. It pretty prints output of the * highlighter and can check against expected styles. * * Mode tests are registered by calling test.mode(testName, mode, * tokens), where mode is a mode object as returned by * CodeMirror.getMode, and tokens is an array of lines that make up * the test. * * These lines are strings, in which styled stretches of code are * enclosed in brackets `[]`, and prefixed by their style. For * example, `[keyword if]`. Brackets in the code itself must be * duplicated to prevent them from being interpreted as token * boundaries. For example `a[[i]]` for `a[i]`. If a token has * multiple styles, the styles must be separated by ampersands, for * example `[tag&error ]`. * * See the test.js files in the css, markdown, gfm, and stex mode * directories for examples. */ (function() { function findSingle(str, pos, ch) { for (;;) { var found = str.indexOf(ch, pos); if (found == -1) return null; if (str.charAt(found + 1) != ch) return found; pos = found + 2; } } var styleName = /[\w&-_]+/g; function parseTokens(strs) { var tokens = [], plain = ""; for (var i = 0; i < strs.length; ++i) { if (i) plain += "\n"; var str = strs[i], pos = 0; while (pos < str.length) { var style = null, text; if (str.charAt(pos) == "[" && str.charAt(pos+1) != "[") { styleName.lastIndex = pos + 1; var m = styleName.exec(str); style = m[0].replace(/&/g, " "); var textStart = pos + style.length + 2; var end = findSingle(str, textStart, "]"); if (end == null) throw new Error("Unterminated token at " + pos + " in '" + str + "'" + style); text = str.slice(textStart, end); pos = end + 1; } else { var end = findSingle(str, pos, "["); if (end == null) end = str.length; text = str.slice(pos, end); pos = end; } text = text.replace(/\[\[|\]\]/g, function(s) {return s.charAt(0);}); tokens.push(style, text); plain += text; } } return {tokens: tokens, plain: plain}; } test.mode = function(name, mode, tokens) { var data = parseTokens(tokens); return test(mode.name + "_" + name, function() { return compare(data.plain, data.tokens, mode); }); }; function compare(text, expected, mode) { var expectedOutput = []; for (var i = 0; i < expected.length; i += 2) { var sty = expected[i]; if (sty && sty.indexOf(" ")) sty = sty.split(' ').sort().join(' '); expectedOutput.push(sty, expected[i + 1]); } var observedOutput = highlight(text, mode); var pass, passStyle = ""; pass = highlightOutputsEqual(expectedOutput, observedOutput); passStyle = pass ? 'mt-pass' : 'mt-fail'; var s = ''; if (pass) { s += '
    '; s += '
    ' + text + '
    '; s += '
    '; s += prettyPrintOutputTable(observedOutput); s += '
    '; s += '
    '; return s; } else { s += '
    '; s += '
    ' + text + '
    '; s += '
    '; s += 'expected:'; s += prettyPrintOutputTable(expectedOutput); s += 'observed:'; s += prettyPrintOutputTable(observedOutput); s += '
    '; s += '
    '; throw s; } } /** * Emulation of CodeMirror's internal highlight routine for testing. Multi-line * input is supported. * * @param string to highlight * * @param mode the mode that will do the actual highlighting * * @return array of [style, token] pairs */ function highlight(string, mode) { var state = mode.startState() var lines = string.replace(/\r\n/g,'\n').split('\n'); var st = [], pos = 0; for (var i = 0; i < lines.length; ++i) { var line = lines[i], newLine = true; var stream = new CodeMirror.StringStream(line); if (line == "" && mode.blankLine) mode.blankLine(state); /* Start copied code from CodeMirror.highlight */ while (!stream.eol()) { var style = mode.token(stream, state), substr = stream.current(); if (style && style.indexOf(" ") > -1) style = style.split(' ').sort().join(' '); stream.start = stream.pos; if (pos && st[pos-2] == style && !newLine) { st[pos-1] += substr; } else if (substr) { st[pos++] = style; st[pos++] = substr; } // Give up when line is ridiculously long if (stream.pos > 5000) { st[pos++] = null; st[pos++] = this.text.slice(stream.pos); break; } newLine = false; } } return st; } /** * Compare two arrays of output from highlight. * * @param o1 array of [style, token] pairs * * @param o2 array of [style, token] pairs * * @return boolean; true iff outputs equal */ function highlightOutputsEqual(o1, o2) { if (o1.length != o2.length) return false; for (var i = 0; i < o1.length; ++i) if (o1[i] != o2[i]) return false; return true; } /** * Print tokens and corresponding styles in a table. Spaces in the token are * replaced with 'interpunct' dots (·). * * @param output array of [style, token] pairs * * @return html string */ function prettyPrintOutputTable(output) { var s = ''; s += ''; for (var i = 0; i < output.length; i += 2) { var style = output[i], val = output[i+1]; s += ''; } s += ''; for (var i = 0; i < output.length; i += 2) { s += ''; } s += '
    ' + '' + val.replace(/ /g,'\xb7') + '' + '
    ' + output[i] + '
    '; return s; } })(); site_pro/codemirror-3.1/test/doc_test.js0000644000000000000000000002326112111430706017164 0ustar rootroot(function() { // A minilanguage for instantiating linked CodeMirror instances and Docs function instantiateSpec(spec, place, opts) { var names = {}, pos = 0, l = spec.length, editors = []; while (spec) { var m = spec.match(/^(\w+)(\*?)(?:='([^\']*)'|<(~?)(\w+)(?:\/(\d+)-(\d+))?)\s*/); var name = m[1], isDoc = m[2], cur; if (m[3]) { cur = isDoc ? CodeMirror.Doc(m[3]) : CodeMirror(place, clone(opts, {value: m[3]})); } else { var other = m[5]; if (!names.hasOwnProperty(other)) { names[other] = editors.length; editors.push(CodeMirror(place, opts)); } var doc = editors[names[other]].linkedDoc({ sharedHist: !m[4], from: m[6] ? Number(m[6]) : null, to: m[7] ? Number(m[7]) : null }); cur = isDoc ? doc : CodeMirror(place, clone(opts, {value: doc})); } names[name] = editors.length; editors.push(cur); spec = spec.slice(m[0].length); } return editors; } function clone(obj, props) { if (!obj) return; clone.prototype = obj; var inst = new clone(); if (props) for (var n in props) if (props.hasOwnProperty(n)) inst[n] = props[n]; return inst; } function eqAll(val) { var end = arguments.length, msg = null; if (typeof arguments[end-1] == "string") msg = arguments[--end]; if (i == end) throw new Error("No editors provided to eqAll"); for (var i = 1; i < end; ++i) eq(arguments[i].getValue(), val, msg) } function testDoc(name, spec, run, opts, expectFail) { if (!opts) opts = {}; return test("doc_" + name, function() { var place = document.getElementById("testground"); var editors = instantiateSpec(spec, place, opts); var successful = false; try { run.apply(null, editors); successful = true; } finally { if ((debug && !successful) || verbose) { place.style.visibility = "visible"; } else { for (var i = 0; i < editors.length; ++i) if (editors[i] instanceof CodeMirror) place.removeChild(editors[i].getWrapperElement()); } } }, expectFail); } var ie_lt8 = /MSIE [1-7]\b/.test(navigator.userAgent); function testBasic(a, b) { eqAll("x", a, b); a.setValue("hey"); eqAll("hey", a, b); b.setValue("wow"); eqAll("wow", a, b); a.replaceRange("u\nv\nw", Pos(0, 3)); b.replaceRange("i", Pos(0, 4)); b.replaceRange("j", Pos(2, 1)); eqAll("wowui\nv\nwj", a, b); } testDoc("basic", "A='x' B 0, "not at left"); is(pos.top > 0, "not at top"); }); testDoc("copyDoc", "A='u'", function(a) { var copy = a.getDoc().copy(true); a.setValue("foo"); copy.setValue("bar"); var old = a.swapDoc(copy); eq(a.getValue(), "bar"); a.undo(); eq(a.getValue(), "u"); a.swapDoc(old); eq(a.getValue(), "foo"); eq(old.historySize().undo, 1); eq(old.copy(false).historySize().undo, 0); }); testDoc("docKeepsMode", "A='1+1'", function(a) { var other = CodeMirror.Doc("hi", "text/x-markdown"); a.setOption("mode", "text/javascript"); var old = a.swapDoc(other); eq(a.getOption("mode"), "text/x-markdown"); eq(a.getMode().name, "markdown"); a.swapDoc(old); eq(a.getOption("mode"), "text/javascript"); eq(a.getMode().name, "javascript"); }); testDoc("subview", "A='1\n2\n3\n4\n5' B<~A/1-3", function(a, b) { eq(b.getValue(), "2\n3"); eq(b.firstLine(), 1); b.setCursor(Pos(4)); eqPos(b.getCursor(), Pos(2, 1)); a.replaceRange("-1\n0\n", Pos(0, 0)); eq(b.firstLine(), 3); eqPos(b.getCursor(), Pos(4, 1)); a.undo(); eqPos(b.getCursor(), Pos(2, 1)); b.replaceRange("oyoy\n", Pos(2, 0)); eq(a.getValue(), "1\n2\noyoy\n3\n4\n5"); b.undo(); eq(a.getValue(), "1\n2\n3\n4\n5"); }); testDoc("subviewEditOnBoundary", "A='11\n22\n33\n44\n55' B<~A/1-4", function(a, b) { a.replaceRange("x\nyy\nz", Pos(0, 1), Pos(2, 1)); eq(b.firstLine(), 2); eq(b.lineCount(), 2); eq(b.getValue(), "z3\n44"); a.replaceRange("q\nrr\ns", Pos(3, 1), Pos(4, 1)); eq(b.firstLine(), 2); eq(b.getValue(), "z3\n4q"); eq(a.getValue(), "1x\nyy\nz3\n4q\nrr\ns5"); a.execCommand("selectAll"); a.replaceSelection("!"); eqAll("!", a, b); }); testDoc("sharedMarker", "A='ab\ncd\nef\ngh' B

    CSS3 Tricks

    Please note that this will only work properly in modern browsers that support the CSS3 properties in use.

    Animated Hovers

    First Hover

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris fermentum dictum magna. Sed laoreet aliquam leo.

    Button

    Second Hover

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris fermentum dictum magna. Sed laoreet aliquam leo.

    Button

    Third Hover

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris fermentum dictum magna. Sed laoreet aliquam leo.

    Button

    Fourth Hover

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris fermentum dictum magna. Sed laoreet aliquam leo.

    Button

    Fifth Hover

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris fermentum dictum magna. Sed laoreet aliquam leo.

    Button

    Sixth Hover

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris fermentum dictum magna. Sed laoreet aliquam leo.

    Button

    Seventh Hover

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris fermentum dictum magna. Sed laoreet aliquam leo.

    Button

    Eighth Hover

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris fermentum dictum magna. Sed laoreet aliquam leo.

    Button

    Ninth Hover

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris fermentum dictum magna. Sed laoreet aliquam leo.

    Button
    Description

    The structure of markup is very simple and intuitive. Create a container that will have our image and all the other infomation.

    <div class="view view_first">
    	<img src="YourImage.jpg" alt="" />
    	<div class="mask">
    		<h2> Heading </h2>
    		<p> Text </p>
    		<a href="" class="btn">Button</a>
    	</div>
    </div>

    Add the special class view_first to the element with the class view for the first effect.

    In the second hover we will add the special class view-second, but we will leave the element with the class mask empty and wrap the description in a div with the class content

    <div class="view view_second">
    	<img src="YourImage.jpg" alt="" />
    	<div class="mask"></div>
    	<div class="content">
    		<h2> Heading </h2>
    		<p> Text </p>
    		<a href="" class="btn">Button</a>
    	</div>
    </div>

    For other hover effects you can use the same HTML structure. You only need to change class view_second to the following ones:
    view_third - third effect
    view_fourth - fourth effect
    view_fifth - fifth effect
    view_sixth - sixth effect
    view_seventh - seventh effect
    view_eight - eight effect

    In ninth hover, we will use two mask elements to slide them in from the bottom right and the top left:

    <div class="view view_ninth">
    	<img src="YourImage.jpg" alt="" />
    	<div class="mask mask-1"></div>
    	<div class="mask mask-2"></div>
    	<div class="content">
    		<h2> Heading </h2>
    		<p> Text </p>
    		<a href="" class="btn">Button</a>
    	</div>
    </div>

    Define .view and .mask width and height which match image`s width and height in style.css file.

    CSS3 has a really great potential for creating nice effects. Soon, we’ll hopefully be able to avoid the use of JavaScript for simple effects and rely 100% on CSS, in all browsers.

    Animated Buttons

    Add necessary class to the <a> tag (<a href="" class=""> Button Text </a>)

    Click me!class="btn style_1"
    Click me!class="btn warning style_1"
    Click me!class="btn success style_1"
    Click me!class="btn danger style_1"
    Any button may be longerclass="btn inf style_1"
    Click me!class="btn style_2"
    Click me!class="btn warning style_2"
    Any button may be longerclass="btn success style_2"
    Click me!class="btn danger style_2"
    Click me!class="btn inf style_2"
    Click me!class="btn style_3"
    Click me!class="btn warning style_3"
    Click me!class="btn success style_3"
    Any button may be longerclass="btn danger style_3"
    Click me!class="btn inf style_3"
    Click me!class="btn style_4"
    Any button may be longerclass="btn warning style_4"
    Click me!class="btn success style_4"
    Click me!class="btn danger style_4"
    Click me!class="btn inf style_4"

    CSS3 Images Style

    Description

    When applying CSS3 inset box-shadow or border-radius directly to the image element, the browser doesn't render the CSS style perfectly. However, if the image is applied as background-image, you can add any style to it and have it rendered properly.

    To add such images to the page you need to copy the code and in the style.css file define background image and image dimensions.

    HTML

    Circle Image

    <span class="image_round"></span>

    Card Style

    <span class="image_card"></span>

    Embossed Style

    <span class="image_embossed"></span>

    Soft Embossed Style

    <span class="image_soft-embossed"></span>

    Cutout Style

    <span class="image_cut_out"></span>

    Morphing & Glowing

    <span class="image_morphing_glowing"></span>

    Glossy Overlay

    <span class="image_glossy"></span>

    Reflection

    <span class="image_reflection"></span>

    CSS

    .YourStyle{
    background:url(YourImage.jpg) 0 0 no-repeat;
    width:YourImageWidth px;
    height:YourImageHeight px;
    }

    Shadows on CSS3

    Lifted Shadow
    Perspective Shadow
    Raised Block
    Shadow with two vertical curves
    Shadow with two horizontal curves
    Description

    Lifted Shadow

    <div class="lifted">
    	<div class="text-shadow">Text</div>
    </div>

    Perspective Shadow

    <div class="perspective">
    	<div class="text-shadow">Text</div>
    </div>

    Raised Block

    <div class="raised">
    	<div class="text-shadow">Text</div>
    </div>

    Shadow with two vertical curves

    <div class="curved-vt-2">
    	<div class="text-shadow">Text</div>
    </div>

    Shadow with two horizontal curves

    <div class="curved-hz-2">
    	<div class="text-shadow">Text</div>
    </div>
    site_pro/cssbackup.tar0000644000000000000000000146400012121550445014072 0ustar rootrootcss/forms.css0000644075506000000310000002137011734657364012512 0ustar joaoferenginput[type="text"],input[type=password],textarea{font-family:Arial, Helvetica, sans-serif;color:#000;font-size:1em;vertical-align:middle;font-weight:normal;padding:7px;margin:0;background:#fff;border:1px solid #ddd;outline:none;width:270px; overflow:hidden;} /* Typography Page Forms */ #contact-form label{ min-height:40px; display:block;} #contact-form input,#contact-form textarea{ border-radius:3px; box-shadow:inset 0 0 5px rgba(0,0,0,.1);} #contact-form textarea{ resize:none; height:170px;} #contact-form .buttons{ position:relative; padding:20px 0 0 0; text-align:right;} #contact-form .buttons span{ display:inline-block; margin-right:15px;} #contact-form .success,#contact-form .error,#contact-form .empty{display:none; text-align:left;} #contact-form .error,#contact-form .empty{position:relative; color:red; font-size:11px; top:0px; left:10px;} #contact-form .success,#contact-form .success strong{ color:#000; background:none; box-shadow:none;} #contact-form .success{ padding-bottom:5px;-pie-background:none;} #contact-form2{} #contact-form2 label{ min-height:60px; display:block;} #contact-form2 input,#contact-form2 textarea{font-family:Arial, Helvetica, sans-serif;color:#6a6a6a;font-size:1em;vertical-align:middle;font-weight:normal;padding:16px 15px 17px;margin:0;background:;border:1px solid #e4e4e4;outline:none;width:264px; overflow:hidden;} #contact-form2 textarea{ resize:none; height:207px;width:438px;} #contact-form2 .buttons{ position:relative; padding:20px 0 0 0; text-align:right;} #contact-form2 .buttons span{ display:inline-block; margin-left:18px;} #contact-form2 .success,#contact-form2 .error,#contact-form2 .empty{display:none; text-align:left;} #contact-form2 .error,#contact-form2 .empty{position:relative; color:red; font-size:11px; top:0px; left:10px;} #contact-form2 .success,#contact-form2 .success strong{ color:#000; background:none; box-shadow:none;} #contact-form2 .success{ padding-bottom:5px;-pie-background:none;} /* ------------------------------------------------ */ #search2{ position:relative; overflow:hidden; padding:27px 0 0 0;} #search2 input{font-family:Arial, Helvetica, sans-serif;color:#000;font-size:1em;vertical-align:middle;font-weight:normal;padding:7px 8px 8px;margin:0;background: url(../images/bg-input.png) 0 0 repeat;border:1px solid #e4e4e4;outline:none;width:178px; overflow:hidden;} #search2 a{ display:block; float:left; background:#1f2025; font:11px/15px Arial, Helvetica, sans-serif; text-transform:uppercase; color:#eaeaea; padding:7px 13px 10px 15px;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} #search2 a:hover{ text-decoration:none; background:#efeeee; color:#212121;} /* ------------------------------------------------ */ #search3{ position:relative; overflow:hidden; padding:18px 0 0 0;} #search3 div{ margin-right:0px;} #search3 input{font-family:Arial, Helvetica, sans-serif;color:#000;font-size:1em;vertical-align:middle;font-weight:normal;padding:7px 8px 8px;margin:0;background: url(../images/bg-input.png) 0 0 repeat;border:1px solid #e4e4e4;outline:none;width:175px; overflow:hidden;} #search3 a{ display:block; float:left; background:#1f2025; font:11px/15px Arial, Helvetica, sans-serif; text-transform:uppercase; color:#eaeaea; padding:8px 13px 9px 15px;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} #search3 a:hover{ text-decoration:none; background:#efeeee; color:#212121;} /* ------------------------------------------------ */ #form1{} #form1 label{ display:block; position:relative; min-height:40px;} #form1 input[type="text"]{ border-radius:3px; width:180px;} #form1 input[type="radio"]{ margin:5px 0 0;} #form1 input[type="checkbox"]{ margin:10px 0 0;} #form1 textarea{ resize:none;border-radius:3px; height:120px;} #form1 select{ width:195px; border:1px solid #ddd; padding:5px; border-radius:3px;} #form1 span.text-form{ display:inline-block; padding:5px 0 0; min-width:90px;} #form1 div.text-form{ padding:5px 0 10px 0;} #form1 .text-form2{ margin:2px 10px 0 8px; display:inline-block;} #form1 .text-form3{ margin:7px 0px 0 8px; display:inline-block;} #form1 .btns{ padding:10px 0 0 0;} /* ------------------------------------------------ */ #form2{} #form2 label{ display:block; position:relative; min-height:40px;} #form2 input[type="text"]{ border-radius:3px; width:180px; box-shadow:inset 0 0 5px rgba(0,0,0,.1);} #form2 textarea{ resize:none;border-radius:3px; height:120px; box-shadow:inset 0 0 5px rgba(0,0,0,.1);} #form2 span.text-form{ display:inline-block; padding:5px 0 0; min-width:90px;} #form2 div.text-form{ padding:5px 0 10px 0; min-width:90px;} #form2 .text-form2{ margin:3px 0 0 5px;} #form2 .text-form3{ padding:8px 0px 5px 5px;} #form2 .btns{ padding:10px 0 0 0;} .pad-form{ padding-top:5px;} .pad-form2{ padding-top:25px;} /* ------------- * Selects * ------------- */ #form2 .jqTransformSelectWrapper {position:relative; float:left; width:194px !important;} #form2 .jqTransformSelectWrapper div span{ display:block;float: none; width:184px !important;background:#fff;position:relative;white-space: nowrap;overflow:hidden;cursor:pointer;border:1px solid #ddd;padding:5px; border-radius:3px; box-shadow:inset 0 0 5px rgba(0,0,0,.1);} #form2 .jqTransformSelectWrapper a.jqTransformSelectOpen {display: block;position:absolute; right:2px;top:4px;width:22px;height:21px;background: url(../images/select.png) no-repeat 0 0;} #form2 .jqTransformSelectWrapper a.jqTransformSelectOpen:hover{ background-position:0 -21px;} #form2 .jqTransformSelectWrapper ul { position: absolute; top: 31px; left: 0px; background-color: #FFF; display: none; margin: 0px; padding: 0px; overflow: auto; overflow-y: auto; z-index:10; border:1px solid #ddd; width:194px !important; border-radius:3px; box-shadow:inset 0 0 5px rgba(0,0,0,.1);} #form2 .jqTransformSelectWrapper ul a {display: block;padding:5px;color:#000;font-size:12px;padding-left:12px;} #form2 .jqTransformSelectWrapper ul a.selected {color: #B94A48;} #form2 .jqTransformSelectWrapper ul a:hover, .jqTransformSelectWrapper ul a.selected:hover {color: #fff; background:#ddd;text-decoration:none;} /* ------------- * Radios * ------------- */ #form2 .jqTransformRadioWrapper {float: left;display:block; margin:5px 0 0;} #form2 .jqTransformRadio { background: transparent url(../images/radio.png) 0 0px no-repeat; vertical-align: middle; height:16px; width:16px; display:block;/*display: -moz-inline-block;*/ } /* ------------- * Checked - Radio * ------------- */ #form2 a.jqTransformChecked {background: transparent url(../images/radio.png) 0 -17px no-repeat;} /* -- * Checkboxes * -- */ #form2 span.jqTransformCheckboxWrapper{display:block;float:left; padding:10px 0 0 0;} #form2 a.jqTransformCheckbox {background: transparent url(../images/checkbox.png) 0 0px no-repeat;vertical-align: middle;height:15px;width:15px;display:block;/*display: -moz-inline-block;*/} /* -- * Checked * -- */ #form2 .jqTransformCheckboxWrapper a.jqTransformChecked {background: transparent url(../images/checkbox.png) 0 -16px no-repeat;} /* ------------- * Hidden - used to hide the original form elements * ------------- */ #form2 .jqTransformHidden {display: none;} /* ------------------------------------------------ */ #search,#subscribe{ vertical-align:middle;} #search input,#subscribe input{ width:180px; border-radius:3px; box-shadow:inset 0 0 5px rgba(0,0,0,.1);} #search .btn,#subscribe .btn{ padding:7px 10px; margin-top:-1px;} /* ------------------------------------------------ */ #log_in{ vertical-align:middle} #log_in input{ width:90px; border-radius:3px; box-shadow:inset 0 0 5px rgba(0,0,0,.1);} #log_in .btn{ padding:7px 10px; margin-top:-1px;} /* ------------------------------------------------ */ #log_in2{ vertical-align:middle; padding:10px 0 0 0; width:274px;} #log_in2 label{ display:block; min-height:40px;} #log_in2 input{ width:258px; border-radius:3px; box-shadow:inset 0 0 5px rgba(0,0,0,.1);} #log_in2 .btn{ padding:7px 10px;} #log_in2 .buttons{ text-align:right; padding:5px 0;} /* ------------------------------------------------ */ #newsletter{vertical-align:middle; padding:30px 0 0 0;} #newsletter input{ width:376px; border-radius:2px 0 0 2px; color:#8b8b8b; background:#eeeeee; border:1px solid #cdcdcd; border-right:none;padding:9px;} #newsletter .btn{ padding:9px 15px 10px; margin-top:0; margin-left:0; box-shadow:none; border-radius:0 2px 2px 0; border:1px solid #cdcdcd;} #newsletter .btn:hover{ background: -webkit-linear-gradient(top, #E0E0E0, white); background: -moz-linear-gradient(top, #E0E0E0, white); background: -ms-linear-gradient(top, #E0E0E0, white); background: -o-linear-gradient(top, #E0E0E0, white);}css/grid.css0000644075506000000310000001212512121213345012261 0ustar joaofereng.container_24 {margin-left:auto;margin-right:auto;width:90%}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12,.grid_13,.grid_14,.grid_15,.grid_16,.grid_17,.grid_18,.grid_19,.grid_20,.grid_21,.grid_22,.grid_23,.grid_24{display:inline;float:left;position:relative;margin-left:5px;margin-right:5px;}.alpha{margin-left:0;}.omega{margin-right:0;}.container_24 .grid_1{width:30px;}.container_24 .grid_2{width:70px;}.container_24 .grid_3{width:110px;}.container_24 .grid_4{width:150px;}.container_24 .grid_5{width:190px;}.container_24 .grid_6{width:230px;}.container_24 .grid_7{width:270px;}.container_24 .grid_8{width:310px;}.container_24 .grid_9{width:350px;}.container_24 .grid_10{width:390px;}.container_24 .grid_11{width:430px;}.container_24 .grid_12{width:470px;}.container_24 .grid_13{width:510px;}.container_24 .grid_14{width:550px;}.container_24 .grid_15{width:590px;}.container_24 .grid_16{width:630px;}.container_24 .grid_17{width:670px;}.container_24 .grid_18{width:710px;}.container_24 .grid_19{width:750px;}.container_24 .grid_20{width:790px;}.container_24 .grid_21{width:830px;}.container_24 .grid_22{width:870px;}.container_24 .grid_23{width:910px;}.container_24 .grid_24{width:90%;}.container_24 .prefix_1{padding-left:40px;}.container_24 .prefix_2{padding-left:80px;}.container_24 .prefix_3{padding-left:120px;}.container_24 .prefix_4{padding-left:160px;}.container_24 .prefix_5{padding-left:200px;}.container_24 .prefix_6{padding-left:240px;}.container_24 .prefix_7{padding-left:280px;}.container_24 .prefix_8{padding-left:320px;}.container_24 .prefix_9{padding-left:360px;}.container_24 .prefix_10{padding-left:400px;}.container_24 .prefix_11{padding-left:440px;}.container_24 .prefix_12{padding-left:480px;}.container_24 .prefix_13{padding-left:520px;}.container_24 .prefix_14{padding-left:560px;}.container_24 .prefix_15{padding-left:600px;}.container_24 .prefix_16{padding-left:640px;}.container_24 .prefix_17{padding-left:680px;}.container_24 .prefix_18{padding-left:720px;}.container_24 .prefix_19{padding-left:760px;}.container_24 .prefix_20{padding-left:800px;}.container_24 .prefix_21{padding-left:840px;}.container_24 .prefix_22{padding-left:880px;}.container_24 .prefix_23{padding-left:920px;}.container_24 .suffix_1{padding-right:40px;}.container_24 .suffix_2{padding-right:80px;}.container_24 .suffix_3{padding-right:120px;}.container_24 .suffix_4{padding-right:160px;}.container_24 .suffix_5{padding-right:200px;}.container_24 .suffix_6{padding-right:240px;}.container_24 .suffix_7{padding-right:280px;}.container_24 .suffix_8{padding-right:320px;}.container_24 .suffix_9{padding-right:360px;}.container_24 .suffix_10{padding-right:400px;}.container_24 .suffix_11{padding-right:440px;}.container_24 .suffix_12{padding-right:480px;}.container_24 .suffix_13{padding-right:520px;}.container_24 .suffix_14{padding-right:560px;}.container_24 .suffix_15{padding-right:600px;}.container_24 .suffix_16{padding-right:640px;}.container_24 .suffix_17{padding-right:680px;}.container_24 .suffix_18{padding-right:720px;}.container_24 .suffix_19{padding-right:760px;}.container_24 .suffix_20{padding-right:800px;}.container_24 .suffix_21{padding-right:840px;}.container_24 .suffix_22{padding-right:880px;}.container_24 .suffix_23{padding-right:920px;}.container_24 .push_1{left:40px;}.container_24 .push_2{left:80px;}.container_24 .push_3{left:120px;}.container_24 .push_4{left:160px;}.container_24 .push_5{left:200px;}.container_24 .push_6{left:240px;}.container_24 .push_7{left:280px;}.container_24 .push_8{left:320px;}.container_24 .push_9{left:360px;}.container_24 .push_10{left:400px;}.container_24 .push_11{left:440px;}.container_24 .push_12{left:480px;}.container_24 .push_13{left:520px;}.container_24 .push_14{left:560px;}.container_24 .push_15{left:600px;}.container_24 .push_16{left:640px;}.container_24 .push_17{left:680px;}.container_24 .push_18{left:720px;}.container_24 .push_19{left:760px;}.container_24 .push_20{left:800px;}.container_24 .push_21{left:840px;}.container_24 .push_22{left:880px;}.container_24 .push_23{left:920px;}.container_24 .pull_1{left:-40px;}.container_24 .pull_2{left:-80px;}.container_24 .pull_3{left:-120px;}.container_24 .pull_4{left:-160px;}.container_24 .pull_5{left:-200px;}.container_24 .pull_6{left:-240px;}.container_24 .pull_7{left:-280px;}.container_24 .pull_8{left:-320px;}.container_24 .pull_9{left:-360px;}.container_24 .pull_10{left:-400px;}.container_24 .pull_11{left:-440px;}.container_24 .pull_12{left:-480px;}.container_24 .pull_13{left:-520px;}.container_24 .pull_14{left:-560px;}.container_24 .pull_15{left:-600px;}.container_24 .pull_16{left:-640px;}.container_24 .pull_17{left:-680px;}.container_24 .pull_18{left:-720px;}.container_24 .pull_19{left:-760px;}.container_24 .pull_20{left:-800px;}.container_24 .pull_21{left:-840px;}.container_24 .pull_22{left:-880px;}.container_24 .pull_23{left:-920px;}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0;}.clearfix:after{clear:both;content:'';display:block;font-size:0;line-height:0;visibility:hidden;width:0;height:0;}.clearfix{display:inline-block;}*html .clearfix{height:1%;}.clearfix{display:block;}css/grid.css~0000644075506000000310000001212712121011654012460 0ustar joaofereng.container_24 {margin-left:auto;margin-right:auto;width:90%}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12,.grid_13,.grid_14,.grid_15,.grid_16,.grid_17,.grid_18,.grid_19,.grid_20,.grid_21,.grid_22,.grid_23,.grid_24{display:inline;float:center;position:relative;margin-left:5px;margin-right:5px;}.alpha{margin-left:0;}.omega{margin-right:0;}.container_24 .grid_1{width:30px;}.container_24 .grid_2{width:70px;}.container_24 .grid_3{width:110px;}.container_24 .grid_4{width:150px;}.container_24 .grid_5{width:190px;}.container_24 .grid_6{width:230px;}.container_24 .grid_7{width:270px;}.container_24 .grid_8{width:310px;}.container_24 .grid_9{width:350px;}.container_24 .grid_10{width:390px;}.container_24 .grid_11{width:430px;}.container_24 .grid_12{width:470px;}.container_24 .grid_13{width:510px;}.container_24 .grid_14{width:550px;}.container_24 .grid_15{width:590px;}.container_24 .grid_16{width:630px;}.container_24 .grid_17{width:670px;}.container_24 .grid_18{width:710px;}.container_24 .grid_19{width:750px;}.container_24 .grid_20{width:790px;}.container_24 .grid_21{width:830px;}.container_24 .grid_22{width:870px;}.container_24 .grid_23{width:910px;}.container_24 .grid_24{width:90%;}.container_24 .prefix_1{padding-left:40px;}.container_24 .prefix_2{padding-left:80px;}.container_24 .prefix_3{padding-left:120px;}.container_24 .prefix_4{padding-left:160px;}.container_24 .prefix_5{padding-left:200px;}.container_24 .prefix_6{padding-left:240px;}.container_24 .prefix_7{padding-left:280px;}.container_24 .prefix_8{padding-left:320px;}.container_24 .prefix_9{padding-left:360px;}.container_24 .prefix_10{padding-left:400px;}.container_24 .prefix_11{padding-left:440px;}.container_24 .prefix_12{padding-left:480px;}.container_24 .prefix_13{padding-left:520px;}.container_24 .prefix_14{padding-left:560px;}.container_24 .prefix_15{padding-left:600px;}.container_24 .prefix_16{padding-left:640px;}.container_24 .prefix_17{padding-left:680px;}.container_24 .prefix_18{padding-left:720px;}.container_24 .prefix_19{padding-left:760px;}.container_24 .prefix_20{padding-left:800px;}.container_24 .prefix_21{padding-left:840px;}.container_24 .prefix_22{padding-left:880px;}.container_24 .prefix_23{padding-left:920px;}.container_24 .suffix_1{padding-right:40px;}.container_24 .suffix_2{padding-right:80px;}.container_24 .suffix_3{padding-right:120px;}.container_24 .suffix_4{padding-right:160px;}.container_24 .suffix_5{padding-right:200px;}.container_24 .suffix_6{padding-right:240px;}.container_24 .suffix_7{padding-right:280px;}.container_24 .suffix_8{padding-right:320px;}.container_24 .suffix_9{padding-right:360px;}.container_24 .suffix_10{padding-right:400px;}.container_24 .suffix_11{padding-right:440px;}.container_24 .suffix_12{padding-right:480px;}.container_24 .suffix_13{padding-right:520px;}.container_24 .suffix_14{padding-right:560px;}.container_24 .suffix_15{padding-right:600px;}.container_24 .suffix_16{padding-right:640px;}.container_24 .suffix_17{padding-right:680px;}.container_24 .suffix_18{padding-right:720px;}.container_24 .suffix_19{padding-right:760px;}.container_24 .suffix_20{padding-right:800px;}.container_24 .suffix_21{padding-right:840px;}.container_24 .suffix_22{padding-right:880px;}.container_24 .suffix_23{padding-right:920px;}.container_24 .push_1{left:40px;}.container_24 .push_2{left:80px;}.container_24 .push_3{left:120px;}.container_24 .push_4{left:160px;}.container_24 .push_5{left:200px;}.container_24 .push_6{left:240px;}.container_24 .push_7{left:280px;}.container_24 .push_8{left:320px;}.container_24 .push_9{left:360px;}.container_24 .push_10{left:400px;}.container_24 .push_11{left:440px;}.container_24 .push_12{left:480px;}.container_24 .push_13{left:520px;}.container_24 .push_14{left:560px;}.container_24 .push_15{left:600px;}.container_24 .push_16{left:640px;}.container_24 .push_17{left:680px;}.container_24 .push_18{left:720px;}.container_24 .push_19{left:760px;}.container_24 .push_20{left:800px;}.container_24 .push_21{left:840px;}.container_24 .push_22{left:880px;}.container_24 .push_23{left:920px;}.container_24 .pull_1{left:-40px;}.container_24 .pull_2{left:-80px;}.container_24 .pull_3{left:-120px;}.container_24 .pull_4{left:-160px;}.container_24 .pull_5{left:-200px;}.container_24 .pull_6{left:-240px;}.container_24 .pull_7{left:-280px;}.container_24 .pull_8{left:-320px;}.container_24 .pull_9{left:-360px;}.container_24 .pull_10{left:-400px;}.container_24 .pull_11{left:-440px;}.container_24 .pull_12{left:-480px;}.container_24 .pull_13{left:-520px;}.container_24 .pull_14{left:-560px;}.container_24 .pull_15{left:-600px;}.container_24 .pull_16{left:-640px;}.container_24 .pull_17{left:-680px;}.container_24 .pull_18{left:-720px;}.container_24 .pull_19{left:-760px;}.container_24 .pull_20{left:-800px;}.container_24 .pull_21{left:-840px;}.container_24 .pull_22{left:-880px;}.container_24 .pull_23{left:-920px;}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0;}.clearfix:after{clear:both;content:'';display:block;font-size:0;line-height:0;visibility:hidden;width:0;height:0;}.clearfix{display:inline-block;}*html .clearfix{height:1%;}.clearfix{display:block;}css/ie.css0000644075506000000310000000511511735167146011753 0ustar joaofereng*+html{overflow:auto;} .layouts-nav li a,dl.def-list dt span,#constuction-box,#intro-box,.social_icons,#slider .pagination,.numStatus,.kwicks li,.pro_menu ul,.pro_menu ul ul{behavior:url(js/PIE.htc)} #advanced ul li.trigger_adv > span,dl#accordion dt,.button,input[type="text"],input[type=password],textarea,.btn,.description-light,.exampletip,.description-dark,.success,.warning,.danger,.inf,.elements-list code,.table-bordered,.table-bordered tr th,.table-bordered tr td,.info,.layouts-menu li a,.icons-menu li a,.structuce,.struct,.struct2,.struct-main,.grid-box,.tab-content,.image_style2 img,.image_style3 img, .image_style3, .text-shadow, .lifted,.curled,.perspective,.raised,.curved-vt-2,.curved-hz-2,.image_round,.image_card,.image_embossed,.image_soft-embossed,.image_cut_out,.image_morphing_glowing,.image_glossy,.image_glossy span,.image_reflection span,.splitter li div,.splitter li li a,.splitter li li.selected-1 a,.splitter li li.selected-2 a,.splitter li li.selected-0 a,.splitter li li.last a,.icon,.icon_social,.range_slider,.handle,.range,.flickr_badge_image a,.flickr_badge_image a img,.tweet_list li,#constuction-box .inside,.tabs-nav li a,.slide-down-box dt,.slide-down-box dd,dl#accordion dt a,dl#accordion dt.active a,.testim_buttons a,#prev_testim,#next_testim,.description-box dd,code.small-box-code,code.small-box-code2,#choices li.active, #funct_caption,#show, #show1,.quotes_2,.style_1,.style_2,.style_3,.style_4,.pro_menu li a {behavior:url(js/PIE.htc);position:relative} .image_style3{ border:1px solid #ddd; padding:3px;} #boxes-filter .image_style3,#boxes-filter .image_style3 img,#dialog3 input{ border-radius:0;} .perspective:before{box-shadow:0px 0 8px rgba(0, 0, 0, 0.4);} .progress{filter:alpha(opacity=60)} .kwicks:hover li img,.kwicks:hover li .kwicks-banner{filter:alpha(opacity=40)} .kwicks:hover li:hover img,.kwicks:hover li:hover .kwicks-banner{filter:alpha(opacity=100)} .button1,.button2,.play{bottom:35px;} .button2{ left:512px;} .gallery_bg,.kwicks-wrapper,#slider{padding:5px;border:1px solid #999;} .img-pags li.active a,.img-pags li a:hover{ border:1px solid #999;padding:4px;} .img-pags li a img{filter:alpha(opacity=60)} .img-pags li.active a img,.img-pags li a:hover img{filter:alpha(opacity=100)} #advanced span.trigger strong{filter:alpha(opacity=0);} #advanced.closed span.trigger strong{filter:alpha(opacity=100);} #testimonials>div{ background:none !important;} .icons_social2 li.last {margin-top:-2px;} .icons.social li.last {margin-top: -3px;} .services a em img.image-hover{ display:none;} .services:hover a em img.image-hover{ display:block;} css/jquery.snippet.min.css0000644075506000000310000014312311730722530015127 0ustar joaofereng.sh_acid .sh_sourceCode{background-color:#eee;color:#000;font-weight:400;font-style:normal}.sh_acid .sh_sourceCode .sh_type{color:#8080c0;font-weight:700;font-style:normal}.sh_acid .sh_sourceCode .sh_comment{color:#ff8000;font-weight:400;font-style:normal}.sh_acid .sh_sourceCode .sh_number{color:purple;font-weight:700;font-style:normal}.sh_acid .sh_sourceCode .sh_preproc{color:#0080c0;font-weight:700;font-style:normal}.sh_acid .sh_sourceCode .sh_function{color:#046;font-weight:400;font-style:normal}.sh_berries-dark .sh_sourceCode{background-color:#80bfff;color:#400080;font-weight:400;font-style:normal}.sh_berries-dark .sh_sourceCode .sh_type{color:#3f2bf0;font-weight:400;font-style:normal}.sh_berries-dark .sh_sourceCode .sh_comment{color:#df0959;font-weight:400;font-style:italic}.sh_berries-light .sh_sourceCode{background-color:#d7ffff;color:#47406d;font-weight:400;font-style:normal}.sh_berries-light .sh_sourceCode .sh_type{color:#8b51c0;font-weight:400;font-style:normal}.sh_berries-light .sh_sourceCode .sh_comment{color:#9c3caf;font-weight:400;font-style:italic}.sh_bipolar .sh_sourceCode{background-color:#000;color:#d149a6;font-weight:400;font-style:normal}.sh_bipolar .sh_sourceCode .sh_type{color:#aadd8b;font-weight:700;font-style:normal}.sh_bipolar .sh_sourceCode .sh_comment{color:#35d6e5;font-weight:400;font-style:italic}.sh_bipolar .sh_sourceCode .sh_preproc{color:#07f6bf;font-weight:400;font-style:normal}.sh_bipolar .sh_sourceCode .sh_function{color:#d51993;font-weight:700;font-style:normal}.sh_blacknblue .sh_sourceCode{background-color:#000;color:#2346d5;font-weight:400;font-style:normal}.sh_blacknblue .sh_sourceCode .sh_type{color:#c06cf8;font-weight:700;font-style:normal}.sh_blacknblue .sh_sourceCode .sh_comment{color:#6fb2c4;font-weight:400;font-style:italic}.sh_blacknblue .sh_sourceCode .sh_number{color:#c4ac60;font-weight:400;font-style:normal}.sh_blacknblue .sh_sourceCode .sh_preproc{color:#8080ff;font-weight:400;font-style:normal}.sh_blacknblue .sh_sourceCode .sh_function{color:#1c96ed;font-weight:400;font-style:normal}.sh_bright .sh_sourceCode{background-color:#fff;color:#401e7a;font-weight:400;font-style:normal}.sh_bright .sh_sourceCode .sh_type{color:#f7b92c;font-weight:400;font-style:normal}.sh_bright .sh_sourceCode .sh_comment{color:#38ad24;font-weight:400;font-style:normal}.sh_bright .sh_sourceCode .sh_number{color:#32ba06;font-weight:400;font-style:normal}.sh_bright .sh_sourceCode .sh_preproc{color:#5374b0;font-weight:400;font-style:normal}.sh_bright .sh_sourceCode .sh_function{color:#d11ced;font-weight:400;font-style:normal}.sh_contrast .sh_sourceCode{background-color:#ed6104;color:#00f;font-weight:400;font-style:normal}.sh_contrast .sh_sourceCode .sh_number{color:#971ad8;font-weight:400;font-style:normal}.sh_contrast .sh_sourceCode .sh_preproc{color:#7b44e0;font-weight:400;font-style:normal}.sh_contrast .sh_sourceCode .sh_function{color:#fff700;font-weight:700;font-style:normal}.sh_darkblue .sh_sourceCode{background-color:#000040;color:#C7C7C7;font-weight:400;font-style:normal}.sh_darkblue .sh_sourceCode .sh_type{color:#60ff60;font-weight:400;font-style:normal}.sh_darkblue .sh_sourceCode .sh_comment{color:#80a0ff;font-weight:400;font-style:normal}.sh_darkblue .sh_sourceCode .sh_number{color:#42cad9;font-weight:400;font-style:normal}.sh_darkblue .sh_sourceCode .sh_preproc{color:#ff80ff;font-weight:400;font-style:normal}.sh_darkness .sh_sourceCode .sh_number{color:#619de7;font-weight:400;font-style:normal}.sh_darkness .sh_sourceCode .sh_preproc{color:#1da3cf;font-weight:400;font-style:normal}.sh_darkness .sh_sourceCode .sh_function{color:#f34627;font-weight:400;font-style:normal}.sh_desert .sh_sourceCode{background-color:#af947e;color:#fffdec;font-weight:400;font-style:normal}.sh_desert .sh_sourceCode .sh_type{color:#fef8bc;font-weight:400;font-style:normal}.sh_desert .sh_sourceCode .sh_comment{color:#a00000;font-weight:400;font-style:italic}.sh_desert .sh_sourceCode .sh_number{color:#3e3f25;font-weight:400;font-style:normal}.sh_desert .sh_sourceCode .sh_preproc{color:#833914;font-weight:400;font-style:normal}.sh_desert .sh_sourceCode .sh_function{color:#f3d266;font-weight:700;font-style:normal}.sh_dull .sh_sourceCode{background-color:#bfbfbf;color:#656565;font-weight:400;font-style:normal}.sh_dull .sh_sourceCode .sh_type{color:#3241c6;font-weight:400;font-style:normal}.sh_dull .sh_sourceCode .sh_comment{color:#d11d20;font-weight:400;font-style:italic}.sh_dull .sh_sourceCode .sh_number{color:#16930d;font-weight:400;font-style:normal}.sh_dull .sh_sourceCode .sh_preproc{color:#003;font-weight:400;font-style:normal}.sh_dull .sh_sourceCode .sh_function{color:#38255c;font-weight:400;font-style:normal}.sh_easter .sh_sourceCode{background-color:#ffff80;color:#2C7B34;font-weight:400;font-style:normal}.sh_easter .sh_sourceCode .sh_type{color:#ed0f55;font-weight:700;font-style:normal}.sh_easter .sh_sourceCode .sh_comment{color:#24c815;font-weight:400;font-style:italic}.sh_easter .sh_sourceCode .sh_number{color:#e11a70;font-weight:400;font-style:normal}.sh_easter .sh_sourceCode .sh_preproc{color:#1583b1;font-weight:400;font-style:normal}.sh_easter .sh_sourceCode .sh_function{color:#1d45d6;font-weight:400;font-style:normal}.sh_emacs .sh_sourceCode .sh_type{color:#208920;font-weight:400;font-style:normal}.sh_emacs .sh_sourceCode .sh_comment{color:#ac2020;font-weight:400;font-style:italic}.sh_golden .sh_sourceCode{background-color:#000;color:#db0;font-weight:400;font-style:normal}.sh_golden .sh_sourceCode .sh_type{color:#ffed8a;font-weight:400;font-style:normal}.sh_golden .sh_sourceCode .sh_comment{color:#978345;font-weight:400;font-style:italic}.sh_golden .sh_sourceCode .sh_preproc{color:#fda;font-weight:400;font-style:normal}.sh_golden .sh_sourceCode .sh_function{color:#db0;font-weight:700;font-style:normal}.sh_greenlcd .sh_sourceCode{background-color:#003400;color:#0b0;font-weight:400;font-style:normal}.sh_greenlcd .sh_sourceCode .sh_type{color:#00ed00;font-weight:400;font-style:normal}.sh_greenlcd .sh_sourceCode .sh_function{color:#c0ff73;font-weight:400;font-style:normal}.sh_ide-anjuta .sh_sourceCode .sh_type{color:navy;font-weight:400;font-style:normal}.sh_ide-anjuta .sh_sourceCode .sh_comment{color:red;font-weight:400;font-style:italic}.sh_ide-anjuta .sh_sourceCode .sh_preproc{color:#678000;font-weight:400;font-style:normal}.sh_ide-codewarrior .sh_sourceCode .sh_type{color:#4c73a6;font-weight:400;font-style:normal}.sh_ide-codewarrior .sh_sourceCode .sh_comment{color:#b30000;font-weight:400;font-style:normal}.sh_ide-devcpp .sh_sourceCode .sh_comment{color:navy;font-weight:400;font-style:italic}.sh_ide-eclipse .sh_sourceCode .sh_comment{color:#717ab3;font-weight:400;font-style:normal}.sh_ide-eclipse .sh_sourceCode .sh_preproc{color:#3f5fbf;font-weight:400;font-style:normal}.sh_ide-kdev .sh_sourceCode .sh_type{color:#600000;font-weight:400;font-style:normal}.sh_ide-kdev .sh_sourceCode .sh_comment{color:#bfbfbf;font-weight:400;font-style:italic}.sh_ide-msvcpp .sh_sourceCode .sh_comment{color:green;font-weight:400;font-style:italic}.sh_kwrite .sh_sourceCode .sh_type{color:#830000;font-weight:400;font-style:normal}.sh_kwrite .sh_sourceCode .sh_comment{color:#838183;font-weight:400;font-style:italic}.sh_kwrite .sh_sourceCode .sh_number{color:#2928ff;font-weight:400;font-style:normal}.sh_kwrite .sh_sourceCode .sh_preproc{color:#008200;font-weight:400;font-style:normal}.sh_kwrite .sh_sourceCode .sh_function{color:#010181;font-weight:400;font-style:normal}.sh_navy .sh_sourceCode{background-color:#000035;color:#008bff;font-weight:400;font-style:normal}.sh_navy .sh_sourceCode .sh_type{color:#e1e72f;font-weight:400;font-style:normal}.sh_navy .sh_sourceCode .sh_comment{color:#fb0;font-weight:400;font-style:italic}.sh_navy .sh_sourceCode .sh_number{color:#f87ff4;font-weight:400;font-style:normal}.sh_nedit .sh_sourceCode .sh_comment{color:#000;font-weight:400;font-style:italic}.sh_nedit .sh_sourceCode .sh_preproc{color:#27408b;font-weight:400;font-style:normal}.sh_night .sh_sourceCode{background-color:#004;color:#d0f;font-weight:400;font-style:normal}.sh_night .sh_sourceCode .sh_type{color:#f1157c;font-weight:700;font-style:normal}.sh_night .sh_sourceCode .sh_number{color:#8ee119;font-weight:400;font-style:normal}.sh_night .sh_sourceCode .sh_preproc{color:#0b0;font-weight:400;font-style:normal}.sh_night .sh_sourceCode .sh_function{color:#ff06cd;font-weight:700;font-style:normal}.sh_pablo .sh_sourceCode .sh_type{color:#00c000;font-weight:700;font-style:normal}.sh_pablo .sh_sourceCode .sh_comment{color:gray;font-weight:400;font-style:normal}.sh_pablo .sh_sourceCode .sh_function{color:#ff22b9;font-weight:400;font-style:normal}.sh_peachpuff .sh_sourceCode{background-color:#ffdab9;color:#000;font-weight:400;font-style:normal}.sh_peachpuff .sh_sourceCode .sh_type{color:#2e8b57;font-weight:700;font-style:normal}.sh_peachpuff .sh_sourceCode .sh_comment{color:#406090;font-weight:400;font-style:normal}.sh_peachpuff .sh_sourceCode .sh_preproc{color:#cd00cd;font-weight:400;font-style:normal}.sh_peachpuff .sh_sourceCode .sh_function{color:#521cc7;font-weight:400;font-style:normal}.sh_rand01 .sh_sourceCode{background-color:#fff;color:#121b28;font-weight:400;font-style:normal}.sh_rand01 .sh_sourceCode .sh_type{color:#c42638;font-weight:700;font-style:normal}.sh_rand01 .sh_sourceCode .sh_number{color:#0da344;font-weight:400;font-style:normal}.sh_rand01 .sh_sourceCode .sh_preproc{color:#620ac6;font-weight:400;font-style:normal}.sh_the .sh_sourceCode .sh_type{color:#808;font-weight:400;font-style:normal}.sh_typical .sh_sourceCode .sh_number{color:#a900a9;font-weight:400;font-style:normal}.sh_typical .sh_sourceCode .sh_preproc{color:#00b800;font-weight:400;font-style:normal}.sh_vampire .sh_sourceCode{background-color:#000;color:red;font-weight:400;font-style:normal}.sh_vampire .sh_sourceCode .sh_type{color:#F35E1E;font-weight:700;font-style:normal}.sh_vampire .sh_sourceCode .sh_function{color:#7bc710;font-weight:400;font-style:normal}.sh_whatis .sh_sourceCode{background-color:#000;color:#0f0;font-weight:400;font-style:normal}.sh_whatis .sh_sourceCode .sh_function{color:#e721d3;font-weight:400;font-style:normal}.sh_whitengrey .sh_sourceCode{background-color:#fff;color:#696969;font-weight:400;font-style:normal}.sh_whitengrey .sh_sourceCode .sh_type{color:#696969;font-weight:400;font-style:normal}.sh_whitengrey .sh_sourceCode .sh_comment{color:#1326a2;font-weight:400;font-style:italic}.sh_whitengrey .sh_sourceCode .sh_preproc{color:#470000;font-weight:400;font-style:normal}.sh_zellner .sh_sourceCode .sh_preproc{color:#a020f0;font-weight:400;font-style:normal}.sh_acid,.sh_berries-dark,.sh_berries-light,.sh_bipolar,.sh_blacknblue,.sh_bright,.sh_contrast,.sh_darkblue,.sh_darkness,.sh_desert,.sh_dull,.sh_easter,.sh_emacs,.sh_golden,.sh_greenlcd,.sh_ide-anjuta,.sh_ide-codewarrior,.sh_ide-devcpp,.sh_ide-eclipse,.sh_ide-kdev,.sh_ide-msvcpp,.sh_kwrite,.sh_matlab,.sh_navy,.sh_nedit,.sh_neon,.sh_night,.sh_pablo,.sh_peachpuff,.sh_print,.sh_rand01,.sh_the,.sh_typical,.sh_vampire,.sh_vim-dark,.sh_vim,.sh_whatis,.sh_whitengrey,.sh_zellner{background:none;border:0 none;margin:0;padding:0}.sh_acid .sh_sourceCode .sh_keyword,.sh_acid .sh_sourceCode .sh_date,.sh_acid .sh_sourceCode .sh_time,.sh_acid .sh_sourceCode .sh_file,.sh_acid .sh_sourceCode .sh_difflines,.sh_acid .sh_sourceCode .sh_property{color:#bb7977;font-weight:700;font-style:normal}.sh_acid .sh_sourceCode .sh_string,.sh_acid .sh_sourceCode .sh_regexp,.sh_acid .sh_sourceCode .sh_url,.sh_acid .sh_sourceCode .sh_ip,.sh_acid .sh_sourceCode .sh_name,.sh_acid .sh_sourceCode .sh_newfile,.sh_acid .sh_sourceCode .sh_value{color:#a68500;font-weight:400;font-style:normal}.sh_acid .sh_sourceCode .sh_specialchar,.sh_acid .sh_sourceCode .sh_oldfile{color:#f0f;font-weight:700;font-style:normal}.sh_acid .sh_sourceCode .sh_symbol,.sh_acid .sh_sourceCode .sh_cbracket{color:#ff0080;font-weight:700;font-style:normal}.sh_acid .sh_sourceCode .sh_variable,.sh_acid .sh_sourceCode .sh_selector{color:#0080c0;font-weight:400;font-style:normal}.sh_berries-dark .sh_sourceCode .sh_keyword,.sh_berries-dark .sh_sourceCode .sh_date,.sh_berries-dark .sh_sourceCode .sh_time,.sh_berries-dark .sh_sourceCode .sh_file,.sh_berries-dark .sh_sourceCode .sh_difflines,.sh_berries-dark .sh_sourceCode .sh_property{color:#3f2bf0;font-weight:700;font-style:normal}.sh_berries-dark .sh_sourceCode .sh_string,.sh_berries-dark .sh_sourceCode .sh_regexp,.sh_berries-dark .sh_sourceCode .sh_url,.sh_berries-dark .sh_sourceCode .sh_ip,.sh_berries-dark .sh_sourceCode .sh_name,.sh_berries-dark .sh_sourceCode .sh_newfile,.sh_berries-dark .sh_sourceCode .sh_value{color:#c40000;font-weight:400;font-style:normal}.sh_berries-dark .sh_sourceCode .sh_specialchar,.sh_berries-dark .sh_sourceCode .sh_oldfile{color:#77379a;font-weight:400;font-style:normal}.sh_berries-dark .sh_sourceCode .sh_number,.sh_berries-light .sh_sourceCode .sh_number{color:#20755a;font-weight:400;font-style:normal}.sh_berries-dark .sh_sourceCode .sh_preproc,.sh_berries-light .sh_sourceCode .sh_preproc{color:#0628cb;font-weight:400;font-style:normal}.sh_berries-dark .sh_sourceCode .sh_symbol,.sh_berries-dark .sh_sourceCode .sh_cbracket,.sh_contrast .sh_sourceCode .sh_comment,.sh_emacs .sh_sourceCode .sh_number,.sh_emacs .sh_sourceCode .sh_preproc,.sh_emacs .sh_sourceCode .sh_function,.sh_ide-anjuta .sh_sourceCode .sh_function,.sh_ide-codewarrior .sh_sourceCode .sh_number,.sh_ide-codewarrior .sh_sourceCode .sh_function,.sh_ide-devcpp .sh_sourceCode .sh_type,.sh_ide-devcpp .sh_sourceCode .sh_function,.sh_ide-eclipse .sh_sourceCode .sh_number,.sh_ide-eclipse .sh_sourceCode .sh_function,.sh_ide-kdev .sh_sourceCode .sh_function,.sh_ide-msvcpp .sh_sourceCode .sh_string,.sh_ide-msvcpp .sh_sourceCode .sh_regexp,.sh_ide-msvcpp .sh_sourceCode .sh_specialchar,.sh_ide-msvcpp .sh_sourceCode .sh_number,.sh_ide-msvcpp .sh_sourceCode .sh_function,.sh_ide-msvcpp .sh_sourceCode .sh_url,.sh_ide-msvcpp .sh_sourceCode .sh_ip,.sh_ide-msvcpp .sh_sourceCode .sh_name,.sh_ide-msvcpp .sh_sourceCode .sh_oldfile,.sh_ide-msvcpp .sh_sourceCode .sh_newfile,.sh_ide-msvcpp .sh_sourceCode .sh_value,.sh_matlab .sh_sourceCode .sh_type,.sh_matlab .sh_sourceCode .sh_specialchar,.sh_matlab .sh_sourceCode .sh_number,.sh_matlab .sh_sourceCode .sh_function,.sh_matlab .sh_sourceCode .sh_oldfile,.sh_nedit .sh_sourceCode .sh_function,.sh_print .sh_sourceCode .sh_string,.sh_print .sh_sourceCode .sh_regexp,.sh_print .sh_sourceCode .sh_specialchar,.sh_print .sh_sourceCode .sh_number,.sh_print .sh_sourceCode .sh_url,.sh_print .sh_sourceCode .sh_ip,.sh_print .sh_sourceCode .sh_name,.sh_print .sh_sourceCode .sh_oldfile,.sh_print .sh_sourceCode .sh_newfile,.sh_print .sh_sourceCode .sh_value,.sh_the .sh_sourceCode .sh_specialchar,.sh_the .sh_sourceCode .sh_function,.sh_the .sh_sourceCode .sh_oldfile,.sh_vim .sh_sourceCode .sh_function,.sh_whitengrey .sh_sourceCode .sh_function{color:#252BF8;font-weight:400;font-style:normal}.sh_berries-dark .sh_sourceCode .sh_function,.sh_berries-light .sh_sourceCode .sh_function{color:#901164;font-weight:700;font-style:normal}.sh_berries-dark .sh_sourceCode .sh_variable,.sh_berries-dark .sh_sourceCode .sh_selector{color:#a91ea7;font-weight:400;font-style:normal}.sh_berries-light .sh_sourceCode .sh_keyword,.sh_berries-light .sh_sourceCode .sh_date,.sh_berries-light .sh_sourceCode .sh_time,.sh_berries-light .sh_sourceCode .sh_file,.sh_berries-light .sh_sourceCode .sh_difflines,.sh_berries-light .sh_sourceCode .sh_property{color:#2cae1e;font-weight:700;font-style:normal}.sh_berries-light .sh_sourceCode .sh_string,.sh_berries-light .sh_sourceCode .sh_regexp,.sh_berries-light .sh_sourceCode .sh_specialchar,.sh_berries-light .sh_sourceCode .sh_url,.sh_berries-light .sh_sourceCode .sh_ip,.sh_berries-light .sh_sourceCode .sh_name,.sh_berries-light .sh_sourceCode .sh_oldfile,.sh_berries-light .sh_sourceCode .sh_newfile,.sh_berries-light .sh_sourceCode .sh_value{color:#5f81b3;font-weight:400;font-style:normal}.sh_berries-light .sh_sourceCode .sh_symbol,.sh_berries-light .sh_sourceCode .sh_cbracket{color:#d2073b;font-weight:400;font-style:normal}.sh_berries-light .sh_sourceCode .sh_variable,.sh_berries-light .sh_sourceCode .sh_selector{color:#0628cb;font-weight:700;font-style:normal}.sh_bipolar .sh_sourceCode .sh_keyword,.sh_bipolar .sh_sourceCode .sh_date,.sh_bipolar .sh_sourceCode .sh_time,.sh_bipolar .sh_sourceCode .sh_file,.sh_bipolar .sh_sourceCode .sh_difflines,.sh_bipolar .sh_sourceCode .sh_property{color:#ee85e2;font-weight:700;font-style:normal}.sh_bipolar .sh_sourceCode .sh_string,.sh_bipolar .sh_sourceCode .sh_regexp,.sh_bipolar .sh_sourceCode .sh_specialchar,.sh_bipolar .sh_sourceCode .sh_url,.sh_bipolar .sh_sourceCode .sh_ip,.sh_bipolar .sh_sourceCode .sh_name,.sh_bipolar .sh_sourceCode .sh_oldfile,.sh_bipolar .sh_sourceCode .sh_newfile,.sh_bipolar .sh_sourceCode .sh_value{color:#9ef457;font-weight:400;font-style:normal}.sh_bipolar .sh_sourceCode .sh_number,.sh_golden .sh_sourceCode .sh_number,.sh_greenlcd .sh_sourceCode .sh_number,.sh_navy .sh_sourceCode .sh_string,.sh_navy .sh_sourceCode .sh_regexp,.sh_navy .sh_sourceCode .sh_specialchar,.sh_navy .sh_sourceCode .sh_symbol,.sh_navy .sh_sourceCode .sh_function,.sh_navy .sh_sourceCode .sh_cbracket,.sh_navy .sh_sourceCode .sh_url,.sh_navy .sh_sourceCode .sh_ip,.sh_navy .sh_sourceCode .sh_name,.sh_navy .sh_sourceCode .sh_oldfile,.sh_navy .sh_sourceCode .sh_newfile,.sh_navy .sh_sourceCode .sh_value,.sh_night .sh_sourceCode .sh_string,.sh_night .sh_sourceCode .sh_regexp,.sh_night .sh_sourceCode .sh_url,.sh_night .sh_sourceCode .sh_ip,.sh_night .sh_sourceCode .sh_name,.sh_night .sh_sourceCode .sh_newfile,.sh_night .sh_sourceCode .sh_value,.sh_vampire .sh_sourceCode .sh_specialchar,.sh_vampire .sh_sourceCode .sh_variable,.sh_vampire .sh_sourceCode .sh_oldfile,.sh_vampire .sh_sourceCode .sh_selector,.sh_vim-dark .sh_sourceCode .sh_function{color:#fff;font-weight:400;font-style:normal}.sh_bipolar .sh_sourceCode .sh_symbol,.sh_bipolar .sh_sourceCode .sh_cbracket{color:#348fef;font-weight:400;font-style:normal}.sh_bipolar .sh_sourceCode .sh_variable,.sh_bipolar .sh_sourceCode .sh_selector{color:#72d42c;font-weight:700;font-style:normal}.sh_blacknblue .sh_sourceCode .sh_keyword,.sh_blacknblue .sh_sourceCode .sh_date,.sh_blacknblue .sh_sourceCode .sh_time,.sh_blacknblue .sh_sourceCode .sh_file,.sh_blacknblue .sh_sourceCode .sh_difflines,.sh_blacknblue .sh_sourceCode .sh_property{color:#1ededc;font-weight:700;font-style:normal}.sh_blacknblue .sh_sourceCode .sh_string,.sh_blacknblue .sh_sourceCode .sh_regexp,.sh_blacknblue .sh_sourceCode .sh_url,.sh_blacknblue .sh_sourceCode .sh_ip,.sh_blacknblue .sh_sourceCode .sh_name,.sh_blacknblue .sh_sourceCode .sh_newfile,.sh_blacknblue .sh_sourceCode .sh_value{color:#cfc631;font-weight:400;font-style:normal}.sh_blacknblue .sh_sourceCode .sh_specialchar,.sh_blacknblue .sh_sourceCode .sh_symbol,.sh_blacknblue .sh_sourceCode .sh_cbracket,.sh_blacknblue .sh_sourceCode .sh_oldfile{color:#ccc6c6;font-weight:400;font-style:normal}.sh_blacknblue .sh_sourceCode .sh_variable,.sh_blacknblue .sh_sourceCode .sh_selector{color:#ecea26;font-weight:400;font-style:normal}.sh_bright .sh_sourceCode .sh_keyword,.sh_bright .sh_sourceCode .sh_date,.sh_bright .sh_sourceCode .sh_time,.sh_bright .sh_sourceCode .sh_file,.sh_bright .sh_sourceCode .sh_difflines,.sh_bright .sh_sourceCode .sh_property{color:#ff3030;font-weight:700;font-style:normal}.sh_bright .sh_sourceCode .sh_string,.sh_bright .sh_sourceCode .sh_regexp,.sh_bright .sh_sourceCode .sh_specialchar,.sh_bright .sh_sourceCode .sh_url,.sh_bright .sh_sourceCode .sh_ip,.sh_bright .sh_sourceCode .sh_name,.sh_bright .sh_sourceCode .sh_oldfile,.sh_bright .sh_sourceCode .sh_newfile,.sh_bright .sh_sourceCode .sh_value{color:#1861a7;font-weight:400;font-style:normal}.sh_bright .sh_sourceCode .sh_symbol,.sh_bright .sh_sourceCode .sh_cbracket{color:#3030ee;font-weight:400;font-style:normal}.sh_bright .sh_sourceCode .sh_variable,.sh_bright .sh_sourceCode .sh_selector,.sh_emacs .sh_sourceCode .sh_variable,.sh_emacs .sh_sourceCode .sh_selector,.sh_ide-anjuta .sh_sourceCode .sh_variable,.sh_ide-anjuta .sh_sourceCode .sh_selector,.sh_ide-devcpp .sh_sourceCode .sh_number,.sh_ide-eclipse .sh_sourceCode .sh_string,.sh_ide-eclipse .sh_sourceCode .sh_regexp,.sh_ide-eclipse .sh_sourceCode .sh_specialchar,.sh_ide-eclipse .sh_sourceCode .sh_url,.sh_ide-eclipse .sh_sourceCode .sh_ip,.sh_ide-eclipse .sh_sourceCode .sh_name,.sh_ide-eclipse .sh_sourceCode .sh_oldfile,.sh_ide-eclipse .sh_sourceCode .sh_newfile,.sh_ide-eclipse .sh_sourceCode .sh_value,.sh_ide-kdev .sh_sourceCode .sh_number,.sh_ide-msvcpp .sh_sourceCode .sh_type,.sh_ide-msvcpp .sh_sourceCode .sh_preproc,.sh_matlab .sh_sourceCode .sh_keyword,.sh_matlab .sh_sourceCode .sh_date,.sh_matlab .sh_sourceCode .sh_time,.sh_matlab .sh_sourceCode .sh_file,.sh_matlab .sh_sourceCode .sh_variable,.sh_matlab .sh_sourceCode .sh_difflines,.sh_matlab .sh_sourceCode .sh_selector,.sh_matlab .sh_sourceCode .sh_property,.sh_pablo .sh_sourceCode .sh_specialchar,.sh_pablo .sh_sourceCode .sh_oldfile,.sh_the .sh_sourceCode .sh_keyword,.sh_the .sh_sourceCode .sh_date,.sh_the .sh_sourceCode .sh_time,.sh_the .sh_sourceCode .sh_file,.sh_the .sh_sourceCode .sh_variable,.sh_the .sh_sourceCode .sh_difflines,.sh_the .sh_sourceCode .sh_selector,.sh_the .sh_sourceCode .sh_property,.sh_typical .sh_sourceCode .sh_type,.sh_vim-dark .sh_sourceCode .sh_comment,.sh_vim .sh_sourceCode .sh_comment,.sh_zellner .sh_sourceCode .sh_type{color:#00f;font-weight:400;font-style:normal}.sh_contrast .sh_sourceCode .sh_keyword,.sh_contrast .sh_sourceCode .sh_type,.sh_contrast .sh_sourceCode .sh_date,.sh_contrast .sh_sourceCode .sh_time,.sh_contrast .sh_sourceCode .sh_file,.sh_contrast .sh_sourceCode .sh_difflines,.sh_contrast .sh_sourceCode .sh_property,.sh_darkblue .sh_sourceCode .sh_function,.sh_neon .sh_sourceCode .sh_function,.sh_night .sh_sourceCode .sh_keyword,.sh_night .sh_sourceCode .sh_date,.sh_night .sh_sourceCode .sh_time,.sh_night .sh_sourceCode .sh_file,.sh_night .sh_sourceCode .sh_difflines,.sh_night .sh_sourceCode .sh_property,.sh_vampire .sh_sourceCode .sh_keyword,.sh_vampire .sh_sourceCode .sh_date,.sh_vampire .sh_sourceCode .sh_time,.sh_vampire .sh_sourceCode .sh_file,.sh_vampire .sh_sourceCode .sh_difflines,.sh_vampire .sh_sourceCode .sh_property,.sh_whatis .sh_sourceCode .sh_type{color:#fff;font-weight:700;font-style:normal}.sh_contrast .sh_sourceCode .sh_string,.sh_contrast .sh_sourceCode .sh_regexp,.sh_contrast .sh_sourceCode .sh_specialchar,.sh_contrast .sh_sourceCode .sh_url,.sh_contrast .sh_sourceCode .sh_ip,.sh_contrast .sh_sourceCode .sh_name,.sh_contrast .sh_sourceCode .sh_oldfile,.sh_contrast .sh_sourceCode .sh_newfile,.sh_contrast .sh_sourceCode .sh_value{color:#11f80c;font-weight:400;font-style:normal}.sh_contrast .sh_sourceCode .sh_symbol,.sh_contrast .sh_sourceCode .sh_cbracket,.sh_golden .sh_sourceCode .sh_variable,.sh_golden .sh_sourceCode .sh_selector{color:#dedede;font-weight:700;font-style:normal}.sh_contrast .sh_sourceCode .sh_variable,.sh_contrast .sh_sourceCode .sh_selector{color:#11f80c;font-weight:700;font-style:normal}.sh_darkblue .sh_sourceCode .sh_keyword,.sh_darkblue .sh_sourceCode .sh_date,.sh_darkblue .sh_sourceCode .sh_time,.sh_darkblue .sh_sourceCode .sh_file,.sh_darkblue .sh_sourceCode .sh_difflines,.sh_darkblue .sh_sourceCode .sh_property{color:#ffff60;font-weight:400;font-style:normal}.sh_darkblue .sh_sourceCode .sh_string,.sh_darkblue .sh_sourceCode .sh_regexp,.sh_darkblue .sh_sourceCode .sh_url,.sh_darkblue .sh_sourceCode .sh_ip,.sh_darkblue .sh_sourceCode .sh_name,.sh_darkblue .sh_sourceCode .sh_newfile,.sh_darkblue .sh_sourceCode .sh_value{color:#ffa0a0;font-weight:400;font-style:normal}.sh_darkblue .sh_sourceCode .sh_specialchar,.sh_darkblue .sh_sourceCode .sh_oldfile{color:orange;font-weight:400;font-style:normal}.sh_darkblue .sh_sourceCode .sh_symbol,.sh_darkblue .sh_sourceCode .sh_cbracket{color:#d8e91b;font-weight:700;font-style:normal}.sh_darkblue .sh_sourceCode .sh_variable,.sh_darkblue .sh_sourceCode .sh_selector,.sh_darkness .sh_sourceCode .sh_variable,.sh_darkness .sh_sourceCode .sh_selector{color:#26e0e7;font-weight:400;font-style:normal}.sh_darkness .sh_sourceCode,.sh_neon .sh_sourceCode,.sh_pablo .sh_sourceCode,.sh_vim-dark .sh_sourceCode{background-color:#000;color:#fff;font-weight:400;font-style:normal}.sh_darkness .sh_sourceCode .sh_keyword,.sh_darkness .sh_sourceCode .sh_date,.sh_darkness .sh_sourceCode .sh_time,.sh_darkness .sh_sourceCode .sh_file,.sh_darkness .sh_sourceCode .sh_difflines,.sh_darkness .sh_sourceCode .sh_property{color:#ff0;font-weight:700;font-style:normal}.sh_darkness .sh_sourceCode .sh_type,.sh_pablo .sh_sourceCode .sh_preproc,.sh_vim-dark .sh_sourceCode .sh_type,.sh_vim .sh_sourceCode .sh_type{color:#0f0;font-weight:400;font-style:normal}.sh_darkness .sh_sourceCode .sh_string,.sh_darkness .sh_sourceCode .sh_regexp,.sh_darkness .sh_sourceCode .sh_url,.sh_darkness .sh_sourceCode .sh_ip,.sh_darkness .sh_sourceCode .sh_name,.sh_darkness .sh_sourceCode .sh_newfile,.sh_darkness .sh_sourceCode .sh_value{color:#abab00;font-weight:700;font-style:normal}.sh_darkness .sh_sourceCode .sh_specialchar,.sh_darkness .sh_sourceCode .sh_oldfile,.sh_greenlcd .sh_sourceCode .sh_preproc,.sh_night .sh_sourceCode .sh_comment,.sh_whatis .sh_sourceCode .sh_preproc{color:#bfbfbf;font-weight:400;font-style:normal}.sh_darkness .sh_sourceCode .sh_comment,.sh_greenlcd .sh_sourceCode .sh_comment{color:#888;font-weight:400;font-style:italic}.sh_darkness .sh_sourceCode .sh_symbol,.sh_darkness .sh_sourceCode .sh_cbracket,.sh_kwrite .sh_sourceCode .sh_specialchar,.sh_kwrite .sh_sourceCode .sh_oldfile,.sh_neon .sh_sourceCode .sh_number,.sh_zellner .sh_sourceCode .sh_string,.sh_zellner .sh_sourceCode .sh_regexp,.sh_zellner .sh_sourceCode .sh_specialchar,.sh_zellner .sh_sourceCode .sh_number,.sh_zellner .sh_sourceCode .sh_url,.sh_zellner .sh_sourceCode .sh_ip,.sh_zellner .sh_sourceCode .sh_name,.sh_zellner .sh_sourceCode .sh_oldfile,.sh_zellner .sh_sourceCode .sh_newfile,.sh_zellner .sh_sourceCode .sh_value{color:#f0f;font-weight:400;font-style:normal}.sh_desert .sh_sourceCode .sh_keyword,.sh_desert .sh_sourceCode .sh_date,.sh_desert .sh_sourceCode .sh_time,.sh_desert .sh_sourceCode .sh_file,.sh_desert .sh_sourceCode .sh_difflines,.sh_desert .sh_sourceCode .sh_property{color:#fef8bc;font-weight:700;font-style:normal}.sh_desert .sh_sourceCode .sh_string,.sh_desert .sh_sourceCode .sh_regexp,.sh_desert .sh_sourceCode .sh_specialchar,.sh_desert .sh_sourceCode .sh_url,.sh_desert .sh_sourceCode .sh_ip,.sh_desert .sh_sourceCode .sh_name,.sh_desert .sh_sourceCode .sh_oldfile,.sh_desert .sh_sourceCode .sh_newfile,.sh_desert .sh_sourceCode .sh_value{color:#f6f647;font-weight:400;font-style:normal}.sh_desert .sh_sourceCode .sh_symbol,.sh_desert .sh_sourceCode .sh_cbracket{color:#66574f;font-weight:400;font-style:normal}.sh_desert .sh_sourceCode .sh_variable,.sh_desert .sh_sourceCode .sh_selector,.sh_ide-devcpp .sh_sourceCode .sh_keyword,.sh_ide-devcpp .sh_sourceCode .sh_date,.sh_ide-devcpp .sh_sourceCode .sh_time,.sh_ide-devcpp .sh_sourceCode .sh_file,.sh_ide-devcpp .sh_sourceCode .sh_variable,.sh_ide-devcpp .sh_sourceCode .sh_difflines,.sh_ide-devcpp .sh_sourceCode .sh_selector,.sh_ide-devcpp .sh_sourceCode .sh_property,.sh_kwrite .sh_sourceCode .sh_keyword,.sh_kwrite .sh_sourceCode .sh_date,.sh_kwrite .sh_sourceCode .sh_time,.sh_kwrite .sh_sourceCode .sh_file,.sh_kwrite .sh_sourceCode .sh_variable,.sh_kwrite .sh_sourceCode .sh_difflines,.sh_kwrite .sh_sourceCode .sh_selector,.sh_kwrite .sh_sourceCode .sh_property,.sh_nedit .sh_sourceCode .sh_keyword,.sh_nedit .sh_sourceCode .sh_symbol,.sh_nedit .sh_sourceCode .sh_cbracket,.sh_nedit .sh_sourceCode .sh_date,.sh_nedit .sh_sourceCode .sh_time,.sh_nedit .sh_sourceCode .sh_file,.sh_nedit .sh_sourceCode .sh_difflines,.sh_nedit .sh_sourceCode .sh_property,.sh_print .sh_sourceCode .sh_keyword,.sh_print .sh_sourceCode .sh_type,.sh_print .sh_sourceCode .sh_preproc,.sh_print .sh_sourceCode .sh_symbol,.sh_print .sh_sourceCode .sh_cbracket,.sh_print .sh_sourceCode .sh_date,.sh_print .sh_sourceCode .sh_time,.sh_print .sh_sourceCode .sh_file,.sh_print .sh_sourceCode .sh_variable,.sh_print .sh_sourceCode .sh_difflines,.sh_print .sh_sourceCode .sh_selector,.sh_print .sh_sourceCode .sh_property,.sh_rand01 .sh_sourceCode .sh_function,.sh_typical .sh_sourceCode .sh_function,.sh_zellner .sh_sourceCode .sh_function{color:#000;font-weight:700;font-style:normal}.sh_dull .sh_sourceCode .sh_keyword,.sh_dull .sh_sourceCode .sh_date,.sh_dull .sh_sourceCode .sh_time,.sh_dull .sh_sourceCode .sh_file,.sh_dull .sh_sourceCode .sh_difflines,.sh_dull .sh_sourceCode .sh_property{color:#353535;font-weight:700;font-style:normal}.sh_dull .sh_sourceCode .sh_string,.sh_dull .sh_sourceCode .sh_regexp,.sh_dull .sh_sourceCode .sh_specialchar,.sh_dull .sh_sourceCode .sh_url,.sh_dull .sh_sourceCode .sh_ip,.sh_dull .sh_sourceCode .sh_name,.sh_dull .sh_sourceCode .sh_oldfile,.sh_dull .sh_sourceCode .sh_newfile,.sh_dull .sh_sourceCode .sh_value{color:#059;font-weight:400;font-style:normal}.sh_dull .sh_sourceCode .sh_symbol,.sh_dull .sh_sourceCode .sh_cbracket{color:#222;font-weight:400;font-style:normal}.sh_dull .sh_sourceCode .sh_variable,.sh_dull .sh_sourceCode .sh_selector{color:#ae5a16;font-weight:400;font-style:normal}.sh_easter .sh_sourceCode .sh_keyword,.sh_easter .sh_sourceCode .sh_date,.sh_easter .sh_sourceCode .sh_time,.sh_easter .sh_sourceCode .sh_file,.sh_easter .sh_sourceCode .sh_difflines,.sh_easter .sh_sourceCode .sh_property{color:#1d45d6;font-weight:700;font-style:normal}.sh_easter .sh_sourceCode .sh_string,.sh_easter .sh_sourceCode .sh_regexp,.sh_easter .sh_sourceCode .sh_specialchar,.sh_easter .sh_sourceCode .sh_url,.sh_easter .sh_sourceCode .sh_ip,.sh_easter .sh_sourceCode .sh_name,.sh_easter .sh_sourceCode .sh_oldfile,.sh_easter .sh_sourceCode .sh_newfile,.sh_easter .sh_sourceCode .sh_value{color:#ca4be3;font-weight:400;font-style:normal}.sh_easter .sh_sourceCode .sh_symbol,.sh_easter .sh_sourceCode .sh_cbracket{color:#fa4700;font-weight:400;font-style:normal}.sh_easter .sh_sourceCode .sh_variable,.sh_easter .sh_sourceCode .sh_selector{color:#26aae7;font-weight:700;font-style:normal}.sh_emacs .sh_sourceCode,.sh_ide-anjuta .sh_sourceCode,.sh_ide-codewarrior .sh_sourceCode,.sh_ide-devcpp .sh_sourceCode,.sh_ide-eclipse .sh_sourceCode,.sh_ide-kdev .sh_sourceCode,.sh_ide-msvcpp .sh_sourceCode,.sh_kwrite .sh_sourceCode,.sh_matlab .sh_sourceCode,.sh_nedit .sh_sourceCode,.sh_print .sh_sourceCode,.sh_the .sh_sourceCode,.sh_typical .sh_sourceCode,.sh_vim .sh_sourceCode,.sh_zellner .sh_sourceCode{background-color:#fff;color:#000;font-weight:400;font-style:normal}.sh_emacs .sh_sourceCode .sh_keyword,.sh_emacs .sh_sourceCode .sh_date,.sh_emacs .sh_sourceCode .sh_time,.sh_emacs .sh_sourceCode .sh_file,.sh_emacs .sh_sourceCode .sh_difflines,.sh_emacs .sh_sourceCode .sh_property{color:#9c20ee;font-weight:700;font-style:normal}.sh_emacs .sh_sourceCode .sh_string,.sh_emacs .sh_sourceCode .sh_regexp,.sh_emacs .sh_sourceCode .sh_specialchar,.sh_emacs .sh_sourceCode .sh_url,.sh_emacs .sh_sourceCode .sh_ip,.sh_emacs .sh_sourceCode .sh_name,.sh_emacs .sh_sourceCode .sh_oldfile,.sh_emacs .sh_sourceCode .sh_newfile,.sh_emacs .sh_sourceCode .sh_value{color:#bd8d8b;font-weight:400;font-style:normal}.sh_golden .sh_sourceCode .sh_keyword,.sh_golden .sh_sourceCode .sh_date,.sh_golden .sh_sourceCode .sh_time,.sh_golden .sh_sourceCode .sh_file,.sh_golden .sh_sourceCode .sh_difflines,.sh_golden .sh_sourceCode .sh_property{color:#ffed8a;font-weight:700;font-style:normal}.sh_golden .sh_sourceCode .sh_string,.sh_golden .sh_sourceCode .sh_regexp,.sh_golden .sh_sourceCode .sh_specialchar,.sh_golden .sh_sourceCode .sh_url,.sh_golden .sh_sourceCode .sh_ip,.sh_golden .sh_sourceCode .sh_name,.sh_golden .sh_sourceCode .sh_oldfile,.sh_golden .sh_sourceCode .sh_newfile,.sh_golden .sh_sourceCode .sh_value,.sh_ide-devcpp .sh_sourceCode .sh_string,.sh_ide-devcpp .sh_sourceCode .sh_regexp,.sh_ide-devcpp .sh_sourceCode .sh_specialchar,.sh_ide-devcpp .sh_sourceCode .sh_url,.sh_ide-devcpp .sh_sourceCode .sh_ip,.sh_ide-devcpp .sh_sourceCode .sh_name,.sh_ide-devcpp .sh_sourceCode .sh_oldfile,.sh_ide-devcpp .sh_sourceCode .sh_newfile,.sh_ide-devcpp .sh_sourceCode .sh_value,.sh_ide-kdev .sh_sourceCode .sh_string,.sh_ide-kdev .sh_sourceCode .sh_regexp,.sh_ide-kdev .sh_sourceCode .sh_specialchar,.sh_ide-kdev .sh_sourceCode .sh_url,.sh_ide-kdev .sh_sourceCode .sh_ip,.sh_ide-kdev .sh_sourceCode .sh_name,.sh_ide-kdev .sh_sourceCode .sh_oldfile,.sh_ide-kdev .sh_sourceCode .sh_newfile,.sh_ide-kdev .sh_sourceCode .sh_value,.sh_kwrite .sh_sourceCode .sh_string,.sh_kwrite .sh_sourceCode .sh_regexp,.sh_kwrite .sh_sourceCode .sh_url,.sh_kwrite .sh_sourceCode .sh_ip,.sh_kwrite .sh_sourceCode .sh_name,.sh_kwrite .sh_sourceCode .sh_newfile,.sh_kwrite .sh_sourceCode .sh_value,.sh_pablo .sh_sourceCode .sh_symbol,.sh_pablo .sh_sourceCode .sh_cbracket,.sh_the .sh_sourceCode .sh_number,.sh_the .sh_sourceCode .sh_preproc,.sh_typical .sh_sourceCode .sh_string,.sh_typical .sh_sourceCode .sh_regexp,.sh_typical .sh_sourceCode .sh_symbol,.sh_typical .sh_sourceCode .sh_cbracket,.sh_typical .sh_sourceCode .sh_url,.sh_typical .sh_sourceCode .sh_ip,.sh_typical .sh_sourceCode .sh_name,.sh_typical .sh_sourceCode .sh_newfile,.sh_typical .sh_sourceCode .sh_value,.sh_vim-dark .sh_sourceCode .sh_string,.sh_vim-dark .sh_sourceCode .sh_regexp,.sh_vim-dark .sh_sourceCode .sh_number,.sh_vim-dark .sh_sourceCode .sh_url,.sh_vim-dark .sh_sourceCode .sh_ip,.sh_vim-dark .sh_sourceCode .sh_name,.sh_vim-dark .sh_sourceCode .sh_newfile,.sh_vim-dark .sh_sourceCode .sh_value,.sh_vim .sh_sourceCode .sh_string,.sh_vim .sh_sourceCode .sh_regexp,.sh_vim .sh_sourceCode .sh_number,.sh_vim .sh_sourceCode .sh_url,.sh_vim .sh_sourceCode .sh_ip,.sh_vim .sh_sourceCode .sh_name,.sh_vim .sh_sourceCode .sh_newfile,.sh_vim .sh_sourceCode .sh_value,.sh_whatis .sh_sourceCode .sh_comment,.sh_zellner .sh_sourceCode .sh_comment{color:red;font-weight:400;font-style:normal}.sh_golden .sh_sourceCode .sh_symbol,.sh_golden .sh_sourceCode .sh_cbracket,.sh_vampire .sh_sourceCode .sh_preproc{color:#ababab;font-weight:400;font-style:normal}.sh_greenlcd .sh_sourceCode .sh_keyword,.sh_greenlcd .sh_sourceCode .sh_date,.sh_greenlcd .sh_sourceCode .sh_time,.sh_greenlcd .sh_sourceCode .sh_file,.sh_greenlcd .sh_sourceCode .sh_difflines,.sh_greenlcd .sh_sourceCode .sh_property{color:#00ed00;font-weight:700;font-style:normal}.sh_greenlcd .sh_sourceCode .sh_string,.sh_greenlcd .sh_sourceCode .sh_regexp,.sh_greenlcd .sh_sourceCode .sh_specialchar,.sh_greenlcd .sh_sourceCode .sh_url,.sh_greenlcd .sh_sourceCode .sh_ip,.sh_greenlcd .sh_sourceCode .sh_name,.sh_greenlcd .sh_sourceCode .sh_oldfile,.sh_greenlcd .sh_sourceCode .sh_newfile,.sh_greenlcd .sh_sourceCode .sh_value{color:#dfdfdf;font-weight:400;font-style:normal}.sh_greenlcd .sh_sourceCode .sh_symbol,.sh_greenlcd .sh_sourceCode .sh_cbracket{color:#2fe7a9;font-weight:400;font-style:normal}.sh_greenlcd .sh_sourceCode .sh_variable,.sh_greenlcd .sh_sourceCode .sh_selector{color:#beef13;font-weight:400;font-style:normal}.sh_ide-anjuta .sh_sourceCode .sh_keyword,.sh_ide-anjuta .sh_sourceCode .sh_date,.sh_ide-anjuta .sh_sourceCode .sh_time,.sh_ide-anjuta .sh_sourceCode .sh_file,.sh_ide-anjuta .sh_sourceCode .sh_difflines,.sh_ide-anjuta .sh_sourceCode .sh_property{color:navy;font-weight:700;font-style:normal}.sh_ide-anjuta .sh_sourceCode .sh_string,.sh_ide-anjuta .sh_sourceCode .sh_regexp,.sh_ide-anjuta .sh_sourceCode .sh_specialchar,.sh_ide-anjuta .sh_sourceCode .sh_url,.sh_ide-anjuta .sh_sourceCode .sh_ip,.sh_ide-anjuta .sh_sourceCode .sh_name,.sh_ide-anjuta .sh_sourceCode .sh_oldfile,.sh_ide-anjuta .sh_sourceCode .sh_newfile,.sh_ide-anjuta .sh_sourceCode .sh_value{color:#db0;font-weight:400;font-style:normal}.sh_ide-anjuta .sh_sourceCode .sh_number,.sh_whitengrey .sh_sourceCode .sh_string,.sh_whitengrey .sh_sourceCode .sh_regexp,.sh_whitengrey .sh_sourceCode .sh_specialchar,.sh_whitengrey .sh_sourceCode .sh_url,.sh_whitengrey .sh_sourceCode .sh_ip,.sh_whitengrey .sh_sourceCode .sh_name,.sh_whitengrey .sh_sourceCode .sh_oldfile,.sh_whitengrey .sh_sourceCode .sh_newfile,.sh_whitengrey .sh_sourceCode .sh_value{color:#080;font-weight:400;font-style:normal}.sh_ide-codewarrior .sh_sourceCode .sh_keyword,.sh_ide-codewarrior .sh_sourceCode .sh_preproc,.sh_ide-codewarrior .sh_sourceCode .sh_date,.sh_ide-codewarrior .sh_sourceCode .sh_time,.sh_ide-codewarrior .sh_sourceCode .sh_file,.sh_ide-codewarrior .sh_sourceCode .sh_variable,.sh_ide-codewarrior .sh_sourceCode .sh_difflines,.sh_ide-codewarrior .sh_sourceCode .sh_selector,.sh_ide-codewarrior .sh_sourceCode .sh_property{color:#0000b3;font-weight:400;font-style:normal}.sh_ide-codewarrior .sh_sourceCode .sh_string,.sh_ide-codewarrior .sh_sourceCode .sh_regexp,.sh_ide-codewarrior .sh_sourceCode .sh_specialchar,.sh_ide-codewarrior .sh_sourceCode .sh_url,.sh_ide-codewarrior .sh_sourceCode .sh_ip,.sh_ide-codewarrior .sh_sourceCode .sh_name,.sh_ide-codewarrior .sh_sourceCode .sh_oldfile,.sh_ide-codewarrior .sh_sourceCode .sh_newfile,.sh_ide-codewarrior .sh_sourceCode .sh_value{color:#666;font-weight:400;font-style:normal}.sh_ide-devcpp .sh_sourceCode .sh_preproc,.sh_ide-kdev .sh_sourceCode .sh_preproc{color:green;font-weight:400;font-style:normal}.sh_ide-eclipse .sh_sourceCode .sh_keyword,.sh_ide-eclipse .sh_sourceCode .sh_type,.sh_ide-eclipse .sh_sourceCode .sh_date,.sh_ide-eclipse .sh_sourceCode .sh_time,.sh_ide-eclipse .sh_sourceCode .sh_file,.sh_ide-eclipse .sh_sourceCode .sh_variable,.sh_ide-eclipse .sh_sourceCode .sh_difflines,.sh_ide-eclipse .sh_sourceCode .sh_selector,.sh_ide-eclipse .sh_sourceCode .sh_property{color:#7f0055;font-weight:700;font-style:normal}.sh_ide-kdev .sh_sourceCode .sh_keyword,.sh_ide-kdev .sh_sourceCode .sh_date,.sh_ide-kdev .sh_sourceCode .sh_time,.sh_ide-kdev .sh_sourceCode .sh_file,.sh_ide-kdev .sh_sourceCode .sh_variable,.sh_ide-kdev .sh_sourceCode .sh_difflines,.sh_ide-kdev .sh_sourceCode .sh_selector,.sh_ide-kdev .sh_sourceCode .sh_property{color:#600000;font-weight:700;font-style:normal}.sh_ide-msvcpp .sh_sourceCode .sh_keyword,.sh_ide-msvcpp .sh_sourceCode .sh_date,.sh_ide-msvcpp .sh_sourceCode .sh_time,.sh_ide-msvcpp .sh_sourceCode .sh_file,.sh_ide-msvcpp .sh_sourceCode .sh_variable,.sh_ide-msvcpp .sh_sourceCode .sh_difflines,.sh_ide-msvcpp .sh_sourceCode .sh_selector,.sh_ide-msvcpp .sh_sourceCode .sh_property,.sh_typical .sh_sourceCode .sh_keyword,.sh_typical .sh_sourceCode .sh_date,.sh_typical .sh_sourceCode .sh_time,.sh_typical .sh_sourceCode .sh_file,.sh_typical .sh_sourceCode .sh_difflines,.sh_typical .sh_sourceCode .sh_property{color:#00f;font-weight:700;font-style:normal}.sh_matlab .sh_sourceCode .sh_string,.sh_matlab .sh_sourceCode .sh_regexp,.sh_matlab .sh_sourceCode .sh_url,.sh_matlab .sh_sourceCode .sh_ip,.sh_matlab .sh_sourceCode .sh_name,.sh_matlab .sh_sourceCode .sh_newfile,.sh_matlab .sh_sourceCode .sh_value{color:maroon;font-weight:400;font-style:normal}.sh_navy .sh_sourceCode .sh_keyword,.sh_navy .sh_sourceCode .sh_date,.sh_navy .sh_sourceCode .sh_time,.sh_navy .sh_sourceCode .sh_file,.sh_navy .sh_sourceCode .sh_difflines,.sh_navy .sh_sourceCode .sh_property{color:#f8c50b;font-weight:700;font-style:normal}.sh_navy .sh_sourceCode .sh_preproc,.sh_vampire .sh_sourceCode .sh_string,.sh_vampire .sh_sourceCode .sh_regexp,.sh_vampire .sh_sourceCode .sh_number,.sh_vampire .sh_sourceCode .sh_url,.sh_vampire .sh_sourceCode .sh_ip,.sh_vampire .sh_sourceCode .sh_name,.sh_vampire .sh_sourceCode .sh_newfile,.sh_vampire .sh_sourceCode .sh_value,.sh_whitengrey .sh_sourceCode .sh_number{color:#b0f;font-weight:400;font-style:normal}.sh_navy .sh_sourceCode .sh_variable,.sh_navy .sh_sourceCode .sh_selector{color:#13d8ef;font-weight:400;font-style:normal}.sh_nedit .sh_sourceCode .sh_type,.sh_peachpuff .sh_sourceCode .sh_keyword,.sh_peachpuff .sh_sourceCode .sh_date,.sh_peachpuff .sh_sourceCode .sh_time,.sh_peachpuff .sh_sourceCode .sh_file,.sh_peachpuff .sh_sourceCode .sh_difflines,.sh_peachpuff .sh_sourceCode .sh_property{color:#a52a2a;font-weight:700;font-style:normal}.sh_nedit .sh_sourceCode .sh_string,.sh_nedit .sh_sourceCode .sh_regexp,.sh_nedit .sh_sourceCode .sh_number,.sh_nedit .sh_sourceCode .sh_url,.sh_nedit .sh_sourceCode .sh_ip,.sh_nedit .sh_sourceCode .sh_name,.sh_nedit .sh_sourceCode .sh_newfile,.sh_nedit .sh_sourceCode .sh_value{color:#006400;font-weight:400;font-style:normal}.sh_nedit .sh_sourceCode .sh_specialchar,.sh_nedit .sh_sourceCode .sh_oldfile{color:#2e8b57;font-weight:400;font-style:normal}.sh_nedit .sh_sourceCode .sh_variable,.sh_nedit .sh_sourceCode .sh_selector{color:#dda0dd;font-weight:700;font-style:normal}.sh_neon .sh_sourceCode .sh_keyword,.sh_neon .sh_sourceCode .sh_date,.sh_neon .sh_sourceCode .sh_time,.sh_neon .sh_sourceCode .sh_file,.sh_neon .sh_sourceCode .sh_difflines,.sh_neon .sh_sourceCode .sh_property{color:#0ff;font-weight:700;font-style:normal}.sh_neon .sh_sourceCode .sh_type,.sh_whatis .sh_sourceCode .sh_number{color:#ff0;font-weight:400;font-style:normal}.sh_neon .sh_sourceCode .sh_string,.sh_neon .sh_sourceCode .sh_regexp,.sh_neon .sh_sourceCode .sh_specialchar,.sh_neon .sh_sourceCode .sh_url,.sh_neon .sh_sourceCode .sh_ip,.sh_neon .sh_sourceCode .sh_name,.sh_neon .sh_sourceCode .sh_oldfile,.sh_neon .sh_sourceCode .sh_newfile,.sh_neon .sh_sourceCode .sh_value{color:#cd00ff;font-weight:400;font-style:normal}.sh_neon .sh_sourceCode .sh_comment,.sh_the .sh_sourceCode .sh_comment{color:#0f0;font-weight:400;font-style:italic}.sh_neon .sh_sourceCode .sh_preproc,.sh_whatis .sh_sourceCode .sh_string,.sh_whatis .sh_sourceCode .sh_regexp,.sh_whatis .sh_sourceCode .sh_specialchar,.sh_whatis .sh_sourceCode .sh_url,.sh_whatis .sh_sourceCode .sh_ip,.sh_whatis .sh_sourceCode .sh_name,.sh_whatis .sh_sourceCode .sh_oldfile,.sh_whatis .sh_sourceCode .sh_newfile,.sh_whatis .sh_sourceCode .sh_value{color:#fb0;font-weight:400;font-style:normal}.sh_neon .sh_sourceCode .sh_symbol,.sh_neon .sh_sourceCode .sh_cbracket{color:#ee5896;font-weight:700;font-style:normal}.sh_neon .sh_sourceCode .sh_variable,.sh_neon .sh_sourceCode .sh_selector{color:#ef1347;font-weight:700;font-style:normal}.sh_night .sh_sourceCode .sh_specialchar,.sh_night .sh_sourceCode .sh_oldfile{color:#82d66d;font-weight:400;font-style:normal}.sh_night .sh_sourceCode .sh_symbol,.sh_night .sh_sourceCode .sh_cbracket{color:#e7ee5c;font-weight:700;font-style:normal}.sh_night .sh_sourceCode .sh_variable,.sh_night .sh_sourceCode .sh_selector{color:#7aec27;font-weight:700;font-style:normal}.sh_pablo .sh_sourceCode .sh_keyword,.sh_pablo .sh_sourceCode .sh_date,.sh_pablo .sh_sourceCode .sh_time,.sh_pablo .sh_sourceCode .sh_file,.sh_pablo .sh_sourceCode .sh_difflines,.sh_pablo .sh_sourceCode .sh_property{color:#c0c000;font-weight:700;font-style:normal}.sh_pablo .sh_sourceCode .sh_string,.sh_pablo .sh_sourceCode .sh_regexp,.sh_pablo .sh_sourceCode .sh_number,.sh_pablo .sh_sourceCode .sh_url,.sh_pablo .sh_sourceCode .sh_ip,.sh_pablo .sh_sourceCode .sh_name,.sh_pablo .sh_sourceCode .sh_newfile,.sh_pablo .sh_sourceCode .sh_value,.sh_whatis .sh_sourceCode .sh_symbol,.sh_whatis .sh_sourceCode .sh_cbracket{color:#0ff;font-weight:400;font-style:normal}.sh_pablo .sh_sourceCode .sh_variable,.sh_pablo .sh_sourceCode .sh_selector{color:#0000c0;font-weight:700;font-style:normal}.sh_peachpuff .sh_sourceCode .sh_string,.sh_peachpuff .sh_sourceCode .sh_regexp,.sh_peachpuff .sh_sourceCode .sh_number,.sh_peachpuff .sh_sourceCode .sh_url,.sh_peachpuff .sh_sourceCode .sh_ip,.sh_peachpuff .sh_sourceCode .sh_name,.sh_peachpuff .sh_sourceCode .sh_newfile,.sh_peachpuff .sh_sourceCode .sh_value{color:#c00058;font-weight:400;font-style:normal}.sh_peachpuff .sh_sourceCode .sh_specialchar,.sh_peachpuff .sh_sourceCode .sh_oldfile{color:#6a5acd;font-weight:400;font-style:normal}.sh_peachpuff .sh_sourceCode .sh_variable,.sh_peachpuff .sh_sourceCode .sh_selector{color:#275fec;font-weight:700;font-style:normal}.sh_print .sh_sourceCode .sh_comment,.sh_typical .sh_sourceCode .sh_comment{color:#666;font-weight:400;font-style:italic}.sh_rand01 .sh_sourceCode .sh_keyword,.sh_rand01 .sh_sourceCode .sh_date,.sh_rand01 .sh_sourceCode .sh_time,.sh_rand01 .sh_sourceCode .sh_file,.sh_rand01 .sh_sourceCode .sh_difflines,.sh_rand01 .sh_sourceCode .sh_property{color:#0a7f6d;font-weight:700;font-style:normal}.sh_rand01 .sh_sourceCode .sh_string,.sh_rand01 .sh_sourceCode .sh_regexp,.sh_rand01 .sh_sourceCode .sh_url,.sh_rand01 .sh_sourceCode .sh_ip,.sh_rand01 .sh_sourceCode .sh_name,.sh_rand01 .sh_sourceCode .sh_newfile,.sh_rand01 .sh_sourceCode .sh_value{color:#2b83ba;font-weight:400;font-style:normal}.sh_rand01 .sh_sourceCode .sh_specialchar,.sh_rand01 .sh_sourceCode .sh_oldfile{color:#a764cb;font-weight:400;font-style:normal}.sh_rand01 .sh_sourceCode .sh_comment,.sh_vampire .sh_sourceCode .sh_comment{color:#ababab;font-weight:400;font-style:italic}.sh_rand01 .sh_sourceCode .sh_symbol,.sh_rand01 .sh_sourceCode .sh_cbracket{color:#0000de;font-weight:400;font-style:normal}.sh_rand01 .sh_sourceCode .sh_variable,.sh_rand01 .sh_sourceCode .sh_selector{color:#e12f76;font-weight:700;font-style:normal}.sh_the .sh_sourceCode .sh_string,.sh_the .sh_sourceCode .sh_regexp,.sh_the .sh_sourceCode .sh_url,.sh_the .sh_sourceCode .sh_ip,.sh_the .sh_sourceCode .sh_name,.sh_the .sh_sourceCode .sh_newfile,.sh_the .sh_sourceCode .sh_value{color:#008;font-weight:400;font-style:normal}.sh_typical .sh_sourceCode .sh_specialchar,.sh_typical .sh_sourceCode .sh_oldfile{color:#C42DA8;font-weight:400;font-style:normal}.sh_typical .sh_sourceCode .sh_variable,.sh_typical .sh_sourceCode .sh_selector{color:#ec7f15;font-weight:400;font-style:normal}.sh_vampire .sh_sourceCode .sh_symbol,.sh_vampire .sh_sourceCode .sh_cbracket{color:#F3E651;font-weight:400;font-style:normal}.sh_vim-dark .sh_sourceCode .sh_keyword,.sh_vim-dark .sh_sourceCode .sh_date,.sh_vim-dark .sh_sourceCode .sh_time,.sh_vim-dark .sh_sourceCode .sh_file,.sh_vim-dark .sh_sourceCode .sh_variable,.sh_vim-dark .sh_sourceCode .sh_difflines,.sh_vim-dark .sh_sourceCode .sh_selector,.sh_vim-dark .sh_sourceCode .sh_property,.sh_vim .sh_sourceCode .sh_keyword,.sh_vim .sh_sourceCode .sh_date,.sh_vim .sh_sourceCode .sh_time,.sh_vim .sh_sourceCode .sh_file,.sh_vim .sh_sourceCode .sh_variable,.sh_vim .sh_sourceCode .sh_difflines,.sh_vim .sh_sourceCode .sh_selector,.sh_vim .sh_sourceCode .sh_property{color:#B26818;font-weight:400;font-style:normal}.sh_vim-dark .sh_sourceCode .sh_specialchar,.sh_vim-dark .sh_sourceCode .sh_preproc,.sh_vim-dark .sh_sourceCode .sh_oldfile,.sh_vim .sh_sourceCode .sh_specialchar,.sh_vim .sh_sourceCode .sh_preproc,.sh_vim .sh_sourceCode .sh_oldfile{color:#f2f;font-weight:400;font-style:normal}.sh_whatis .sh_sourceCode .sh_keyword,.sh_whatis .sh_sourceCode .sh_date,.sh_whatis .sh_sourceCode .sh_time,.sh_whatis .sh_sourceCode .sh_file,.sh_whatis .sh_sourceCode .sh_difflines,.sh_whatis .sh_sourceCode .sh_property{color:#fa5a03;font-weight:700;font-style:normal}.sh_whatis .sh_sourceCode .sh_variable,.sh_whatis .sh_sourceCode .sh_selector{color:#efe219;font-weight:700;font-style:normal}.sh_whitengrey .sh_sourceCode .sh_keyword,.sh_whitengrey .sh_sourceCode .sh_date,.sh_whitengrey .sh_sourceCode .sh_time,.sh_whitengrey .sh_sourceCode .sh_file,.sh_whitengrey .sh_sourceCode .sh_variable,.sh_whitengrey .sh_sourceCode .sh_difflines,.sh_whitengrey .sh_sourceCode .sh_selector,.sh_whitengrey .sh_sourceCode .sh_property{color:#696969;font-weight:700;font-style:normal}.sh_zellner .sh_sourceCode .sh_keyword,.sh_zellner .sh_sourceCode .sh_date,.sh_zellner .sh_sourceCode .sh_time,.sh_zellner .sh_sourceCode .sh_file,.sh_zellner .sh_sourceCode .sh_difflines,.sh_zellner .sh_sourceCode .sh_property{color:#a52a2a;font-weight:400;font-style:normal}.sh_zellner .sh_sourceCode .sh_variable,.sh_zellner .sh_sourceCode .sh_selector{color:#225f2d;font-weight:400;font-style:normal}.snippet-wrap{position:relative}.snippet-reveal{text-decoration:underline}.snippet-wrap .snippet-menu,.snippet-wrap .snippet-hide{position:absolute;top:10px;right:15px;font-size:.9em;z-index:1;background-color:transparent}.snippet-wrap .snippet-hide{top:auto;bottom:10px}.snippet-wrap .snippet-menu pre,.snippet-wrap .snippet-hide pre{background-color:transparent;margin:0;padding:0}.snippet-wrap .snippet-menu a,.snippet-wrap .snippet-hide a{text-decoration:underline;padding:0 5px}.snippet-wrap pre.sh_sourceCode{overflow:auto;position:relative}.snippet-wrap pre.snippet-textonly{padding:2em}.snippet-reveal pre.sh_sourceCode{text-align:right;padding:.5em 1em}.snippet-wrap .snippet-num li{border-left:2px solid #eee;list-style:decimal-leading-zero outside none;padding:0 0 0 1em}.snippet-wrap .snippet-no-num{list-style:none;margin:0;padding:.6em 1em}.snippet-wrap .snippet-no-num li{list-style:none;padding-left:0}.snippet-wrap .snippet-num{padding-left:3em;color:#666;margin:1em 0}.snippet-wrap .snippet-no-num li.box{margin-left:-6px;border:1px solid;padding:0 6px}.snippet-wrap .snippet-num li.box{border:1px solid;list-style-position:inside;margin-left:-3em;padding-left:6px}.snippet-wrap li.box-top{border-width:1px 1px 0!important}.snippet-wrap li.box-bot{border-width:0 1px 1px!important}.snippet-wrap li.box-mid{border-width:0 1px!important}.snippet-wrap .snippet-num li .box-sp{width:18px;display:inline-block}.snippet-wrap .snippet-no-num li .box-sp{display:none}.snippet-menu a.snippet-text{display:inline-block;background:url(../images/icons/text_html.png) 0 1px no-repeat;width:15px!important;height:15px!important;text-indent:-5000px;line-height:0;font-size:0;padding:0!important}.snippet-menu a.snippet-window{display:inline-block;background:url(../images/icons/pop_up.png) 0 0 no-repeat;width:15px!important;height:15px!important;text-indent:-5000px;line-height:0;font-size:0;padding:0!important}.snippet-menu a.snippet-copy{display:inline-block;background:url(../images/icons/copy.png) 0 0 no-repeat;width:15px!important;height:15px!important;text-indent:-5000px;line-height:0;font-size:0;padding:0!important}.snippet-menu a{margin-left:7px}:first-child+html .snippet-wrap,* html .snippet-wrap{display:inline-block}:first-child+html .snippet-wrap .snippet-hide,* html .snippet-wrap .snippet-hide{bottom:25px}:first-child+html .snippet-wrap pre.snippet-formatted,* html .snippet-wrap pre.snippet-formatted{padding:2em 1em}:first-child+html .snippet-wrap .snippet-num li.box,* html .snippet-wrap .snippet-num li.box{margin-left:-2.4em}:first-child+html .snippet-wrap .snippet-num li .box-sp,* html .snippet-wrap .snippet-num li .box-sp{width:27px}css/prettyPhoto.css0000644075506000000310000002036511574543360013720 0ustar joaoferengdiv.facebook .pp_top .pp_left{background:url(../images/prettyPhoto/facebook/sprite.png) -88px -53px no-repeat}div.facebook .pp_top .pp_middle{background:url(../images/prettyPhoto/facebook/contentPatternTop.png) top left repeat-x}div.facebook .pp_top .pp_right{background:url(../images/prettyPhoto/facebook/sprite.png) -110px -53px no-repeat}div.facebook .pp_content_container .pp_left{background:url(../images/prettyPhoto/facebook/contentPatternLeft.png) top left repeat-y}div.facebook .pp_content_container .pp_right{background:url(../images/prettyPhoto/facebook/contentPatternRight.png) top right repeat-y}div.facebook .pp_expand{background:url(../images/prettyPhoto/facebook/sprite.png) -31px -26px no-repeat;cursor:pointer}div.facebook .pp_expand:hover{background:url(../images/prettyPhoto/facebook/sprite.png) -31px -47px no-repeat;cursor:pointer}div.facebook .pp_contract{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -26px no-repeat;cursor:pointer}div.facebook .pp_contract:hover{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -47px no-repeat;cursor:pointer}div.facebook .pp_close{width:22px;height:22px;background:url(../images/prettyPhoto/facebook/sprite.png) -1px -1px no-repeat;cursor:pointer}div.facebook .pp_description{margin:0 37px 0 0}div.facebook .pp_loaderIcon{background:url(../images/prettyPhoto/facebook/loader.gif) center center no-repeat}div.facebook .pp_arrow_previous{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -71px no-repeat;height:22px;margin-top:0;width:22px}div.facebook .pp_arrow_previous.disabled{background-position:0 -96px;cursor:default}div.facebook .pp_arrow_next{background:url(../images/prettyPhoto/facebook/sprite.png) -32px -71px no-repeat;height:22px;margin-top:0;width:22px}div.facebook .pp_arrow_next.disabled{background-position:-32px -96px;cursor:default}div.facebook .pp_nav{margin-top:0}div.facebook .pp_nav p{font-size:15px;padding:0 3px 0 4px}div.facebook .pp_nav .pp_play{background:url(../images/prettyPhoto/facebook/sprite.png) -1px -123px no-repeat;height:22px;width:22px}div.facebook .pp_nav .pp_pause{background:url(../images/prettyPhoto/facebook/sprite.png) -32px -123px no-repeat;height:22px;width:22px}div.facebook .pp_next:hover{background:url(../images/prettyPhoto/facebook/btnNext.png) center right no-repeat;cursor:pointer}div.facebook .pp_previous:hover{background:url(../images/prettyPhoto/facebook/btnPrevious.png) center left no-repeat;cursor:pointer}div.facebook .pp_bottom .pp_left{background:url(../images/prettyPhoto/facebook/sprite.png) -88px -80px no-repeat}div.facebook .pp_bottom .pp_middle{background:url(../images/prettyPhoto/facebook/contentPatternBottom.png) top left repeat-x}div.facebook .pp_bottom .pp_right{background:url(../images/prettyPhoto/facebook/sprite.png) -110px -80px no-repeat}div.pp_pic_holder a:focus{outline:none}div.pp_overlay{background:#000;display:none;left:0;position:absolute;top:0;width:100%;z-index:9500}div.pp_pic_holder{display:none;position:absolute;width:100px;z-index:10000}.pp_content{height:40px;min-width:40px}* html .pp_content{width:40px}.pp_content_container{position:relative;text-align:left;width:100%}.pp_content_container .pp_left{padding-left:20px}.pp_content_container .pp_right{padding-right:20px}.pp_content_container .pp_details{float:left;margin:10px 0 2px}.pp_description{display:none;margin:0}.pp_social{float:left;margin:7px 0 0}.pp_social .facebook{float:left;position:relative;top:-1px;margin-left:5px;width:55px;overflow:hidden}.pp_social .twitter{float:left}.pp_nav{clear:right;float:left;margin:3px 10px 0 0}.pp_nav p{float:left;margin:2px 4px}.pp_nav .pp_play,.pp_nav .pp_pause{float:left;margin-right:4px;text-indent:-10000px}a.pp_arrow_previous,a.pp_arrow_next{display:block;float:left;height:15px;margin-top:3px;overflow:hidden;text-indent:-10000px;width:14px}.pp_hoverContainer{position:absolute;top:0;width:100%;z-index:2000}.pp_gallery{display:none;left:50%;margin-top:-50px;position:absolute;z-index:10000}.pp_gallery div{float:left;overflow:hidden;position:relative}.pp_gallery ul{float:left;height:35px;position:relative;white-space:nowrap;margin:0 0 0 5px;padding:0}.pp_gallery ul a{border:1px rgba(0,0,0,0.5) solid;display:block;float:left;height:33px;overflow:hidden}.pp_gallery ul a img{border:0}.pp_gallery li{display:block;float:left;margin:0 5px 0 0;padding:0}.pp_gallery li.default a{background:url(../images/prettyPhoto/facebook/default_thumbnail.gif) 0 0 no-repeat;display:block;height:33px;width:50px}.pp_gallery .pp_arrow_previous,.pp_gallery .pp_arrow_next{margin-top:7px!important}a.pp_next{background:url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat;display:block;float:right;height:100%;text-indent:-10000px;width:49%}a.pp_previous{background:url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat;display:block;float:left;height:100%;text-indent:-10000px;width:49%}a.pp_expand,a.pp_contract{cursor:pointer;display:none;height:20px;position:absolute;right:30px;text-indent:-10000px;top:10px;width:20px;z-index:20000}a.pp_close{position:absolute;right:0;top:0;display:block;line-height:22px;text-indent:-10000px}.pp_loaderIcon{display:block;height:24px;left:50%;position:absolute;top:50%;width:24px;margin:-12px 0 0 -12px}#pp_full_res{line-height:1!important}#pp_full_res .pp_inline{text-align:left}#pp_full_res .pp_inline p{margin:0 0 15px}div.ppt{color:#fff;display:none;font-size:17px;z-index:9999;margin:0 0 5px 15px}div.pp_default .pp_content,div.light_rounded .pp_content{background-color:#fff}div.pp_default #pp_full_res .pp_inline,div.light_rounded .pp_content .ppt,div.light_rounded #pp_full_res .pp_inline,div.light_square .pp_content .ppt,div.light_square #pp_full_res .pp_inline,div.facebook .pp_content .ppt,div.facebook #pp_full_res .pp_inline{color:#000}div.pp_default .pp_gallery ul li a:hover,div.pp_default .pp_gallery ul li.selected a,.pp_gallery ul a:hover,.pp_gallery li.selected a{border-color:#fff}div.pp_default .pp_details,div.light_rounded .pp_details,div.dark_rounded .pp_details,div.dark_square .pp_details,div.light_square .pp_details,div.facebook .pp_details{position:relative}div.light_rounded .pp_top .pp_middle,div.light_rounded .pp_content_container .pp_left,div.light_rounded .pp_content_container .pp_right,div.light_rounded .pp_bottom .pp_middle,div.light_square .pp_left,div.light_square .pp_middle,div.light_square .pp_right,div.light_square .pp_content,div.facebook .pp_content{background:#fff}div.light_rounded .pp_description,div.light_square .pp_description{margin-right:85px}div.light_rounded .pp_gallery a.pp_arrow_previous,div.light_rounded .pp_gallery a.pp_arrow_next,div.dark_rounded .pp_gallery a.pp_arrow_previous,div.dark_rounded .pp_gallery a.pp_arrow_next,div.dark_square .pp_gallery a.pp_arrow_previous,div.dark_square .pp_gallery a.pp_arrow_next,div.light_square .pp_gallery a.pp_arrow_previous,div.light_square .pp_gallery a.pp_arrow_next{margin-top:12px!important}div.light_rounded .pp_arrow_previous.disabled,div.dark_rounded .pp_arrow_previous.disabled,div.dark_square .pp_arrow_previous.disabled,div.light_square .pp_arrow_previous.disabled{background-position:0 -87px;cursor:default}div.light_rounded .pp_arrow_next.disabled,div.dark_rounded .pp_arrow_next.disabled,div.dark_square .pp_arrow_next.disabled,div.light_square .pp_arrow_next.disabled{background-position:-22px -87px;cursor:default}div.light_rounded .pp_loaderIcon,div.light_square .pp_loaderIcon{background:url(../images/prettyPhoto/light_rounded/loader.gif) center center no-repeat}div.dark_rounded .pp_top .pp_middle,div.dark_rounded .pp_content,div.dark_rounded .pp_bottom .pp_middle{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat}div.dark_rounded .currentTextHolder,div.dark_square .currentTextHolder{color:#c4c4c4}div.dark_rounded #pp_full_res .pp_inline,div.dark_square #pp_full_res .pp_inline{color:#fff}.pp_top,.pp_bottom{height:20px;position:relative}* html .pp_top,* html .pp_bottom{padding:0 20px}.pp_top .pp_left,.pp_bottom .pp_left{height:20px;left:0;position:absolute;width:20px}.pp_top .pp_middle,.pp_bottom .pp_middle{height:20px;left:20px;position:absolute;right:20px}* html .pp_top .pp_middle,* html .pp_bottom .pp_middle{left:0;position:static}.pp_top .pp_right,.pp_bottom .pp_right{height:20px;left:auto;position:absolute;right:0;top:0;width:20px}.pp_fade,.pp_gallery li.default a img{display:none}css/pro_pages_style.css0000644075506000000310000032500312121007053014532 0ustar joaofereng/*--------------------------------- 404 page -----------------------------------*/ .pad404{ margin-top:-14px;} .pad404 h1{ font-size:72px; letter-spacing:-2px;} .pad404 h2{ margin-top:0px; padding-bottom:48px; font-size:24px;} .pad404 p{ line-height:18px; padding-bottom:18px;} /*--------------------------------- JustSlider -----------------------------------*/ #slider{ width:900px; height:500px; position:relative; overflow:hidden; padding:6px;box-shadow:inset 0 0 10px rgba(0,0,0,.1);} .slider{ width:900px; height:500px; position:relative; overflow:hidden;} .items { display:none;} /* pagination */ #slider .pagination {position:absolute;bottom:30px;left:46%;z-index:60; padding:5px 7px 5px 10px; border: 1px solid #DDD; border-left:none; border-right:none; text-shadow: 0 1px 1px white; box-shadow:0 1px 1px #fff; font: bold 11px Sans-Serif; white-space: nowrap; vertical-align: middle; color: #666; background: transparent; cursor: pointer; border-color: #ddd; background:#E0E0E0; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: inset 0 0 3px #fff;} #slider .pagination li { float:left; padding:0 3px 0 0; font-size:0; line-height:0; margin:0;} #slider .pagination a { display:block; width:16px; height:16px; background: url(../images/radio.png) 0 0 no-repeat; font-size:0; line-height:0; text-decoration:none;} #slider .pagination li.current a,#slider .pagination li a:hover {background: url(../images/radio.png) 0 -17px no-repeat;} /* directions */ .button1,.button2{ padding:5px !important; position:absolute !important; bottom:36px; z-index:99;} .button1{ left:389px;} .button2{ left:513px;} /* play/stop */ .play{ position:absolute !important; bottom:36px; right:20px; z-index:99; width:23px; height:15px;} .play span {display:none;} .play em {font-style:normal;display:block; } .paused span {display:block;} .paused em {display:none;} /* numbers */ .numStatus { display:block; padding:7px 10px 6px; position:absolute; z-index:15; bottom:30px; right:70px; text-align:center; text-decoration:none; border: 1px solid #DDD; text-shadow: 0 1px 1px white; box-shadow:0 1px 1px #fff; font: bold 11px Sans-Serif; white-space: nowrap; vertical-align: middle; color: #666; background: transparent; cursor: pointer; border-color: #ddd; border-radius:3px; background:#E0E0E0; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff;} /* banner */ .banner{ position:absolute; top:150px; width:200px; left:60px;font-family: Sans-Serif; color:#fff; background:url(../images/bg-banner.png) 0 0 repeat; padding:20px;} .banner span{font-weight:bold; font-size:25px;line-height:1.2em; display:block; padding-bottom:10px;} .poz-2{ left:570px;} /* progbar */ .progbar { background:#000; width:100%; height:2px; position:absolute; bottom:0px; left:0px; z-index:999;} /*--------------------------------- KwicksSlider -----------------------------------*/ .kwicks-wrapper{ padding:6px;box-shadow:inset 0 0 10px rgba(0,0,0,.1); width:900px;} .kwicks{list-style:none;position:relative;margin:0;padding:0 !important;height:500px; overflow:hidden;} .kwicks li{width:25%;height:500px;display:block;overflow:hidden;padding:0 !important;cursor:pointer;background:none !important; box-shadow:-5px -1px 5px rgba(0,0,0,.3);} .kwicks li.active{opacity:1;} .kwicks.horizontal li{margin-right:0;float:left} .slide-kwicks{ position:relative; width:900px;} .kwicks-banner{ position:absolute; bottom:-37px; left:0; width:100%; background:url(../images/bg-banner.png) 0 0 repeat; color:#fff;} .kwicks-banner span{ display:block;font-weight:bold; font-size:22px;line-height:1.2em; display:block; padding:10px 0 10px 20px;} .kwicks-banner p{ padding:0 20px 20px 20px;} .kwicks li img{-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .kwicks:hover li img,.kwicks:hover li .kwicks-banner{opacity:.4} .kwicks:hover li:hover img,.kwicks:hover li:hover .kwicks-banner{opacity:1;} /*--------------------------------- Gallery -----------------------------------*/ #simple_gallery{ width:912px; height:620px; position:relative; overflow:hidden;} .simple_gallery{ width:900px; height:500px; position:relative; overflow:hidden;} .gallery_bg{width:900px; height:500px; position:relative; overflow:hidden; padding:6px;box-shadow:inset 0 0 10px rgba(0,0,0,.1);} .pag {width:100%;padding:10px 0;margin:5px 0;position:relative;} .img-pags {position:static;left:33px;z-index:1;display:block; } .img-pags ul {margin:0;} .img-pags li { margin:0 5px 0 0;height:80px; width:80px;} .img-pags li a {position:relative;display:block;padding:5px; -webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .img-pags li a img{ opacity:.6;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .img-pags li a span{ display:block; background:#000;} .img-pags li.active a,.img-pags li a:hover{box-shadow:inset 0 0 7px rgba(0,0,0,.6);} .img-pags li.active a img,.img-pags li a:hover img{ opacity:1;} .button3,.button4{ padding:5px 3px !important; position:absolute !important; top:35px;} .button3{ left:0;} .button4{ right:0;} #simple_gallery .button1{ left:719px;} #simple_gallery .button2{ left:750px;} #simple_gallery .play,#simple_gallery .numStatus{ box-shadow:none;} /*--------------------------------- Typografy -----------------------------------*/ .title{ display:block; position:relative; padding-bottom:15px; padding-top:50px;} .title2{ padding:20px 0 15px;} .title3{ padding:0px 0 15px;} .title-padding{ padding:5px 0;} blockquote {display: block;quotes: none;background: url(../images/blockquote.png) 0 0 no-repeat;padding:12px 0 12px 30px;} blockquote em{ display:inline-block; margin-top:10px;} .quotes_2 {position: relative;background: #F3F3F3;border: 1px solid #E8E8E8;border-radius: 3px;padding: 12px 10px 15px 18px;margin: 6px 0 10px 0;border-image: initial;} .quotes_2 blockquote {color: #656565; background:none; padding:0;} .quotes_2 span {display: block;background: url(../images/quotes2.png) 0 0 no-repeat;width: 18px;height: 10px;position: absolute;bottom: -10px;left: 41px;} .quotes-links {padding: 11px 0 10px 0;} .quotes_3{background: url(../images/quote-ul.gif) 5px 10px no-repeat; padding-left:10px; text-indent:23px;} /*-- Buttons --*/ .btn,.description-light,.exampletip{ display:inline-block; border: 1px solid #DDD; border-radius: 3px; text-shadow: 0 1px 1px white; box-shadow:0 1px 1px #fff; font: bold 11px Sans-Serif; padding: 6px 10px; white-space: nowrap; vertical-align: middle; color: #666; background: transparent; cursor: pointer; border-color: #ddd; background-color:#E0E0E0; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff;} .description-light span{ display:inline-block; background:url(../images/description-arrow.png) 0 -4px no-repeat; width:7px; height:4px; margin:5px 0 0 4px; -webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .description-dark span{ display:inline-block; background:url(../images/description-arrow-white.png) 0 -4px no-repeat; width:7px; height:4px; margin:5px 0 0 4px; -webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .btn:hover,.description-light:hover,.exampletip:hover{ box-shadow:inset 0 0 3px #fff;border-color: #999; text-decoration:none;} .description-light:hover span{opacity:.8;} .description-light:active span{background-position:0 0;} .btn:active,.description-light:active { border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999; box-shadow:inset 0 1px 2px #aaa; background: -webkit-linear-gradient(top, #E6E6E6, gainsboro); background: -moz-linear-gradient(top, #E6E6E6, gainsboro); background: -ms-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro); -pie-background: linear-gradient(top, #E6E6E6, gainsboro);} .description-dark{ display:inline-block; border: 1px solid #666; border-bottom:1px solid #3B3B3B; border-radius: 3px; font: bold 11px Sans-Serif; padding: 6px 10px; white-space: nowrap; vertical-align: middle; color: #fff; background: transparent; cursor: pointer; background: #3B3B3B; text-shadow:0 1px 1px #3B3B3B; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#797979), to(#3B3B3B)); background: -webkit-linear-gradient(#797979, #3B3B3B); background: -moz-linear-gradient(#797979, #3B3B3B); background: -ms-linear-gradient(#797979, #3B3B3B); background: -o-linear-gradient(#797979, #3B3B3B); background: linear-gradient(#797979, #3B3B3B); -pie-background: linear-gradient(#797979, #3B3B3B); box-shadow: 0 1px 2px rgba(0,0,0,0.9);} .description-dark:hover{ box-shadow:none; text-decoration:none;} .description-dark:active { border: 1px solid #999; border-bottom-color: #CCC; border-top-color: #3B3B3B; background: #3B3B3B; text-shadow:0 1px 1px #3B3B3B; box-shadow:none; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#3B3B3B), to(#999)); background: -webkit-linear-gradient(#3B3B3B, #999); background: -moz-linear-gradient(#3B3B3B, #999); background: -ms-linear-gradient(#3B3B3B, #999); background: -o-linear-gradient(#3B3B3B, #999); background: linear-gradient(#3B3B3B, #999); -pie-background: linear-gradient(#3B3B3B, #999);} /* Color */ .success{color:#fff; box-shadow:0 1px 2px rgba(0,0,0,0.4); text-shadow:none; background-color: #5BB75B; background-image: -moz-linear-gradient(top, #62c462, #51a351); background-image: -ms-linear-gradient(top, #62c462, #51a351); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); background-image: -webkit-linear-gradient(top, #62c462, #51a351); background-image: -o-linear-gradient(top, #62c462, #51a351); background-image: linear-gradient(top, #62c462, #51a351); -pie-background: linear-gradient(#62c462, #51a351); border-color: #51A351 #51A351 #387038;} .success:hover{ border-color:#295B29; box-shadow:none;} .success:active{box-shadow:inset 0 1px 2px rgba(0,0,0,.3); background: #3E933E; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#3E933E), to(#62C462)); background: -webkit-linear-gradient(#3E933E, #62C462); background: -moz-linear-gradient(#3E933E, #62C462); background: -ms-linear-gradient(#3E933E, #62C462); background: -o-linear-gradient(#3E933E, #62C462); background: linear-gradient(#3E933E, #62C462); -pie-background: linear-gradient(#3E933E, #62C462); border-bottom:1px solid #62C462;} .warning{color:#fff; box-shadow:0 1px 2px rgba(0,0,0,0.4); text-shadow:none; background-color: #FAA732; background-image: -moz-linear-gradient(top, #fbb450, #f89406); background-image: -ms-linear-gradient(top, #fbb450, #f89406); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); background-image: -webkit-linear-gradient(top, #fbb450, #f89406); background-image: -o-linear-gradient(top, #fbb450, #f89406); background-image: linear-gradient(top, #fbb450, #f89406); -pie-background: linear-gradient(#fbb450, #f89406); border-color: #F89406 #F89406 #AD6704;} .warning:hover{ border-color:#B67211; box-shadow:none;} .warning:active{box-shadow:inset 0 1px 2px rgba(0,0,0,.2); background: #f89406; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#f89406), to(#fbb450)); background: -webkit-linear-gradient(#f89406, #fbb450); background: -moz-linear-gradient(#f89406, #fbb450); background: -ms-linear-gradient(#f89406, #fbb450); background: -o-linear-gradient(#f89406, #fbb450); background: linear-gradient(#f89406, #fbb450); -pie-background: linear-gradient(#f89406, #fbb450); border-bottom:1px solid #fbb450;} .danger{color:#fff; box-shadow:0 1px 2px rgba(0,0,0,0.4); text-shadow:none; background-color: #DA4F49; background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); background-image: linear-gradient(top, #ee5f5b, #bd362f); -pie-background: linear-gradient(#ee5f5b, #bd362f); border-color: #BD362F #BD362F #802420;} .danger:hover{ border-color:#8D2520; box-shadow:none;} .danger:active{box-shadow:inset 0 1px 2px rgba(0,0,0,.3); background: #bd362f; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#bd362f), to(#ee5f5b)); background: -webkit-linear-gradient(#bd362f, #ee5f5b); background: -moz-linear-gradient(#bd362f, #ee5f5b); background: -ms-linear-gradient(#bd362f, #ee5f5b); background: -o-linear-gradient(#bd362f, #ee5f5b); background: linear-gradient(#bd362f, #ee5f5b); -pie-background: linear-gradient(#bd362f, #ee5f5b); border-bottom:1px solid #ee5f5b;} .inf{color:#fff; box-shadow:0 1px 2px rgba(0,0,0,0.4); text-shadow:none; background-color: #49AFCD; background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); background-image: linear-gradient(top, #5bc0de, #2f96b4); -pie-background: linear-gradient(#5bc0de, #2f96b4); border-color: #2F96B4 #2F96B4 #1F6377;} .inf:hover{ border-color:#1A687F; box-shadow:none;} .inf:active{box-shadow:inset 0 1px 2px rgba(0,0,0,.3); background: #2f96b4; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#2f96b4), to(#5bc0de)); background: -webkit-linear-gradient(#2f96b4, #5bc0de); background: -moz-linear-gradient(#2f96b4, #5bc0de); background: -ms-linear-gradient(#2f96b4, #5bc0de); background: -o-linear-gradient(#2f96b4, #5bc0de); background: linear-gradient(#2f96b4, #5bc0de); -pie-background: linear-gradient(#2f96b4, #5bc0de); border-bottom:1px solid #5bc0de;} /* Size */ .btn.small{ font-size:11px;} .btn.medium{ font-size:1.3em;} .btn.large{ font-size:1.6em;} .btn-indent{ padding:5px 0; overflow:hidden;} .btn-indent3{ padding:10px 0;} .btn-indent2{ padding:5px 0;} .pages{ position:relative; overflow:hidden;} .pages li{ float:left;} .pages li .btn.prev,.pages li .btn.next{ padding:5px;} .pages li.current a{ border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999; box-shadow:inset 0 1px 2px #aaa; background: -webkit-linear-gradient(top, #E6E6E6, gainsboro); background: -moz-linear-gradient(top, #E6E6E6, gainsboro); background: -ms-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro); -pie-background: linear-gradient(top, #E6E6E6, gainsboro);} .btn.page{ box-shadow:none; border-radius:0;} /* directions */ .btn.prev,.btn.next{ box-shadow:none;} .btn.prev{ border-radius:3px 0 0 3px; padding-left:5px;} .btn.next{ border-radius:0 3px 3px 0; padding-right:5px;} .btn span{ width:16px; height:16px;} .btn.prev span{ display:inline-block; background: url(../images/icons/icon-previous.png) 0 0 no-repeat;margin:0 3px 0 0;} .btn.next span{ display:inline-block; background: url(../images/icons/icon-next.png) 0 0 no-repeat;margin:0 0 0 3px} /* with Icons */ .btn.sign-in span{ display:inline-block; background: url(../images/icons/icons-light.png) -1116px -36px;margin:0 7px 0 0} .btn.sign-out span{ display:inline-block; background: url(../images/icons/icons-light.png) -1152px -36px;margin:0 7px 0 0} .btn.comment span{ display:inline-block; background: url(../images/icons/icons-light.png) -648px 0;margin:0 7px 0 0} .btn.site-map span{ display:inline-block; background: url(../images/icons/icons-light.png) -1224px -36px;margin:0 7px 0 0} .btn.refresh span{ display:inline-block; background: url(../images/icons/icons-light.png) -936px -36px;margin:0 7px 0 0} .btn.comment2 span{ display:inline-block; background: url(../images/icons/icons-color.png) -612px 0;margin:0 7px 0 0} .btn.settings span{ display:inline-block; background: url(../images/icons/icons-color.png) -972px -36px;margin:0 7px 0 0} .btn.calend span{ display:inline-block; background: url(../images/icons/icons-color.png) -468px 0;margin:0 7px 0 0} .btn.print span{ display:inline-block; background: url(../images/icons/icons-color.png) -648px -36px;margin:0 7px 0 0} .btn.dwload span{ display:inline-block; background: url(../images/icons/icons-color.png) -1476px -36px;margin:0 7px 0 0} .btn.bookmark span{ display:inline-block; background: url(../images/icons/icons-color.png) -324px 0;margin:0 7px 0 0} .btn.print2 span{ display:inline-block; background: url(../images/icons/icons-dark.png) -720px -36px;margin:0 7px 0 0} #breadcrumbs-one{ background: #eee; border-width: 1px; border-style: solid; border-color: #f5f5f5 #e5e5e5 #ccc; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 0 2px rgba(0,0,0,.2); -webkit-box-shadow: 0 0 2px rgba(0,0,0,.2); box-shadow: 0 0 2px rgba(0,0,0,.2); overflow: hidden; width: 100%; } #breadcrumbs-one li{float: left;} #breadcrumbs-one a{ padding: .7em 1em .7em 2em; float: left; text-decoration: none; color: #444; position: relative; text-shadow: 0 1px 0 rgba(255,255,255,.5); background-color: #ddd; background-image: -webkit-gradient(linear, left top, right bottom, from(#f5f5f5), to(#ddd)); background-image: -webkit-linear-gradient(left, #f5f5f5, #ddd); background-image: -moz-linear-gradient(left, #f5f5f5, #ddd); background-image: -ms-linear-gradient(left, #f5f5f5, #ddd); background-image: -o-linear-gradient(left, #f5f5f5, #ddd); background-image: linear-gradient(to right, #f5f5f5, #ddd); } #breadcrumbs-one li:first-child a{ padding-left: 1em; -moz-border-radius: 5px 0 0 5px; -webkit-border-radius: 5px 0 0 5px;border-radius: 5px 0 0 5px;} #breadcrumbs-one a:hover{ background: #fff;} #breadcrumbs-one a::after, #breadcrumbs-one a::before{ content: ""; position: absolute; top: 50%; margin-top: -1.5em; border-top: 1.5em solid transparent; border-bottom: 1.5em solid transparent; border-left: 1em solid; right: -1em; } #breadcrumbs-one a::after{z-index: 2;border-left-color: #ddd;} #breadcrumbs-one a::before{ border-left-color: #ccc;right: -1.1em;z-index: 1;} #breadcrumbs-one a:hover::after{ border-left-color: #fff;} #breadcrumbs-one .current, #breadcrumbs-one .current:hover, #breadcrumbs-two .current, #breadcrumbs-two .current:hover, #breadcrumbs-four .current, #breadcrumbs-four .current:hover{font-weight: bold;background: none;} #breadcrumbs-one .current::after, #breadcrumbs-one .current::before, #breadcrumbs-two .current::after, #breadcrumbs-two .current::before, #breadcrumbs-four .current::after, #breadcrumbs-four .current::before{content: normal;} /*-----------------------------------*/ #breadcrumbs-two{overflow: hidden;width: 100%;} #breadcrumbs-two li{ float: left; margin: 0 .5em 0 1em; } #breadcrumbs-two a{ background: #ddd; padding: .7em 1em; float: left; text-decoration: none; color: #444; text-shadow: 0 1px 0 rgba(255,255,255,.5); position: relative; } #breadcrumbs-two a:hover{ background: #99db76;} #breadcrumbs-two a::before{ content: ""; position: absolute; top: 50%; margin-top: -1.5em; border-width: 1.5em 0 1.5em 1em; border-style: solid; border-color: #ddd #ddd #ddd transparent; left: -1em; } #breadcrumbs-two a:hover::before{border-color: #99db76 #99db76 #99db76 transparent;} #breadcrumbs-two a::after{ content: ""; position: absolute; top: 50%; margin-top: -1.5em; border-top: 1.5em solid transparent; border-bottom: 1.5em solid transparent; border-left: 1em solid #ddd; right: -1em; } #breadcrumbs-two a:hover::after{border-left-color: #99db76;} /* ------------------------------------------- */ #breadcrumbs-four{ overflow: hidden;width: 100%;} #breadcrumbs-four li{float: left;margin: 0 .5em 0 1em;} #breadcrumbs-four a{ background: #ddd; padding: .7em 1em; float: left; text-decoration: none; color: #444; text-shadow: 0 1px 0 rgba(255,255,255,.5); position: relative; } #breadcrumbs-four a:hover{background: #85dbf4;} #breadcrumbs-four a::before, #breadcrumbs-four a::after{ content:''; position:absolute; top: 0; bottom: 0; width: 1em; background: #ddd; -webkit-transform: skew(-10deg); -moz-transform: skew(-10deg); -ms-transform: skew(-10deg); -o-transform: skew(-10deg); transform: skew(-10deg); } #breadcrumbs-four a::before{ left: -.5em; -webkit-border-radius: 5px 0 0 5px; -moz-border-radius: 5px 0 0 5px; border-radius: 5px 0 0 5px; } #breadcrumbs-four a:hover::before{background: #85dbf4;} #breadcrumbs-four a::after{ right: -.5em; -webkit-border-radius: 0 5px 5px 0; -moz-border-radius: 0 5px 5px 0; border-radius: 0 5px 5px 0; } #breadcrumbs-four a:hover::after{ background: #85dbf4;} .breadcrumbs-indent{ padding:5px 0 15px;} /* Other elements */ ins{background:#000;padding:0 5px;text-decoration:none;color:#fff;} em{color:#000;} del{text-decoration:line-through;} abbr,dfn{cursor:help;color:#000;} dfn{letter-spacing:1px;font-size:13px;font-family:Verdana, Geneva, sans-serif;} sup,sub{font-size:0.8em;} sub{vertical-align:bottom} .elements-list small{font-size:10px;font-family:Verdana,Geneva,sans-serif;} .elements-list big{font-size:21px;} .elements-list q{font-family:"Courier New",Courier,monospace;color:#000;font-size:15px;} abbr,acronym{text-transform:uppercase;border-bottom:1px dotted #000;font-size:11px;} .elements-list code{display:block; float:right;color:#212121;padding:2px 5px;border:1px solid #eee; border-radius:3px; font-size:12px; font-family:Arial, Helvetica, sans-serif; background:#fff;} .elements-list li{ overflow:hidden; margin-bottom:5px; background:none; padding:0;} /* lists */ ol{ list-style-position:inside;} ol li{ padding:2px 0;} ol li a{color:#2f2f2f;} ul.list1 li{ background:url(../images/ul_list1_marker.png) 0 7px no-repeat; padding:2px 0 2px 15px;} ul.list2 li{background:url(../images/ul_list2_marker.png) 0 10px no-repeat; border-top:1px dotted #ddd; padding:5px 0 6px 15px;} ul.list2 li:first-child{ border-top:none;} ul.list1 li a,ul.list2 li a{color:#2f2f2f;} dl dt{ font-weight:bold; padding-bottom:5px;} dl dd{ padding-bottom:15px;} ol ul{ padding:2px 0 2px 20px;} ol ul li{ padding:2px 0 2px 15px !important;} .list3{ list-style-type:decimal-leading-zero;} .list-wrapper{ position:relative;} .list-car {overflow:hidden;} .list-wrapper .btn.next,.list-wrapper .btn.prev{ position:absolute; top:-43px; right:0; padding:5px;} .list-wrapper .btn.prev{ right:31px;} /* tables */ table { max-width: 100%; border-collapse: collapse; border-spacing: 0;} .table { width: 100%; margin-bottom: 18px;} .table th, .table td { padding: 8px; line-height: 18px; text-align: left; border-top: 1px solid #ddd;} .table th { font-weight: bold; vertical-align: bottom;} .table td { vertical-align: top;} .table thead:first-child tr th, .table thead:first-child tr td { border-top: 0;} .table tbody + tbody {border-top: 2px solid #ddd;} .table-condensed th, .table-condensed td { padding: 4px 5px;} .table-bordered { border: 1px solid #ddd; border-collapse: separate; *border-collapse: collapsed;border-radius: 4px;} .table-bordered th + th, .table-bordered td + td, .table-bordered th + td, .table-bordered td + th { border-left: 1px solid #ddd;} .table-bordered thead:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child td { border-top: 0;} .table-bordered thead:first-child tr:first-child th:first-child, .table-bordered tbody:first-child tr:first-child td:first-child {border-radius: 4px 0 0 0;} .table-bordered thead:first-child tr:first-child th:last-child, .table-bordered tbody:first-child tr:first-child td:last-child {border-radius: 0 4px 0 0;} .table-bordered thead:last-child tr:last-child th:first-child, .table-bordered tbody:last-child tr:last-child td:first-child {border-radius: 0 0 0 4px;} .table-bordered thead:last-child tr:last-child th:last-child, .table-bordered tbody:last-child tr:last-child td:last-child {border-radius: 0 0 4px 0;} .table-striped tbody tr:nth-child(odd) td, .table-striped tbody tr:nth-child(odd) th {background-color: #f9f9f9;} .table-striped2 thead th,.table-striped2 tbody tr td:first-child {background-color: #f9f9f9;} /* Information blocks */ .info{ padding:5px; font-weight:bold; display:inline-block; background:#999; border-radius:3px; color:#fff;} .info_success{ background:#468847;} .info_warning{ background:#F89406} .info_important{ background:#B94A48} .info_info{ background:#3A87AD} .info-indent{ margin:5px 15px 15px 0; float:left; min-width:100px; text-align:center;} /*--------------------------------- Layouts -----------------------------------*/ /* Layouts navigation */ .layouts-menu,.icons-menu{ position:relative;padding:0; width:100%; border-bottom:1px solid #eee; float:left;} .layouts-menu li,.icons-menu li{ float:left; position:relative; margin-left:4px; cursor:pointer;} .layouts-menu li a,.icons-menu li a{ display:block; width:70px; height:32px; position:relative; left:0;top:4px; border: 1px solid #DDD; border-radius: 3px; text-shadow: 0 1px 1px white; font: bold 11px Sans-Serif; white-space: nowrap; vertical-align: middle; color: #666; cursor: pointer; border-color: #ddd; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow:inset 0 0 3px #fff;} .icons-menu li a{ padding:9px 0; text-align:center; height:14px;} .layouts-menu li a span{ display:block; width:70px; height:32px;background-position: center 8px;background-repeat:no-repeat;} .layouts-menu li.layout1 a span{ background-image:url(../images/full-width.png);} .layouts-menu li.layout2 a span{ background-image:url(../images/layouts-img2.png);} .layouts-menu li.layout3 a span{ background-image:url(../images/layouts-img3.png);} .layouts-menu li.layout4 a span{ background-image:url(../images/layouts-img4.png);} .layouts-menu li.layout5 a span{ background-image:url(../images/layouts-img6.png);} .layouts-menu li.layout6 a span{ background-image:url(../images/layouts-img5.png);} .layouts-menu li.layout7 a span{ background-image:url(../images/layouts-img7.png);} .layouts-menu li.layout8 a span{ background-image:url(../images/layouts-img8.png);} .layouts-menu li.table1 a span{ background-image:url(../images/table1.png);} .layouts-menu li.table2 a span{ background-image:url(../images/table2.png);} .layouts-menu li.table3 a span{ background-image:url(../images/table3.png);} .layouts-menu li.table4 a span{ background-image:url(../images/table4.png);} .layouts-menu li.portfolio1 a span{ background-image:url(../images/portfolio-1col.png);} .layouts-menu li.portfolio2 a span{ background-image:url(../images/portfolio-2col.png);} .layouts-menu li.portfolio2_capt a span{ background-image:url(../images/portfolio-2col+capt.png);} .layouts-menu li.portfolio3 a span{ background-image:url(../images/portfolio-3col.png);} .layouts-menu li.portfolio3_capt a span{ background-image:url(../images/portfolio-3col+capt.png);} .layouts-menu li.portfolio4 a span{ background-image:url(../images/portfolio-4col.png);} .layouts-menu li.portfolio4_capt a span{ background-image:url(../images/portfolio-4col+capt.png);} .layouts-menu li:hover a,.layouts-menu li a.current,.icons-menu li:hover a,.icons-menu li a.current{background:#fff;-pie-background: linear-gradient(#fff, #fff); } .layouts-menu li:hover span{ opacity:.8;} .layouts-menu li a.current,.icons-menu li a.current{ top:2px;} .icons-menu li a:hover{ text-decoration:none;} .tabs{ width:90%; margin:0 auto; padding-bottom:20px;} .tab-content{ width:90%; margin:0 auto; box-shadow:0 1px 2px rgba(0,0,0,.2); background:#fff; padding:20px 0; margin-top:-1px;} .tabs.tabs4 .tab-content{ padding-bottom:0;} .tabs5{ padding:10px 0 0 0;} .tabs5 .tab-content{ width:620px; box-shadow:0 1px 2px rgba(0,0,0,.2); padding:0; margin-top:-1px;} .tabs5 .tab-content .inner{ padding:20px 0 0px 15px;} /* structuce */ .structuce{ background:#f8f7f7; border-radius:5px; color:#fff; font-size:15px; font-weight:bold; padding:5px; box-shadow:inset 0 0 4px 2px rgba(0,0,0,.1); margin-bottom:20px;} .structuce.structuce2{ padding:3px;} .struct{ background:#949292; margin:5px; padding:10px; text-align:center; border-radius:5px; box-shadow:inset 0 0 4px 2px rgba(0,0,0,.2);} .structuce.structuce2 .struct{ margin:0; box-shadow:none; border-top:1px solid #666; border-radius:0; padding:3px; background:#ccc;} .structuce.structuce2 .struct:first-child{ border-top:none;} .structuce.structuce2 .struct2{ border:1px dotted #666; width:50%; margin:0 auto; padding:20px 10px; box-shadow:inset 0 0 4px 2px rgba(0,0,0,.05);} .structuce.structuce2 .struct2-content{ padding:45px 10px;} .structuce.structuce2 .struct3{ background:#999} .struct-aside{ width:30%; padding:50px 10px;} .struct-section{ width:63%; padding:50px 10px;} .struct-main{ background:#fff; width:60%; margin:10px auto; padding:5px; border:1px solid #ddd; border-radius:5px; box-shadow:inset 0 0 4px 2px rgba(0,0,0,.1);} .struct-content{ padding:50px 10px;} /* ------ */ #main{ width:1000px; margin:0 auto; background:#fff;} .full_width_bg{ width:100%; background:#ddd;} .header_box,.footer_box{ width:960px; margin:0 auto; position:relative; overflow:hidden;} /* Grid */ .grid-row{ padding:7px 0;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .grid-box{ border: 1px solid #DDD; border-radius: 3px; text-shadow: 0 1px 1px white; -webkit-box-shadow: 0 1px 1px #fff; -moz-box-shadow: 0 1px 1px #fff; box-shadow: 0 1px 1px #fff; font: bold 11px Sans-Serif; padding:7px 0px; white-space: nowrap; vertical-align: middle; color: #666; background: transparent; border-color: #ddd; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff; -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff; box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff; -webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .grid-box:hover{ border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999; -webkit-box-shadow: inset 0 1px 2px #aaa; -moz-box-shadow: inset 0 1px 2px #aaa; box-shadow: inset 0 1px 2px #aaa; background: -webkit-linear-gradient(top, #E6E6E6, gainsboro); background: -moz-linear-gradient(top, #E6E6E6, gainsboro); background: -ms-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro); background: linear-gradient(top, #E6E6E6, gainsboro); -pie-background: linear-gradient(top, #E6E6E6, gainsboro);} .grid-box2{ border-radius:5px; -webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease; background:transparent; padding:0;} .grid-row2:hover .grid-box2{ background:#f5f4f4;} /* Images */ .image_left{ float:left; margin:0.2em 1em 0.2em 0;} .image_right{ float:right; margin:0.2em 0 0.2em 1em;} .image_centered{ display:block; text-align:center; margin:0.2em 0 0.5em;} .image_style1{display:inline-block; border:1px solid #999; padding:2px;} .image_style1_marg{ margin-top:-5px;} .image_style2 img,.image_style3 img{border-radius:8px;} .image_style3{display:inline-block; box-shadow:inset 0 0 2px rgba(0,0,0,.5); padding:4px; border-radius:10px;} .image_with_capt{ margin-bottom:1em;} .image_round{ display:block; border-radius:60px; background: url(../images/stock_images/120x120_1.jpg) 0 0 no-repeat; width:120px; height:120px;} .image_card{box-shadow: inset 0 0 1px rgba(0,0,0,.8), inset 0 2px 0 rgba(255,255,255,.5), inset 0 -1px 0 rgba(0,0,0,.4);border-radius: 20px;display:block;background: url(../images/stock_images/120x120_2.jpg) 0 0 no-repeat;width:120px; height:120px;} .image_embossed{box-shadow: inset 0 0 2px rgba(0,0,0,.8), inset 0 2px 0 rgba(255,255,255,.5), inset 0 -7px 0 rgba(0,0,0,.6), inset 0 -9px 0 rgba(255,255,255,.3);border-radius: 20px;display:block;background: url(../images/stock_images/120x120_3.jpg) 0 0 no-repeat;width:120px; height:120px;} .image_soft-embossed{box-shadow: inset 0 0 4px rgba(0,0,0,1), inset 0 2px 1px rgba(255,255,255,.5), inset 0 -9px 2px rgba(0,0,0,.6), inset 0 -12px 2px rgba(255,255,255,.3);border-radius: 20px;display:block;background: url(../images/stock_images/120x120_4.jpg) 0 0 no-repeat;width:120px; height:120px;} .image_cut_out{box-shadow: 0 1px 0 rgba(255,255,255,.2), inset 0 4px 5px rgba(0,0,0,.6), inset 0 1px 0 rgba(0,0,0,.6); border-radius: 20px;display:block;background: url(../images/stock_images/120x120_5.jpg) 0 0 no-repeat;width:120px; height:120px;} .image_morphing_glowing{display:block;background: url(../images/stock_images/120x120_6.jpg) 0 0 no-repeat;width:120px; height:120px;border-radius: 20px; -webkit-transition: 1s;-moz-transition: 1s;transition: 1s;} .image_morphing_glowing:hover { box-shadow: 0 0 20px rgba(0,0,0,.6), inset 0 0 20px rgba(0,0,0,1); -webkit-border-radius: 60em; -moz-border-radius: 60em; border-radius: 60em;} .image_glossy{box-shadow: inset 0 -1px 0 rgba(0,0,0,.5);border-radius: 20px;display:block;width:120px; height:120px; position:relative;} .image_glossy span{display:block;background: url(../images/stock_images/120x120_7.jpg) 0 0 no-repeat;width:120px; height:120px;border-radius: 20px;} .image_glossy:after { position: absolute; content: ' '; width: 100%; height: 50%; top: 0; left: 0; border-radius: 20px; background: -moz-linear-gradient(top, rgba(255,255,255,0.7) 0%, rgba(255,255,255,.1) 100%); background: -o-linear-gradient(top, rgba(255,255,255,0.7) 0%, rgba(255,255,255,.1) 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.7)), color-stop(100%,rgba(255,255,255,.1))); background: linear-gradient(top, rgba(255,255,255,0.7) 0%,rgba(255,255,255,.1) 100%);} .image_reflection{display:block;width:120px; height:120px; position:relative;} .image_reflection span{display:block;background: url(../images/stock_images/120x120_8.jpg) 0 0 no-repeat;width:120px; height:120px;border-radius: 20px;} .image_reflection:after { position: absolute; content: ' '; width: 100%; height: 30px; bottom: -31px; left: 0; border-top-left-radius: 20px; border-top-right-radius: 20px; background: -moz-linear-gradient(top, rgba(0,0,0,.3) 0%, rgba(255,255,255,0) 100%); background: -o-linear-gradient(top, rgba(0,0,0,.3) 0%, rgba(255,255,255,0) 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,.3)), color-stop(100%,rgba(255,255,255,0))); background: linear-gradient(top, rgba(0,0,0,.3) 0%,rgba(255,255,255,0) 100%); -pie-background: linear-gradient(top, rgba(0,0,0,.3) 0%,rgba(255,255,255,0) 100%);} .pad-image{ padding:8px 10px 20px 0; position:relative; float:left;} /* hovers */ .view {width: 300px;height: 200px;margin:0 0 15px 0;position: relative;text-align: center;cursor: default;background: #fff;overflow:hidden;} .view .mask, .view .content {width: 300px;height: 200px;position: absolute;overflow: hidden;top: 0;left: 0} .view img {display: block;position: relative;} .view h2 {text-transform: uppercase;color: #fff;text-align: center;position: relative;font-size: 17px;padding: 10px;background: rgba(0, 0, 0, 0.8);margin: 20px 0 0 0} .view p {font-family: Georgia, serif;font-style: italic;font-size: 12px;position: relative;color: #fff;padding: 10px 20px 20px;text-align: center} .view a.btn {display: inline-block;text-decoration: none;padding: 7px 14px;background: #000;color: #fff;text-transform: uppercase;box-shadow: 0 0 1px #000; border:none; border-radius:0; text-shadow:none;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .view a.btn:hover { background:#fff; color:#000;} /* first hover */ .view_first img {-moz-transition: all 0.2s linear;-webkit-transition: all 0.2s linear;-o-transition: all 0.2s linear;transition: all 0.2s linear;} .view_first .mask {opacity: 0;background-color: rgba(219,127,8, 0.7);-moz-transition: all 0.4s ease-in-out;-webkit-transition: all 0.4s ease-in-out;-o-transition: all 0.4s ease-in-out;transition: all 0.4s ease-in-out;} .view_first h2 {opacity: 0; -moz-transform: translateY(-100px); -webkit-transform: translateY(-100px); -o-transform: translateY(-100px);transform: translateY(-100px); -moz-transition: all 0.2s ease-in-out;-webkit-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_first p {opacity: 0; -moz-transform: translateY(100px);-webkit-transform: translateY(100px);-o-transform: translateY(100px);transform: translateY(100px); -moz-transition: all 0.2s linear;-webkit-transition: all 0.2s linear;-o-transition: all 0.2s linear;transition: all 0.2s linear;} .view_first a.btn{opacity: 0;-moz-transition: all 0.2s ease-in-out;-webkit-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_first:hover img {-moz-transform: scale(1.1);-webkit-transform: scale(1.1);-o-transform: scale(1.1);transform: scale(1.1);} .view_first:hover .mask {opacity: 1;} .view_first:hover h2, .view_first:hover p, .view_first:hover a.btn {opacity: 1;-moz-transform: translateY(0px); -webkit-transform: translateY(0px); -o-transform: translateY(0px);transform: translateY(0px);} .view_first:hover p {-moz-transition-delay: 0.1s;-webkit-transition-delay: 0.1s;-o-transition-delay: 0.1s;transition-delay: 0.1s;} .view_first:hover a.btn {-moz-transition-delay: 0.2s;-webkit-transition-delay: 0.2s;-o-transition-delay: 0.2s;transition-delay: 0.2s;} /* second hover */ .view_second img {-moz-transition: all 0.2s ease-in;-webkit-transition: all 0.2s ease-in;-o-transition: all 0.2s ease-in;transition: all 0.2s ease-in;} .view_second .mask { background-color: rgba(115,146,184, 0.7); width: 300px; padding: 60px; height: 300px; opacity: 0; -webkit-transform: translate(265px, 145px) rotate(45deg);-moz-transform: translate(265px, 145px) rotate(45deg);-o-transform: translate(265px, 145px) rotate(45deg);transform: translate(265px, 145px) rotate(45deg); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_second h2 { border-bottom: 1px solid rgba(0, 0, 0, 0.3); background: transparent; margin: 20px 40px 0px 40px; -webkit-transform: translate(200px, -200px);-moz-transform: translate(200px, -200px);-o-transform: translate(200px, -200px);transform: translate(200px, -200px); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_second p { -webkit-transform: translate(-200px, 200px);-moz-transform: translate(-200px, 200px);-o-transform: translate(-200px, 200px);transform: translate(-200px, 200px); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_second a.btn { -webkit-transform: translate(0px, 100px);-moz-transform: translate(0px, 100px);-o-transform: translate(0px, 100px);transform: translate(0px, 100px); -webkit-transition: all 0.2s 0.1s ease-in-out;-moz-transition: all 0.2s 0.1s ease-in-out;-o-transition: all 0.2s 0.1s ease-in-out;transition: all 0.2s 0.1s ease-in-out;} .view_second:hover .mask {opacity:1; -webkit-transform: translate(-80px, -125px) rotate(45deg);-moz-transform: translate(-80px, -125px) rotate(45deg);-o-transform: translate(-80px, -125px) rotate(45deg);} .view_second:hover h2 { -webkit-transform: translate(0px,0px);-moz-transform: translate(0px,0px);-o-transform: translate(0px,0px);transform: translate(0px,0px); -webkit-transition-delay: 0.3s;-moz-transition-delay: 0.3s;-o-transition-delay: 0.3s;transition-delay: 0.3s;} .view_second:hover p { -webkit-transform: translate(0px,0px);-moz-transform: translate(0px,0px);-o-transform: translate(0px,0px);transform: translate(0px,0px); -webkit-transition-delay: 0.4s;-moz-transition-delay: 0.4s;-o-transition-delay: 0.4s;transition-delay: 0.4s;} .view_second:hover a.btn { -webkit-transform: translate(0px,0px);-moz-transform: translate(0px,0px);-o-transform: translate(0px,0px);transform: translate(0px,0px); -webkit-transition-delay: 0.5s;-moz-transition-delay: 0.5s;-o-transition-delay: 0.5s;transition-delay: 0.5s;} /* third hover */ .view_third img {-webkit-transition: all 0.2s ease-in;-moz-transition: all 0.2s ease-in;-o-transition: all 0.2s ease-in;transition: all 0.2s ease-in;} .view_third .mask {background-color: rgba(0,0,0,0.6);opacity: 0; -webkit-transform: translate(460px, -100px) rotate(180deg);-moz-transform: translate(460px, -100px) rotate(180deg);-o-transform: translate(460px, -100px) rotate(180deg);transform: translate(460px, -100px) rotate(180deg); -webkit-transition: all 0.2s 0.4s ease-in-out;-moz-transition: all 0.2s 0.4s ease-in-out;-o-transition: all 0.2s 0.4s ease-in-out;transition: all 0.2s 0.4s ease-in-out;} .view_third h2{ -webkit-transform: translateY(-100px);-moz-transform: translateY(-100px);-o-transform: translateY(-100px);transform: translateY(-100px); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_third p { -webkit-transform: translateX(300px) rotate(90deg);-moz-transform: translateX(300px) rotate(90deg);-o-transform: translateX(300px) rotate(90deg);transform: translateX(300px) rotate(90deg); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_third a.btn { -webkit-transform: translateY(-200px);-moz-transform: translateY(-200px);-o-transform: translateY(-200px);transform: translateY(-200px); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_third:hover .mask { opacity:1; -webkit-transition-delay: 0s;-moz-transition-delay: 0s;-o-transition-delay: 0s;transition-delay: 0s; -webkit-transform: translate(0px, 0px);-moz-transform: translate(0px, 0px);-o-transform: translate(0px, 0px);transform: translate(0px, 0px);} .view_third:hover h2 { -webkit-transform: translateY(0px);-moz-transform: translateY(0px);-o-transform: translateY(0px);transform: translateY(0px); -webkit-transition-delay: 0.5s;-moz-transition-delay: 0.5s;-o-transition-delay: 0.5s;transition-delay: 0.5s;} .view_third:hover p { -webkit-transform: translateX(0px) rotate(0deg);-moz-transform: translateX(0px) rotate(0deg);-o-transform: translateX(0px) rotate(0deg);transform: translateX(0px) rotate(0deg); -webkit-transition-delay: 0.4s;-moz-transition-delay: 0.4s;-o-transition-delay: 0.4s;transition-delay: 0.4s;} .view_third:hover a.btn { -webkit-transform: translateY(0px);-moz-transform: translateY(0px);-o-transform: translateY(0px);transform: translateY(0px); -webkit-transition-delay: 0.3s;-moz-transition-delay: 0.3s;-o-transition-delay: 0.3s;transition-delay: 0.3s;} /* fourth hover */ .view_fourth img { opacity: 1; -webkit-transition: all 0.4s ease-in-out 0.2s;-moz-transition: all 0.4s ease-in-out 0.2s;-o-transition: all 0.4s ease-in-out 0.2s;transition: all 0.4s ease-in-out 0.2s;} .view_fourth .mask { background-color: rgba(0,0,0,0.8); opacity: 0; -webkit-transform: scale(0) rotate(-180deg);-moz-transform: scale(0) rotate(-180deg);-o-transform: scale(0) rotate(-180deg);transform: scale(0) rotate(-180deg); -webkit-transition: all 0.4s ease-in;-moz-transition: all 0.4s ease-in;-o-transition: all 0.4s ease-in;transition: all 0.4s ease-in; border-radius: 0px;} .view_fourth h2{ opacity: 0; border-bottom: 1px solid rgba(0, 0, 0, 0.3); background: transparent; margin: 20px 40px 0px 40px; -webkit-transition: all 0.5s ease-in-out;-moz-transition: all 0.5s ease-in-out;-o-transition: all 0.5s ease-in-out;transition: all 0.5s ease-in-out;} .view_fourth p {opacity: 0;-webkit-transition: all 0.5s ease-in-out;-moz-transition: all 0.5s ease-in-out;-o-transition: all 0.5s ease-in-out;transition: all 0.5s ease-in-out;} .view_fourth a.info {opacity: 0;-webkit-transition: all 0.5s ease-in-out;-moz-transition: all 0.5s ease-in-out;-o-transition: all 0.5s ease-in-out;transition: all 0.5s ease-in-out;} .view_fourth:hover .mask {opacity: 1; -webkit-transform: scale(1) rotate(0deg);-moz-transform: scale(1) rotate(0deg);-o-transform: scale(1) rotate(0deg);transform: scale(1) rotate(0deg); -webkit-transition-delay: 0.2s;-moz-transition-delay: 0.2s;-o-transition-delay: 0.2s;transition-delay: 0.2s;} .view_fourth:hover img{ opacity: 0; -webkit-transform: scale(0);-moz-transform: scale(0);-o-transform: scale(0);transform: scale(0); -webkit-transition-delay: 0s;-moz-transition-delay: 0s;-o-transition-delay: 0s;transition-delay: 0s;} .view_fourth:hover h2, .view_fourth:hover p, .view_fourth:hover a.info{opacity: 1;-webkit-transition-delay: 0.5s;-moz-transition-delay: 0.5s;-o-transition-delay: 0.5s;transition-delay: 0.5s;} /* fifth hover */ .view_fifth img {-webkit-transition: all 0.4s ease-in-out;-moz-transition: all 0.4s ease-in-out;-o-transition: all 0.4s ease-in-out;transition: all 0.4s ease-in-out;} .view_fifth .mask {background-color: rgba(146,96,91,0.3);opacity: 1; overflow:hidden; -webkit-transform: translateX(-300px);-moz-transform: translateX(-300px);-o-transform: translateX(-300px);transform: translateX(-300px); -webkit-transition: all 0.4s ease-in-out;-moz-transition: all 0.4s ease-in-out;-o-transition: all 0.4s ease-in-out;transition: all 0.4s ease-in-out;} .view_fifth h2{background: rgba(255, 255, 255, 0.5);color: #000;box-shadow: 0px 1px 3px rgba(159, 141, 140, 0.5);} .view_fifth p{opacity: 0;color: #333;-webkit-transition: all 0.2s linear;-moz-transition: all 0.2s linear;-o-transition: all 0.2s linear;transition: all 0.2s linear;} .view_fifth:hover .mask {-webkit-transform: translateX(0px);-moz-transform: translateX(0px);-o-transform: translateX(0px);transform: translateX(0px);} .view_fifth:hover img { -webkit-transform: translateX(300px);-moz-transform: translateX(300px);-o-transform: translateX(300px);transform: translateX(300px); -webkit-transition-delay: 0.1s;-moz-transition-delay: 0.1s;-o-transition-delay: 0.1s;transition-delay: 0.1s; -webkit-transition: all 0.4s ease-in-out;-moz-transition: all 0.4s ease-in-out;-o-transition: all 0.4s ease-in-out;transition: all 0.4s ease-in-out;} .view_fifth:hover p{opacity: 1;-webkit-transition-delay: 0.4s;-moz-transition-delay: 0.4s;-o-transition-delay: 0.4s;transition-delay: 0.4s;} /*sixth hover */ .view_sixth img {-webkit-transition: all 0.4s ease-in-out 0.5s;-moz-transition: all 0.4s ease-in-out 0.5s;-o-transition: all 0.4s ease-in-out 0.5s;transition: all 0.4s ease-in-out 0.5s;} .view_sixth .mask{background-color: rgba(146,96,91,0.5);opacity:0; -webkit-transition: all 0.3s ease-in 0.4s;-moz-transition: all 0.3s ease-in 0.4s;-o-transition: all 0.3s ease-in 0.4s;transition: all 0.3s ease-in 0.4s;} .view_sixth h2{opacity:0;border-bottom: 1px solid rgba(0, 0, 0, 0.3);background: transparent;margin: 20px 40px 0px 40px; -webkit-transform: scale(10); -moz-transform: scale(10); -o-transform: scale(10); transform: scale(10); -webkit-transition: all 0.3s ease-in-out 0.1s;-moz-transition: all 0.3s ease-in-out 0.1s;-o-transition: all 0.3s ease-in-out 0.1s;transition: all 0.3s ease-in-out 0.1s;} .view_sixth p {opacity:0; -webkit-transform: scale(10);-moz-transform: scale(10);-o-transform: scale(10);transform: scale(10); -webkit-transition: all 0.3s ease-in-out 0.2s; -moz-transition: all 0.3s ease-in-out 0.2s;-o-transition: all 0.3s ease-in-out 0.2s;transition: all 0.3s ease-in-out 0.2s;} .view_sixth a.btn {opacity:0; -webkit-transform: translateY(100px); -moz-transform: translateY(100px); -o-transform: translateY(100px); transform: translateY(100px); -webkit-transition: all 0.3s ease-in-out 0.1s;-moz-transition: all 0.3s ease-in-out 0.1s;-o-transition: all 0.3s ease-in-out 0.1s;transition: all 0.3s ease-in-out 0.1s;} .view_sixth:hover .mask {opacity:1;-webkit-transition-delay: 0s;-moz-transition-delay: 0s;-o-transition-delay: 0s;transition-delay: 0s;} .view_sixth:hover img {-webkit-transition-delay: 0s;-moz-transition-delay: 0s;-o-transition-delay: 0s;transition-delay: 0s;} .view_sixth:hover h2 {opacity: 1; -webkit-transform: scale(1);-moz-transform: scale(1);-o-transform: scale(1);transform: scale(1); -webkit-transition-delay: 0.1s;-moz-transition-delay: 0.1s;-o-transition-delay: 0.1s;transition-delay: 0.1s;} .view_sixth:hover p {opacity:1; -webkit-transform: scale(1);-moz-transform: scale(1);-o-transform: scale(1);transform: scale(1); -webkit-transition-delay: 0.2s;-moz-transition-delay: 0.2s;-o-transition-delay: 0.2s;transition-delay: 0.2s;} .view_sixth:hover a.btn {opacity:1; -webkit-transform: translateY(0px);-moz-transform: translateY(0px);-o-transform: translateY(0px);transform: translateY(0px); -webkit-transition-delay: 0.3s;-moz-transition-delay: 0.3s;-o-transition-delay: 0.3s;transition-delay: 0.3s;} /* seventh hover */ .view_seventh img{opacity: 1;-webkit-transition: all 0.5s ease-out;-moz-transition: all 0.5s ease-out;-o-transition: all 0.5s ease-out;transition: all 0.5s ease-out;} .view_seventh .mask {background-color: rgba(77,44,35,0.5);opacity: 0; -webkit-transform: rotate(0deg) scale(1);-moz-transform: rotate(0deg) scale(1);-o-transform: rotate(0deg) scale(1);transform: rotate(0deg) scale(1); -webkit-transition: all 0.3s ease-out;-moz-transition: all 0.3s ease-out;-o-transition: all 0.3s ease-out;transition: all 0.3s ease-out; -webkit-transform: translateY(-200px) rotate(180deg);-moz-transform: translateY(-200px) rotate(180deg);-o-transform: translateY(-200px) rotate(180deg);transform: translateY(-200px) rotate(180deg);} .view_seventh h2{ -webkit-transform: translateY(-200px);-moz-transform: translateY(-200px);-o-transform: translateY(-200px);transform: translateY(-200px); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_seventh p { -webkit-transform: translateY(-200px);-moz-transform: translateY(-200px);-o-transform: translateY(-200px);transform: translateY(-200px); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_seventh a.btn { -webkit-transform: translateY(-200px);-moz-transform: translateY(-200px);-o-transform: translateY(-200px);transform: translateY(-200px); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_seventh:hover img{opacity: 0; -webkit-transform: rotate(720deg) scale(0);-moz-transform: rotate(720deg) scale(0);-o-transform: rotate(720deg) scale(0);transform: rotate(720deg) scale(0);} .view_seventh:hover .mask {opacity: 1; -webkit-transform: translateY(0px) rotate(0deg);-moz-transform: translateY(0px) rotate(0deg);-o-transform: translateY(0px) rotate(0deg);transform: translateY(0px) rotate(0deg); -webkit-transition-delay: 0.4s;-moz-transition-delay: 0.4s;-o-transition-delay: 0.4s;transition-delay: 0.4s;} .view_seventh:hover h2 { -webkit-transform: translateY(0px);-moz-transform: translateY(0px);-o-transform: translateY(0px);transform: translateY(0px); -webkit-transition-delay: 0.7s;-moz-transition-delay: 0.7s;-o-transition-delay: 0.7s;transition-delay: 0.7s;} .view_seventh:hover p { -webkit-transform: translateY(0px);-moz-transform: translateY(0px);-o-transform: translateY(0px);transform: translateY(0px); -webkit-transition-delay: 0.6s;-moz-transition-delay: 0.6s;-o-transition-delay: 0.6s;transition-delay: 0.6s;} .view_seventh:hover a.btn { -webkit-transform: translateY(0px);-moz-transform: translateY(0px);-o-transform: translateY(0px);transform: translateY(0px); -webkit-transition-delay: 0.5s;-moz-transition-delay: 0.5s;-o-transition-delay: 0.5s;transition-delay: 0.5s;} /* eighth hover */ .view_eighth .mask { background-color: rgba(255, 255, 255, 0.7); top: -200px; -ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter: alpha(opacity=0); opacity: 0; -webkit-transition: all 0.3s ease-out 0.5s; -moz-transition: all 0.3s ease-out 0.5s; -o-transition: all 0.3s ease-out 0.5s; -ms-transition: all 0.3s ease-out 0.5s; transition: all 0.3s ease-out 0.5s;} .view_eighth h2 { -webkit-transform: translateY(-200px); -moz-transform: translateY(-200px); -o-transform: translateY(-200px); -ms-transform: translateY(-200px); transform: translateY(-200px); -webkit-transition: all 0.2s ease-in-out 0.1s; -moz-transition: all 0.2s ease-in-out 0.1s; -o-transition: all 0.2s ease-in-out 0.1s; -ms-transition: all 0.2s ease-in-out 0.1s; transition: all 0.2s ease-in-out 0.1s;} .view_eighth p { color: #333; -webkit-transform: translateY(-200px); -moz-transform: translateY(-200px); -o-transform: translateY(-200px); -ms-transform: translateY(-200px); transform: translateY(-200px); -webkit-transition: all 0.2s ease-in-out 0.2s; -moz-transition: all 0.2s ease-in-out 0.2s; -o-transition: all 0.2s ease-in-out 0.2s; -ms-transition: all 0.2s ease-in-out 0.2s; transition: all 0.2s ease-in-out 0.2s;} .view_eighth a.btn { -webkit-transform: translateY(-200px); -moz-transform: translateY(-200px); -o-transform: translateY(-200px); -ms-transform: translateY(-200px); transform: translateY(-200px); -webkit-transition: all 0.2s ease-in-out 0.3s; -moz-transition: all 0.2s ease-in-out 0.3s; -o-transition: all 0.2s ease-in-out 0.3s; -ms-transition: all 0.2s ease-in-out 0.3s; transition: all 0.2s ease-in-out 0.3s;} .view_eighth:hover .mask { -ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter: alpha(opacity=100); opacity: 1; top: 0px; -webkit-transition-delay: 0s; -moz-transition-delay: 0s; -o-transition-delay: 0s; -ms-transition-delay: 0s; transition-delay: 0s; -webkit-animation: bounceY 0.9s linear; -moz-animation: bounceY 0.9s linear; -ms-animation: bounceY 0.9s linear; animation: bounceY 0.9s linear;} .view_eighth:hover h2 { -webkit-transform: translateY(0px); -moz-transform: translateY(0px); -o-transform: translateY(0px); -ms-transform: translateY(0px); transform: translateY(0px); -webkit-transition-delay: 0.4s; -moz-transition-delay: 0.4s; -o-transition-delay: 0.4s; -ms-transition-delay: 0.4s; transition-delay: 0.4s;} .view_eighth:hover p { -webkit-transform: translateY(0px); -moz-transform: translateY(0px); -o-transform: translateY(0px); -ms-transform: translateY(0px); transform: translateY(0px); -webkit-transition-delay: 0.2s; -moz-transition-delay: 0.2s; -o-transition-delay: 0.2s; -ms-transition-delay: 0.2s; transition-delay: 0.2s;} .view_eighth:hover a.btn { -webkit-transform: translateY(0px); -moz-transform: translateY(0px); -o-transform: translateY(0px); -ms-transform: translateY(0px); transform: translateY(0px); -webkit-transition-delay: 0s; -moz-transition-delay: 0s; -o-transition-delay: 0s; -ms-transition-delay: 0s; transition-delay: 0s;} @keyframes bounceY { 0% { transform: translateY(-205px);} 40% { transform: translateY(-100px);} 65% { transform: translateY(-52px);} 82% { transform: translateY(-25px);} 92% { transform: translateY(-12px);} 55%, 75%, 87%, 97%, 100% { transform: translateY(0px);}} @-moz-keyframes bounceY { 0% { -moz-transform: translateY(-205px);} 40% { -moz-transform: translateY(-100px);} 65% { -moz-transform: translateY(-52px);} 82% { -moz-transform: translateY(-25px);} 92% { -moz-transform: translateY(-12px);} 55%, 75%, 87%, 97%, 100% { -moz-transform: translateY(0px);}} @-webkit-keyframes bounceY { 0% { -webkit-transform: translateY(-205px);} 40% { -webkit-transform: translateY(-100px);} 65% { -webkit-transform: translateY(-52px);} 82% { -webkit-transform: translateY(-25px);} 92% { -webkit-transform: translateY(-12px);} 55%, 75%, 87%, 97%, 100% { -webkit-transform: translateY(0px);}} /* ninth hover */ .view_ninth .mask-1, .view_ninth .mask-2 {background-color: rgba(0, 0, 0, 0.5);height: 361px;width: 361px;background: rgba(119, 0, 36, 0.5);opacity: 1; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter: alpha(opacity=100); -webkit-transition: all 0.3s ease-in-out 0.6s; -moz-transition: all 0.3s ease-in-out 0.6s; -o-transition: all 0.3s ease-in-out 0.6s; transition: all 0.3s ease-in-out 0.6s;} .view_ninth .mask-1 {left: auto;right: 0; -webkit-transform: rotate(56.5deg) translateX(-180px); -moz-transform: rotate(56.5deg) translateX(-180px); -o-transform: rotate(56.5deg) translateX(-180px); -ms-transform: rotate(56.5deg) translateX(-180px); transform: rotate(56.5deg) translateX(-180px); -webkit-transform-origin: 100% 0%; -moz-transform-origin: 100% 0%; -o-transform-origin: 100% 0%; -ms-transform-origin: 100% 0%; transform-origin: 100% 0%;} .view_ninth .mask-2 { top: auto; bottom: 0; -webkit-transform: rotate(56.5deg) translateX(180px); -moz-transform: rotate(56.5deg) translateX(180px); -o-transform: rotate(56.5deg) translateX(180px); -ms-transform: rotate(56.5deg) translateX(180px); transform: rotate(56.5deg) translateX(180px); -webkit-transform-origin: 0% 100%; -moz-transform-origin: 0% 100%; -o-transform-origin: 0% 100%; -ms-transform-origin: 0% 100%; transform-origin: 0% 100%;} .view_ninth .content {background: rgba(0, 0, 0, 0.9);height: 0;width: 361px;overflow: hidden; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; filter: alpha(opacity=50); opacity: 0.5; -webkit-transform: rotate(-33.5deg) translate(-112px, 166px); -moz-transform: rotate(-33.5deg) translate(-112px, 166px); -o-transform: rotate(-33.5deg) translate(-112px, 166px); -ms-transform: rotate(-33.5deg) translate(-112px, 166px); transform: rotate(-33.5deg) translate(-112px, 166px); -webkit-transform-origin: 0% 100%; -moz-transform-origin: 0% 100%; -o-transform-origin: 0% 100%; -ms-transform-origin: 0% 100%; transform-origin: 0% 100%; -webkit-transition: all 0.4s ease-in-out 0.3s; -moz-transition: all 0.4s ease-in-out 0.3s; -o-transition: all 0.4s ease-in-out 0.3s; transition: all 0.4s ease-in-out 0.3s;} .view_ninth h2 {background: transparent;margin-top: 5px;border-bottom: 1px solid rgba(255, 255, 255, 0.2);} .view_ninth a.btn {display: none;} .view_ninth:hover .content {height: 120px;width: 300px; top: 40px; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"; filter: alpha(opacity=90); opacity: 0.9; -webkit-transform: rotate(0deg) translate(0, 0); -moz-transform: rotate(0deg) translate(0, 0); -o-transform: rotate(0deg) translate(0, 0); -ms-transform: rotate(0deg) translate(0, 0); transform: rotate(0deg) translate(0, 0);} .view_ninth:hover .mask-1, .view_ninth:hover .mask-2 { -webkit-transition-delay: 0s; -moz-transition-delay: 0s; -o-transition-delay: 0s; transition-delay: 0s;} .view_ninth:hover .mask-1 { -webkit-transform: rotate(56.5deg) translateX(1px); -moz-transform: rotate(56.5deg) translateX(1px); -o-transform: rotate(56.5deg) translateX(1px); -ms-transform: rotate(56.5deg) translateX(1px); transform: rotate(56.5deg) translateX(1px);} .view_ninth:hover .mask-2 { -webkit-transform: rotate(56.5deg) translateX(-1px); -moz-transform: rotate(56.5deg) translateX(-1px); -o-transform: rotate(56.5deg) translateX(-1px); -ms-transform: rotate(56.5deg) translateX(-1px); transform: rotate(56.5deg) translateX(-1px);} /*--------------------------------- Portfolio -----------------------------------*/ .pad_port{ padding-bottom:30px;} .image-grid {width: 940px;} .image-grid:after { content: ""; display: block; height: 0; overflow: hidden; clear: both;} .image-grid li { width:220px; margin:0 5px; float: left; height:260px; overflow: hidden;} .image-grid li img, .image-grid li strong {display: block;} .splitter{ position:relative; overflow:hidden; padding:10px 0;} .splitter>li{ font-weight:bold; overflow:hidden;} .splitter li ul{ overflow:hidden;} .splitter li li{ float:left;} .splitter li li a{ box-shadow:none; border-radius:0;} .splitter li li.selected-1 a,.splitter li li.selected-2 a,.splitter li li.selected-0 a{ border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999; box-shadow:inset 0 1px 2px #aaa; background: -webkit-linear-gradient(top, #E6E6E6, gainsboro); background: -moz-linear-gradient(top, #E6E6E6, gainsboro); background: -ms-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro); background: linear-gradient(top, #E6E6E6, gainsboro); -pie-background: linear-gradient(top, #E6E6E6, gainsboro);} .splitter li li.last a{ border-radius:0 3px 3px 0;} .splitter li li.segment-1 a{ border-radius:3px 0 0 3px;} /*--------------------------------- Social and Media Sharing -----------------------------------*/ .icons{ position:relative; overflow:hidden; padding:10px 0;} .icons li{ float:left; margin-right:3px;} .icons.basic2 li{margin:0 15px 15px 0; } .icons.basic2 li a{width:16px; display:block; height:16px;} .icons.basic2 li a img{ max-width:100% !important; height:auto;} .icons.social li.last{ margin-top:-16px;} .icons.social li{ width:100px;float:left;} .icons.small li a{ background-image: url(../images/icons/csg-4f3bc7207ae9d.png); display:block; width:30px !important; height:30px !important;} .icons.basic{ position:relative; overflow:hidden;} .icons.basic li{margin:0 10px 10px 0; display:block; float:left; padding:0 15px 15px 15px; box-shadow:inset 0 0 10px rgba(0,0,0,.1);} .icons.basic li.li_icon{padding:8px 15px 7px 15px;} .icon{ font-family:'IcoMoon'; font-size:35px; color:#000000; line-height:100%; display:block;} .icon:before {content: attr(data-icon);} .icon:hover{ text-decoration:none;} .icon_social{ font-family:'IcoMoonSocial'; font-size:35px; color:#000000; line-height:100%; display:block;} .icon_social:before {content: attr(data-icon);} .icon_social:hover{ text-decoration:none;} .ranges{ position:relative; overflow:hidden; list-style-position:inside;} .ranges li span{ display:inline-block; padding:0 0 10px 0;} .ranges input{ margin-right:10px;} /* Flickr */ #flickr_badge_wrapper {padding:3px 0 0;} .flickr_badge_image {margin:0 15px 15px 0px; float:left;} .flickr_badge_image a {box-shadow:inset 0 0 2px rgba(0,0,0,.5); padding:4px; border-radius:3px; display:inline-block;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .flickr_badge_image a img{border-radius:3px;} #flickr_badge_uber_wrapper a:hover, #flickr_badge_uber_wrapper a:active{box-shadow:inset 0 0 4px rgba(0,0,0,.8);} #flickr_badge_wrapper { overflow:hidden;} #flickr_www,#flickr_badge_source,#flickr_badge_image10 { display:none;} /* Twitter */ .tweet_list{ background:url(../images/icons/twitter_bird_2.png) 0 0 no-repeat; padding:5px 0 0 45px;} .tweet_list li{ padding:5px; margin-bottom:5px;overflow:hidden; border-radius:3px; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: 0 1px 2px rgba(0,0,0,.3), inset 0 0 3px #fff;} .tweet_list li a{ font-weight:bold; color:#666;} .flash-video{ position:relative; z-index:10;} .audio-player{ padding:0 0 0 2em;} /* Tooltips */ #aToolTip{position:absolute;display:none;z-index:50000;background: #646363; font-size:12px; padding:5px 18px; color:#fff; text-align:center; z-index:99; border-radius:3px; box-shadow:2px 2px 4px rgba(0,0,0,.5);} #aToolTip .aToolTipContent{position:relative;margin:0;padding:0} a#aToolTipCloseBtn{display:block;height:8px;width:8px; background: url(../images/icons/glyphicons_207_remove_2.png) 0 0 no-repeat;overflow:hidden;text-indent:-9999px;outline:none;position:absolute;top:0px;right:-14px} .tooltips-pad span{ display:block; padding-bottom:20px; position:relative; overflow:hidden;} .tooltips-pad strong{ display:block; float:left;width:125px;} .tooltips-pad .small-box-code{ float:left; margin-top:3px;} .video_player{ width:482px;} /* Under Construction page =====*/ .constuction-main{width:570px;min-height:450px;position:absolute;left:50%;top:45%;margin-left:-330px;margin-top:-130px;} #constuction-box{width:570px;min-height:450px; box-shadow:0 0 15px rgba(0,0,0,.6); border-radius:15px; position:relative; z-index:99;} #constuction-box .inside{background:#fff;border-radius:15px;border-color:#fff; float:left;min-height:450px; width:100%;} #constuction-box .inside .inner{padding:40px 48px 25px;} #constuction-box .inside .inner h1{ padding-bottom:30px;font-weight:normal;} #constuction-box .inside .inner h3{ padding-bottom:0;} #constuction-box .inside .inner p{ font-size:15px; font-weight:normal; padding-bottom:25px;} #constuction-box h1.constuction-logo{ position:absolute; top:-85px; left:50px;} #constuction-box h1.constuction-logo a{ display:inline-block;background: url(../images/logo.png) 0 0 no-repeat;width:410px; height:62px; text-indent:-5000px;} .social_icons{ position:absolute; top:20px; right:-37px; background:#fff; width:37px; border-radius:0 15px 15px 0; box-shadow:3px 0 5px rgba(0,0,0,.2)} .social_icons ul{ padding:15px 0 10px 8px;} .social_icons ul li{ padding-bottom:5px;} .social_icons ul li.last{ padding-bottom:5px;} .cntSeparator {font-size: 50px;margin: 24px 0px;color: #000; font-family:Georgia, "Times New Roman", Times, serif;} .counter_desc{ position:relative; overflow:hidden; font-size:16px; font-weight:bold; line-height:1.2em; padding:5px 0 0 0;} .counter_desc div{ width:104px; margin-left:18px; text-align:center;} .counter_desc div:first-child{ margin-left:0;} .constr_social_buttons{ padding:25px 0 0 0;} .icons_social2 li{ width:100px;float:left;} .icons_social2 li.last{ margin-top:-14px; width:90px;} /* Intro page */ #intro-box{width:600px;height:407px;position:relative;left:50%;top:50%;margin-left:-300px;margin-top:-180px;border-radius:10px; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: 0 2px 3px rgba(0,0,0,.3), inset 0 0 3px #fff;} #intro-box .inside{padding:20px 70px 0;height:387px; position:relative;} #intro-box .alignright{ position:absolute; bottom:35px; right:70px;} .intro-video{ position:absolute; top:60px; left:70px; overflow:hidden; height:264px; width:460px;} .intro-video iframe{height:264px; width:460px; position:relative;} .likebox_pad{ padding-bottom:20px !important;} .likebox_pad2{ padding-top:32px !important;} /*------------ --------------------- Misc -----------------------------------*/ .dialog-pad{ padding:0 0 20px;} /* Tabs */ .tabs-horz-top, .tabs-horz-bottom, .tabs-horz-top2, .tabs-horz-bottom2, .tabs-vert-left, .tabs-vert-right{ position:relative; overflow:hidden;} .tabs-horz-top .tab-content, .tabs-horz-bottom .tab-content, .tabs-horz-top2 .tab-content, .tabs-horz-bottom2 .tab-content, .tabs-vert-left .tab-content, .tabs-vert-right .tab-content{ width:auto; box-shadow:none; background:#fff; border:1px solid #eee; padding:10px;} .tabs-horz-bottom .tab-content, .tabs-horz-bottom2 .tab-content, .tabs-vert-left .tab-content, .tabs-vert-right .tab-content{ margin:0; min-height:54px;} .tabs-vert-left .tab-content-box, .tabs-vert-right .tab-content{ overflow:hidden;} .tabs-nav{ position:relative; overflow:hidden;} .tabs-nav li{ float:left; margin-right:3px;} .tabs-horz-top2 .tabs-nav,.tabs-horz-bottom2 .tabs-nav{ float:right;} .tabs-nav li a{display:block; padding:6px 15px;position:relative; top:4px; z-index:99; border: 1px solid #DDD; border-radius: 3px; text-shadow: 0 1px 1px white; font-weight: bold; white-space: nowrap; vertical-align: middle; color: #666; cursor: pointer; border-color: #ddd; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow:inset 0 0 3px #fff; -webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .tabs-nav li a:hover,.tabs-nav li a.current{ top:1px; text-decoration:none; background:#fff;-pie-background: linear-gradient(top, #fff, #fff); color:#666;} .tabs-horz-bottom .tabs-nav,.tabs-horz-bottom2 .tabs-nav{ top:-1px;} .tabs-horz-bottom .tabs-nav li a, .tabs-horz-bottom2 .tabs-nav li a{ top:-4px;} .tabs-horz-bottom .tabs-nav li a:hover, .tabs-horz-bottom .tabs-nav li a.current, .tabs-horz-bottom2 .tabs-nav li a:hover, .tabs-horz-bottom2 .tabs-nav li a.current{ top:-1px;} .tabs-horz-top .tabs-nav li a,.tabs-horz-top2 .tabs-nav li a{ border-radius:3px 3px 0 0;} .tabs-horz-bottom .tabs-nav li a,.tabs-horz-bottom2 .tabs-nav li a{ border-radius: 0 0 3px 3px;} .tabs-vert-left .tabs-nav li a{ border-radius:3px 0 0 3px;} .tabs-vert-right .tabs-nav li a{ border-radius:0 3px 3px 0;} .tabs-vert-left .tabs-nav{ float:left; margin-right:-1px;} .tabs-vert-left .tabs-nav li,.tabs-vert-right .tabs-nav li{ float:none; margin:0 0 3px 0;} .tabs-vert-left .tabs-nav li a{ top:0 !important; right:-4px;} .tabs-vert-left .tabs-nav li a:hover,.tabs-vert-left .tabs-nav li a.current{ right:-1px;} .tabs-vert-right .tabs-nav{ float:right; margin-left:-1px;} .tabs-vert-right .tabs-nav li a{ top:0 !important; left:-4px;} .tabs-vert-right .tabs-nav li a:hover,.tabs-vert-right .tabs-nav li a.current{ left:-1px;} .tabs-pad{ padding:20px 0 0 0;} /* SlideDown */ .slide-down-box{ position:relative; z-index:101;} .slide-down-box dt{ display:block; border: 1px solid #DDD; border-radius: 3px; text-shadow: 0 1px 1px white; box-shadow:0 1px 1px #fff; font: bold 11px Sans-Serif; padding: 6px 10px; white-space: nowrap; vertical-align: middle; color: #666; background: transparent; cursor: pointer; border-color: #ddd; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff;} .slide-down-box dt:hover{box-shadow:inset 0 0 3px #fff;border-color: #999; text-decoration:none;} .slide-down-box dt.active{ border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999; box-shadow:inset 0 1px 2px #aaa; background: -webkit-linear-gradient(top, #E6E6E6, gainsboro); background: -moz-linear-gradient(top, #E6E6E6, gainsboro); background: -ms-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro);} .slide-down-box dt span{ display:inline-block; width:11px; height:11px; background: url(../images/misc-plus.png) 0 0 no-repeat; margin:2px 6px 0 0;} .slide-down-box dt.active span{background: url(../images/misc-minus.png) 0 0 no-repeat;} .slide-down-box dd{display:none;padding:15px 15px; margin:3px 0 0 0; background:#fff; border-radius:5px; position:relative;box-shadow:inset 0 1px 1px rgba(170,170,170,.8); border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999;} .slide-down-box.absol dd{ position:absolute; top:27px; left:0; z-index:99;width:auto;} .slide-down-pad{ padding:5px 0;} /* Carousel */ .car-wrapper{ position:relative;} .carousel {overflow:hidden; margin-left:36px;} .carousel li{ margin-right:10px; display:block; float:left; width:210px; height:168px; position:relative; overflow:hidden;} .car-wrapper .btn.next,.car-wrapper .btn.prev{ position:absolute; top:64px; padding:5px 3px; border-radius:3px; width:19px; height:16px; display:block;} .car-wrapper .btn.prev{ left:0px;} .car-wrapper .btn.next{ right:0px;} /* Accordion */ dl#accordion{list-style-type:none;margin:0;height:auto !important} dl#accordion dt a{display:block;text-decoration:none; border: 1px solid #DDD; border-radius: 3px; text-shadow: 0 1px 1px white; box-shadow:0 1px 1px #fff; font: bold 11px Sans-Serif; padding: 6px 10px; white-space: nowrap; vertical-align: middle; color: #666; background: transparent; cursor: pointer; border-color: #ddd; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff;} dl#accordion dt a span{ display:inline-block; width:11px; height:11px; background: url(../images/misc-plus.png) 0 0 no-repeat; margin:2px 6px 0 0;} dl#accordion dt.active a span{background: url(../images/misc-minus.png) 0 0 no-repeat;} dl#accordion dt{margin:0px; border:none !important;} dl#accordion dt a:hover{box-shadow:inset 0 0 3px #fff;border-color: #999; text-decoration:none;} dl#accordion dt.active a{ border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999; box-shadow:inset 0 1px 2px #aaa; background: -webkit-linear-gradient(top, #E6E6E6, gainsboro); background: -moz-linear-gradient(top, #E6E6E6, gainsboro); background: -ms-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro); background: linear-gradient(top, #E6E6E6, gainsboro); -pie-background: linear-gradient(top, #E6E6E6, gainsboro);} dl#accordion dd{margin-bottom:0;padding-left:0; background:none; border:none; padding:0 !important;} dl#accordion dd .indent{ padding:10px 20px;} dl#accordion dt .ui-icon{ display:none !important;} /* Testimonials */ #testimonials{ width:300px; height:160px;} #testimonails div{ width:300px; height:160px;} .testim_buttons{ position:absolute; top:58px; right:0; overflow:hidden;} .testim_buttons a{display:block; float:left; border: 1px solid #DDD; padding: 3px; white-space: nowrap; vertical-align: middle; background: transparent; cursor: pointer; border-color: #ddd; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0);} #prev_testim{ border-radius:3px 0 0 3px; padding-left:5px;} #next_testim{ border-radius:0 3px 3px 0; padding-right:5px;} .testim_buttons a span{ width:16px; height:16px;} #prev_testim span{ display:inline-block; background: url(../images/icons/icon-previous.png) 0 0 no-repeat;margin:3px 3px 0 0;} #next_testim span{ display:inline-block; background: url(../images/icons/icon-next.png) 0 0 no-repeat;margin:3px 0 0 3px} .testim_buttons a:hover{ box-shadow:inset 0 0 3px #fff;border-color: #999; text-decoration:none;} /*--------------------------------- Functional Slider -----------------------------------*/ .funct_slider .fleft{ width:200px; padding-right:20px;} #choices li{ width:70px; text-align:center; box-shadow:none; margin:0 3px 4px 0;} #choices li.active{ border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999; box-shadow:inset 0 1px 2px #aaa; background: -webkit-linear-gradient(top, #E6E6E6, gainsboro); background: -moz-linear-gradient(top, #E6E6E6, gainsboro); background: -ms-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro); background: linear-gradient(top, #E6E6E6, gainsboro); -pie-background: linear-gradient(top, #E6E6E6, gainsboro);} #funct_caption{display:none; padding:7px 10px 6px; position:absolute; z-index:15; bottom:20px; right:20px; text-align:center; text-decoration:none; border: 1px solid #DDD; text-shadow: 0 1px 1px white; box-shadow:0 1px 1px #fff; font: bold 11px Sans-Serif; white-space: nowrap; vertical-align: middle; color: #666; background: transparent; cursor: pointer; border-color: #ddd; border-radius:3px; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff;} .funct_box{ float:left; width:715px; height:485px; position:relative;} .funct_slider .hidden{ display:none;} #show{ display:none; padding:6px;box-shadow:inset 0 0 10px rgba(0,0,0,.1); width:700px; height:430px;} #show1{ width:700px; height:430px; padding:6px;box-shadow:inset 0 0 10px rgba(0,0,0,.1);} /*--------------------------------- Extras -----------------------------------*/ /* buttons */ .buttons_pad{ padding:15px 0 0 0;} /* ------ */ .style_1 { display:inline-block; background-color:#ba2323; padding:10px; position:relative; font-family: 'Open Sans', sans-serif; font-size:12px; text-decoration:none; color:#666; border: solid 1px #999; border-radius: 5px;} .style_1:active { padding-bottom:9px; padding-left:10px; padding-right:10px; padding-top:11px; top:1px;} .style_1::before { background-color:#e1e3e6; content:""; display:block; position:absolute; width:100%; height:100%; padding:8px; left:-8px; top:-8px; z-index:-1; border-radius: 5px; box-shadow: inset 0px 1px 1px #909193, 0px 1px 0px #fff;} .style_1.danger{border: solid 1px #bd362f;} .style_1.success{border: solid 1px #51a351;} .style_1.inf{border: solid 1px #2f96b4;} .style_1.warning{border: solid 1px #f89406;} .style_2{ background-color:#525252; padding:10px; position:relative; font-family: 'Open Sans', sans-serif; font-size:12px; text-decoration:none; color:#666; box-shadow: inset 0px 1px 0px #fff, 0px 3px 0px #666; border-radius: 5px;} .style_2:active {top:7px; box-shadow: inset 0px 1px 0px #fff, inset 0px -1px 0px #999;} .style_2::before { background-color:#525252; content:""; display:block; position:absolute; width:100%; height:100%; padding-left:2px; padding-right:2px; padding-bottom:4px; left:-2px; top:2px; z-index:-1; border-radius: 6px; box-shadow: 0px 1px 0px #fff;} .style_2:active::before {top:-2px;} .style_2.success{background-color:#6fba26;box-shadow: inset 0px 1px 0px #b2f17f, 0px 3px 0px #3d6f0d;} .style_2.success::before {background-color:#1a5611;} .style_2.success:active {top:7px; box-shadow: inset 0px 1px 0px #b2f17f, inset 0px -1px 0px #3d6f0d;} .style_2.warning{background-color:#99581f;box-shadow: inset 0px 1px 0px #f5b951, 0px 3px 0px #bd6315;} .style_2.warning::before {background-color:#99581f;} .style_2.warning:active {top:7px; box-shadow: inset 0px 1px 0px #f5b951, inset 0px -1px 0px #99581f;} .style_2.danger{background-color:#590e0c;box-shadow: inset 0px 1px 0px #ff9f9c, 0px 3px 0px #8f110d;} .style_2.danger::before {background-color:#590e0c;} .style_2.danger:active {top:7px; box-shadow: inset 0px 1px 0px #ff9f9c, inset 0px -1px 0px #8f110d;} .style_2.inf{background-color:#034354;box-shadow: inset 0px 1px 0px #91e7ff, 0px 3px 0px #0d6b85;} .style_2.inf::before {background-color:#034354;} .style_2.inf:active {top:7px; box-shadow: inset 0px 1px 0px #91e7ff, inset 0px -1px 0px #0d6b85;} .style_3{ background-color:#3bb3e0; font-family: 'Open Sans', sans-serif; font-size:12px; text-decoration:none; color:#666; position:relative; padding:9px 20px; border-left:solid 1px #4d4b4d; text-shadow:none; border-top-right-radius: 5px; border-bottom-right-radius: 5px; margin-left:35px; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); box-shadow: inset 0px 1px 0px #fff, 0px 5px 0px 0px #212121, 0px 10px 5px #999;} .style_3:hover{ text-decoration:none;box-shadow: inset 0px 1px 0px #fff, 0px 5px 0px 0px #212121, 0px 10px 5px #999;} .style_3:active {top:3px;box-shadow: inset 0px 1px 0px #fff, 0px 2px 0px 0px #212121, 0px 5px 3px #999;} .style_3::before { content:"1"; text-align:center; width:35px; max-height:27px; height:100%; position:absolute; display:block; padding-top:8px; top:-1px; left:-36px; font-size:16px; font-weight:bold; color:#fff; border-right:solid 1px #4d4b4d; background-color:#666; border-top-left-radius: 5px; border-bottom-left-radius: 5px; box-shadow:inset 0px 1px 0px #999, 0px 5px 0px 0px #212121, 0px 10px 5px #999 ;} .style_3:active::before{top:-4px;box-shadow:inset 0px 1px 0px #999, 0px 5px 0px 0px #212121, 1px 1px 0px 0px #454545, 2px 2px 0px 0px #454545, 2px 5px 0px 0px #212121, 6px 4px 2px rgba(0,0,0,.5), 0px 10px 5px #999 ;} .style_3.inf{border-left:solid 1px #2ab7ec;box-shadow: inset 0px 1px 0px #2ab7ec, 0px 5px 0px 0px #156785, 0px 10px 5px #999; background-color: #49AFCD; background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); background-image: linear-gradient(top, #5bc0de, #2f96b4); -pie-background: linear-gradient(#5bc0de, #2f96b4);} .style_3.inf:active {box-shadow: inset 0px 1px 0px #2ab7ec, 0px 2px 0px 0px #156785, 0px 5px 3px #999;} .style_3.inf::before {box-shadow:inset 0px 1px 0px #2ab7ec, 0px 5px 0px 0px #032b3a, 0px 10px 5px #999 ; border-right:solid 1px #07526e; color:#8fd1ea; background-image: -webkit-linear-gradient(bottom, rgb(10,94,125) 0%, rgb(14,139,184) 100%); background-image: -moz-linear-gradient(bottom, rgb(10,94,125) 0%, rgb(14,139,184) 100%); background-image: -ms-linear-gradient(bottom, rgb(10,94,125) 0%, rgb(14,139,184) 100%); background-image: -o-linear-gradient(bottom, rgb(10,94,125) 0%, rgb(14,139,184) 100%); background-image: linear-gradient(bottom, rgb(10,94,125) 0%, rgb(14,139,184) 100%);} .style_3.inf:active::before{box-shadow:inset 0px 1px 0px #2ab7ec, 0px 5px 0px 0px #032b3a,1px 1px 0px 0px #044a64,2px 2px 0px 0px #044a64,2px 5px 0px 0px #044a64, 6px 4px 2px #0b698b, 0px 10px 5px #999 ;} .style_3.danger{border-left:solid 1px #2ab7ec;box-shadow: inset 0px 1px 0px #ee5f5b, 0px 5px 0px 0px #570e0b, 0px 10px 5px #999; background-color: #DA4F49; background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); background-image: linear-gradient(top, #ee5f5b, #bd362f);} .style_3.danger:active {box-shadow: inset 0px 1px 0px #ee5f5b, 0px 2px 0px 0px #570e0b, 0px 5px 3px #999; border-top:1px solid #ff7373;} .style_3.danger::before {box-shadow:inset 0px 1px 0px #ffa7a6, 0px 5px 0px 0px #570e0b, 0px 10px 5px #999 ; border-right:solid 1px #bd362f; color:#fac3c3; background-color: #DA4F49; background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); background-image: linear-gradient(top, #ee5f5b, #bd362f);} .style_3.danger:active::before{box-shadow:inset 0px 1px 0px #ffa7a6, 0px 5px 0px 0px #570e0b, 1px 1px 0px 0px #570e0b, 2px 2px 0px 0px #570e0b, 2px 5px 0px 0px #570e0b, 6px 4px 2px rgba(0,0,0,.5), 0px 10px 5px #999 ;} .style_3.success{border-left:solid 1px #51a351;box-shadow: inset 0px 1px 0px #62c462, 0px 5px 0px 0px #125912, 0px 10px 5px #999; background-color: #62c462; background-image: -moz-linear-gradient(top, #62c462, #51a351); background-image: -ms-linear-gradient(top, #62c462, #51a351); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); background-image: -webkit-linear-gradient(top, #62c462, #51a351); background-image: -o-linear-gradient(top, #62c462, #51a351); background-image: linear-gradient(top, #62c462, #51a351);} .style_3.success:active {box-shadow: inset 0px 1px 0px #62c462, 0px 2px 0px 0px #125912, 0px 5px 3px #999; border-top:1px solid #62c462;} .style_3.success::before {box-shadow:inset 0px 1px 0px #89f589, 0px 5px 0px 0px #125912, 0px 10px 5px #999 ; border-right:solid 1px #51a351; color:#c7fcc7; background-color: #62c462; background-image: -moz-linear-gradient(top, #62c462, #51a351); background-image: -ms-linear-gradient(top, #62c462, #51a351); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); background-image: -webkit-linear-gradient(top, #62c462, #51a351); background-image: -o-linear-gradient(top, #62c462, #51a351); background-image: linear-gradient(top, #62c462, #51a351);} .style_3.success:active::before{box-shadow:inset 0px 1px 0px #62c462, 0px 5px 0px 0px #125912, 1px 1px 0px 0px #125912,2px 2px 0px 0px #125912,2px 5px 0px 0px #125912,6px 4px 2px rgba(0,0,0,.5),0px 10px 5px #999 ;} .style_3.warning{border-left:solid 1px #f89406;box-shadow: inset 0px 1px 0px #fbb450, 0px 5px 0px 0px #82510d, 0px 10px 5px #999; background-color: #FAA732; background-image: -moz-linear-gradient(top, #fbb450, #f89406); background-image: -ms-linear-gradient(top, #fbb450, #f89406); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); background-image: -webkit-linear-gradient(top, #fbb450, #f89406); background-image: -o-linear-gradient(top, #fbb450, #f89406); background-image: linear-gradient(top, #fbb450, #f89406);} .style_3.warning:active {box-shadow: inset 0px 1px 0px #fbb450, 0px 2px 0px 0px #82510d, 0px 5px 3px #999; border-top:1px solid #fbb450;} .style_3.warning::before {box-shadow:inset 0px 1px 0px #fbb450, 0px 5px 0px 0px #82510d, 0px 10px 5px #999 ; border-right:solid 1px #f89406; color:#ffeed6; background-color: #FAA732; background-image: -moz-linear-gradient(top, #fbb450, #f89406); background-image: -ms-linear-gradient(top, #fbb450, #f89406); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); background-image: -webkit-linear-gradient(top, #fbb450, #f89406); background-image: -o-linear-gradient(top, #fbb450, #f89406); background-image: linear-gradient(top, #fbb450, #f89406);} .style_3.warning:active::before{box-shadow:inset 0px 1px 0px #fbb450, 0px 5px 0px 0px #82510d, 1px 1px 0px 0px #82510d,2px 2px 0px 0px #82510d,2px 5px 0px 0px #82510d,6px 4px 2px rgba(0,0,0,.5),0px 10px 5px #999 ;} .style_4 { background-color:#4b3f39; font-family: 'Open Sans', sans-serif; font-size:12px; text-decoration:none; color:#666; text-shadow:none; position:relative; padding:10px 20px; padding-right:50px; border-radius: 5px; border:none; box-shadow: 0px 5px 0px 0px #212121, 0px 10px 5px #999; border-top:1px solid #eee;} .style_4:active { top:3px; box-shadow:0px 2px 0px 0px #212121, 0px 5px 3px #999;} .style_4::before { background-color:#666; background-image:url(../images/right_arrow.png); background-repeat:no-repeat; background-position:center center; content:""; width:20px; height:20px; position:absolute; right:15px; top:50%; margin-top:-9px; border-radius: 50%; box-shadow: inset 0px 1px 0px #19120f, 0px 1px 0px #827066;} .style_4:hover{ text-decoration:none;box-shadow: 0px 5px 0px 0px #212121, 0px 10px 5px #999;} .style_4:active:hover{box-shadow: 0px 2px 0px 0px #212121, 0px 10px 5px #999;} .style_4:active::before { top:50%; margin-top:-12px; box-shadow:0px 3px 0px #19120f, 0px 6px 3px #382e29;} .style_4.inf{box-shadow: 0px 5px 0px 0px #1e4b57, 0px 10px 5px #999;} .style_4.inf:active {box-shadow:0px 2px 0px 0px #1e4b57, 0px 5px 3px #999;} .style_4.inf::before{background-color:#14748f;} .style_4.inf:active::before {box-shadow:0px 3px 0px #1e4b57, 0px 6px 3px #382e29;} .style_4.inf:active:hover{box-shadow: 0px 2px 0px 0px #1e4b57;} .style_4.danger{box-shadow: 0px 5px 0px 0px #701714, 0px 10px 5px #999;} .style_4.danger:active {box-shadow:0px 2px 0px 0px #701714, 0px 5px 3px #999;} .style_4.danger::before{background-color:#bd362f;} .style_4.danger:active:hover{box-shadow: 0px 2px 0px 0px #701714;} .style_4.danger:active::before {box-shadow:0px 3px 0px #701714, 0px 6px 3px #382e29;} .style_4.success{box-shadow: 0px 5px 0px 0px #1e661e, 0px 10px 5px #999;} .style_4.success:active {box-shadow:0px 2px 0px 0px #1e661e, 0px 5px 3px #999;} .style_4.success::before{background-color:#229422;} .style_4.success:active:hover{box-shadow: 0px 2px 0px 0px #1e661e;} .style_4.success:active::before {box-shadow:0px 3px 0px #1e661e, 0px 6px 3px #382e29;} .style_4.warning{box-shadow: 0px 5px 0px 0px #8a6530, 0px 10px 5px #999;} .style_4.warning:active {box-shadow:0px 2px 0px 0px #8a6530, 0px 5px 3px #999;} .style_4.warning::before{background-color:#d18822;} .style_4.warning:active:hover{box-shadow: 0px 2px 0px 0px #8a6530;} .style_4.warning:active::before {box-shadow:0px 3px 0px #8a6530, 0px 6px 3px #382e29;} .style_1.danger,.style_1.success,.style_1.inf,.style_1.warning, .style_2.danger,.style_2.success,.style_2.inf,.style_2.warning, .style_3.danger,.style_3.success,.style_3.inf,.style_3.warning, .style_4.danger,.style_4.success,.style_4.inf,.style_4.warning{color:#fff;} /* shadows */ .text-shadow{ padding:1em; text-align:center; font-size:1.2em; line-height:1.4em; box-shadow:inset 0 0 20px rgba(0,0,0,.1)} .pad-shadow{ padding:10px 0;} .pad-shadow div.lifted{ border-radius:5px;} .lifted {position:relative;background:#fff;box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);} .lifted:before, .lifted:after { content:""; position:absolute; z-index:-2; bottom:15px; left:10px; width:50%; height:20%; -webkit-box-shadow:0 15px 10px rgba(0, 0, 0, 0.7); -moz-box-shadow:0 15px 10px rgba(0, 0, 0, 0.7); box-shadow:0 15px 10px rgba(0, 0, 0, 0.7); -webkit-transform:rotate(-3deg); -moz-transform:rotate(-3deg); -ms-transform:rotate(-3deg); -o-transform:rotate(-3deg); transform:rotate(-3deg);} .lifted:after { right:10px; left:auto; -webkit-transform:rotate(3deg); -moz-transform:rotate(3deg); -ms-transform:rotate(3deg); -o-transform:rotate(3deg); transform:rotate(3deg);} .curled{position:relative;background:#fff;box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);border-radius:0 0 120px 120px / 0 0 6px 6px;} .curled:before, .curled:after { content:""; position:absolute; z-index:-2; bottom:12px; left:10px; width:50%; height:55%; max-width:200px; -webkit-box-shadow:0 8px 12px rgba(0, 0, 0, 0.5); -moz-box-shadow:0 8px 12px rgba(0, 0, 0, 0.5); box-shadow:0 8px 12px rgba(0, 0, 0, 0.5); -webkit-transform:skew(-8deg) rotate(-3deg); -moz-transform:skew(-8deg) rotate(-3deg); -ms-transform:skew(-8deg) rotate(-3deg); -o-transform:skew(-8deg) rotate(-3deg); transform:skew(-8deg) rotate(-3deg);} .curled:after { right:10px; left:auto; -webkit-transform:skew(8deg) rotate(3deg); -moz-transform:skew(8deg) rotate(3deg); -ms-transform:skew(8deg) rotate(3deg); -o-transform:skew(8deg) rotate(3deg); transform:skew(8deg) rotate(3deg);} .perspective {position:relative;background:#fff;box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);} .perspective:before, .perspective:after {content:"";position:absolute;z-index:-2;} .perspective:before { left:80px; bottom:5px; width:50%; height:35%; max-width:200px; box-shadow:-80px 0 8px rgba(0, 0, 0, 0.4); -webkit-transform:skew(50deg); -moz-transform:skew(50deg); -ms-transform:skew(50deg); -o-transform:skew(50deg); transform:skew(50deg); -webkit-transform-origin:0 100%; -moz-transform-origin:0 100%; -ms-transform-origin:0 100%; -o-transform-origin:0 100%; transform-origin:0 100%;} .perspective:after {display:none;} .raised { position:relative; background:#fff;box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);box-shadow: 0 7px 5px -5px rgba(0, 0, 0, 0.3), 0 1px 4px rgba(0, 0, 0, 0.3);} .raised:before, .raised:after {content:"";position:absolute; z-index:-2;} .curved-vt-2 {position:relative;background:#fff;box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);} .curved-vt-2:before, .curved-vt-2:after {content:"";position:absolute;z-index:-2;} .curved-vt-2:before { top:10px; bottom:10px; left:0; right:0; box-shadow:0 0 8px rgba(0,0,0,0.6); border-radius:10px / 100px;} .curved-hz-2 {position:relative;background:#fff;box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);} .curved-hz-2:before, .curved-hz-2:after {content:"";position:absolute;z-index:-2;} .curved-hz-2:before { top:0px; bottom:0px; left:10px; right:10px; box-shadow:0 0 7px rgba(0,0,0,0.6); border-radius:100px / 10px;} /* LightBox */ .lightbox-image {position:relative;overflow:hidden;display:inline-block;z-index:99;} .lightbox-image img {position:relative;z-index:2;background:#f1f1f1;} .lightbox-image span {display:block;position:absolute;left:0;top:0;width:100%;height:100%;background: url(../images/magnifying-glass.png) no-repeat 50% 50%;z-index:1;} .video .lightbox-image span{background: url(../images/icons/play_video.png) no-repeat 50% 50%;z-index:3; opacity:.8;} .video .lightbox-image:hover span{ opacity:1;} .video{ z-index:99; position:relative;} /*--------------------------------- Code -----------------------------------*/ .description-box-pad{ padding:20px 0 0 0;} .description-box-pad2{ padding:83px 0 0 0;} .description-box-pad3{ padding:15px 0;} .description-box{ position:relative; z-index:99;} .description-box dt{ display:inline-block;} .description-box dt a{ display:inline-block;} .description-box dt a:hover{ box-shadow:none; text-decoration:none;} .description-box dt.active a{ border: 1px solid #999; border-bottom-color: #CCC; border-top-color: #3B3B3B; background: #999999; text-shadow:0 1px 1px #3B3B3B; box-shadow:none; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#3B3B3B), to(#999)); background: -webkit-linear-gradient(#3B3B3B, #999); background: -moz-linear-gradient(#3B3B3B, #999); background: -ms-linear-gradient(#3B3B3B, #999); background: -o-linear-gradient(#3B3B3B, #999); background: linear-gradient(#3B3B3B, #999); -pie-background: linear-gradient(#3B3B3B, #999);} .description-box dd{display:none;padding:15px 15px; margin:3px 0 0 0; background:#fff; border-radius:5px; position:relative;box-shadow:inset 0 1px 1px rgba(170,170,170,.8); border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999;} .description-box dd p{ padding:0 0 0 5px;} .description-box dt.active a span{background-position:0 0;} .description-box dt.active a:hover span{ opacity:1;background-position:0 0;} .code-box{ overflow:hidden; border:1px solid #eee; background:#fff; border-radius:3px; margin-top:5px;} code.small-box-code{display:block;color:#212121;padding:2px 5px;border:1px solid #eee; background:#fff; margin:8px 0; border-radius:3px; font-size:12px; font-family:Arial, Helvetica, sans-serif;} .descr_title{ padding:10px 0 5px 5px !important; font-weight:bold; font-size:1.2em;} .descr_pad{ padding-bottom:15px !important;} .descr_pad2{ padding-top:15px !important;} code.small-box-code2{display:block;color:#212121;padding:2px 5px;border:1px solid #eee; background:#fff; margin:15px 0 10px; border-radius:3px; font-size:12px; font-family:Arial, Helvetica, sans-serif;} /* ----------------- Icons Fonts ------------------*/ @font-face{ font-family: 'IcoMoon'; src: url('../fonts/icomoon-webfont.eot'); src: url('../fonts/icomoon-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/icomoon-webfont.woff') format('woff'), url('../fonts/icomoon-webfont.ttf') format('truetype'); } @font-face{ font-family: 'IcoMoonSocial'; src: url('../fonts/icomoonsocial-webfont.eot'); src: url('../fonts/icomoonsocial-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/icomoonsocial-webfont.woff') format('woff'), url('../fonts/icomoonsocial-webfont.ttf') format('truetype'); } /* input:range */ /* slider root element */ .range_slider { background:#999; height:5px; position:relative; cursor:pointer; border:1px solid #333; width:200px; float:left; clear:right; margin-top:10px; border-radius:5px; box-shadow:inset 0 0 8px #000;} /* progress bar (enabled with progress: true) */ .progress {height:5px; background-color:#C5FF00; display:none;opacity:0.6;} /* drag handle */ .handle { background:#fff; height:15px; width:15px; top:-7px; position:absolute; display:block; margin-top:1px; border:1px solid #000; cursor:move; box-shadow:0 0 3px rgba(0,0,0,.5); border-radius:14px;} /* the input field */ .range { border:1px inset #ddd; float:left; font-size:20px; margin:0 15px 0 10px !important; padding:5px 5px !important; text-align:center; width:25px !important; border-radius:5px; } /** padding **/ .pad_description{ padding:18px 0 0px;} .padtop-title{ padding-top:10px !important;} .address-pad{ padding-bottom:15px;} /* Pro Panel */ #advanced{ position:relative; z-index:998; width:100%; height:42px; top:0px; left:0;}container_24 #advanced .bg_pro{ height:39px; border-top:1px solid #292929; border-bottom:2px solid #3a3a3a; background:url(../images/panel_bg.png) 0 0 repeat-x;} #advanced .pro_logo{ background:url(../images/pro-logo.png) 0 0 no-repeat; display:block; width:62px; height:23px; float:left;} #advanced .pro_main{ width:940px; margin:6px auto;} #advanced span.trigger{display:block;position:absolute; background:url(../images/pro_button.png) 0 0 no-repeat; width:42px; height:42px; right:0; bottom:-42px; cursor:pointer;} #advanced span.trigger strong{display:block; background: url(../images/plus-minus.png) 0 0 no-repeat; width:11px; height:11px; position:absolute; right:7px; bottom:24px; opacity:0;} #advanced.closed span.trigger strong{opacity:1;} #advanced span.trigger em{display:block; background: url(../images/plus-minus.png) -11px 0 no-repeat; width:11px; height:11px; position:absolute; right:7px; bottom:24px;} .pro_menu, .pro_menu * {margin:0;padding:0;list-style:none;} .pro_menu{ padding-left:95px; float:left;} .pro_menu li {float:left; position:relative; margin-right:7px; font:14px/1.2em Arial, Helvetica, sans-serif;} .pro_menu li a {display:block; border: 1px solid #0d0d0d; border-top:1px solid #0e0e0e; border-radius: 6px; padding: 4px 26px 3px 32px; white-space: nowrap; vertical-align: middle; color: #a3a3a3; background: #272727; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#272727), to(#0f0f0f)); background: -webkit-linear-gradient(#272727, #0f0f0f); background: -moz-linear-gradient(#272727, #0f0f0f); background: -ms-linear-gradient(#272727, #0f0f0f); background: -o-linear-gradient(#272727, #0f0f0f); background: linear-gradient(#272727, #0f0f0f); -pie-background: linear-gradient(#272727, #0f0f0f); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 1px 1px #3b3b3b;} .pro_menu li a span{ display:inline-block; background:url(../images/pro_menu_arrow.png) 0 0 no-repeat; width:8px; height:5px; margin:7px 0 0 5px;} .pro_menu li a:hover span,.pro_menu li.current a span,.pro_menu li.sfHover a span{background:url(../images/pro_menu_arrow.png) 0 -5px no-repeat;} .pro_menu li a:hover,.pro_menu li.sfHover a,.pro_menu li.current a{ border: 1px solid #0d0d0d; border-top:1px solid #0e0e0e; color:#fff; background: #575757; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#575757), to(#141414)); background: -webkit-linear-gradient(#575757, #141414); background: -moz-linear-gradient(#575757, #141414); background: -ms-linear-gradient(#575757, #141414); background: -o-linear-gradient(#575757, #141414); background: linear-gradient(#575757, #141414); -pie-background: linear-gradient(#575757, #141414); text-decoration:none; box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 1px 1px #595959;} .pro_menu li:first-child a{ background:none !important;-pie-background:none !important; border:none !important; box-shadow:none; padding:4px 1px; margin:1px 3px 0 0;} .pro_menu li:first-child:hover a{ box-shadow:none; opacity:.8;} .pro_menu ul { position:absolute; z-index: 99; top: -999em; width:150px; top:33px; left:0; display:none; padding:10px 0; border: 1px solid #0d0d0d; border-top:1px solid #0e0e0e; border-radius:0 0 6px 6px; background: #272727; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#272727), to(#0f0f0f)); background: -webkit-linear-gradient(#272727, #0f0f0f); background: -moz-linear-gradient(#272727, #0f0f0f); background: -ms-linear-gradient(#272727, #0f0f0f); background: -o-linear-gradient(#272727, #0f0f0f); background: linear-gradient(#272727, #0f0f0f); -pie-background: linear-gradient(#272727, #0f0f0f); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 1px 1px #3b3b3b; } .pro_menu li li{padding:5px 0px; width:100%; margin:0; float:none; font:13px/1.2em Arial, Helvetica, sans-serif;} .pro_menu li li a,.pro_menu li.sfHover li a,.pro_menu li.current li a{background:none;-pie-background:none; border:none; display:inline-block; margin:0 0 0 20px; padding:0; box-shadow:none; color:#a8a8a8; text-shadow:none;} .pro_menu li li a:hover,.pro_menu li li.sfHover a,.pro_menu li li.current a{color:#fff;} .pro_menu ul ul { position:absolute; z-index: 99; top: -999em; width:150px; top:-10px; left:152px; padding:10px 0; display:none; border: 1px solid #0d0d0d; border-top:1px solid #0e0e0e; border-radius:6px; background: #272727; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#272727), to(#0f0f0f)); background: -webkit-linear-gradient(#272727, #0f0f0f); background: -moz-linear-gradient(#272727, #0f0f0f); background: -ms-linear-gradient(#272727, #0f0f0f); background: -o-linear-gradient(#272727, #0f0f0f); background: linear-gradient(#272727, #0f0f0f); -pie-background: linear-gradient(#272727, #0f0f0f); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 1px 1px #3b3b3b; } .pro_menu li li li a,.pro_menu li li.sfHover li a,.pro_menu li li.current li a{ color: #a8a8a8;} .pro_menu li li li a:hover,.pro_menu li li li.current a{color:#fff;}css/pro_pages_style.css~0000644075506000000310000032477412120777763014773 0ustar joaofereng/*--------------------------------- 404 page -----------------------------------*/ .pad404{ margin-top:-14px;} .pad404 h1{ font-size:72px; letter-spacing:-2px;} .pad404 h2{ margin-top:0px; padding-bottom:48px; font-size:24px;} .pad404 p{ line-height:18px; padding-bottom:18px;} /*--------------------------------- JustSlider -----------------------------------*/ #slider{ width:900px; height:500px; position:relative; overflow:hidden; padding:6px;box-shadow:inset 0 0 10px rgba(0,0,0,.1);} .slider{ width:900px; height:500px; position:relative; overflow:hidden;} .items { display:none;} /* pagination */ #slider .pagination {position:absolute;bottom:30px;left:46%;z-index:60; padding:5px 7px 5px 10px; border: 1px solid #DDD; border-left:none; border-right:none; text-shadow: 0 1px 1px white; box-shadow:0 1px 1px #fff; font: bold 11px Sans-Serif; white-space: nowrap; vertical-align: middle; color: #666; background: transparent; cursor: pointer; border-color: #ddd; background:#E0E0E0; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: inset 0 0 3px #fff;} #slider .pagination li { float:left; padding:0 3px 0 0; font-size:0; line-height:0; margin:0;} #slider .pagination a { display:block; width:16px; height:16px; background: url(../images/radio.png) 0 0 no-repeat; font-size:0; line-height:0; text-decoration:none;} #slider .pagination li.current a,#slider .pagination li a:hover {background: url(../images/radio.png) 0 -17px no-repeat;} /* directions */ .button1,.button2{ padding:5px !important; position:absolute !important; bottom:36px; z-index:99;} .button1{ left:389px;} .button2{ left:513px;} /* play/stop */ .play{ position:absolute !important; bottom:36px; right:20px; z-index:99; width:23px; height:15px;} .play span {display:none;} .play em {font-style:normal;display:block; } .paused span {display:block;} .paused em {display:none;} /* numbers */ .numStatus { display:block; padding:7px 10px 6px; position:absolute; z-index:15; bottom:30px; right:70px; text-align:center; text-decoration:none; border: 1px solid #DDD; text-shadow: 0 1px 1px white; box-shadow:0 1px 1px #fff; font: bold 11px Sans-Serif; white-space: nowrap; vertical-align: middle; color: #666; background: transparent; cursor: pointer; border-color: #ddd; border-radius:3px; background:#E0E0E0; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff;} /* banner */ .banner{ position:absolute; top:150px; width:200px; left:60px;font-family: Sans-Serif; color:#fff; background:url(../images/bg-banner.png) 0 0 repeat; padding:20px;} .banner span{font-weight:bold; font-size:25px;line-height:1.2em; display:block; padding-bottom:10px;} .poz-2{ left:570px;} /* progbar */ .progbar { background:#000; width:100%; height:2px; position:absolute; bottom:0px; left:0px; z-index:999;} /*--------------------------------- KwicksSlider -----------------------------------*/ .kwicks-wrapper{ padding:6px;box-shadow:inset 0 0 10px rgba(0,0,0,.1); width:900px;} .kwicks{list-style:none;position:relative;margin:0;padding:0 !important;height:500px; overflow:hidden;} .kwicks li{width:25%;height:500px;display:block;overflow:hidden;padding:0 !important;cursor:pointer;background:none !important; box-shadow:-5px -1px 5px rgba(0,0,0,.3);} .kwicks li.active{opacity:1;} .kwicks.horizontal li{margin-right:0;float:left} .slide-kwicks{ position:relative; width:900px;} .kwicks-banner{ position:absolute; bottom:-37px; left:0; width:100%; background:url(../images/bg-banner.png) 0 0 repeat; color:#fff;} .kwicks-banner span{ display:block;font-weight:bold; font-size:22px;line-height:1.2em; display:block; padding:10px 0 10px 20px;} .kwicks-banner p{ padding:0 20px 20px 20px;} .kwicks li img{-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .kwicks:hover li img,.kwicks:hover li .kwicks-banner{opacity:.4} .kwicks:hover li:hover img,.kwicks:hover li:hover .kwicks-banner{opacity:1;} /*--------------------------------- Gallery -----------------------------------*/ #simple_gallery{ width:912px; height:620px; position:relative; overflow:hidden;} .simple_gallery{ width:900px; height:500px; position:relative; overflow:hidden;} .gallery_bg{width:900px; height:500px; position:relative; overflow:hidden; padding:6px;box-shadow:inset 0 0 10px rgba(0,0,0,.1);} .pag {width:100%;padding:10px 0;margin:5px 0;position:relative;} .img-pags {position:static;left:33px;z-index:1;display:block; } .img-pags ul {margin:0;} .img-pags li { margin:0 5px 0 0;height:80px; width:80px;} .img-pags li a {position:relative;display:block;padding:5px; -webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .img-pags li a img{ opacity:.6;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .img-pags li a span{ display:block; background:#000;} .img-pags li.active a,.img-pags li a:hover{box-shadow:inset 0 0 7px rgba(0,0,0,.6);} .img-pags li.active a img,.img-pags li a:hover img{ opacity:1;} .button3,.button4{ padding:5px 3px !important; position:absolute !important; top:35px;} .button3{ left:0;} .button4{ right:0;} #simple_gallery .button1{ left:719px;} #simple_gallery .button2{ left:750px;} #simple_gallery .play,#simple_gallery .numStatus{ box-shadow:none;} /*--------------------------------- Typografy -----------------------------------*/ .title{ display:block; position:relative; padding-bottom:15px; padding-top:50px;} .title2{ padding:20px 0 15px;} .title3{ padding:0px 0 15px;} .title-padding{ padding:5px 0;} blockquote {display: block;quotes: none;background: url(../images/blockquote.png) 0 0 no-repeat;padding:12px 0 12px 30px;} blockquote em{ display:inline-block; margin-top:10px;} .quotes_2 {position: relative;background: #F3F3F3;border: 1px solid #E8E8E8;border-radius: 3px;padding: 12px 10px 15px 18px;margin: 6px 0 10px 0;border-image: initial;} .quotes_2 blockquote {color: #656565; background:none; padding:0;} .quotes_2 span {display: block;background: url(../images/quotes2.png) 0 0 no-repeat;width: 18px;height: 10px;position: absolute;bottom: -10px;left: 41px;} .quotes-links {padding: 11px 0 10px 0;} .quotes_3{background: url(../images/quote-ul.gif) 5px 10px no-repeat; padding-left:10px; text-indent:23px;} /*-- Buttons --*/ .btn,.description-light,.exampletip{ display:inline-block; border: 1px solid #DDD; border-radius: 3px; text-shadow: 0 1px 1px white; box-shadow:0 1px 1px #fff; font: bold 11px Sans-Serif; padding: 6px 10px; white-space: nowrap; vertical-align: middle; color: #666; background: transparent; cursor: pointer; border-color: #ddd; background-color:#E0E0E0; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff;} .description-light span{ display:inline-block; background:url(../images/description-arrow.png) 0 -4px no-repeat; width:7px; height:4px; margin:5px 0 0 4px; -webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .description-dark span{ display:inline-block; background:url(../images/description-arrow-white.png) 0 -4px no-repeat; width:7px; height:4px; margin:5px 0 0 4px; -webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .btn:hover,.description-light:hover,.exampletip:hover{ box-shadow:inset 0 0 3px #fff;border-color: #999; text-decoration:none;} .description-light:hover span{opacity:.8;} .description-light:active span{background-position:0 0;} .btn:active,.description-light:active { border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999; box-shadow:inset 0 1px 2px #aaa; background: -webkit-linear-gradient(top, #E6E6E6, gainsboro); background: -moz-linear-gradient(top, #E6E6E6, gainsboro); background: -ms-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro); -pie-background: linear-gradient(top, #E6E6E6, gainsboro);} .description-dark{ display:inline-block; border: 1px solid #666; border-bottom:1px solid #3B3B3B; border-radius: 3px; font: bold 11px Sans-Serif; padding: 6px 10px; white-space: nowrap; vertical-align: middle; color: #fff; background: transparent; cursor: pointer; background: #3B3B3B; text-shadow:0 1px 1px #3B3B3B; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#797979), to(#3B3B3B)); background: -webkit-linear-gradient(#797979, #3B3B3B); background: -moz-linear-gradient(#797979, #3B3B3B); background: -ms-linear-gradient(#797979, #3B3B3B); background: -o-linear-gradient(#797979, #3B3B3B); background: linear-gradient(#797979, #3B3B3B); -pie-background: linear-gradient(#797979, #3B3B3B); box-shadow: 0 1px 2px rgba(0,0,0,0.9);} .description-dark:hover{ box-shadow:none; text-decoration:none;} .description-dark:active { border: 1px solid #999; border-bottom-color: #CCC; border-top-color: #3B3B3B; background: #3B3B3B; text-shadow:0 1px 1px #3B3B3B; box-shadow:none; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#3B3B3B), to(#999)); background: -webkit-linear-gradient(#3B3B3B, #999); background: -moz-linear-gradient(#3B3B3B, #999); background: -ms-linear-gradient(#3B3B3B, #999); background: -o-linear-gradient(#3B3B3B, #999); background: linear-gradient(#3B3B3B, #999); -pie-background: linear-gradient(#3B3B3B, #999);} /* Color */ .success{color:#fff; box-shadow:0 1px 2px rgba(0,0,0,0.4); text-shadow:none; background-color: #5BB75B; background-image: -moz-linear-gradient(top, #62c462, #51a351); background-image: -ms-linear-gradient(top, #62c462, #51a351); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); background-image: -webkit-linear-gradient(top, #62c462, #51a351); background-image: -o-linear-gradient(top, #62c462, #51a351); background-image: linear-gradient(top, #62c462, #51a351); -pie-background: linear-gradient(#62c462, #51a351); border-color: #51A351 #51A351 #387038;} .success:hover{ border-color:#295B29; box-shadow:none;} .success:active{box-shadow:inset 0 1px 2px rgba(0,0,0,.3); background: #3E933E; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#3E933E), to(#62C462)); background: -webkit-linear-gradient(#3E933E, #62C462); background: -moz-linear-gradient(#3E933E, #62C462); background: -ms-linear-gradient(#3E933E, #62C462); background: -o-linear-gradient(#3E933E, #62C462); background: linear-gradient(#3E933E, #62C462); -pie-background: linear-gradient(#3E933E, #62C462); border-bottom:1px solid #62C462;} .warning{color:#fff; box-shadow:0 1px 2px rgba(0,0,0,0.4); text-shadow:none; background-color: #FAA732; background-image: -moz-linear-gradient(top, #fbb450, #f89406); background-image: -ms-linear-gradient(top, #fbb450, #f89406); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); background-image: -webkit-linear-gradient(top, #fbb450, #f89406); background-image: -o-linear-gradient(top, #fbb450, #f89406); background-image: linear-gradient(top, #fbb450, #f89406); -pie-background: linear-gradient(#fbb450, #f89406); border-color: #F89406 #F89406 #AD6704;} .warning:hover{ border-color:#B67211; box-shadow:none;} .warning:active{box-shadow:inset 0 1px 2px rgba(0,0,0,.2); background: #f89406; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#f89406), to(#fbb450)); background: -webkit-linear-gradient(#f89406, #fbb450); background: -moz-linear-gradient(#f89406, #fbb450); background: -ms-linear-gradient(#f89406, #fbb450); background: -o-linear-gradient(#f89406, #fbb450); background: linear-gradient(#f89406, #fbb450); -pie-background: linear-gradient(#f89406, #fbb450); border-bottom:1px solid #fbb450;} .danger{color:#fff; box-shadow:0 1px 2px rgba(0,0,0,0.4); text-shadow:none; background-color: #DA4F49; background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); background-image: linear-gradient(top, #ee5f5b, #bd362f); -pie-background: linear-gradient(#ee5f5b, #bd362f); border-color: #BD362F #BD362F #802420;} .danger:hover{ border-color:#8D2520; box-shadow:none;} .danger:active{box-shadow:inset 0 1px 2px rgba(0,0,0,.3); background: #bd362f; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#bd362f), to(#ee5f5b)); background: -webkit-linear-gradient(#bd362f, #ee5f5b); background: -moz-linear-gradient(#bd362f, #ee5f5b); background: -ms-linear-gradient(#bd362f, #ee5f5b); background: -o-linear-gradient(#bd362f, #ee5f5b); background: linear-gradient(#bd362f, #ee5f5b); -pie-background: linear-gradient(#bd362f, #ee5f5b); border-bottom:1px solid #ee5f5b;} .inf{color:#fff; box-shadow:0 1px 2px rgba(0,0,0,0.4); text-shadow:none; background-color: #49AFCD; background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); background-image: linear-gradient(top, #5bc0de, #2f96b4); -pie-background: linear-gradient(#5bc0de, #2f96b4); border-color: #2F96B4 #2F96B4 #1F6377;} .inf:hover{ border-color:#1A687F; box-shadow:none;} .inf:active{box-shadow:inset 0 1px 2px rgba(0,0,0,.3); background: #2f96b4; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#2f96b4), to(#5bc0de)); background: -webkit-linear-gradient(#2f96b4, #5bc0de); background: -moz-linear-gradient(#2f96b4, #5bc0de); background: -ms-linear-gradient(#2f96b4, #5bc0de); background: -o-linear-gradient(#2f96b4, #5bc0de); background: linear-gradient(#2f96b4, #5bc0de); -pie-background: linear-gradient(#2f96b4, #5bc0de); border-bottom:1px solid #5bc0de;} /* Size */ .btn.small{ font-size:11px;} .btn.medium{ font-size:1.3em;} .btn.large{ font-size:1.6em;} .btn-indent{ padding:5px 0; overflow:hidden;} .btn-indent3{ padding:10px 0;} .btn-indent2{ padding:5px 0;} .pages{ position:relative; overflow:hidden;} .pages li{ float:left;} .pages li .btn.prev,.pages li .btn.next{ padding:5px;} .pages li.current a{ border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999; box-shadow:inset 0 1px 2px #aaa; background: -webkit-linear-gradient(top, #E6E6E6, gainsboro); background: -moz-linear-gradient(top, #E6E6E6, gainsboro); background: -ms-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro); -pie-background: linear-gradient(top, #E6E6E6, gainsboro);} .btn.page{ box-shadow:none; border-radius:0;} /* directions */ .btn.prev,.btn.next{ box-shadow:none;} .btn.prev{ border-radius:3px 0 0 3px; padding-left:5px;} .btn.next{ border-radius:0 3px 3px 0; padding-right:5px;} .btn span{ width:16px; height:16px;} .btn.prev span{ display:inline-block; background: url(../images/icons/icon-previous.png) 0 0 no-repeat;margin:0 3px 0 0;} .btn.next span{ display:inline-block; background: url(../images/icons/icon-next.png) 0 0 no-repeat;margin:0 0 0 3px} /* with Icons */ .btn.sign-in span{ display:inline-block; background: url(../images/icons/icons-light.png) -1116px -36px;margin:0 7px 0 0} .btn.sign-out span{ display:inline-block; background: url(../images/icons/icons-light.png) -1152px -36px;margin:0 7px 0 0} .btn.comment span{ display:inline-block; background: url(../images/icons/icons-light.png) -648px 0;margin:0 7px 0 0} .btn.site-map span{ display:inline-block; background: url(../images/icons/icons-light.png) -1224px -36px;margin:0 7px 0 0} .btn.refresh span{ display:inline-block; background: url(../images/icons/icons-light.png) -936px -36px;margin:0 7px 0 0} .btn.comment2 span{ display:inline-block; background: url(../images/icons/icons-color.png) -612px 0;margin:0 7px 0 0} .btn.settings span{ display:inline-block; background: url(../images/icons/icons-color.png) -972px -36px;margin:0 7px 0 0} .btn.calend span{ display:inline-block; background: url(../images/icons/icons-color.png) -468px 0;margin:0 7px 0 0} .btn.print span{ display:inline-block; background: url(../images/icons/icons-color.png) -648px -36px;margin:0 7px 0 0} .btn.dwload span{ display:inline-block; background: url(../images/icons/icons-color.png) -1476px -36px;margin:0 7px 0 0} .btn.bookmark span{ display:inline-block; background: url(../images/icons/icons-color.png) -324px 0;margin:0 7px 0 0} .btn.print2 span{ display:inline-block; background: url(../images/icons/icons-dark.png) -720px -36px;margin:0 7px 0 0} #breadcrumbs-one{ background: #eee; border-width: 1px; border-style: solid; border-color: #f5f5f5 #e5e5e5 #ccc; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-shadow: 0 0 2px rgba(0,0,0,.2); -webkit-box-shadow: 0 0 2px rgba(0,0,0,.2); box-shadow: 0 0 2px rgba(0,0,0,.2); overflow: hidden; width: 100%; } #breadcrumbs-one li{float: left;} #breadcrumbs-one a{ padding: .7em 1em .7em 2em; float: left; text-decoration: none; color: #444; position: relative; text-shadow: 0 1px 0 rgba(255,255,255,.5); background-color: #ddd; background-image: -webkit-gradient(linear, left top, right bottom, from(#f5f5f5), to(#ddd)); background-image: -webkit-linear-gradient(left, #f5f5f5, #ddd); background-image: -moz-linear-gradient(left, #f5f5f5, #ddd); background-image: -ms-linear-gradient(left, #f5f5f5, #ddd); background-image: -o-linear-gradient(left, #f5f5f5, #ddd); background-image: linear-gradient(to right, #f5f5f5, #ddd); } #breadcrumbs-one li:first-child a{ padding-left: 1em; -moz-border-radius: 5px 0 0 5px; -webkit-border-radius: 5px 0 0 5px;border-radius: 5px 0 0 5px;} #breadcrumbs-one a:hover{ background: #fff;} #breadcrumbs-one a::after, #breadcrumbs-one a::before{ content: ""; position: absolute; top: 50%; margin-top: -1.5em; border-top: 1.5em solid transparent; border-bottom: 1.5em solid transparent; border-left: 1em solid; right: -1em; } #breadcrumbs-one a::after{z-index: 2;border-left-color: #ddd;} #breadcrumbs-one a::before{ border-left-color: #ccc;right: -1.1em;z-index: 1;} #breadcrumbs-one a:hover::after{ border-left-color: #fff;} #breadcrumbs-one .current, #breadcrumbs-one .current:hover, #breadcrumbs-two .current, #breadcrumbs-two .current:hover, #breadcrumbs-four .current, #breadcrumbs-four .current:hover{font-weight: bold;background: none;} #breadcrumbs-one .current::after, #breadcrumbs-one .current::before, #breadcrumbs-two .current::after, #breadcrumbs-two .current::before, #breadcrumbs-four .current::after, #breadcrumbs-four .current::before{content: normal;} /*-----------------------------------*/ #breadcrumbs-two{overflow: hidden;width: 100%;} #breadcrumbs-two li{ float: left; margin: 0 .5em 0 1em; } #breadcrumbs-two a{ background: #ddd; padding: .7em 1em; float: left; text-decoration: none; color: #444; text-shadow: 0 1px 0 rgba(255,255,255,.5); position: relative; } #breadcrumbs-two a:hover{ background: #99db76;} #breadcrumbs-two a::before{ content: ""; position: absolute; top: 50%; margin-top: -1.5em; border-width: 1.5em 0 1.5em 1em; border-style: solid; border-color: #ddd #ddd #ddd transparent; left: -1em; } #breadcrumbs-two a:hover::before{border-color: #99db76 #99db76 #99db76 transparent;} #breadcrumbs-two a::after{ content: ""; position: absolute; top: 50%; margin-top: -1.5em; border-top: 1.5em solid transparent; border-bottom: 1.5em solid transparent; border-left: 1em solid #ddd; right: -1em; } #breadcrumbs-two a:hover::after{border-left-color: #99db76;} /* ------------------------------------------- */ #breadcrumbs-four{ overflow: hidden;width: 100%;} #breadcrumbs-four li{float: left;margin: 0 .5em 0 1em;} #breadcrumbs-four a{ background: #ddd; padding: .7em 1em; float: left; text-decoration: none; color: #444; text-shadow: 0 1px 0 rgba(255,255,255,.5); position: relative; } #breadcrumbs-four a:hover{background: #85dbf4;} #breadcrumbs-four a::before, #breadcrumbs-four a::after{ content:''; position:absolute; top: 0; bottom: 0; width: 1em; background: #ddd; -webkit-transform: skew(-10deg); -moz-transform: skew(-10deg); -ms-transform: skew(-10deg); -o-transform: skew(-10deg); transform: skew(-10deg); } #breadcrumbs-four a::before{ left: -.5em; -webkit-border-radius: 5px 0 0 5px; -moz-border-radius: 5px 0 0 5px; border-radius: 5px 0 0 5px; } #breadcrumbs-four a:hover::before{background: #85dbf4;} #breadcrumbs-four a::after{ right: -.5em; -webkit-border-radius: 0 5px 5px 0; -moz-border-radius: 0 5px 5px 0; border-radius: 0 5px 5px 0; } #breadcrumbs-four a:hover::after{ background: #85dbf4;} .breadcrumbs-indent{ padding:5px 0 15px;} /* Other elements */ ins{background:#000;padding:0 5px;text-decoration:none;color:#fff;} em{color:#000;} del{text-decoration:line-through;} abbr,dfn{cursor:help;color:#000;} dfn{letter-spacing:1px;font-size:13px;font-family:Verdana, Geneva, sans-serif;} sup,sub{font-size:0.8em;} sub{vertical-align:bottom} .elements-list small{font-size:10px;font-family:Verdana,Geneva,sans-serif;} .elements-list big{font-size:21px;} .elements-list q{font-family:"Courier New",Courier,monospace;color:#000;font-size:15px;} abbr,acronym{text-transform:uppercase;border-bottom:1px dotted #000;font-size:11px;} .elements-list code{display:block; float:right;color:#212121;padding:2px 5px;border:1px solid #eee; border-radius:3px; font-size:12px; font-family:Arial, Helvetica, sans-serif; background:#fff;} .elements-list li{ overflow:hidden; margin-bottom:5px; background:none; padding:0;} /* lists */ ol{ list-style-position:inside;} ol li{ padding:2px 0;} ol li a{color:#2f2f2f;} ul.list1 li{ background:url(../images/ul_list1_marker.png) 0 7px no-repeat; padding:2px 0 2px 15px;} ul.list2 li{background:url(../images/ul_list2_marker.png) 0 10px no-repeat; border-top:1px dotted #ddd; padding:5px 0 6px 15px;} ul.list2 li:first-child{ border-top:none;} ul.list1 li a,ul.list2 li a{color:#2f2f2f;} dl dt{ font-weight:bold; padding-bottom:5px;} dl dd{ padding-bottom:15px;} ol ul{ padding:2px 0 2px 20px;} ol ul li{ padding:2px 0 2px 15px !important;} .list3{ list-style-type:decimal-leading-zero;} .list-wrapper{ position:relative;} .list-car {overflow:hidden;} .list-wrapper .btn.next,.list-wrapper .btn.prev{ position:absolute; top:-43px; right:0; padding:5px;} .list-wrapper .btn.prev{ right:31px;} /* tables */ table { max-width: 100%; border-collapse: collapse; border-spacing: 0;} .table { width: 100%; margin-bottom: 18px;} .table th, .table td { padding: 8px; line-height: 18px; text-align: left; border-top: 1px solid #ddd;} .table th { font-weight: bold; vertical-align: bottom;} .table td { vertical-align: top;} .table thead:first-child tr th, .table thead:first-child tr td { border-top: 0;} .table tbody + tbody {border-top: 2px solid #ddd;} .table-condensed th, .table-condensed td { padding: 4px 5px;} .table-bordered { border: 1px solid #ddd; border-collapse: separate; *border-collapse: collapsed;border-radius: 4px;} .table-bordered th + th, .table-bordered td + td, .table-bordered th + td, .table-bordered td + th { border-left: 1px solid #ddd;} .table-bordered thead:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child td { border-top: 0;} .table-bordered thead:first-child tr:first-child th:first-child, .table-bordered tbody:first-child tr:first-child td:first-child {border-radius: 4px 0 0 0;} .table-bordered thead:first-child tr:first-child th:last-child, .table-bordered tbody:first-child tr:first-child td:last-child {border-radius: 0 4px 0 0;} .table-bordered thead:last-child tr:last-child th:first-child, .table-bordered tbody:last-child tr:last-child td:first-child {border-radius: 0 0 0 4px;} .table-bordered thead:last-child tr:last-child th:last-child, .table-bordered tbody:last-child tr:last-child td:last-child {border-radius: 0 0 4px 0;} .table-striped tbody tr:nth-child(odd) td, .table-striped tbody tr:nth-child(odd) th {background-color: #f9f9f9;} .table-striped2 thead th,.table-striped2 tbody tr td:first-child {background-color: #f9f9f9;} /* Information blocks */ .info{ padding:5px; font-weight:bold; display:inline-block; background:#999; border-radius:3px; color:#fff;} .info_success{ background:#468847;} .info_warning{ background:#F89406} .info_important{ background:#B94A48} .info_info{ background:#3A87AD} .info-indent{ margin:5px 15px 15px 0; float:left; min-width:100px; text-align:center;} /*--------------------------------- Layouts -----------------------------------*/ /* Layouts navigation */ .layouts-menu,.icons-menu{ position:relative;padding:0; width:100%; border-bottom:1px solid #eee; float:left;} .layouts-menu li,.icons-menu li{ float:left; position:relative; margin-left:4px; cursor:pointer;} .layouts-menu li a,.icons-menu li a{ display:block; width:70px; height:32px; position:relative; left:0;top:4px; border: 1px solid #DDD; border-radius: 3px; text-shadow: 0 1px 1px white; font: bold 11px Sans-Serif; white-space: nowrap; vertical-align: middle; color: #666; cursor: pointer; border-color: #ddd; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow:inset 0 0 3px #fff;} .icons-menu li a{ padding:9px 0; text-align:center; height:14px;} .layouts-menu li a span{ display:block; width:70px; height:32px;background-position: center 8px;background-repeat:no-repeat;} .layouts-menu li.layout1 a span{ background-image:url(../images/full-width.png);} .layouts-menu li.layout2 a span{ background-image:url(../images/layouts-img2.png);} .layouts-menu li.layout3 a span{ background-image:url(../images/layouts-img3.png);} .layouts-menu li.layout4 a span{ background-image:url(../images/layouts-img4.png);} .layouts-menu li.layout5 a span{ background-image:url(../images/layouts-img6.png);} .layouts-menu li.layout6 a span{ background-image:url(../images/layouts-img5.png);} .layouts-menu li.layout7 a span{ background-image:url(../images/layouts-img7.png);} .layouts-menu li.layout8 a span{ background-image:url(../images/layouts-img8.png);} .layouts-menu li.table1 a span{ background-image:url(../images/table1.png);} .layouts-menu li.table2 a span{ background-image:url(../images/table2.png);} .layouts-menu li.table3 a span{ background-image:url(../images/table3.png);} .layouts-menu li.table4 a span{ background-image:url(../images/table4.png);} .layouts-menu li.portfolio1 a span{ background-image:url(../images/portfolio-1col.png);} .layouts-menu li.portfolio2 a span{ background-image:url(../images/portfolio-2col.png);} .layouts-menu li.portfolio2_capt a span{ background-image:url(../images/portfolio-2col+capt.png);} .layouts-menu li.portfolio3 a span{ background-image:url(../images/portfolio-3col.png);} .layouts-menu li.portfolio3_capt a span{ background-image:url(../images/portfolio-3col+capt.png);} .layouts-menu li.portfolio4 a span{ background-image:url(../images/portfolio-4col.png);} .layouts-menu li.portfolio4_capt a span{ background-image:url(../images/portfolio-4col+capt.png);} .layouts-menu li:hover a,.layouts-menu li a.current,.icons-menu li:hover a,.icons-menu li a.current{background:#fff;-pie-background: linear-gradient(#fff, #fff); } .layouts-menu li:hover span{ opacity:.8;} .layouts-menu li a.current,.icons-menu li a.current{ top:2px;} .icons-menu li a:hover{ text-decoration:none;} .tabs{ width:970px; margin:0 auto; padding-bottom:20px;} .tab-content{ width:970px; margin:0 auto; box-shadow:0 1px 2px rgba(0,0,0,.2); background:#fff; padding:20px 0; margin-top:-1px;} .tabs.tabs4 .tab-content{ padding-bottom:0;} .tabs5{ padding:10px 0 0 0;} .tabs5 .tab-content{ width:620px; box-shadow:0 1px 2px rgba(0,0,0,.2); padding:0; margin-top:-1px;} .tabs5 .tab-content .inner{ padding:20px 0 0px 15px;} /* structuce */ .structuce{ background:#f8f7f7; border-radius:5px; color:#fff; font-size:15px; font-weight:bold; padding:5px; box-shadow:inset 0 0 4px 2px rgba(0,0,0,.1); margin-bottom:20px;} .structuce.structuce2{ padding:3px;} .struct{ background:#949292; margin:5px; padding:10px; text-align:center; border-radius:5px; box-shadow:inset 0 0 4px 2px rgba(0,0,0,.2);} .structuce.structuce2 .struct{ margin:0; box-shadow:none; border-top:1px solid #666; border-radius:0; padding:3px; background:#ccc;} .structuce.structuce2 .struct:first-child{ border-top:none;} .structuce.structuce2 .struct2{ border:1px dotted #666; width:50%; margin:0 auto; padding:20px 10px; box-shadow:inset 0 0 4px 2px rgba(0,0,0,.05);} .structuce.structuce2 .struct2-content{ padding:45px 10px;} .structuce.structuce2 .struct3{ background:#999} .struct-aside{ width:30%; padding:50px 10px;} .struct-section{ width:63%; padding:50px 10px;} .struct-main{ background:#fff; width:60%; margin:10px auto; padding:5px; border:1px solid #ddd; border-radius:5px; box-shadow:inset 0 0 4px 2px rgba(0,0,0,.1);} .struct-content{ padding:50px 10px;} /* ------ */ #main{ width:1000px; margin:0 auto; background:#fff;} .full_width_bg{ width:100%; background:#ddd;} .header_box,.footer_box{ width:960px; margin:0 auto; position:relative; overflow:hidden;} /* Grid */ .grid-row{ padding:7px 0;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .grid-box{ border: 1px solid #DDD; border-radius: 3px; text-shadow: 0 1px 1px white; -webkit-box-shadow: 0 1px 1px #fff; -moz-box-shadow: 0 1px 1px #fff; box-shadow: 0 1px 1px #fff; font: bold 11px Sans-Serif; padding:7px 0px; white-space: nowrap; vertical-align: middle; color: #666; background: transparent; border-color: #ddd; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff; -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff; box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff; -webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .grid-box:hover{ border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999; -webkit-box-shadow: inset 0 1px 2px #aaa; -moz-box-shadow: inset 0 1px 2px #aaa; box-shadow: inset 0 1px 2px #aaa; background: -webkit-linear-gradient(top, #E6E6E6, gainsboro); background: -moz-linear-gradient(top, #E6E6E6, gainsboro); background: -ms-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro); background: linear-gradient(top, #E6E6E6, gainsboro); -pie-background: linear-gradient(top, #E6E6E6, gainsboro);} .grid-box2{ border-radius:5px; -webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease; background:transparent; padding:0;} .grid-row2:hover .grid-box2{ background:#f5f4f4;} /* Images */ .image_left{ float:left; margin:0.2em 1em 0.2em 0;} .image_right{ float:right; margin:0.2em 0 0.2em 1em;} .image_centered{ display:block; text-align:center; margin:0.2em 0 0.5em;} .image_style1{display:inline-block; border:1px solid #999; padding:2px;} .image_style1_marg{ margin-top:-5px;} .image_style2 img,.image_style3 img{border-radius:8px;} .image_style3{display:inline-block; box-shadow:inset 0 0 2px rgba(0,0,0,.5); padding:4px; border-radius:10px;} .image_with_capt{ margin-bottom:1em;} .image_round{ display:block; border-radius:60px; background: url(../images/stock_images/120x120_1.jpg) 0 0 no-repeat; width:120px; height:120px;} .image_card{box-shadow: inset 0 0 1px rgba(0,0,0,.8), inset 0 2px 0 rgba(255,255,255,.5), inset 0 -1px 0 rgba(0,0,0,.4);border-radius: 20px;display:block;background: url(../images/stock_images/120x120_2.jpg) 0 0 no-repeat;width:120px; height:120px;} .image_embossed{box-shadow: inset 0 0 2px rgba(0,0,0,.8), inset 0 2px 0 rgba(255,255,255,.5), inset 0 -7px 0 rgba(0,0,0,.6), inset 0 -9px 0 rgba(255,255,255,.3);border-radius: 20px;display:block;background: url(../images/stock_images/120x120_3.jpg) 0 0 no-repeat;width:120px; height:120px;} .image_soft-embossed{box-shadow: inset 0 0 4px rgba(0,0,0,1), inset 0 2px 1px rgba(255,255,255,.5), inset 0 -9px 2px rgba(0,0,0,.6), inset 0 -12px 2px rgba(255,255,255,.3);border-radius: 20px;display:block;background: url(../images/stock_images/120x120_4.jpg) 0 0 no-repeat;width:120px; height:120px;} .image_cut_out{box-shadow: 0 1px 0 rgba(255,255,255,.2), inset 0 4px 5px rgba(0,0,0,.6), inset 0 1px 0 rgba(0,0,0,.6); border-radius: 20px;display:block;background: url(../images/stock_images/120x120_5.jpg) 0 0 no-repeat;width:120px; height:120px;} .image_morphing_glowing{display:block;background: url(../images/stock_images/120x120_6.jpg) 0 0 no-repeat;width:120px; height:120px;border-radius: 20px; -webkit-transition: 1s;-moz-transition: 1s;transition: 1s;} .image_morphing_glowing:hover { box-shadow: 0 0 20px rgba(0,0,0,.6), inset 0 0 20px rgba(0,0,0,1); -webkit-border-radius: 60em; -moz-border-radius: 60em; border-radius: 60em;} .image_glossy{box-shadow: inset 0 -1px 0 rgba(0,0,0,.5);border-radius: 20px;display:block;width:120px; height:120px; position:relative;} .image_glossy span{display:block;background: url(../images/stock_images/120x120_7.jpg) 0 0 no-repeat;width:120px; height:120px;border-radius: 20px;} .image_glossy:after { position: absolute; content: ' '; width: 100%; height: 50%; top: 0; left: 0; border-radius: 20px; background: -moz-linear-gradient(top, rgba(255,255,255,0.7) 0%, rgba(255,255,255,.1) 100%); background: -o-linear-gradient(top, rgba(255,255,255,0.7) 0%, rgba(255,255,255,.1) 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.7)), color-stop(100%,rgba(255,255,255,.1))); background: linear-gradient(top, rgba(255,255,255,0.7) 0%,rgba(255,255,255,.1) 100%);} .image_reflection{display:block;width:120px; height:120px; position:relative;} .image_reflection span{display:block;background: url(../images/stock_images/120x120_8.jpg) 0 0 no-repeat;width:120px; height:120px;border-radius: 20px;} .image_reflection:after { position: absolute; content: ' '; width: 100%; height: 30px; bottom: -31px; left: 0; border-top-left-radius: 20px; border-top-right-radius: 20px; background: -moz-linear-gradient(top, rgba(0,0,0,.3) 0%, rgba(255,255,255,0) 100%); background: -o-linear-gradient(top, rgba(0,0,0,.3) 0%, rgba(255,255,255,0) 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(0,0,0,.3)), color-stop(100%,rgba(255,255,255,0))); background: linear-gradient(top, rgba(0,0,0,.3) 0%,rgba(255,255,255,0) 100%); -pie-background: linear-gradient(top, rgba(0,0,0,.3) 0%,rgba(255,255,255,0) 100%);} .pad-image{ padding:8px 10px 20px 0; position:relative; float:left;} /* hovers */ .view {width: 300px;height: 200px;margin:0 0 15px 0;position: relative;text-align: center;cursor: default;background: #fff;overflow:hidden;} .view .mask, .view .content {width: 300px;height: 200px;position: absolute;overflow: hidden;top: 0;left: 0} .view img {display: block;position: relative;} .view h2 {text-transform: uppercase;color: #fff;text-align: center;position: relative;font-size: 17px;padding: 10px;background: rgba(0, 0, 0, 0.8);margin: 20px 0 0 0} .view p {font-family: Georgia, serif;font-style: italic;font-size: 12px;position: relative;color: #fff;padding: 10px 20px 20px;text-align: center} .view a.btn {display: inline-block;text-decoration: none;padding: 7px 14px;background: #000;color: #fff;text-transform: uppercase;box-shadow: 0 0 1px #000; border:none; border-radius:0; text-shadow:none;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .view a.btn:hover { background:#fff; color:#000;} /* first hover */ .view_first img {-moz-transition: all 0.2s linear;-webkit-transition: all 0.2s linear;-o-transition: all 0.2s linear;transition: all 0.2s linear;} .view_first .mask {opacity: 0;background-color: rgba(219,127,8, 0.7);-moz-transition: all 0.4s ease-in-out;-webkit-transition: all 0.4s ease-in-out;-o-transition: all 0.4s ease-in-out;transition: all 0.4s ease-in-out;} .view_first h2 {opacity: 0; -moz-transform: translateY(-100px); -webkit-transform: translateY(-100px); -o-transform: translateY(-100px);transform: translateY(-100px); -moz-transition: all 0.2s ease-in-out;-webkit-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_first p {opacity: 0; -moz-transform: translateY(100px);-webkit-transform: translateY(100px);-o-transform: translateY(100px);transform: translateY(100px); -moz-transition: all 0.2s linear;-webkit-transition: all 0.2s linear;-o-transition: all 0.2s linear;transition: all 0.2s linear;} .view_first a.btn{opacity: 0;-moz-transition: all 0.2s ease-in-out;-webkit-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_first:hover img {-moz-transform: scale(1.1);-webkit-transform: scale(1.1);-o-transform: scale(1.1);transform: scale(1.1);} .view_first:hover .mask {opacity: 1;} .view_first:hover h2, .view_first:hover p, .view_first:hover a.btn {opacity: 1;-moz-transform: translateY(0px); -webkit-transform: translateY(0px); -o-transform: translateY(0px);transform: translateY(0px);} .view_first:hover p {-moz-transition-delay: 0.1s;-webkit-transition-delay: 0.1s;-o-transition-delay: 0.1s;transition-delay: 0.1s;} .view_first:hover a.btn {-moz-transition-delay: 0.2s;-webkit-transition-delay: 0.2s;-o-transition-delay: 0.2s;transition-delay: 0.2s;} /* second hover */ .view_second img {-moz-transition: all 0.2s ease-in;-webkit-transition: all 0.2s ease-in;-o-transition: all 0.2s ease-in;transition: all 0.2s ease-in;} .view_second .mask { background-color: rgba(115,146,184, 0.7); width: 300px; padding: 60px; height: 300px; opacity: 0; -webkit-transform: translate(265px, 145px) rotate(45deg);-moz-transform: translate(265px, 145px) rotate(45deg);-o-transform: translate(265px, 145px) rotate(45deg);transform: translate(265px, 145px) rotate(45deg); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_second h2 { border-bottom: 1px solid rgba(0, 0, 0, 0.3); background: transparent; margin: 20px 40px 0px 40px; -webkit-transform: translate(200px, -200px);-moz-transform: translate(200px, -200px);-o-transform: translate(200px, -200px);transform: translate(200px, -200px); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_second p { -webkit-transform: translate(-200px, 200px);-moz-transform: translate(-200px, 200px);-o-transform: translate(-200px, 200px);transform: translate(-200px, 200px); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_second a.btn { -webkit-transform: translate(0px, 100px);-moz-transform: translate(0px, 100px);-o-transform: translate(0px, 100px);transform: translate(0px, 100px); -webkit-transition: all 0.2s 0.1s ease-in-out;-moz-transition: all 0.2s 0.1s ease-in-out;-o-transition: all 0.2s 0.1s ease-in-out;transition: all 0.2s 0.1s ease-in-out;} .view_second:hover .mask {opacity:1; -webkit-transform: translate(-80px, -125px) rotate(45deg);-moz-transform: translate(-80px, -125px) rotate(45deg);-o-transform: translate(-80px, -125px) rotate(45deg);} .view_second:hover h2 { -webkit-transform: translate(0px,0px);-moz-transform: translate(0px,0px);-o-transform: translate(0px,0px);transform: translate(0px,0px); -webkit-transition-delay: 0.3s;-moz-transition-delay: 0.3s;-o-transition-delay: 0.3s;transition-delay: 0.3s;} .view_second:hover p { -webkit-transform: translate(0px,0px);-moz-transform: translate(0px,0px);-o-transform: translate(0px,0px);transform: translate(0px,0px); -webkit-transition-delay: 0.4s;-moz-transition-delay: 0.4s;-o-transition-delay: 0.4s;transition-delay: 0.4s;} .view_second:hover a.btn { -webkit-transform: translate(0px,0px);-moz-transform: translate(0px,0px);-o-transform: translate(0px,0px);transform: translate(0px,0px); -webkit-transition-delay: 0.5s;-moz-transition-delay: 0.5s;-o-transition-delay: 0.5s;transition-delay: 0.5s;} /* third hover */ .view_third img {-webkit-transition: all 0.2s ease-in;-moz-transition: all 0.2s ease-in;-o-transition: all 0.2s ease-in;transition: all 0.2s ease-in;} .view_third .mask {background-color: rgba(0,0,0,0.6);opacity: 0; -webkit-transform: translate(460px, -100px) rotate(180deg);-moz-transform: translate(460px, -100px) rotate(180deg);-o-transform: translate(460px, -100px) rotate(180deg);transform: translate(460px, -100px) rotate(180deg); -webkit-transition: all 0.2s 0.4s ease-in-out;-moz-transition: all 0.2s 0.4s ease-in-out;-o-transition: all 0.2s 0.4s ease-in-out;transition: all 0.2s 0.4s ease-in-out;} .view_third h2{ -webkit-transform: translateY(-100px);-moz-transform: translateY(-100px);-o-transform: translateY(-100px);transform: translateY(-100px); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_third p { -webkit-transform: translateX(300px) rotate(90deg);-moz-transform: translateX(300px) rotate(90deg);-o-transform: translateX(300px) rotate(90deg);transform: translateX(300px) rotate(90deg); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_third a.btn { -webkit-transform: translateY(-200px);-moz-transform: translateY(-200px);-o-transform: translateY(-200px);transform: translateY(-200px); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_third:hover .mask { opacity:1; -webkit-transition-delay: 0s;-moz-transition-delay: 0s;-o-transition-delay: 0s;transition-delay: 0s; -webkit-transform: translate(0px, 0px);-moz-transform: translate(0px, 0px);-o-transform: translate(0px, 0px);transform: translate(0px, 0px);} .view_third:hover h2 { -webkit-transform: translateY(0px);-moz-transform: translateY(0px);-o-transform: translateY(0px);transform: translateY(0px); -webkit-transition-delay: 0.5s;-moz-transition-delay: 0.5s;-o-transition-delay: 0.5s;transition-delay: 0.5s;} .view_third:hover p { -webkit-transform: translateX(0px) rotate(0deg);-moz-transform: translateX(0px) rotate(0deg);-o-transform: translateX(0px) rotate(0deg);transform: translateX(0px) rotate(0deg); -webkit-transition-delay: 0.4s;-moz-transition-delay: 0.4s;-o-transition-delay: 0.4s;transition-delay: 0.4s;} .view_third:hover a.btn { -webkit-transform: translateY(0px);-moz-transform: translateY(0px);-o-transform: translateY(0px);transform: translateY(0px); -webkit-transition-delay: 0.3s;-moz-transition-delay: 0.3s;-o-transition-delay: 0.3s;transition-delay: 0.3s;} /* fourth hover */ .view_fourth img { opacity: 1; -webkit-transition: all 0.4s ease-in-out 0.2s;-moz-transition: all 0.4s ease-in-out 0.2s;-o-transition: all 0.4s ease-in-out 0.2s;transition: all 0.4s ease-in-out 0.2s;} .view_fourth .mask { background-color: rgba(0,0,0,0.8); opacity: 0; -webkit-transform: scale(0) rotate(-180deg);-moz-transform: scale(0) rotate(-180deg);-o-transform: scale(0) rotate(-180deg);transform: scale(0) rotate(-180deg); -webkit-transition: all 0.4s ease-in;-moz-transition: all 0.4s ease-in;-o-transition: all 0.4s ease-in;transition: all 0.4s ease-in; border-radius: 0px;} .view_fourth h2{ opacity: 0; border-bottom: 1px solid rgba(0, 0, 0, 0.3); background: transparent; margin: 20px 40px 0px 40px; -webkit-transition: all 0.5s ease-in-out;-moz-transition: all 0.5s ease-in-out;-o-transition: all 0.5s ease-in-out;transition: all 0.5s ease-in-out;} .view_fourth p {opacity: 0;-webkit-transition: all 0.5s ease-in-out;-moz-transition: all 0.5s ease-in-out;-o-transition: all 0.5s ease-in-out;transition: all 0.5s ease-in-out;} .view_fourth a.info {opacity: 0;-webkit-transition: all 0.5s ease-in-out;-moz-transition: all 0.5s ease-in-out;-o-transition: all 0.5s ease-in-out;transition: all 0.5s ease-in-out;} .view_fourth:hover .mask {opacity: 1; -webkit-transform: scale(1) rotate(0deg);-moz-transform: scale(1) rotate(0deg);-o-transform: scale(1) rotate(0deg);transform: scale(1) rotate(0deg); -webkit-transition-delay: 0.2s;-moz-transition-delay: 0.2s;-o-transition-delay: 0.2s;transition-delay: 0.2s;} .view_fourth:hover img{ opacity: 0; -webkit-transform: scale(0);-moz-transform: scale(0);-o-transform: scale(0);transform: scale(0); -webkit-transition-delay: 0s;-moz-transition-delay: 0s;-o-transition-delay: 0s;transition-delay: 0s;} .view_fourth:hover h2, .view_fourth:hover p, .view_fourth:hover a.info{opacity: 1;-webkit-transition-delay: 0.5s;-moz-transition-delay: 0.5s;-o-transition-delay: 0.5s;transition-delay: 0.5s;} /* fifth hover */ .view_fifth img {-webkit-transition: all 0.4s ease-in-out;-moz-transition: all 0.4s ease-in-out;-o-transition: all 0.4s ease-in-out;transition: all 0.4s ease-in-out;} .view_fifth .mask {background-color: rgba(146,96,91,0.3);opacity: 1; overflow:hidden; -webkit-transform: translateX(-300px);-moz-transform: translateX(-300px);-o-transform: translateX(-300px);transform: translateX(-300px); -webkit-transition: all 0.4s ease-in-out;-moz-transition: all 0.4s ease-in-out;-o-transition: all 0.4s ease-in-out;transition: all 0.4s ease-in-out;} .view_fifth h2{background: rgba(255, 255, 255, 0.5);color: #000;box-shadow: 0px 1px 3px rgba(159, 141, 140, 0.5);} .view_fifth p{opacity: 0;color: #333;-webkit-transition: all 0.2s linear;-moz-transition: all 0.2s linear;-o-transition: all 0.2s linear;transition: all 0.2s linear;} .view_fifth:hover .mask {-webkit-transform: translateX(0px);-moz-transform: translateX(0px);-o-transform: translateX(0px);transform: translateX(0px);} .view_fifth:hover img { -webkit-transform: translateX(300px);-moz-transform: translateX(300px);-o-transform: translateX(300px);transform: translateX(300px); -webkit-transition-delay: 0.1s;-moz-transition-delay: 0.1s;-o-transition-delay: 0.1s;transition-delay: 0.1s; -webkit-transition: all 0.4s ease-in-out;-moz-transition: all 0.4s ease-in-out;-o-transition: all 0.4s ease-in-out;transition: all 0.4s ease-in-out;} .view_fifth:hover p{opacity: 1;-webkit-transition-delay: 0.4s;-moz-transition-delay: 0.4s;-o-transition-delay: 0.4s;transition-delay: 0.4s;} /*sixth hover */ .view_sixth img {-webkit-transition: all 0.4s ease-in-out 0.5s;-moz-transition: all 0.4s ease-in-out 0.5s;-o-transition: all 0.4s ease-in-out 0.5s;transition: all 0.4s ease-in-out 0.5s;} .view_sixth .mask{background-color: rgba(146,96,91,0.5);opacity:0; -webkit-transition: all 0.3s ease-in 0.4s;-moz-transition: all 0.3s ease-in 0.4s;-o-transition: all 0.3s ease-in 0.4s;transition: all 0.3s ease-in 0.4s;} .view_sixth h2{opacity:0;border-bottom: 1px solid rgba(0, 0, 0, 0.3);background: transparent;margin: 20px 40px 0px 40px; -webkit-transform: scale(10); -moz-transform: scale(10); -o-transform: scale(10); transform: scale(10); -webkit-transition: all 0.3s ease-in-out 0.1s;-moz-transition: all 0.3s ease-in-out 0.1s;-o-transition: all 0.3s ease-in-out 0.1s;transition: all 0.3s ease-in-out 0.1s;} .view_sixth p {opacity:0; -webkit-transform: scale(10);-moz-transform: scale(10);-o-transform: scale(10);transform: scale(10); -webkit-transition: all 0.3s ease-in-out 0.2s; -moz-transition: all 0.3s ease-in-out 0.2s;-o-transition: all 0.3s ease-in-out 0.2s;transition: all 0.3s ease-in-out 0.2s;} .view_sixth a.btn {opacity:0; -webkit-transform: translateY(100px); -moz-transform: translateY(100px); -o-transform: translateY(100px); transform: translateY(100px); -webkit-transition: all 0.3s ease-in-out 0.1s;-moz-transition: all 0.3s ease-in-out 0.1s;-o-transition: all 0.3s ease-in-out 0.1s;transition: all 0.3s ease-in-out 0.1s;} .view_sixth:hover .mask {opacity:1;-webkit-transition-delay: 0s;-moz-transition-delay: 0s;-o-transition-delay: 0s;transition-delay: 0s;} .view_sixth:hover img {-webkit-transition-delay: 0s;-moz-transition-delay: 0s;-o-transition-delay: 0s;transition-delay: 0s;} .view_sixth:hover h2 {opacity: 1; -webkit-transform: scale(1);-moz-transform: scale(1);-o-transform: scale(1);transform: scale(1); -webkit-transition-delay: 0.1s;-moz-transition-delay: 0.1s;-o-transition-delay: 0.1s;transition-delay: 0.1s;} .view_sixth:hover p {opacity:1; -webkit-transform: scale(1);-moz-transform: scale(1);-o-transform: scale(1);transform: scale(1); -webkit-transition-delay: 0.2s;-moz-transition-delay: 0.2s;-o-transition-delay: 0.2s;transition-delay: 0.2s;} .view_sixth:hover a.btn {opacity:1; -webkit-transform: translateY(0px);-moz-transform: translateY(0px);-o-transform: translateY(0px);transform: translateY(0px); -webkit-transition-delay: 0.3s;-moz-transition-delay: 0.3s;-o-transition-delay: 0.3s;transition-delay: 0.3s;} /* seventh hover */ .view_seventh img{opacity: 1;-webkit-transition: all 0.5s ease-out;-moz-transition: all 0.5s ease-out;-o-transition: all 0.5s ease-out;transition: all 0.5s ease-out;} .view_seventh .mask {background-color: rgba(77,44,35,0.5);opacity: 0; -webkit-transform: rotate(0deg) scale(1);-moz-transform: rotate(0deg) scale(1);-o-transform: rotate(0deg) scale(1);transform: rotate(0deg) scale(1); -webkit-transition: all 0.3s ease-out;-moz-transition: all 0.3s ease-out;-o-transition: all 0.3s ease-out;transition: all 0.3s ease-out; -webkit-transform: translateY(-200px) rotate(180deg);-moz-transform: translateY(-200px) rotate(180deg);-o-transform: translateY(-200px) rotate(180deg);transform: translateY(-200px) rotate(180deg);} .view_seventh h2{ -webkit-transform: translateY(-200px);-moz-transform: translateY(-200px);-o-transform: translateY(-200px);transform: translateY(-200px); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_seventh p { -webkit-transform: translateY(-200px);-moz-transform: translateY(-200px);-o-transform: translateY(-200px);transform: translateY(-200px); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_seventh a.btn { -webkit-transform: translateY(-200px);-moz-transform: translateY(-200px);-o-transform: translateY(-200px);transform: translateY(-200px); -webkit-transition: all 0.2s ease-in-out;-moz-transition: all 0.2s ease-in-out;-o-transition: all 0.2s ease-in-out;transition: all 0.2s ease-in-out;} .view_seventh:hover img{opacity: 0; -webkit-transform: rotate(720deg) scale(0);-moz-transform: rotate(720deg) scale(0);-o-transform: rotate(720deg) scale(0);transform: rotate(720deg) scale(0);} .view_seventh:hover .mask {opacity: 1; -webkit-transform: translateY(0px) rotate(0deg);-moz-transform: translateY(0px) rotate(0deg);-o-transform: translateY(0px) rotate(0deg);transform: translateY(0px) rotate(0deg); -webkit-transition-delay: 0.4s;-moz-transition-delay: 0.4s;-o-transition-delay: 0.4s;transition-delay: 0.4s;} .view_seventh:hover h2 { -webkit-transform: translateY(0px);-moz-transform: translateY(0px);-o-transform: translateY(0px);transform: translateY(0px); -webkit-transition-delay: 0.7s;-moz-transition-delay: 0.7s;-o-transition-delay: 0.7s;transition-delay: 0.7s;} .view_seventh:hover p { -webkit-transform: translateY(0px);-moz-transform: translateY(0px);-o-transform: translateY(0px);transform: translateY(0px); -webkit-transition-delay: 0.6s;-moz-transition-delay: 0.6s;-o-transition-delay: 0.6s;transition-delay: 0.6s;} .view_seventh:hover a.btn { -webkit-transform: translateY(0px);-moz-transform: translateY(0px);-o-transform: translateY(0px);transform: translateY(0px); -webkit-transition-delay: 0.5s;-moz-transition-delay: 0.5s;-o-transition-delay: 0.5s;transition-delay: 0.5s;} /* eighth hover */ .view_eighth .mask { background-color: rgba(255, 255, 255, 0.7); top: -200px; -ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter: alpha(opacity=0); opacity: 0; -webkit-transition: all 0.3s ease-out 0.5s; -moz-transition: all 0.3s ease-out 0.5s; -o-transition: all 0.3s ease-out 0.5s; -ms-transition: all 0.3s ease-out 0.5s; transition: all 0.3s ease-out 0.5s;} .view_eighth h2 { -webkit-transform: translateY(-200px); -moz-transform: translateY(-200px); -o-transform: translateY(-200px); -ms-transform: translateY(-200px); transform: translateY(-200px); -webkit-transition: all 0.2s ease-in-out 0.1s; -moz-transition: all 0.2s ease-in-out 0.1s; -o-transition: all 0.2s ease-in-out 0.1s; -ms-transition: all 0.2s ease-in-out 0.1s; transition: all 0.2s ease-in-out 0.1s;} .view_eighth p { color: #333; -webkit-transform: translateY(-200px); -moz-transform: translateY(-200px); -o-transform: translateY(-200px); -ms-transform: translateY(-200px); transform: translateY(-200px); -webkit-transition: all 0.2s ease-in-out 0.2s; -moz-transition: all 0.2s ease-in-out 0.2s; -o-transition: all 0.2s ease-in-out 0.2s; -ms-transition: all 0.2s ease-in-out 0.2s; transition: all 0.2s ease-in-out 0.2s;} .view_eighth a.btn { -webkit-transform: translateY(-200px); -moz-transform: translateY(-200px); -o-transform: translateY(-200px); -ms-transform: translateY(-200px); transform: translateY(-200px); -webkit-transition: all 0.2s ease-in-out 0.3s; -moz-transition: all 0.2s ease-in-out 0.3s; -o-transition: all 0.2s ease-in-out 0.3s; -ms-transition: all 0.2s ease-in-out 0.3s; transition: all 0.2s ease-in-out 0.3s;} .view_eighth:hover .mask { -ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter: alpha(opacity=100); opacity: 1; top: 0px; -webkit-transition-delay: 0s; -moz-transition-delay: 0s; -o-transition-delay: 0s; -ms-transition-delay: 0s; transition-delay: 0s; -webkit-animation: bounceY 0.9s linear; -moz-animation: bounceY 0.9s linear; -ms-animation: bounceY 0.9s linear; animation: bounceY 0.9s linear;} .view_eighth:hover h2 { -webkit-transform: translateY(0px); -moz-transform: translateY(0px); -o-transform: translateY(0px); -ms-transform: translateY(0px); transform: translateY(0px); -webkit-transition-delay: 0.4s; -moz-transition-delay: 0.4s; -o-transition-delay: 0.4s; -ms-transition-delay: 0.4s; transition-delay: 0.4s;} .view_eighth:hover p { -webkit-transform: translateY(0px); -moz-transform: translateY(0px); -o-transform: translateY(0px); -ms-transform: translateY(0px); transform: translateY(0px); -webkit-transition-delay: 0.2s; -moz-transition-delay: 0.2s; -o-transition-delay: 0.2s; -ms-transition-delay: 0.2s; transition-delay: 0.2s;} .view_eighth:hover a.btn { -webkit-transform: translateY(0px); -moz-transform: translateY(0px); -o-transform: translateY(0px); -ms-transform: translateY(0px); transform: translateY(0px); -webkit-transition-delay: 0s; -moz-transition-delay: 0s; -o-transition-delay: 0s; -ms-transition-delay: 0s; transition-delay: 0s;} @keyframes bounceY { 0% { transform: translateY(-205px);} 40% { transform: translateY(-100px);} 65% { transform: translateY(-52px);} 82% { transform: translateY(-25px);} 92% { transform: translateY(-12px);} 55%, 75%, 87%, 97%, 100% { transform: translateY(0px);}} @-moz-keyframes bounceY { 0% { -moz-transform: translateY(-205px);} 40% { -moz-transform: translateY(-100px);} 65% { -moz-transform: translateY(-52px);} 82% { -moz-transform: translateY(-25px);} 92% { -moz-transform: translateY(-12px);} 55%, 75%, 87%, 97%, 100% { -moz-transform: translateY(0px);}} @-webkit-keyframes bounceY { 0% { -webkit-transform: translateY(-205px);} 40% { -webkit-transform: translateY(-100px);} 65% { -webkit-transform: translateY(-52px);} 82% { -webkit-transform: translateY(-25px);} 92% { -webkit-transform: translateY(-12px);} 55%, 75%, 87%, 97%, 100% { -webkit-transform: translateY(0px);}} /* ninth hover */ .view_ninth .mask-1, .view_ninth .mask-2 {background-color: rgba(0, 0, 0, 0.5);height: 361px;width: 361px;background: rgba(119, 0, 36, 0.5);opacity: 1; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter: alpha(opacity=100); -webkit-transition: all 0.3s ease-in-out 0.6s; -moz-transition: all 0.3s ease-in-out 0.6s; -o-transition: all 0.3s ease-in-out 0.6s; transition: all 0.3s ease-in-out 0.6s;} .view_ninth .mask-1 {left: auto;right: 0; -webkit-transform: rotate(56.5deg) translateX(-180px); -moz-transform: rotate(56.5deg) translateX(-180px); -o-transform: rotate(56.5deg) translateX(-180px); -ms-transform: rotate(56.5deg) translateX(-180px); transform: rotate(56.5deg) translateX(-180px); -webkit-transform-origin: 100% 0%; -moz-transform-origin: 100% 0%; -o-transform-origin: 100% 0%; -ms-transform-origin: 100% 0%; transform-origin: 100% 0%;} .view_ninth .mask-2 { top: auto; bottom: 0; -webkit-transform: rotate(56.5deg) translateX(180px); -moz-transform: rotate(56.5deg) translateX(180px); -o-transform: rotate(56.5deg) translateX(180px); -ms-transform: rotate(56.5deg) translateX(180px); transform: rotate(56.5deg) translateX(180px); -webkit-transform-origin: 0% 100%; -moz-transform-origin: 0% 100%; -o-transform-origin: 0% 100%; -ms-transform-origin: 0% 100%; transform-origin: 0% 100%;} .view_ninth .content {background: rgba(0, 0, 0, 0.9);height: 0;width: 361px;overflow: hidden; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; filter: alpha(opacity=50); opacity: 0.5; -webkit-transform: rotate(-33.5deg) translate(-112px, 166px); -moz-transform: rotate(-33.5deg) translate(-112px, 166px); -o-transform: rotate(-33.5deg) translate(-112px, 166px); -ms-transform: rotate(-33.5deg) translate(-112px, 166px); transform: rotate(-33.5deg) translate(-112px, 166px); -webkit-transform-origin: 0% 100%; -moz-transform-origin: 0% 100%; -o-transform-origin: 0% 100%; -ms-transform-origin: 0% 100%; transform-origin: 0% 100%; -webkit-transition: all 0.4s ease-in-out 0.3s; -moz-transition: all 0.4s ease-in-out 0.3s; -o-transition: all 0.4s ease-in-out 0.3s; transition: all 0.4s ease-in-out 0.3s;} .view_ninth h2 {background: transparent;margin-top: 5px;border-bottom: 1px solid rgba(255, 255, 255, 0.2);} .view_ninth a.btn {display: none;} .view_ninth:hover .content {height: 120px;width: 300px; top: 40px; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"; filter: alpha(opacity=90); opacity: 0.9; -webkit-transform: rotate(0deg) translate(0, 0); -moz-transform: rotate(0deg) translate(0, 0); -o-transform: rotate(0deg) translate(0, 0); -ms-transform: rotate(0deg) translate(0, 0); transform: rotate(0deg) translate(0, 0);} .view_ninth:hover .mask-1, .view_ninth:hover .mask-2 { -webkit-transition-delay: 0s; -moz-transition-delay: 0s; -o-transition-delay: 0s; transition-delay: 0s;} .view_ninth:hover .mask-1 { -webkit-transform: rotate(56.5deg) translateX(1px); -moz-transform: rotate(56.5deg) translateX(1px); -o-transform: rotate(56.5deg) translateX(1px); -ms-transform: rotate(56.5deg) translateX(1px); transform: rotate(56.5deg) translateX(1px);} .view_ninth:hover .mask-2 { -webkit-transform: rotate(56.5deg) translateX(-1px); -moz-transform: rotate(56.5deg) translateX(-1px); -o-transform: rotate(56.5deg) translateX(-1px); -ms-transform: rotate(56.5deg) translateX(-1px); transform: rotate(56.5deg) translateX(-1px);} /*--------------------------------- Portfolio -----------------------------------*/ .pad_port{ padding-bottom:30px;} .image-grid {width: 940px;} .image-grid:after { content: ""; display: block; height: 0; overflow: hidden; clear: both;} .image-grid li { width:220px; margin:0 5px; float: left; height:260px; overflow: hidden;} .image-grid li img, .image-grid li strong {display: block;} .splitter{ position:relative; overflow:hidden; padding:10px 0;} .splitter>li{ font-weight:bold; overflow:hidden;} .splitter li ul{ overflow:hidden;} .splitter li li{ float:left;} .splitter li li a{ box-shadow:none; border-radius:0;} .splitter li li.selected-1 a,.splitter li li.selected-2 a,.splitter li li.selected-0 a{ border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999; box-shadow:inset 0 1px 2px #aaa; background: -webkit-linear-gradient(top, #E6E6E6, gainsboro); background: -moz-linear-gradient(top, #E6E6E6, gainsboro); background: -ms-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro); background: linear-gradient(top, #E6E6E6, gainsboro); -pie-background: linear-gradient(top, #E6E6E6, gainsboro);} .splitter li li.last a{ border-radius:0 3px 3px 0;} .splitter li li.segment-1 a{ border-radius:3px 0 0 3px;} /*--------------------------------- Social and Media Sharing -----------------------------------*/ .icons{ position:relative; overflow:hidden; padding:10px 0;} .icons li{ float:left; margin-right:3px;} .icons.basic2 li{margin:0 15px 15px 0; } .icons.basic2 li a{width:16px; display:block; height:16px;} .icons.basic2 li a img{ max-width:100% !important; height:auto;} .icons.social li.last{ margin-top:-16px;} .icons.social li{ width:100px;float:left;} .icons.small li a{ background-image: url(../images/icons/csg-4f3bc7207ae9d.png); display:block; width:30px !important; height:30px !important;} .icons.basic{ position:relative; overflow:hidden;} .icons.basic li{margin:0 10px 10px 0; display:block; float:left; padding:0 15px 15px 15px; box-shadow:inset 0 0 10px rgba(0,0,0,.1);} .icons.basic li.li_icon{padding:8px 15px 7px 15px;} .icon{ font-family:'IcoMoon'; font-size:35px; color:#000000; line-height:100%; display:block;} .icon:before {content: attr(data-icon);} .icon:hover{ text-decoration:none;} .icon_social{ font-family:'IcoMoonSocial'; font-size:35px; color:#000000; line-height:100%; display:block;} .icon_social:before {content: attr(data-icon);} .icon_social:hover{ text-decoration:none;} .ranges{ position:relative; overflow:hidden; list-style-position:inside;} .ranges li span{ display:inline-block; padding:0 0 10px 0;} .ranges input{ margin-right:10px;} /* Flickr */ #flickr_badge_wrapper {padding:3px 0 0;} .flickr_badge_image {margin:0 15px 15px 0px; float:left;} .flickr_badge_image a {box-shadow:inset 0 0 2px rgba(0,0,0,.5); padding:4px; border-radius:3px; display:inline-block;-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .flickr_badge_image a img{border-radius:3px;} #flickr_badge_uber_wrapper a:hover, #flickr_badge_uber_wrapper a:active{box-shadow:inset 0 0 4px rgba(0,0,0,.8);} #flickr_badge_wrapper { overflow:hidden;} #flickr_www,#flickr_badge_source,#flickr_badge_image10 { display:none;} /* Twitter */ .tweet_list{ background:url(../images/icons/twitter_bird_2.png) 0 0 no-repeat; padding:5px 0 0 45px;} .tweet_list li{ padding:5px; margin-bottom:5px;overflow:hidden; border-radius:3px; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: 0 1px 2px rgba(0,0,0,.3), inset 0 0 3px #fff;} .tweet_list li a{ font-weight:bold; color:#666;} .flash-video{ position:relative; z-index:10;} .audio-player{ padding:0 0 0 2em;} /* Tooltips */ #aToolTip{position:absolute;display:none;z-index:50000;background: #646363; font-size:12px; padding:5px 18px; color:#fff; text-align:center; z-index:99; border-radius:3px; box-shadow:2px 2px 4px rgba(0,0,0,.5);} #aToolTip .aToolTipContent{position:relative;margin:0;padding:0} a#aToolTipCloseBtn{display:block;height:8px;width:8px; background: url(../images/icons/glyphicons_207_remove_2.png) 0 0 no-repeat;overflow:hidden;text-indent:-9999px;outline:none;position:absolute;top:0px;right:-14px} .tooltips-pad span{ display:block; padding-bottom:20px; position:relative; overflow:hidden;} .tooltips-pad strong{ display:block; float:left;width:125px;} .tooltips-pad .small-box-code{ float:left; margin-top:3px;} .video_player{ width:482px;} /* Under Construction page =====*/ .constuction-main{width:570px;min-height:450px;position:absolute;left:50%;top:45%;margin-left:-330px;margin-top:-130px;} #constuction-box{width:570px;min-height:450px; box-shadow:0 0 15px rgba(0,0,0,.6); border-radius:15px; position:relative; z-index:99;} #constuction-box .inside{background:#fff;border-radius:15px;border-color:#fff; float:left;min-height:450px; width:100%;} #constuction-box .inside .inner{padding:40px 48px 25px;} #constuction-box .inside .inner h1{ padding-bottom:30px;font-weight:normal;} #constuction-box .inside .inner h3{ padding-bottom:0;} #constuction-box .inside .inner p{ font-size:15px; font-weight:normal; padding-bottom:25px;} #constuction-box h1.constuction-logo{ position:absolute; top:-85px; left:50px;} #constuction-box h1.constuction-logo a{ display:inline-block;background: url(../images/logo.png) 0 0 no-repeat;width:410px; height:62px; text-indent:-5000px;} .social_icons{ position:absolute; top:20px; right:-37px; background:#fff; width:37px; border-radius:0 15px 15px 0; box-shadow:3px 0 5px rgba(0,0,0,.2)} .social_icons ul{ padding:15px 0 10px 8px;} .social_icons ul li{ padding-bottom:5px;} .social_icons ul li.last{ padding-bottom:5px;} .cntSeparator {font-size: 50px;margin: 24px 0px;color: #000; font-family:Georgia, "Times New Roman", Times, serif;} .counter_desc{ position:relative; overflow:hidden; font-size:16px; font-weight:bold; line-height:1.2em; padding:5px 0 0 0;} .counter_desc div{ width:104px; margin-left:18px; text-align:center;} .counter_desc div:first-child{ margin-left:0;} .constr_social_buttons{ padding:25px 0 0 0;} .icons_social2 li{ width:100px;float:left;} .icons_social2 li.last{ margin-top:-14px; width:90px;} /* Intro page */ #intro-box{width:600px;height:407px;position:relative;left:50%;top:50%;margin-left:-300px;margin-top:-180px;border-radius:10px; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: 0 2px 3px rgba(0,0,0,.3), inset 0 0 3px #fff;} #intro-box .inside{padding:20px 70px 0;height:387px; position:relative;} #intro-box .alignright{ position:absolute; bottom:35px; right:70px;} .intro-video{ position:absolute; top:60px; left:70px; overflow:hidden; height:264px; width:460px;} .intro-video iframe{height:264px; width:460px; position:relative;} .likebox_pad{ padding-bottom:20px !important;} .likebox_pad2{ padding-top:32px !important;} /*------------ --------------------- Misc -----------------------------------*/ .dialog-pad{ padding:0 0 20px;} /* Tabs */ .tabs-horz-top, .tabs-horz-bottom, .tabs-horz-top2, .tabs-horz-bottom2, .tabs-vert-left, .tabs-vert-right{ position:relative; overflow:hidden;} .tabs-horz-top .tab-content, .tabs-horz-bottom .tab-content, .tabs-horz-top2 .tab-content, .tabs-horz-bottom2 .tab-content, .tabs-vert-left .tab-content, .tabs-vert-right .tab-content{ width:auto; box-shadow:none; background:#fff; border:1px solid #eee; padding:10px;} .tabs-horz-bottom .tab-content, .tabs-horz-bottom2 .tab-content, .tabs-vert-left .tab-content, .tabs-vert-right .tab-content{ margin:0; min-height:54px;} .tabs-vert-left .tab-content-box, .tabs-vert-right .tab-content{ overflow:hidden;} .tabs-nav{ position:relative; overflow:hidden;} .tabs-nav li{ float:left; margin-right:3px;} .tabs-horz-top2 .tabs-nav,.tabs-horz-bottom2 .tabs-nav{ float:right;} .tabs-nav li a{display:block; padding:6px 15px;position:relative; top:4px; z-index:99; border: 1px solid #DDD; border-radius: 3px; text-shadow: 0 1px 1px white; font-weight: bold; white-space: nowrap; vertical-align: middle; color: #666; cursor: pointer; border-color: #ddd; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow:inset 0 0 3px #fff; -webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;} .tabs-nav li a:hover,.tabs-nav li a.current{ top:1px; text-decoration:none; background:#fff;-pie-background: linear-gradient(top, #fff, #fff); color:#666;} .tabs-horz-bottom .tabs-nav,.tabs-horz-bottom2 .tabs-nav{ top:-1px;} .tabs-horz-bottom .tabs-nav li a, .tabs-horz-bottom2 .tabs-nav li a{ top:-4px;} .tabs-horz-bottom .tabs-nav li a:hover, .tabs-horz-bottom .tabs-nav li a.current, .tabs-horz-bottom2 .tabs-nav li a:hover, .tabs-horz-bottom2 .tabs-nav li a.current{ top:-1px;} .tabs-horz-top .tabs-nav li a,.tabs-horz-top2 .tabs-nav li a{ border-radius:3px 3px 0 0;} .tabs-horz-bottom .tabs-nav li a,.tabs-horz-bottom2 .tabs-nav li a{ border-radius: 0 0 3px 3px;} .tabs-vert-left .tabs-nav li a{ border-radius:3px 0 0 3px;} .tabs-vert-right .tabs-nav li a{ border-radius:0 3px 3px 0;} .tabs-vert-left .tabs-nav{ float:left; margin-right:-1px;} .tabs-vert-left .tabs-nav li,.tabs-vert-right .tabs-nav li{ float:none; margin:0 0 3px 0;} .tabs-vert-left .tabs-nav li a{ top:0 !important; right:-4px;} .tabs-vert-left .tabs-nav li a:hover,.tabs-vert-left .tabs-nav li a.current{ right:-1px;} .tabs-vert-right .tabs-nav{ float:right; margin-left:-1px;} .tabs-vert-right .tabs-nav li a{ top:0 !important; left:-4px;} .tabs-vert-right .tabs-nav li a:hover,.tabs-vert-right .tabs-nav li a.current{ left:-1px;} .tabs-pad{ padding:20px 0 0 0;} /* SlideDown */ .slide-down-box{ position:relative; z-index:101;} .slide-down-box dt{ display:block; border: 1px solid #DDD; border-radius: 3px; text-shadow: 0 1px 1px white; box-shadow:0 1px 1px #fff; font: bold 11px Sans-Serif; padding: 6px 10px; white-space: nowrap; vertical-align: middle; color: #666; background: transparent; cursor: pointer; border-color: #ddd; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff;} .slide-down-box dt:hover{box-shadow:inset 0 0 3px #fff;border-color: #999; text-decoration:none;} .slide-down-box dt.active{ border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999; box-shadow:inset 0 1px 2px #aaa; background: -webkit-linear-gradient(top, #E6E6E6, gainsboro); background: -moz-linear-gradient(top, #E6E6E6, gainsboro); background: -ms-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro);} .slide-down-box dt span{ display:inline-block; width:11px; height:11px; background: url(../images/misc-plus.png) 0 0 no-repeat; margin:2px 6px 0 0;} .slide-down-box dt.active span{background: url(../images/misc-minus.png) 0 0 no-repeat;} .slide-down-box dd{display:none;padding:15px 15px; margin:3px 0 0 0; background:#fff; border-radius:5px; position:relative;box-shadow:inset 0 1px 1px rgba(170,170,170,.8); border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999;} .slide-down-box.absol dd{ position:absolute; top:27px; left:0; z-index:99;width:auto;} .slide-down-pad{ padding:5px 0;} /* Carousel */ .car-wrapper{ position:relative;} .carousel {overflow:hidden; margin-left:36px;} .carousel li{ margin-right:10px; display:block; float:left; width:210px; height:168px; position:relative; overflow:hidden;} .car-wrapper .btn.next,.car-wrapper .btn.prev{ position:absolute; top:64px; padding:5px 3px; border-radius:3px; width:19px; height:16px; display:block;} .car-wrapper .btn.prev{ left:0px;} .car-wrapper .btn.next{ right:0px;} /* Accordion */ dl#accordion{list-style-type:none;margin:0;height:auto !important} dl#accordion dt a{display:block;text-decoration:none; border: 1px solid #DDD; border-radius: 3px; text-shadow: 0 1px 1px white; box-shadow:0 1px 1px #fff; font: bold 11px Sans-Serif; padding: 6px 10px; white-space: nowrap; vertical-align: middle; color: #666; background: transparent; cursor: pointer; border-color: #ddd; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff;} dl#accordion dt a span{ display:inline-block; width:11px; height:11px; background: url(../images/misc-plus.png) 0 0 no-repeat; margin:2px 6px 0 0;} dl#accordion dt.active a span{background: url(../images/misc-minus.png) 0 0 no-repeat;} dl#accordion dt{margin:0px; border:none !important;} dl#accordion dt a:hover{box-shadow:inset 0 0 3px #fff;border-color: #999; text-decoration:none;} dl#accordion dt.active a{ border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999; box-shadow:inset 0 1px 2px #aaa; background: -webkit-linear-gradient(top, #E6E6E6, gainsboro); background: -moz-linear-gradient(top, #E6E6E6, gainsboro); background: -ms-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro); background: linear-gradient(top, #E6E6E6, gainsboro); -pie-background: linear-gradient(top, #E6E6E6, gainsboro);} dl#accordion dd{margin-bottom:0;padding-left:0; background:none; border:none; padding:0 !important;} dl#accordion dd .indent{ padding:10px 20px;} dl#accordion dt .ui-icon{ display:none !important;} /* Testimonials */ #testimonials{ width:300px; height:160px;} #testimonails div{ width:300px; height:160px;} .testim_buttons{ position:absolute; top:58px; right:0; overflow:hidden;} .testim_buttons a{display:block; float:left; border: 1px solid #DDD; padding: 3px; white-space: nowrap; vertical-align: middle; background: transparent; cursor: pointer; border-color: #ddd; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0);} #prev_testim{ border-radius:3px 0 0 3px; padding-left:5px;} #next_testim{ border-radius:0 3px 3px 0; padding-right:5px;} .testim_buttons a span{ width:16px; height:16px;} #prev_testim span{ display:inline-block; background: url(../images/icons/icon-previous.png) 0 0 no-repeat;margin:3px 3px 0 0;} #next_testim span{ display:inline-block; background: url(../images/icons/icon-next.png) 0 0 no-repeat;margin:3px 0 0 3px} .testim_buttons a:hover{ box-shadow:inset 0 0 3px #fff;border-color: #999; text-decoration:none;} /*--------------------------------- Functional Slider -----------------------------------*/ .funct_slider .fleft{ width:200px; padding-right:20px;} #choices li{ width:70px; text-align:center; box-shadow:none; margin:0 3px 4px 0;} #choices li.active{ border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999; box-shadow:inset 0 1px 2px #aaa; background: -webkit-linear-gradient(top, #E6E6E6, gainsboro); background: -moz-linear-gradient(top, #E6E6E6, gainsboro); background: -ms-linear-gradient(top, #E6E6E6, gainsboro); background: -o-linear-gradient(top, #E6E6E6, gainsboro); background: linear-gradient(top, #E6E6E6, gainsboro); -pie-background: linear-gradient(top, #E6E6E6, gainsboro);} #funct_caption{display:none; padding:7px 10px 6px; position:absolute; z-index:15; bottom:20px; right:20px; text-align:center; text-decoration:none; border: 1px solid #DDD; text-shadow: 0 1px 1px white; box-shadow:0 1px 1px #fff; font: bold 11px Sans-Serif; white-space: nowrap; vertical-align: middle; color: #666; background: transparent; cursor: pointer; border-color: #ddd; border-radius:3px; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); -pie-background: linear-gradient(top, white, #E0E0E0); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff;} .funct_box{ float:left; width:715px; height:485px; position:relative;} .funct_slider .hidden{ display:none;} #show{ display:none; padding:6px;box-shadow:inset 0 0 10px rgba(0,0,0,.1); width:700px; height:430px;} #show1{ width:700px; height:430px; padding:6px;box-shadow:inset 0 0 10px rgba(0,0,0,.1);} /*--------------------------------- Extras -----------------------------------*/ /* buttons */ .buttons_pad{ padding:15px 0 0 0;} /* ------ */ .style_1 { display:inline-block; background-color:#ba2323; padding:10px; position:relative; font-family: 'Open Sans', sans-serif; font-size:12px; text-decoration:none; color:#666; border: solid 1px #999; border-radius: 5px;} .style_1:active { padding-bottom:9px; padding-left:10px; padding-right:10px; padding-top:11px; top:1px;} .style_1::before { background-color:#e1e3e6; content:""; display:block; position:absolute; width:100%; height:100%; padding:8px; left:-8px; top:-8px; z-index:-1; border-radius: 5px; box-shadow: inset 0px 1px 1px #909193, 0px 1px 0px #fff;} .style_1.danger{border: solid 1px #bd362f;} .style_1.success{border: solid 1px #51a351;} .style_1.inf{border: solid 1px #2f96b4;} .style_1.warning{border: solid 1px #f89406;} .style_2{ background-color:#525252; padding:10px; position:relative; font-family: 'Open Sans', sans-serif; font-size:12px; text-decoration:none; color:#666; box-shadow: inset 0px 1px 0px #fff, 0px 3px 0px #666; border-radius: 5px;} .style_2:active {top:7px; box-shadow: inset 0px 1px 0px #fff, inset 0px -1px 0px #999;} .style_2::before { background-color:#525252; content:""; display:block; position:absolute; width:100%; height:100%; padding-left:2px; padding-right:2px; padding-bottom:4px; left:-2px; top:2px; z-index:-1; border-radius: 6px; box-shadow: 0px 1px 0px #fff;} .style_2:active::before {top:-2px;} .style_2.success{background-color:#6fba26;box-shadow: inset 0px 1px 0px #b2f17f, 0px 3px 0px #3d6f0d;} .style_2.success::before {background-color:#1a5611;} .style_2.success:active {top:7px; box-shadow: inset 0px 1px 0px #b2f17f, inset 0px -1px 0px #3d6f0d;} .style_2.warning{background-color:#99581f;box-shadow: inset 0px 1px 0px #f5b951, 0px 3px 0px #bd6315;} .style_2.warning::before {background-color:#99581f;} .style_2.warning:active {top:7px; box-shadow: inset 0px 1px 0px #f5b951, inset 0px -1px 0px #99581f;} .style_2.danger{background-color:#590e0c;box-shadow: inset 0px 1px 0px #ff9f9c, 0px 3px 0px #8f110d;} .style_2.danger::before {background-color:#590e0c;} .style_2.danger:active {top:7px; box-shadow: inset 0px 1px 0px #ff9f9c, inset 0px -1px 0px #8f110d;} .style_2.inf{background-color:#034354;box-shadow: inset 0px 1px 0px #91e7ff, 0px 3px 0px #0d6b85;} .style_2.inf::before {background-color:#034354;} .style_2.inf:active {top:7px; box-shadow: inset 0px 1px 0px #91e7ff, inset 0px -1px 0px #0d6b85;} .style_3{ background-color:#3bb3e0; font-family: 'Open Sans', sans-serif; font-size:12px; text-decoration:none; color:#666; position:relative; padding:9px 20px; border-left:solid 1px #4d4b4d; text-shadow:none; border-top-right-radius: 5px; border-bottom-right-radius: 5px; margin-left:35px; background: -webkit-linear-gradient(top, white, #E0E0E0); background: -moz-linear-gradient(top, white, #E0E0E0); background: -ms-linear-gradient(top, white, #E0E0E0); background: -o-linear-gradient(top, white, #E0E0E0); background: linear-gradient(top, white, #E0E0E0); box-shadow: inset 0px 1px 0px #fff, 0px 5px 0px 0px #212121, 0px 10px 5px #999;} .style_3:hover{ text-decoration:none;box-shadow: inset 0px 1px 0px #fff, 0px 5px 0px 0px #212121, 0px 10px 5px #999;} .style_3:active {top:3px;box-shadow: inset 0px 1px 0px #fff, 0px 2px 0px 0px #212121, 0px 5px 3px #999;} .style_3::before { content:"1"; text-align:center; width:35px; max-height:27px; height:100%; position:absolute; display:block; padding-top:8px; top:-1px; left:-36px; font-size:16px; font-weight:bold; color:#fff; border-right:solid 1px #4d4b4d; background-color:#666; border-top-left-radius: 5px; border-bottom-left-radius: 5px; box-shadow:inset 0px 1px 0px #999, 0px 5px 0px 0px #212121, 0px 10px 5px #999 ;} .style_3:active::before{top:-4px;box-shadow:inset 0px 1px 0px #999, 0px 5px 0px 0px #212121, 1px 1px 0px 0px #454545, 2px 2px 0px 0px #454545, 2px 5px 0px 0px #212121, 6px 4px 2px rgba(0,0,0,.5), 0px 10px 5px #999 ;} .style_3.inf{border-left:solid 1px #2ab7ec;box-shadow: inset 0px 1px 0px #2ab7ec, 0px 5px 0px 0px #156785, 0px 10px 5px #999; background-color: #49AFCD; background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); background-image: linear-gradient(top, #5bc0de, #2f96b4); -pie-background: linear-gradient(#5bc0de, #2f96b4);} .style_3.inf:active {box-shadow: inset 0px 1px 0px #2ab7ec, 0px 2px 0px 0px #156785, 0px 5px 3px #999;} .style_3.inf::before {box-shadow:inset 0px 1px 0px #2ab7ec, 0px 5px 0px 0px #032b3a, 0px 10px 5px #999 ; border-right:solid 1px #07526e; color:#8fd1ea; background-image: -webkit-linear-gradient(bottom, rgb(10,94,125) 0%, rgb(14,139,184) 100%); background-image: -moz-linear-gradient(bottom, rgb(10,94,125) 0%, rgb(14,139,184) 100%); background-image: -ms-linear-gradient(bottom, rgb(10,94,125) 0%, rgb(14,139,184) 100%); background-image: -o-linear-gradient(bottom, rgb(10,94,125) 0%, rgb(14,139,184) 100%); background-image: linear-gradient(bottom, rgb(10,94,125) 0%, rgb(14,139,184) 100%);} .style_3.inf:active::before{box-shadow:inset 0px 1px 0px #2ab7ec, 0px 5px 0px 0px #032b3a,1px 1px 0px 0px #044a64,2px 2px 0px 0px #044a64,2px 5px 0px 0px #044a64, 6px 4px 2px #0b698b, 0px 10px 5px #999 ;} .style_3.danger{border-left:solid 1px #2ab7ec;box-shadow: inset 0px 1px 0px #ee5f5b, 0px 5px 0px 0px #570e0b, 0px 10px 5px #999; background-color: #DA4F49; background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); background-image: linear-gradient(top, #ee5f5b, #bd362f);} .style_3.danger:active {box-shadow: inset 0px 1px 0px #ee5f5b, 0px 2px 0px 0px #570e0b, 0px 5px 3px #999; border-top:1px solid #ff7373;} .style_3.danger::before {box-shadow:inset 0px 1px 0px #ffa7a6, 0px 5px 0px 0px #570e0b, 0px 10px 5px #999 ; border-right:solid 1px #bd362f; color:#fac3c3; background-color: #DA4F49; background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); background-image: linear-gradient(top, #ee5f5b, #bd362f);} .style_3.danger:active::before{box-shadow:inset 0px 1px 0px #ffa7a6, 0px 5px 0px 0px #570e0b, 1px 1px 0px 0px #570e0b, 2px 2px 0px 0px #570e0b, 2px 5px 0px 0px #570e0b, 6px 4px 2px rgba(0,0,0,.5), 0px 10px 5px #999 ;} .style_3.success{border-left:solid 1px #51a351;box-shadow: inset 0px 1px 0px #62c462, 0px 5px 0px 0px #125912, 0px 10px 5px #999; background-color: #62c462; background-image: -moz-linear-gradient(top, #62c462, #51a351); background-image: -ms-linear-gradient(top, #62c462, #51a351); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); background-image: -webkit-linear-gradient(top, #62c462, #51a351); background-image: -o-linear-gradient(top, #62c462, #51a351); background-image: linear-gradient(top, #62c462, #51a351);} .style_3.success:active {box-shadow: inset 0px 1px 0px #62c462, 0px 2px 0px 0px #125912, 0px 5px 3px #999; border-top:1px solid #62c462;} .style_3.success::before {box-shadow:inset 0px 1px 0px #89f589, 0px 5px 0px 0px #125912, 0px 10px 5px #999 ; border-right:solid 1px #51a351; color:#c7fcc7; background-color: #62c462; background-image: -moz-linear-gradient(top, #62c462, #51a351); background-image: -ms-linear-gradient(top, #62c462, #51a351); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); background-image: -webkit-linear-gradient(top, #62c462, #51a351); background-image: -o-linear-gradient(top, #62c462, #51a351); background-image: linear-gradient(top, #62c462, #51a351);} .style_3.success:active::before{box-shadow:inset 0px 1px 0px #62c462, 0px 5px 0px 0px #125912, 1px 1px 0px 0px #125912,2px 2px 0px 0px #125912,2px 5px 0px 0px #125912,6px 4px 2px rgba(0,0,0,.5),0px 10px 5px #999 ;} .style_3.warning{border-left:solid 1px #f89406;box-shadow: inset 0px 1px 0px #fbb450, 0px 5px 0px 0px #82510d, 0px 10px 5px #999; background-color: #FAA732; background-image: -moz-linear-gradient(top, #fbb450, #f89406); background-image: -ms-linear-gradient(top, #fbb450, #f89406); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); background-image: -webkit-linear-gradient(top, #fbb450, #f89406); background-image: -o-linear-gradient(top, #fbb450, #f89406); background-image: linear-gradient(top, #fbb450, #f89406);} .style_3.warning:active {box-shadow: inset 0px 1px 0px #fbb450, 0px 2px 0px 0px #82510d, 0px 5px 3px #999; border-top:1px solid #fbb450;} .style_3.warning::before {box-shadow:inset 0px 1px 0px #fbb450, 0px 5px 0px 0px #82510d, 0px 10px 5px #999 ; border-right:solid 1px #f89406; color:#ffeed6; background-color: #FAA732; background-image: -moz-linear-gradient(top, #fbb450, #f89406); background-image: -ms-linear-gradient(top, #fbb450, #f89406); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); background-image: -webkit-linear-gradient(top, #fbb450, #f89406); background-image: -o-linear-gradient(top, #fbb450, #f89406); background-image: linear-gradient(top, #fbb450, #f89406);} .style_3.warning:active::before{box-shadow:inset 0px 1px 0px #fbb450, 0px 5px 0px 0px #82510d, 1px 1px 0px 0px #82510d,2px 2px 0px 0px #82510d,2px 5px 0px 0px #82510d,6px 4px 2px rgba(0,0,0,.5),0px 10px 5px #999 ;} .style_4 { background-color:#4b3f39; font-family: 'Open Sans', sans-serif; font-size:12px; text-decoration:none; color:#666; text-shadow:none; position:relative; padding:10px 20px; padding-right:50px; border-radius: 5px; border:none; box-shadow: 0px 5px 0px 0px #212121, 0px 10px 5px #999; border-top:1px solid #eee;} .style_4:active { top:3px; box-shadow:0px 2px 0px 0px #212121, 0px 5px 3px #999;} .style_4::before { background-color:#666; background-image:url(../images/right_arrow.png); background-repeat:no-repeat; background-position:center center; content:""; width:20px; height:20px; position:absolute; right:15px; top:50%; margin-top:-9px; border-radius: 50%; box-shadow: inset 0px 1px 0px #19120f, 0px 1px 0px #827066;} .style_4:hover{ text-decoration:none;box-shadow: 0px 5px 0px 0px #212121, 0px 10px 5px #999;} .style_4:active:hover{box-shadow: 0px 2px 0px 0px #212121, 0px 10px 5px #999;} .style_4:active::before { top:50%; margin-top:-12px; box-shadow:0px 3px 0px #19120f, 0px 6px 3px #382e29;} .style_4.inf{box-shadow: 0px 5px 0px 0px #1e4b57, 0px 10px 5px #999;} .style_4.inf:active {box-shadow:0px 2px 0px 0px #1e4b57, 0px 5px 3px #999;} .style_4.inf::before{background-color:#14748f;} .style_4.inf:active::before {box-shadow:0px 3px 0px #1e4b57, 0px 6px 3px #382e29;} .style_4.inf:active:hover{box-shadow: 0px 2px 0px 0px #1e4b57;} .style_4.danger{box-shadow: 0px 5px 0px 0px #701714, 0px 10px 5px #999;} .style_4.danger:active {box-shadow:0px 2px 0px 0px #701714, 0px 5px 3px #999;} .style_4.danger::before{background-color:#bd362f;} .style_4.danger:active:hover{box-shadow: 0px 2px 0px 0px #701714;} .style_4.danger:active::before {box-shadow:0px 3px 0px #701714, 0px 6px 3px #382e29;} .style_4.success{box-shadow: 0px 5px 0px 0px #1e661e, 0px 10px 5px #999;} .style_4.success:active {box-shadow:0px 2px 0px 0px #1e661e, 0px 5px 3px #999;} .style_4.success::before{background-color:#229422;} .style_4.success:active:hover{box-shadow: 0px 2px 0px 0px #1e661e;} .style_4.success:active::before {box-shadow:0px 3px 0px #1e661e, 0px 6px 3px #382e29;} .style_4.warning{box-shadow: 0px 5px 0px 0px #8a6530, 0px 10px 5px #999;} .style_4.warning:active {box-shadow:0px 2px 0px 0px #8a6530, 0px 5px 3px #999;} .style_4.warning::before{background-color:#d18822;} .style_4.warning:active:hover{box-shadow: 0px 2px 0px 0px #8a6530;} .style_4.warning:active::before {box-shadow:0px 3px 0px #8a6530, 0px 6px 3px #382e29;} .style_1.danger,.style_1.success,.style_1.inf,.style_1.warning, .style_2.danger,.style_2.success,.style_2.inf,.style_2.warning, .style_3.danger,.style_3.success,.style_3.inf,.style_3.warning, .style_4.danger,.style_4.success,.style_4.inf,.style_4.warning{color:#fff;} /* shadows */ .text-shadow{ padding:1em; text-align:center; font-size:1.2em; line-height:1.4em; box-shadow:inset 0 0 20px rgba(0,0,0,.1)} .pad-shadow{ padding:10px 0;} .pad-shadow div.lifted{ border-radius:5px;} .lifted {position:relative;background:#fff;box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);} .lifted:before, .lifted:after { content:""; position:absolute; z-index:-2; bottom:15px; left:10px; width:50%; height:20%; -webkit-box-shadow:0 15px 10px rgba(0, 0, 0, 0.7); -moz-box-shadow:0 15px 10px rgba(0, 0, 0, 0.7); box-shadow:0 15px 10px rgba(0, 0, 0, 0.7); -webkit-transform:rotate(-3deg); -moz-transform:rotate(-3deg); -ms-transform:rotate(-3deg); -o-transform:rotate(-3deg); transform:rotate(-3deg);} .lifted:after { right:10px; left:auto; -webkit-transform:rotate(3deg); -moz-transform:rotate(3deg); -ms-transform:rotate(3deg); -o-transform:rotate(3deg); transform:rotate(3deg);} .curled{position:relative;background:#fff;box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);border-radius:0 0 120px 120px / 0 0 6px 6px;} .curled:before, .curled:after { content:""; position:absolute; z-index:-2; bottom:12px; left:10px; width:50%; height:55%; max-width:200px; -webkit-box-shadow:0 8px 12px rgba(0, 0, 0, 0.5); -moz-box-shadow:0 8px 12px rgba(0, 0, 0, 0.5); box-shadow:0 8px 12px rgba(0, 0, 0, 0.5); -webkit-transform:skew(-8deg) rotate(-3deg); -moz-transform:skew(-8deg) rotate(-3deg); -ms-transform:skew(-8deg) rotate(-3deg); -o-transform:skew(-8deg) rotate(-3deg); transform:skew(-8deg) rotate(-3deg);} .curled:after { right:10px; left:auto; -webkit-transform:skew(8deg) rotate(3deg); -moz-transform:skew(8deg) rotate(3deg); -ms-transform:skew(8deg) rotate(3deg); -o-transform:skew(8deg) rotate(3deg); transform:skew(8deg) rotate(3deg);} .perspective {position:relative;background:#fff;box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);} .perspective:before, .perspective:after {content:"";position:absolute;z-index:-2;} .perspective:before { left:80px; bottom:5px; width:50%; height:35%; max-width:200px; box-shadow:-80px 0 8px rgba(0, 0, 0, 0.4); -webkit-transform:skew(50deg); -moz-transform:skew(50deg); -ms-transform:skew(50deg); -o-transform:skew(50deg); transform:skew(50deg); -webkit-transform-origin:0 100%; -moz-transform-origin:0 100%; -ms-transform-origin:0 100%; -o-transform-origin:0 100%; transform-origin:0 100%;} .perspective:after {display:none;} .raised { position:relative; background:#fff;box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);box-shadow: 0 7px 5px -5px rgba(0, 0, 0, 0.3), 0 1px 4px rgba(0, 0, 0, 0.3);} .raised:before, .raised:after {content:"";position:absolute; z-index:-2;} .curved-vt-2 {position:relative;background:#fff;box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);} .curved-vt-2:before, .curved-vt-2:after {content:"";position:absolute;z-index:-2;} .curved-vt-2:before { top:10px; bottom:10px; left:0; right:0; box-shadow:0 0 8px rgba(0,0,0,0.6); border-radius:10px / 100px;} .curved-hz-2 {position:relative;background:#fff;box-shadow:0 1px 4px rgba(0, 0, 0, 0.3);} .curved-hz-2:before, .curved-hz-2:after {content:"";position:absolute;z-index:-2;} .curved-hz-2:before { top:0px; bottom:0px; left:10px; right:10px; box-shadow:0 0 7px rgba(0,0,0,0.6); border-radius:100px / 10px;} /* LightBox */ .lightbox-image {position:relative;overflow:hidden;display:inline-block;z-index:99;} .lightbox-image img {position:relative;z-index:2;background:#f1f1f1;} .lightbox-image span {display:block;position:absolute;left:0;top:0;width:100%;height:100%;background: url(../images/magnifying-glass.png) no-repeat 50% 50%;z-index:1;} .video .lightbox-image span{background: url(../images/icons/play_video.png) no-repeat 50% 50%;z-index:3; opacity:.8;} .video .lightbox-image:hover span{ opacity:1;} .video{ z-index:99; position:relative;} /*--------------------------------- Code -----------------------------------*/ .description-box-pad{ padding:20px 0 0 0;} .description-box-pad2{ padding:83px 0 0 0;} .description-box-pad3{ padding:15px 0;} .description-box{ position:relative; z-index:99;} .description-box dt{ display:inline-block;} .description-box dt a{ display:inline-block;} .description-box dt a:hover{ box-shadow:none; text-decoration:none;} .description-box dt.active a{ border: 1px solid #999; border-bottom-color: #CCC; border-top-color: #3B3B3B; background: #999999; text-shadow:0 1px 1px #3B3B3B; box-shadow:none; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#3B3B3B), to(#999)); background: -webkit-linear-gradient(#3B3B3B, #999); background: -moz-linear-gradient(#3B3B3B, #999); background: -ms-linear-gradient(#3B3B3B, #999); background: -o-linear-gradient(#3B3B3B, #999); background: linear-gradient(#3B3B3B, #999); -pie-background: linear-gradient(#3B3B3B, #999);} .description-box dd{display:none;padding:15px 15px; margin:3px 0 0 0; background:#fff; border-radius:5px; position:relative;box-shadow:inset 0 1px 1px rgba(170,170,170,.8); border: 1px solid #AAA; border-bottom-color: #CCC; border-top-color: #999;} .description-box dd p{ padding:0 0 0 5px;} .description-box dt.active a span{background-position:0 0;} .description-box dt.active a:hover span{ opacity:1;background-position:0 0;} .code-box{ overflow:hidden; border:1px solid #eee; background:#fff; border-radius:3px; margin-top:5px;} code.small-box-code{display:block;color:#212121;padding:2px 5px;border:1px solid #eee; background:#fff; margin:8px 0; border-radius:3px; font-size:12px; font-family:Arial, Helvetica, sans-serif;} .descr_title{ padding:10px 0 5px 5px !important; font-weight:bold; font-size:1.2em;} .descr_pad{ padding-bottom:15px !important;} .descr_pad2{ padding-top:15px !important;} code.small-box-code2{display:block;color:#212121;padding:2px 5px;border:1px solid #eee; background:#fff; margin:15px 0 10px; border-radius:3px; font-size:12px; font-family:Arial, Helvetica, sans-serif;} /* ----------------- Icons Fonts ------------------*/ @font-face{ font-family: 'IcoMoon'; src: url('../fonts/icomoon-webfont.eot'); src: url('../fonts/icomoon-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/icomoon-webfont.woff') format('woff'), url('../fonts/icomoon-webfont.ttf') format('truetype'); } @font-face{ font-family: 'IcoMoonSocial'; src: url('../fonts/icomoonsocial-webfont.eot'); src: url('../fonts/icomoonsocial-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/icomoonsocial-webfont.woff') format('woff'), url('../fonts/icomoonsocial-webfont.ttf') format('truetype'); } /* input:range */ /* slider root element */ .range_slider { background:#999; height:5px; position:relative; cursor:pointer; border:1px solid #333; width:200px; float:left; clear:right; margin-top:10px; border-radius:5px; box-shadow:inset 0 0 8px #000;} /* progress bar (enabled with progress: true) */ .progress {height:5px; background-color:#C5FF00; display:none;opacity:0.6;} /* drag handle */ .handle { background:#fff; height:15px; width:15px; top:-7px; position:absolute; display:block; margin-top:1px; border:1px solid #000; cursor:move; box-shadow:0 0 3px rgba(0,0,0,.5); border-radius:14px;} /* the input field */ .range { border:1px inset #ddd; float:left; font-size:20px; margin:0 15px 0 10px !important; padding:5px 5px !important; text-align:center; width:25px !important; border-radius:5px; } /** padding **/ .pad_description{ padding:18px 0 0px;} .padtop-title{ padding-top:10px !important;} .address-pad{ padding-bottom:15px;} /* Pro Panel */ #advanced{ position:relative; z-index:998; width:100%; height:42px; top:0px; left:0;} #advanced .bg_pro{ height:39px; border-top:1px solid #292929; border-bottom:2px solid #3a3a3a; background:url(../images/panel_bg.png) 0 0 repeat-x;} #advanced .pro_logo{ background:url(../images/pro-logo.png) 0 0 no-repeat; display:block; width:62px; height:23px; float:left;} #advanced .pro_main{ width:1590px; margin:6px auto;} #advanced span.trigger{display:block;position:absolute; background:url(../images/pro_button.png) 0 0 no-repeat; width:42px; height:42px; right:0; bottom:-42px; cursor:pointer;} #advanced span.trigger strong{display:block; background: url(../images/plus-minus.png) 0 0 no-repeat; width:11px; height:11px; position:absolute; right:7px; bottom:24px; opacity:0;} #advanced.closed span.trigger strong{opacity:1;} #advanced span.trigger em{display:block; background: url(../images/plus-minus.png) -11px 0 no-repeat; width:11px; height:11px; position:absolute; right:7px; bottom:24px;} .pro_menu, .pro_menu * {margin:0;padding:0;list-style:none;} .pro_menu{ padding-left:95px; float:left;} .pro_menu li {float:left; position:relative; margin-right:7px; font:14px/1.2em Arial, Helvetica, sans-serif;} .pro_menu li a {display:block; border: 1px solid #0d0d0d; border-top:1px solid #0e0e0e; border-radius: 6px; padding: 4px 26px 3px 32px; white-space: nowrap; vertical-align: middle; color: #a3a3a3; background: #272727; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#272727), to(#0f0f0f)); background: -webkit-linear-gradient(#272727, #0f0f0f); background: -moz-linear-gradient(#272727, #0f0f0f); background: -ms-linear-gradient(#272727, #0f0f0f); background: -o-linear-gradient(#272727, #0f0f0f); background: linear-gradient(#272727, #0f0f0f); -pie-background: linear-gradient(#272727, #0f0f0f); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 1px 1px #3b3b3b;} .pro_menu li a span{ display:inline-block; background:url(../images/pro_menu_arrow.png) 0 0 no-repeat; width:8px; height:5px; margin:7px 0 0 5px;} .pro_menu li a:hover span,.pro_menu li.current a span,.pro_menu li.sfHover a span{background:url(../images/pro_menu_arrow.png) 0 -5px no-repeat;} .pro_menu li a:hover,.pro_menu li.sfHover a,.pro_menu li.current a{ border: 1px solid #0d0d0d; border-top:1px solid #0e0e0e; color:#fff; background: #575757; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#575757), to(#141414)); background: -webkit-linear-gradient(#575757, #141414); background: -moz-linear-gradient(#575757, #141414); background: -ms-linear-gradient(#575757, #141414); background: -o-linear-gradient(#575757, #141414); background: linear-gradient(#575757, #141414); -pie-background: linear-gradient(#575757, #141414); text-decoration:none; box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 1px 1px #595959;} .pro_menu li:first-child a{ background:none !important;-pie-background:none !important; border:none !important; box-shadow:none; padding:4px 1px; margin:1px 3px 0 0;} .pro_menu li:first-child:hover a{ box-shadow:none; opacity:.8;} .pro_menu ul { position:absolute; z-index: 99; top: -999em; width:150px; top:33px; left:0; display:none; padding:10px 0; border: 1px solid #0d0d0d; border-top:1px solid #0e0e0e; border-radius:0 0 6px 6px; background: #272727; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#272727), to(#0f0f0f)); background: -webkit-linear-gradient(#272727, #0f0f0f); background: -moz-linear-gradient(#272727, #0f0f0f); background: -ms-linear-gradient(#272727, #0f0f0f); background: -o-linear-gradient(#272727, #0f0f0f); background: linear-gradient(#272727, #0f0f0f); -pie-background: linear-gradient(#272727, #0f0f0f); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 1px 1px #3b3b3b; } .pro_menu li li{padding:5px 0px; width:100%; margin:0; float:none; font:13px/1.2em Arial, Helvetica, sans-serif;} .pro_menu li li a,.pro_menu li.sfHover li a,.pro_menu li.current li a{background:none;-pie-background:none; border:none; display:inline-block; margin:0 0 0 20px; padding:0; box-shadow:none; color:#a8a8a8; text-shadow:none;} .pro_menu li li a:hover,.pro_menu li li.sfHover a,.pro_menu li li.current a{color:#fff;} .pro_menu ul ul { position:absolute; z-index: 99; top: -999em; width:150px; top:-10px; left:152px; padding:10px 0; display:none; border: 1px solid #0d0d0d; border-top:1px solid #0e0e0e; border-radius:6px; background: #272727; background: -webkit-gradient(linear, 0 0, 0 bottom, from(#272727), to(#0f0f0f)); background: -webkit-linear-gradient(#272727, #0f0f0f); background: -moz-linear-gradient(#272727, #0f0f0f); background: -ms-linear-gradient(#272727, #0f0f0f); background: -o-linear-gradient(#272727, #0f0f0f); background: linear-gradient(#272727, #0f0f0f); -pie-background: linear-gradient(#272727, #0f0f0f); box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 1px 1px #3b3b3b; } .pro_menu li li li a,.pro_menu li li.sfHover li a,.pro_menu li li.current li a{ color: #a8a8a8;} .pro_menu li li li a:hover,.pro_menu li li li.current a{color:#fff;}css/reset.css0000644075506000000310000000156411730722356012477 0ustar joaoferenga,abbr,acronym,address,applet,article,aside,audio,b,blockquote,big,body,center,canvas,caption,cite,code,command,datalist,dd,del,details,dfn,dl,div,dt,em,embed,fieldset,figcaption,figure,font,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,keygen,label,legend,li,meter,nav,object,ol,output,p,pre,progress,q,s,samp,section,small,span,source,strike,strong,sub,sup,table,tbody,tfoot,thead,th,tr,tdvideo,tt,u,ul,var{background:transparent;font-size:100%;border:0;outline:0;vertical-align:top;margin:0;padding:0} ul{list-style:none} blockquote,q{quotes:none} table,table td{border:none;border-collapse:collapse;padding:0} article,aside,audio,canvas,command,datalist,details,embed,figcaption,figure,footer,header,hgroup,keygen,meter,nav,output,progress,section,source,video{display:block} mark,rp,rt,ruby,summary,time{display:inline} img,embed{vertical-align:top}css/smoothness/0000755075506000000310000000000011734665234013044 5ustar joaoferengcss/smoothness/images/0000755075506000000310000000000011734665236014313 5ustar joaoferengcss/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png0000644075506000000310000000022511720656504021567 0ustar joaoferengPNG  IHDR_:M\IDAT810 &+O )B3ɒ 0z`#HYHʈe| #aGGIENDB`css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png0000644075506000000310000000015611720656504021437 0ustar joaoferengPNG  IHDRoX 5IDAT81 yUXHa@[{UUu@7 DFIENDB`css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png0000644075506000000310000000017011720656504021571 0ustar joaoferengPNG  IHDRoX ?IDAT81 0Bѯl`6Cs<]:[&BA e7lQJŜQY*IENDB`css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png0000644075506000000310000000026211720656504021555 0ustar joaoferengPNG  IHDR(ddrzyIDATh1 R 7(ȚV`%X V`%X V`%X V`%X V`%X V`%X V`%X V`%X V`%X V`%X V`%X V`%X Vj)2NIENDB`css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png0000644075506000000310000000015111720656504021654 0ustar joaoferengPNG  IHDRoX 0IDAT8! + ̼JHR)[lk=O_(<` H"IENDB`css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png0000644075506000000310000000014511720656504023442 0ustar joaoferengPNG  IHDRdG,Z`,IDATcx&!DJqш/Cc ;:*COIENDB`css/smoothness/images/ui-bg_glass_75_dadada_1x400.png0000644075506000000310000000015711720656504021636 0ustar joaoferengPNG  IHDRoX 6IDAT8cx&Qb%-7(`bbBf!؈(1Jc ܠIENDB`css/smoothness/images/ui-icons_888888_256x240.png0000644075506000000310000001042111720656504020427 0ustar joaoferengPNG  IHDRIJPLTEƁONtRNS2P."Tp@f` <BHJZ&0R,4j8D|($ blߝF>n~hhHIDATx]b۶H儒-{iZK:glkn-tIqq? E$dK>$>;PZsVh!Sy0E0}H)-t koܪKp\RϠ .E7 ) *V;~Pe Bx*,=$zDؾ JҸٻ9{ ǸHpqW@"2'B[$ @TiH/b٥96!XHq`DE*R HV!%;" i] dddddddd4y5  Rb@(8CdŪݡ,@T@ibrq0alX!pe, =4bW { 5Ƭhu~(Q^@3="b5XC@JCT76q_5 @,r šɩD)T|O@ ON-ՙ [n@RXIm݋(F @?=0puL;g$@6η K`>п @h գKVn"a" %l@.v$/U^ G:#`` uTtK~ŋZ5T%kxk]\*Q ,҇B44 OXK|yg+_M(lоEO V$T1BXb-|?@ fBXr%'@ҹA\IJ,}BBc\V rh(]tI^}oצo S3 ";ʙb}"߰ ){b$Gwwݾab")T@pF_er6JvШ"mޭM-d76x˰6ӥ;/`>KrP\_^u1%OTM.}Q3.Nس})>-w`a+sy$t)NbFFFFBejnNVn4,A*X*5>PGa 3 {oB &<L[ Nc.öi=`Q@d ͆I.Il`\t[< Cit484-r +f쑱BCB MH iy }>rxp|z;BǏ;burcK4tz1G~`ؚK| ̔>ۡO$~ Ao)0pzz }i`;ADm8n:cfA@s7L Z/..h8or? N93B~o_'`opO- :TG L;7]`B%˛>*wTpM0H}&t ^1'Oqr'2P͡+z,tIW''|en=dzgRm[NStK{҉mؓVt6ҲR`ζN&}B U(rۗ&1%Q''?l׸+&r{jN಻4) `N狌. ߭ ǣ)q 2?n3Hb`} .`pqY1e_bu7e+N_F(DT,L}LLrmP5|x芥1cx DAb`M(7NED~Mz +4BXd.Mzv͈Pd8p<6?8N*x.6ڍ6GFZ)O !lSshssNp8`'0/<s}.@Ǩs7ξO۟VDa5av]m1+3y6۠>@u50Ps51==p *KVҫ܂ݻc$N4(Xr2###c- 賟Lδ>]5.sYs1f0;'̨Yg銛{@9 `aC(=%bo2=n1 jBoS$n#m=i0ci9}oI qT]W%.(؅]z\x f"]o'u䫵tk{v;AC3ֆwwR_#X (xҋ/q%W hpk_IX'b/fXKi"#####QCLi2t 5L0 QiH2;yTOok;ע ٶ`RNg{zy!Kxm?A(vU~mL(`o/!nmX-{v[ dw=n「sdwzn(}Oy~ m ?XU;,V'+ V&JRZ]᧭:zC'-߆@y 4u `Vۓwъ#zP@Q N>2/{\o)W~a3xLw :_Q;=pּdt\'8~3SRP6y+XQ*޺r ̗ѭ*޺r gl/\U^u$|mbVnw \V|D͊NVNy7k<;/E}?E*dzgO ~g/96f cD}% g$QG7o)U Jo,O@0߾Q(;bw:5 NwRN5Iy'K?}:9mֽ*@f@jU9mҫÍ{$ؗ}dFp|%!DdF>}G{@FFFFFFƦQܞH 3 u Mo~vy}mwz<7nP9rWku=|_nz쿳}@IXn?sn~hhHIDATx]b۶H儒-{iZK:glkn-tIqq? E$dK>$>;PZsVh!Sy0E0}H)-t koܪKp\RϠ .E7 ) *V;~Pe Bx*,=$zDؾ JҸٻ9{ ǸHpqW@"2'B[$ @TiH/b٥96!XHq`DE*R HV!%;" i] dddddddd4y5  Rb@(8CdŪݡ,@T@ibrq0alX!pe, =4bW { 5Ƭhu~(Q^@3="b5XC@JCT76q_5 @,r šɩD)T|O@ ON-ՙ [n@RXIm݋(F @?=0puL;g$@6η K`>п @h գKVn"a" %l@.v$/U^ G:#`` uTtK~ŋZ5T%kxk]\*Q ,҇B44 OXK|yg+_M(lоEO V$T1BXb-|?@ fBXr%'@ҹA\IJ,}BBc\V rh(]tI^}oצo S3 ";ʙb}"߰ ){b$Gwwݾab")T@pF_er6JvШ"mޭM-d76x˰6ӥ;/`>KrP\_^u1%OTM.}Q3.Nس})>-w`a+sy$t)NbFFFFBejnNVn4,A*X*5>PGa 3 {oB &<L[ Nc.öi=`Q@d ͆I.Il`\t[< Cit484-r +f쑱BCB MH iy }>rxp|z;BǏ;burcK4tz1G~`ؚK| ̔>ۡO$~ Ao)0pzz }i`;ADm8n:cfA@s7L Z/..h8or? N93B~o_'`opO- :TG L;7]`B%˛>*wTpM0H}&t ^1'Oqr'2P͡+z,tIW''|en=dzgRm[NStK{҉mؓVt6ҲR`ζN&}B U(rۗ&1%Q''?l׸+&r{jN಻4) `N狌. ߭ ǣ)q 2?n3Hb`} .`pqY1e_bu7e+N_F(DT,L}LLrmP5|x芥1cx DAb`M(7NED~Mz +4BXd.Mzv͈Pd8p<6?8N*x.6ڍ6GFZ)O !lSshssNp8`'0/<s}.@Ǩs7ξO۟VDa5av]m1+3y6۠>@u50Ps51==p *KVҫ܂ݻc$N4(Xr2###c- 賟Lδ>]5.sYs1f0;'̨Yg銛{@9 `aC(=%bo2=n1 jBoS$n#m=i0ci9}oI qT]W%.(؅]z\x f"]o'u䫵tk{v;AC3ֆwwR_#X (xҋ/q%W hpk_IX'b/fXKi"#####QCLi2t 5L0 QiH2;yTOok;ע ٶ`RNg{zy!Kxm?A(vU~mL(`o/!nmX-{v[ dw=n「sdwzn(}Oy~ m ?XU;,V'+ V&JRZ]᧭:zC'-߆@y 4u `Vۓwъ#zP@Q N>2/{\o)W~a3xLw :_Q;=pּdt\'8~3SRP6y+XQ*޺r ̗ѭ*޺r gl/\U^u$|mbVnw \V|D͊NVNy7k<;/E}?E*dzgO ~g/96f cD}% g$QG7o)U Jo,O@0߾Q(;bw:5 NwRN5Iy'K?}:9mֽ*@f@jU9mҫÍ{$ؗ}dFp|%!DdF>}G{@FFFFFFƦQܞH 3 u Mo~vy}mwz<7nP9rWku=|_nz쿳}@IXn?s 2  '3 !"#$%&)*+,-./01456789:F<=>?@ABCDERoot Entry i*12 3  !"$%&'()*+,-/012345678:;<=>?ABCDEFGHIJLMNOPQRSTUWXYZ[\]^_`bcdefghijklmnopqrstuvwxyz{|}~ JFIF``C     C   `" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? (((oQV(( JFIF``C     C   `&" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (? JFIF``C     C   `&" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?S(((((((((((((((((( JFIF``C     C   `" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdef4 #5.Catalog9"6@ghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?E+((MҊZ*MŠ(( JFIF``C     C   `" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?P(((QEQEQE ``Rui-bg_glass_75_dadada_1x400.pngPui-bg_flat_0_aaaaaa_40x100.pngRui-bg_flat_75_ffffff_40x100.pngRui-bg_glass_55_fbf9ee_1x400.pngRui-bg_glass_65_ffffff_1x400.pngRui-b JFIF``C     C   `" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?#(((O*j((( JFIF``C     C   `" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdef7K8 V901 ghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?@+ ( (OJ*J* (( JFIF``C     C   `" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?((/P?(((( JFIF``C     C   Z`" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz  JFIF``C     C   Z`" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?HY` KS?6NysSM?S@Tͨ=BXP @RB ڼ֢qt2< v;GW{f'0[=wId]mco~Y}ޟ';#v /^ b0y+gc'q: k&񥷐/ncP"8'>9[t5%gtm":PʃRq(a=0&,Q|0w!Ye߿ؿi<9i([V7R#]ͩ[²y=ݙb ~c$p8fx xy.ܒ@ q{>p%br]@qwZeWn=>lߴ_ّǦKjӋ\Bq<<hve5 {6C ダ3Np:MM6*:فMBa r !NjyxkMkpmtdbs#l+9%# 扩J<]g˾`Qwo_?cɫwin{L A!;CtFH\bUMBІI-$vlz'${WtsGk(&sr[HÀ ׂ*{b8n.Ncs⟳WҮo5KYQk򑋑1+sIuY<=q/g34y2\*AlvVl,u-N]a$;t@-N†Pޤc9̊TO $8cp4Qn,̪t1b]v^5_TMb,jVV穤c+]rך'nng}(W$S'֦}jlVP\yٗF[ Zբ]{^7_Ʃ};tu7 "]ċdL35Jo8_l<)[2cs1q$GG`N9qxxZzMthއ+$`[I^C{F8ǟ(c^}*4FxjL`xfkNn 3\pqQqwߙ~;%'$m?_H}6ZaOGi(#nFۂrHb'uxfAƶ]6i0188 a& %?[PHƑ=*UCLSfᴖ\㐹kCP/!Muk'wӳȲa2~νa(IӒz/^~2IYzuw,uj 18$* o[xyu&+dbKnێH}2iEb=B3^2 _u?0|2U6~7l#d@v~I#% J=W]N^>]z=׎4;䑤}D%J`/M{ sD[OG%"NC8+y5_VѬ\#PVH`0♦j?|EkeȺ͆gق>bb<dXzN v[VTRI/mM?;vz+(r cq'4cFj:ƶf2}8ϴ|-]Z^xi"r8@zy[wḥvVI; VЧ7%_K{-L^2.F5Շ|IuwKYm!0v]H260A'.|1O5̧X&;Hvse)6 =ZPKM[OuA厀8'>&˰uyK+Py^]nx6V6z+oӝJr|/|}o/-vu {.lFSljD,cĠ'6)}o^Mywa o٥3&9Qյ ͩhw7z&u~wЎ',NSwb]X\lp/>F^Ȼ}=~G{yk}>ekxOa0G+`¨7F#gE[߈u m>MH廎ٷILߦN:O4o? y7RC E:9uWvʽdu,IQU$U=A=9Wd(ȾZr =ns1v}#}w̒Lգ E`g,UvrX\}\3FUl94_xzħ[XYi pP@;AxUm^LKyjg'Jmro /-lU&}=~omnh$PEF(Rr:&k-O_]N'a`k66dc vWnUe_wXo7^%as;[s)-ⵈG I cF@x՗CI"MB+YI#n"C.W*I9Ȫ?~ /547WkӤ.E@ bý*=?/^}n>W4ׄ?!3k(tx؛c(*r1ziDZk,xvY3,DT,"%~ROz=޿_[{{/Ep?'xr7iKo$hأ +X +/J4jʜ&U9T(筴]6^ q=VUޏiI$DIM\콫X$wTP'3Mxx_E o m_qG_A ?<'&3ǩf<={GwR՘ڝ}w c:Z=*ʹ+4|e>㉩(r)=r۾t`ʷݕis|5CCI|ֱv%pۜ9uuGIđ!E s^1RJSwovfbN1AEW)QEQE JFIF``C     C   Z`" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Aԡ5n$Ka[``y ȴ]~f\̫qkF1FeBp9Rpw~%f!4FAĄ>F\`W=&&Ym4q<͒rӴ' qMb}gHP yݭt lC NeXTeO"šE08- .vk }y,Z-;iDg1!1F#p%Ab1ɥZ[ėQ%w { Lֽj$X3I6*ٷG͌`}+{Vߋ|7w}OT]C*yH y.XT#F(&7an_v6=?X4Ƌ[U2Y S pcuNnk;- Zj GAzU/ j{ ְNȲI%%e!s@?tmGM˓QVkIHbmt\L*Amu-4kY$Ax(ROh~[K61kp\ tw&ҴJOZ+mis߃Sw-GK""mfP8'YOxk7PHm4++H9FDG#3'^OI5ۏ>Xo#WN! ,~a`ҼAÛm׮Zm!h'A+%zR?H!gYT`85OI]> [5ANʼy;8ƒ}(Mlj<'}v,T0$%VExx*B Fg@oXoIs,ԐAi2;NtP2A&ֵ;mW xQ+0t)  o qPâioko$ % " W/~ 24k/}ᯆZkk5YtinnnZ$ve|q+đ|)־ Zͩƅm[Ǟ5Ǭ7+;ɬ݋AY=EK<{pHkx-Os.zLK I2D""@r]"zωu- gtwZE@+$5Nχl<*䦔r=Vƒ]aʒjmeTxFb2s[MԾn!X|5m5V\M>X1&IeD5~5o i3diE!z>0oU|)c=x/ၙxĊ}p;wW!lP'G L;wt<2f}M|TdO/;*GUrF=3z~.FI/JC îs&7_S\yy4$4khG )$ГR3o}[kRjK%G?̨Mn8|dUCn9^p ,6lѭ8( #P2N@ ћQiCR֟qB :G]R.NL.w(unb=G_>ߏ Q(Y3}: YCn{m7y_]SuSlm|MK5]YQrti<UK BQ<FO>ԒXa*bT*&W9^GR/ug&oQqC`֮vʣ@?*S\:ׅ[Wx~xf캅O,k89mb<G͌p@=b/xer.jKN*;|T9'9A$:T\DWL q!uv\"a¯ 9k o|e}MƯwcĐ@el3ew[`:MH|Es- LcQ8K]eoygks4;32>`<{s@Ƶ?=6qšŚ*4wL C)|*cE;v _ArDhw|y[n&*X (Gߋ]*OIsi"PC圼$WTǙo3X[ZūJnO"5LH\+(F7(uO^"VK%\e,DP[j[wP> QU!ZBP" @Oa^ #-tR Zi fٗeS1Nr+ DzZMO*Ek3lchF&"mڀ>:jZDK0A%:;1݀O8V!$?6%w-diOS9?w|sυBIl?Lԥ:%Bn B2`Io㿊W Yӵ(4q9I5gem&S1Nr(nUD"_yKa刦L8oN3һ KTaӯaԣ0W #;(ު q_:|miТKCb%#_g~n15j~2M?7m42Q׹e3u]^|`u@R%wr$-̨2껊n ̀zn>vVuko "(q_.~05'S[GΆi fnc kF "?ើ3'itA>%}I4YM:-ƶBvDxcڀ>XԾ|a_o6k,t}J^I`̨V)D# m9i~1[5ZCڤ}j]֎-F6f2ĒH(ែ/jog jsjOoU܀J:|-xĺq-wA@胮}|16 w~9⺚pSLq?R(TI1€[X[jvZ[wm :F<<ƞ{7OK+B'b\6>߱5 |dt_BƇ|{;ץp87i8=L&`2||޼qq_| O~烍6nL 7ʥnzDX[XZʶ[(bQI'j(((11(21 a31; JFIF``C     C   Z`" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?DKR#A7dbϏI֭+-MƯZLePPp1,}w_BYi'hˈԮ`stJÓLas{o4 \<ҟ2Kq3%Eq!S`J I^pnh~[I;+ cq 90:VΥsmmU#͔2eO4>PJgBK IodE`3 cִmV cF-.|)6!ë2 `K*L"\ h T*rs׽X_aX\#FrI+d Ԥ7t)#ӣ.F/ٙWp JcJ/x,jC±\sN n/0泍*r20 tLz;ieD hq9]r-b[Z,#۴0?>BC>j~kXA,L3Ը$+~K~Ce a֬麄Ͷ ley8aroZ:7o/n!dQ8Y,s5=ZVІeq&˻_cMF_<Ğ5 R]Vc;Ae W ?0 NҼE]]$!$)aU-x-YKaDTvOok!` nh8,[j.'?/kYƨ.,\+&1#p%ףmxnv]Ĭ-Um!'6~@A\Γ?jTovZ4 7X²k6dݎBn@][ZĿ  lm,FH/ʩEc;Z>*2S [ FjĽK9n i Yʡg/X7-cx9a跕$uƠȨW-"ޫ1\Yi> Ze5- 6)ma4P 2I1,&hz~%h,)a e-R_7g4ZׇImb*}Ww-F\ ^D\^#6@7; mN+h-YA,vK*xΨ#*>v#lφvT6cBY. V':< jO|bφ iwWRɨx[+x!g`I1pqB^_t5gI hUw?| ڌVcX4vdH+P2N@ ҚKgocc=JF]j.28@uA'~9+z4 !Wt>!ᳱJrqt?'iQ_umB[{JP-ʬPyKUB */m׺}no4,o}@O%:"E z^D]\= ]WhHqLҴZP\|.eaM41g2az$"O$ ?ͱRAlı *cUL8#_w5mWf_a Y6k\`B`wǗv`'qM6Oi_D[PwdVn2H7?Lvr#HgT n'wPjKC$"I!,B򅶌+sKMfN[ ɦA!XD]A}+4G'/[aX0܍Vb kW0mS1V6WⅧˆf?#Uk_#}/?zDq޴dk f_;1ާ?:(ؖ;Z7)}?wxk2wx8Ymt-><[BN!mǜ&_~ X_n ::tSb_+LS$"=~&b;rɧc)!=S/+0W ṇr~q_.'|:4~*Y5/϶5'`_7ov1R_pizvm}qq=̞Jˏ:0c:>KXK5UP;h's`v\8*Ww_V'&2LY h o%2FbsY+'I47g_{f*J,B%N1@QQ_9_/ w i].MRxUdٮ ̥W2#,> |Sľ;.kh[F3M&V n!A(X(+gx/lW-gEVO͸0~S4;5wD',ϊuH΢f@D8Ap8wvk|MX ̟.>o^89/ Ϡ[m2ɒy dtr{Ь[x"3+0\@Q@Q@Q@w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?I inVH\*5iyݞ#~hlu#-H% (I p8NS% ɑ) #hc|}lkY|N-kLH{D2d,'e~f/lⵌŹHP?(x$9Co:^+48\~@Ͽ+^c&<:!26T1 $QkkE_Ko+f|0Mߑ5-5A]B&m7' ? f]BXXuE>smH`G88CckmT\ʳmHNqh^GͬiNUe#HAc8;P]KS^Ѫ۩ˈoR<s0*Ƒm{kjR]͸xg8q5Z-6]c#9i9k.[3d=ZWQK krf>mf#9nXs8nU#%+٦򤑜Mugu-݈2srx5z9˽KSOri 8A۵h_[XEky_lʟg\0=kJിxVm[6Ow c_ U=1-OrOjjq%G,?2mI'Y,۾)|(0bWDB~az|oi"D{&G?Z㟧~hb= MOHy1hSN8#ӼO,R[Դf4YTR[m=WzHUAFT}#@ y%5o%0R<+BG̝x'@ ]GYkm5 B=N)A#z9$q*MM|#}/|r"'8V=5χz| ש`Wnጕ:.z}_.[`Fw7 p@=HtxSKH L᱃{TMƬgbݷ:}̲M҄Nt`̷LC.άAͷ#qyhKRdth+rH@PEs 6Igv}Qw[BArOo?:m4˽oX I *5]/xVm2ϩxaG In*ǧPc<8StFv/ pmo*a`6\jEox&JF~a?T_SLu-QFXVox8>ѩëŜWw;DVN@iO?{P8Cit;(o %5~KX0b1h14?/rV'ˏjNm!L?1pG?gXzLjcd{}ujvR̻b:6hǃ.-`eX7Qi$hUB >EtOYfI-ϙp|aa\D#_ɠY^/\[k_h/ hڣ$ xZÃIR4hhϒ  ۝+D<ɧ,+ɀ_ 0 cE( r~uE4i4ME rZށ׼3%z󒣞=Q{xcB񮳨۳kP UOtżBi;F[s@~4 i/pĴ,@NkzeV84 d(((g_glass_75_e6e6e6_1x400.pngRui-bg_glass_95_fef1ec_1x400.pngdui-bg_highlight-soft_75_cccccc_1x100.pngJ ui-icons_2e83ff_256x240.pngJ ui-icons_222222_256x240.pngJ ui-icons_454545_256x24 JFIF``C     C   Z`" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?DKR#[`;ubϏI֭+-MƱ-Vkxd&2P8 p%okB_K4b$q#.|:gaɥ09ܚ.diO%&p #n8b{}%g>/[jj\[ oKPU}@<v3-.%^{IB6m !gLbm-K˩#"ir蒱%![ F9Ś͝k5"-Uc?_nG5g;,HNq^_kZu:/,ND{*7. %y!JooI'"s5J;P&fݍ([Zω YT6Rʡ<A*J6av}Z>r(Hۤ1<mwV:Zɐ#U00Np:&ocVVZBdv3ҪxsQ|ŕٲnVɥupX]$0! dԧT~m({ I&%[;)@`\X.rU\$jyQG4U`g tng;^= +|aM^j^%Յc, @^Vo|AVWW[^[x;Lp3ߎq*+j⦇{\ N#7,q#f 32pO>槊u#um{KZw,] O\ӴCL5@څdK;VĄ\*(;p 1i~06ܝRwbp2(+`96?Ќiw?k/?CrMn?VhW gyneoʣ&90H 0J麥"m嶴X~|v,pO֩j|AộAcoRG-_\(wy'͝{V]P^+;FT l#%IS9v~]d]%7osjڲ>BhK IodE`3 cִmV cF-.|)6!ë2 `K*L"\ h T*rs׽X_aX\#FdJBN۾_;F;iZu), W:өі@[3 k8ڲW##݇LΧ.#vZ@l_  SEn|2/>ݻI /?T^}{Qcwۻb~S\x|>}t gaE0'q\. \^_C a֬隄Ͷ-ᅇYd^w`'8ֵZNTVt^Su~o^^B?PȣEqp))Yc meXhCQeV/wa5E'^]^V%n<{\:~pɊKJgh#b,rJXgp)W yk3xL4yVd |fAb[ *%ң/ |/[{LG =lpX]2McOM +f.53x;?0q.CNk ۿôjFmW&A,BlQ#$DVboN9^9t/dtkVK|6ps9EzumBRBK CPH` 6޼qQEX_jvnCTUO`K2bl8=mz?ڷoHe}J*DI63z 4T,|"U7X²k6dݎBn@]_ZĿ  ,m,>H/ʩEcÝ5{iG~:rjI9[z~U i^YSaX+mr0$ U.&hv^_pSMy*U 9} _zűwE&֛5EEti_d2Ma_1٨ıhiKl٧0v$dƠԕG kz&Z~&,Z8+) Ac|?BeO@ԼWo =ֵR{XafbOxGzm..$QpѲt `Eju\E/GYA,vK*xΨ#*>v#l%uw׳ AŶN^54ύ|5:LCu(R89gO? oWƕuu,%v !&>qguz_| ՟Q$x6GWlFw@%@9 VmJ+1 # n,)\$@;EB9-t}M`ԦsV _KzݍҚKooec=JF]j.28@eA'~:)z4 "Wt>!{lm~oq98Oo_꺶o-\\HVE(77O9/^iGDX(sx&Z?t eZ%YZCy3*aP-iٶOt}4اK, ?ͱRAlı *cUL8#گ̾+}&Gmj xb< 2ŏ MrASoڷxffJmf-Ȝ`w:^4'Rh]&ܱ&eQے *$VI'kyZRqo?jKNT-v|r[M^Y$j1I+B̹˫nDpbX\UgigwOc4+g&6#8'#v՟@{gK~'"n$0]vd: />ӾZAIÆig$A>`ߊZK+g]-< ^ۄ ʒNzWyKQG;[]y<<AIm5?xq n&-,s]Je3IEci~(Z|'Lw+װU|,E`%یvUV~'/I;b ߳[}iw}&5|$ w?*ؖ;Z7)}?wxk3wx8Y-t-><[BN! B/i?~,A?MuV:Q1Yfp֯oW)sOTg`/{_5򿕵=Ğ&^;rɧc)!=S/+0W ṇr~q_-|:4~*Y5/϶5'h_7ov/R_xv^_\j\C?cMSN+e=T1PVrۛdV-- K5U$( @}i-m a;xW8$ =xW╿4e@֎S)f'9 ;|3LMn#vuM"o^o@Y$"\t~_\½2=?ӧOqzQ_9_/<w i].MRxUdٮ V̥W2#K7.-VQIIՄۈPl'$~wc?-m޿GQ^W;ş!{aCxdߴhi YF^]T^TM.g|YsFW5uK *ga_{ºOKeDh%(iw).@8ڝRI5Y$ ltM-maw KvtOB.Ox8g/|6q$Z֊<R>o^=i:qN[*8ʳn^]vK|73>3mrn~hhHIDATx]b۶H儒-{iZK:glkn-tIqq? E$dK>$>;PZsVh!Sy0E0}H)-t koܪKp\RϠ .E7 ) *V;~Pe Bx*,=$zDؾ JҸٻ9{ ǸHpqW@"2'B[$ @TiH/b٥96!XHq`DE*R HV!%;" i] dddddddd4y5  Rb@(8CdŪݡ,@T@ibrq0alX!pe, =4bW { 5Ƭhu~(Q^@3="b5XC@JCT76q_5 @,r šɩD)T|O@ ON-ՙ [n@RXIm݋(F @?=0puL;g$@6η K`>п @h գKVn"a" %l@.v$/U^ G:#`` uTtK~ŋZ5T%kxk]\*Q ,҇B44 OXK|yg+_M(lоEO V$T1BXb-|?@ fBXr%'@ҹA\IJ,}BBc\V rh(]tI^}oצo S3 ";ʙb}"߰ ){b$Gwwݾab")T@pF_er6JvШ"mޭM-d76x˰6ӥ;/`>KrP\_^u1%OTM.}Q3.Nس})>-w`a+sy$t)NbFFFFBejnNVn4,A*X*5>PGa 3 {oB &<L[ Nc.öi=`Q@d ͆I.Il`\t[< Cit484-r +f쑱BCB MH iy }>rxp|z;BǏ;burcK4tz1G~`ؚK| ̔>ۡO$~ Ao)0pzz }i`;ADm8n:cfA@s7L Z/..h8or? N93B~o_'`opO- :TG L;7]`B%˛>*wTpM0H}&t ^1'Oqr'2P͡+z,tIW''|en=dzgRm[NStK{҉mؓVt6ҲR`ζN&}B U(rۗ&1%Q''?l׸+&r{jN಻4) `N狌. ߭ ǣ)q 2?n3Hb`} .`pqY1e_bu7e+N_F(DT,L}LLrmP5|x芥1cx DAb`M(7NED~Mz +4BXd.Mzv͈Pd8p<6?8N*x.6ڍ6GFZ)O !lSshssNp8`'0/<s}.@Ǩs7ξO۟VDa5av]m1+3y6۠>@u50Ps51==p *KVҫ܂ݻc$N4(Xr2###c- 賟Lδ>]5.sYs1f0;'̨Yg銛{@9 `aC(=%bo2=n1 jBoS$n#m=i0ci9}oI qT]W%.(؅]z\x f"]o'u䫵tk{v;AC3ֆwwR_#X (xҋ/q%W hpk_IX'b/fXKi"#####QCLi2t 5L0 QiH2;yTOok;ע ٶ`RNg{zy!Kxm?A(vU~mL(`o/!nmX-{v[ dw=n「sdwzn(}Oy~ m ?XU;,V'+ V&JRZ]᧭:zC'-߆@y 4u `Vۓwъ#zP@Q N>2/{\o)W~a3xLw :_Q;=pּdt\'8~3SRP6y+XQ*޺r ̗ѭ*޺r gl/\U^u$|mbVnw \V|D͊NVNy7k<;/E}?E*dzgO ~g/96f cD}% g$QG7o)U Jo,O@0߾Q(;bw:5 NwRN5Iy'K?}:9mֽ*@f@jU9mҫÍ{$ؗ}dFp|%!DdF>}G{@FFFFFFƦQܞH 3 u Mo~vy}mwz<7nP9rWku=|_nz쿳}@IXn?s Performance

    Performance Tests

    scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='DE' order by XML_FILE asc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from Testsconfig where ID=@ID"; $ds->InsertCommand = "insert into Testsconfig (Name,File,Class,Notes,Platform,ExecServer,Testbed,Date,Priority,Project,Time,tree) values ('@Name','@File','@Class','@Notes','@Platform','@ExecServer','@Testbed','@Date','@Priority','$project','@Time','@tree')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Use as template"; $column->OnClick = "myPopup2(\"{XML_FILE}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
    Render();?> Render();?>

    Edit Area


    XML File Name
    <>,|= +¬-]/', $filename) || $filename == ".xml") { echo ''; } else { $filename = "XML/$filename"; if (file_exists($filename)) { echo ''; } else { echo ''; $file_open = fopen($filename,"w+"); //fopen("something.txt","a+"); to add the contents to file fwrite($file_open, $_POST['code']); fclose($file_open); sleep(15); echo ''; /* $xml = new XMLReader(); $valid = $xml->open("$filename"); if ($valid == TRUE) { echo "Saved to $filename, please wait 1 minute for tables to create test"; $xml->close("$filename"); } else { unlink($filename); echo "This XML is not well formed, not saving it"; } */ } } } ?>
    site_pro/de.php~0000644075506000000310000002624012161132362012130 0ustar named Performance

    Performance Tests

    scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='STRESS' order by XML_FILE asc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from Testsconfig where ID=@ID"; $ds->InsertCommand = "insert into Testsconfig (Name,File,Class,Notes,Platform,ExecServer,Testbed,Date,Priority,Project,Time,tree) values ('@Name','@File','@Class','@Notes','@Platform','@ExecServer','@Testbed','@Date','@Priority','$project','@Time','@tree')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Use as template"; $column->OnClick = "myPopup2(\"{XML_FILE}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
    Render();?> Render();?>

    Edit Area


    XML File Name
    <>,|= +¬-]/', $filename) || $filename == ".xml") { echo ''; } else { $filename = "XML/$filename"; if (file_exists($filename)) { echo ''; } else { echo ''; $file_open = fopen($filename,"w+"); //fopen("something.txt","a+"); to add the contents to file fwrite($file_open, $_POST['code']); fclose($file_open); sleep(15); echo ''; /* $xml = new XMLReader(); $valid = $xml->open("$filename"); if ($valid == TRUE) { echo "Saved to $filename, please wait 1 minute for tables to create test"; $xml->close("$filename"); } else { unlink($filename); echo "This XML is not well formed, not saving it"; } */ } } } ?>
    site_pro/de_submit.php0000644075506000000310000002061512220247006013313 0ustar named ' , 'writeCookie();' , 'function writeCookie()' , '{' , 'var the_date = new Date("December 31, 2023");' , 'var username = prompt("Please enter your narra username", "");' , 'var password = prompt("Please enter your narra password", "");' , 'var the_cookie_date = the_date.toGMTString();' , 'var the_cookie = "user_password="+ username +"@"+ password;' , 'var the_cookie = the_cookie + ";expires=" + the_cookie_date;' , 'document.cookie=the_cookie;' , '}' , ''; echo ''; } ?> Performance

    Performance Submit

    scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,RUN_PARAMETERS from tests WHERE CLASS='DE' order by XML_FILE asc"; $ds->UpdateCommand = "update tests set RUN_PARAMETERS='@RUN_PARAMETERS' WHERE ID=@ID"; $ds->DeleteCommand = "insert into queue (ID,XML_FILE,CLASS,PRIORITY,RUN_PARAMETERS,USERNAME,PASSWORD) values ('@ID','@XML_FILE','PERFORMANCE','3','@RUN_PARAMETERS','$user','$password')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowEditing = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->ReadOnly = true; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Added to Queue"; $column->DeleteButtonText = "Submit"; $column->Align = "center"; $column->Width = "100px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
    Render();?> Render();?>

    This is your Narra username and password
    Username:$user
    Password:$password"; ?>
    ' , 'writeCookie();' , 'function writeCookie()' , '{' , 'var the_date = new Date("December 31, 2023");' , 'var username = prompt("Please enter your narra username", "");' , 'var password = prompt("Please enter your narra password", "");' , 'var the_cookie_date = the_date.toGMTString();' , 'var the_cookie = "user_password="+ username +"@"+ password;' , 'var the_cookie = the_cookie + ";expires=" + the_cookie_date;' , 'document.cookie=the_cookie;' , '}' , ''; echo ''; } ?>
    site_pro/faq_configs.php0000644075506000000310000005331012220247006013615 0ustar named Performance

    Single D Configs

    CEF

    ip cef ip routing default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown

    NBAR

    default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown

    NAT

    ! ip nat translation max-entries 300000 access-list 1 permit 21.0.0.0 0.255.255.255 access-list 2 permit 20.0.0.0 0.255.255.255 ip nat inside source list 1 interface $uut_data(uut,SERVER1) overload ip nat inside source list 2 interface $uut_data(uut,SERVER2) overload ip nat translation timeout 120 ip nat translation dns-timeout 1 ip nat translation finrst-timeout 1 ! ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 ip nat outside no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 ip nat outside no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 ip nat inside no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 ip nat inside no shutdown

    AVC_310_A

    ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown

    AVC_310_B

    ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown

    AVC_310_C

    ! AVC 310 C performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-response-time ipv4 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor media ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown

    CRYPTO

    ! CRYPTO ! UUT default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,CLIENT2) default interface $uut_data(uut,WAN1) default interface $uut_data(uut,WAN2) ! CONFIGURE CRYPTO PEER crypto isakmp policy 1 lifetime 86400 encr aes 256 authentication pre-share crypto isakmp key cisco address 192.168.0.0 255.255.0.0 crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 crypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac ! crypto ipsec profile vti-1 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! crypto ipsec profile vti-2 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! interface loopback 1 ip address 192.168.1.1 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface loopback 2 ip address 192.168.2.2 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface tunnel 1 ip unnumbered $uut_data(uut,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.3.3 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-1 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! interface tunnel 2 ip unnumbered $uut_data(uut,WAN2) bandwidth 1000000 tunnel source loopback 2 tunnel destination 192.168.4.4 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-2 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! ip route 22.0.0.0 255.0.0.0 tunnel 1 ip route 23.0.0.0 255.0.0.0 tunnel 2 ! ip route 192.168.3.3 255.255.255.255 $uut_data(uut,WAN1) ip route 192.168.4.4 255.255.255.255 $uut_data(uut,WAN2) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! ! ! INTERFACES THAT CONNECT TO PEER ! interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown interface $uut_data(uut,WAN2) ip address 25.0.0.1 255.255.255.0 no shutdown ! ! ! !!!!!!!!!! ! PEER !!!!!!!!!! ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,SERVER2) default interface $uut_data(uut2,WAN1) default interface $uut_data(uut2,WAN2) ! ! CONFIGURE CRYPTO PEER crypto isakmp policy 1 lifetime 86400 encr aes 256 authentication pre-share crypto isakmp key cisco address 192.168.0.0 255.255.0.0 crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 crypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac ! crypto ipsec profile vti-1 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! crypto ipsec profile vti-2 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! interface loopback 1 ip address 192.168.3.3 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface loopback 2 ip address 192.168.4.4 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface tunnel 1 ip unnumbered $uut_data(uut2,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.1.1 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-1 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! interface tunnel 2 ip unnumbered $uut_data(uut2,WAN2) bandwidth 1000000 tunnel source loopback 2 tunnel destination 192.168.2.2 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-2 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! ip route 20.0.0.0 255.0.0.0 tunnel 1 ip route 21.0.0.0 255.0.0.0 tunnel 2 ! ip route 192.168.1.1 255.255.255.255 $uut_data(uut2,WAN1) ip route 192.168.2.2 255.255.255.255 $uut_data(uut2,WAN2) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(uut2,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(uut2,WAN2) ip address 25.0.0.2 255.255.255.0 no shutdown
    site_pro/faq_configs.php~0000644075506000000310000002710212175556615014035 0ustar named Performance

    Single D Configs

    CEF

    ip cef ip routing default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown

    NBAR

    default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown

    NAT

    ! ip nat translation max-entries 300000 access-list 1 permit 21.0.0.0 0.255.255.255 access-list 2 permit 20.0.0.0 0.255.255.255 ip nat inside source list 1 interface $uut_data(uut,SERVER1) overload ip nat inside source list 2 interface $uut_data(uut,SERVER2) overload ip nat translation timeout 120 ip nat translation dns-timeout 1 ip nat translation finrst-timeout 1 ! ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 ip nat outside no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 ip nat outside no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 ip nat inside no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 ip nat inside no shutdown

    AVC_310_A

    ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown

    AVC_310_B

    ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown
    site_pro/fonts/0000755075506000000310000000000011734665234011774 5ustar namedsite_pro/fonts/icomoon-webfont.woff0000644075506000000310000004460011725230630015754 0ustar namedwOFFImFFTMl`#GDEF OS/2CVagcmapzrQUcvt :: ) fpgme/gaspglyf>g]ŒheadD/6 |hheaD@ $ hmtxD`ElocaE,BNpmaxpFp nameF@5postG<tADlWprepHw Zxc```d t(Cxc`d``b `b`¥@1 axc`d8՘uO54;;sΙ3KʑwisHnf~'EFF#-63z}f4N@y[CFN2?><fZg!=|3ni5YwA_:\ TT\m63wp!"?hj@ӟ:z>b rl &?Dpa2]T-3vp,:ؤJsU -2KC*1B$BN9w?)P>1oθaq50fS[0~G/ƒ>6F؎X `QUs/3%`y_';6/emc6eݪ\EwU5TC/gOᠱ}@  ލZuU o5xݼ}x(:haY}dYG,+4Ʋ,qqBH nMlN,PRJY6r8<Y.ew[6'\nKw=].ϒȎfwy>ײ4~;ESEﰌS e2Tβ U4QuֽnA)q/v qY:#N-㗞``KYXPn*BũTGY[0r .had'EYmohAQ}[Y[(z\7ݒ.bQqξn\25z?3SSg?\x9QOvh7tZt ?8KrP-TjJRt7˯˂&)ebSH )z-Skc$br߁r 2'Ğ8=Ϗ\B~w?g?t!,%ohzT8y{=4eguN<c?gڼYThcCCGGx5y)lQLR s -m ZP *$ HFJ۪ b "oLf6E69W (Z8/e{$ MZRЩ>-lD*!8CL.@.Z[ׯXR#<⨕8/9QTPjxW3z.Kj"lűmbai[|L ǎҟNQlv}vbsk֥_' d"G:;NJe_? UT FeͯBivE,l.= 9@T@pq9-tQΕn* 9-kB]MB[){ͳ0ס͕nj*xΖ*HV3y‚,lM,'X U$$$RLKkmHjcyVT!xbc2~t'=33= ޗVz{t_?[d'o|30ޞt_z$D!#bKUoDZ`qTқ(-./[+Z.MGbB3!ށ cC1 ᰥ+v9-lpbgͺCav[h? )0=0(F0#mR)3a* T F-k֢f br `Mzՠ.d6a\bNhi\;h.5سK)Gv~ysx&߿ 9gGJ/T94wMl)JsxBi.!Vqe8 jdu!&ڍL8ȊD\QYv G]o<<>CWlj!>Ňo==«;`>3 a] )/9(&sc m0<eg5Y(YII1Gg`4WQcE#=tC'U|[̥ ?;_:fѽ[95V}env27Genjvv:&sr zkyvvf7Fz\KSHP^TNEZ' HUZ$1;{rw kO }kv[CpR]çBмwO C[Bjd(uֱr%VƲYE\`>V+"9౧JZĚXyH rm-&=+Ei$ҿJCת%+^e(I@dO㤝a@wfª- Œ·v1IF Y*%lA$i_,*< T,J40Er"s $s <ǪNjYO\>?ɼp2EYNSAe7SX'c ]5 bw6Y'a@Ԑ)̻H!D ͕]0 >;R d7# $$'vrPԆ[JJ xb݊v{`4X#7C<4t:*̹THCASߛpy};\4{T2oj'G J{@ǠWpThU`+e\%uF/9UzT.-c.t!g4ߦrT?4UlPshQ Zk_(EFl[` veE-^$Z7]hK8mu1>0 Spk5k+7EoUgF:-~jܑGN9ӻC_qqbj`hof}3c|aѣlbbO3uz)0%ʘN,vN,vX7-mՄii$G@geDY ݁^`,߿|cǎ=MDW<19*gD $ Fr4Cǻ) %c muumKGC;i:.D"q8o s"wMD@'{*؎X3N @ zRmS3X|R8 6LNW-P%Ctޤǚ+1n. ts jqT(=7{4U/uQ-hZ \7å-9]K[s0o֫`p`JbhШ0fԨ6YAy% {:G*!W؏.:_([vMt-64>rn|j+~ {YF !+4Q=!;PA!7`~;F~8YHW,EyqX `jbkQ zc/a%ҳAl{!,yڅF&(/V1)}Z f&cwώg έJz+K+[; 7C lCw?4~N&Ӫ߸>X#;JR%;yL;('{uтF=HhH7a:>Yڑp'9A?e?O>3tO'_d~<7/0mΊ`J lF]Ƈ':3p'v-覥\-a{='gw#T-hEl!.Q (hRFti3FS% vEk5QrBn.g[evIg%KY\F0Y'܈kLy%:*øh \bRwX{"M~:䨱lwN7 o;tX=G >;+SvZSw># lNt)¶Aܑ|L}聍a~pW_ӟbڨ2(K?qZOmnn)m'@ r:Bi]?~ui;0^E/Xn.oqhVuAp#@9/j5OED#m l慵T9A:C@kٺ'u*9~^at6; +m .ME˄jݹCȁԩz`J"\GLH\Vzw>P2~y8:G$/$Ȏ;^_vz<ΗI2sy[nyemQ.ȼ#ֆ<ƃ<){~njqM OwF݈ :`A*zȂm҃X`5r`fr Mtm Y:VӭϚX|a_;0܋~?¥3CV۪M P{*amVX~&`8sh R&ʹiHP[ X44&2+m$(БpweKhm9]ad'(Sr s΃WDW8r C=]s!WFDqO,&9)[Ysƍ{G(l"{J9@SC)۪(9RM6VתҀpG[/lXyB"evn;aۆCFo/Aii4p hT T{y|Nѧ70nCɶc̓VCZ`)bi숶BEybP63(bb0qznң{7lK`KA2/$ncHBaw|x] լfw,`:ls}U4Ыjo[?5@j-1 u(L :YUeř{b'J~^x`R+F(+&xSVbb+zR~-n,)[crz ˊl`Xc,$!7Q߬X+3zE36Xxu#:UWJ+gAi[HTt?ta X2})On`SQ M$V׼ˬ'Ԭ6t!hV~1rQnł#@Iy5CK2ȄI ہ/%6׿{cûs.={rS~S_=<SEidw뤐}*a h0%:v~sO;1͎gOUu#!UϞ|9WixfO&24$fb*gnI}m^֧3t*Ҿhb #&[h5 /zCu Q ;"U ?ԍG`  K;ӇX$ 2.U9%.;z=w&8'S5*i :В"V9D[3 7pQ@5;{WwRE [n?np5z맿nzil=ﯯr6PagU",b x:9:{K)Qe?5F=N:!3U)K i)byGABMʕMg9@;48{C8d8ahV lB}8#=r~[yJNSIw;=X*MH@nrDN%d2\kAZ<`A*.qi.x Dd8P(5+g=wBۡQ^+ܺ1@шL>H: yŲU dMmGy=II_E*_;¬g'o\҄]/lmۧm RW@q XܻU3V'@Eڰ*Hy!S")"EkT ? @?7Wr+7 4./m꘾iJGO]n ?'nT@MQLS9TE|کhmn"2x,׹9]38/跂,iyjUqi9 Xis/VҼ:[is/W*U34Iɷ_ ?Y\06&sf~^ixR%߈q.A,Up)^Gf,umZɬ^'fI}fUC& m Xkh6,ft#1T}ؿthO% Lhc9^ # f(u%cKIP[ Uو< ݷ?S;)[tۜ_xxhѿi^Yp}GG$a'P})-SUv%uWU4. D@ ^:.A.5=yDGcU|Cᖜ(H".~ ;NMpq.eL|b>*!TŴ6]ijadzK݌}_IFH2& 3؎7wkAX &~-ÁRI{J + d~N_=^2ksZׂHp~3;m&ic~wGNjZ99Eo.mWn`]_Ũ%KuWB |dF /ڨ#97n$'WhhKrk!x&b-Ƅ{pʃb&amb 8|8vvhkq̽i';3wnYN/hޝ,N>vusN[OHo NBrc tڜ֮ܳdx'.$ݝ4+CtB#Ûm.|~x3Wmؠl hwK`T_lp{_/kƹ*vB:*/j-ET>zZzJ[K襵ek}cӊ&_ {¼TIPb<8ܠdp1  >S$Izօ0Oh%؇;X֘|2(O 0(=w='OuvvMܙnی3hWh@b!̵y$9H jU`COL($.,Gpui(t^b"z07BGHthJi5' ]dn5ƴ /di2ň+=*.VbqYu 1nh.Vo֎aGk]In;c3I?%H)?>659fc u$Zautm(Y$\iwg`ҏyVtA[f[1V1mtjjT fi tX$SqJ˭=dYX.c`8O;*?TмNtαŲ\M%<-4׽"f?NzQaXH$7׫dnhBFdN3|r+`~}YIC3.7rX*]A^ɭ#3GexkQGbH:R>5\qݛsxϏ9TXD3"j^v<˷Fʗ_fYRhb/?SlDA`'9jzB&E^A|x=['2 I8kvmVܪz`a%d/>\zlB{ZZ؇Zu lH~Fm+'0f ̺# ĬtV3]rbhpR!ŵO}uNkҽ]J(<8U'kp^Iz 4^;ڵk(?bF ؐ' T lNv0?^0HJgSb:Ư]L]>0zN%*Z-؍<>l,潖\f4Ί`#C2A=*q>czkDq>4U>8~܎mGy繰YRб;#^#}7Tׄmow}.P5!k-]]ctbb8bV4 V ,+FHF%ȊYz 5^84O+4: D! ?Wv$ݒ%)8EĮtFy8™ӫ$\I͂vK'I.s#/K,wuCd>OPk0 R 3;m߰a}̍[]m~GnitVE_;_ >=puw&bzC_RÛTeQ};\'4%Cw*Z9qOkm6۩ʢXJ"U1Ț!pk &HH %wRg5x*eamiR(^f89bGxp-^AOW 8rbn k1ٟQv"aeTi yH_fFEY$ԤoqXm;= $>OM5~S״pQ[/=}i TRlg,ڃ8 tI?NF6R-=TKk=JH`Cl:v&ą ֠l(qjsY3.d;d.#Ǐdl.F&TÅ !89S_?~p p67;kvpd\,y(& pP ?mʵXYjJQ]fFv^QDY튾jypjHCjz(?kM ,F>hk/==Kq8orЬX6㰹^_Pɍc"0pg<f2?rGo*xay Oцcd.6]AA@dZ%;(-9@k!` n='pOފ3 a\EXKQ:o1>19+Z?/QCD ݏ/nGu`x@8?rхܱ-ɩ7g7 b*9 ;SHTWr ,9dtybrH6C9JTh4 L`A ;?s趜 ^K{(MRBZRjzt 8qL)ߝ?^y ṟU\~$Wuʲ `*+1Tk59YVu״3kss-^tW;! ؑ'aa&*1cXdvj.߆3ss̝Nd%7ޤO6^xM4 e󹩭 á&4HW}eIrF3.bs5 3Wd]eWMU5xu\#ueD:ke,y6'\w)껔VT[=- 6W Hb#~bČu%M@#;{0_y>ը-,Zg7l5CX7\7&i*)C &'By+&fj=W4OLq&5My/NF;Ei2 ;a.Llab195<2Pjj|Io\=(*=seLY.k5 vxZI̛;+;Z3[+8O~{g~?zΎ޲`ol'N}O;gT%EW*ՋJ9n2ꜢRR>E^st~b\|9 &Q .QkV KءH܋сD2 ɐ7XFw8BA/7pۼUNdwXGךCfgϡXDzn(? ;x+$Mm _[hJGIʲϔ\H7ysTUX̫YDp*8q^;fΚk_3W{9`!7*h5VU$CQI(! }ԕdl5FoA{^1tn4y.K_%yw1qU..9a ,"FA[ "UAH 7ѯ[LjK'鹸\w8>l|Ɨ+]^/'W"R4b,`/V{ iza>مV_tjk-S7qnORq0m+6.E%qNhZj5\|<=9y㡳Ʀշ>tDFr8LxK'W2f Vʼnǣ)j:QC x~1yldGAdk௑t ^2Mw[hi:6-;NnMݔqZO oo~C| 6Y9L,*ޛ3 haHaWg}& 9"?v+]Ha1 v3#& StB"i%/]uEj+-j-l}Do^y܄>bG0 K|4b7p$ R~wauшa~~c>@7,koC5!v_ K )/ hL1⭅V)n?!$4aF>u `g3K6{ =Bk(-ɵX\ 䭧{\4@M \}N^V9-,E:}6" (J Ү, YDv.G0\:`(pa9w`À_n:b=PꜘQx))o?>b#石8oJ1 E6 gG=f8Jp pi-y+Wb@Ckc$qB+ z EK&B tWBؙCb׉. sWwfj6C[c||&*M>S\Vo dSujcj9:=nmmM6X)u2i5d >ٔJ=\00 o5Ft؄1ywg9wu&lj?Qy/~MƄ]0d[4O^_(%Hd$`FFp(fUao]N(8Kɘ]}b^K^k>Gf/IJ2BmQE=X>G&wli0 7%+V"B5gpql,H_R>TKLC>bL)g<3Jffpb3XxJD4oOCH&<˗srޅ08/3K?MrLn#oɰ9H[hE=z\y a[9K68;Z+QgΪ{/:[8wl{oœɸwgM޳]^~AjZ n]*/Ȉl@2) tp^Wp} ZPƋ圙ԘS 7*m%E]޳[*moGTgZyӭF/S nJfK| L N':]|@ yj ''$ΐ,'W3쏨 zGT=J9ґ[&Vc&-4ojIMDoX@&Py89Vs%5M K*'|}1f+ 6pU}sn楡_K_Ev襙73[;N O<;[:kl滙_1yx';wH<rNϗ>_ݽ$g]KI|5v. ȁg;vqՃ}#HdG{%(Ps 3Dh%}v8jEǾ0~Pf g .w5]@ X|o]y#c ~R JcUgs7,۟'}xua; 73NR?_U/qA M~$gޗ:M_\oE'~eޗ$VV&s+0ǡ'cq*h2"ۖ뭣WÚrcyzkoypu=_"J=M2?\me/yd pYY"wJ㌭]di\Ce)O-M@e]R?Tq7u}K?Wb)cXw+* c Rpخ\sUPvT}P\ MQRH{=5?B/eR<+Vrc8aK2Wpgr\{oB=͟7WUa˿nkj34y)xc`` w]X00g1oba` `򋕋Հ5 $+"Q\\q pw7| |&|  VnRZ#!!I,E쁸xD$ RaRnHkH/&'GvY((Sإ8ER%e: *+TTϨ (8DKC+B[CFO;AH3  :Kt69sE,2&>)5-}8[z zRz&z6z.z>z!z)@W z}zm;(c cx] @?Ӣ6.[En!,T QR#zNBsCXΈf5lmİÔ>cֆ9~LV;W#"!=.Nՙ:Gu%q;7ߝj%V>G\tVJE6wrR)tt ,x}NSq.-mA=t*S+(82%2%%Fcx*wp! sNvd],,V^G>V aN\)C1^J( ~ $D\jj"5 n-nc&B4wiVh'A{t"}GtcSz}</yE? 1baY$_Rggso6SL3;='X s"6K8).qKxXR"R|g|cU|'~\TrMKhӤ +54MSJCVFQeL٨lR%LuիD.;vtnҌi)5!4'i()ix=λnPP_?_QQ ݂ *LCTH&%|˚ `VJsUR'cKޮ:햲±?TUdWE}=^2,0kp~ p^0|+} pO@򀢐whÕ;k t*La"d/x&XU~ ird@X+|KaKgsite_pro/fonts/icomoon-webfont.eot0000644075506000000310000006715011725230542015611 0ustar namedhnm LP]IcoMoonRegularVersion 1.0IcoMoon RegularFFTM`# GDEF( OS/2agHVcmaprQUzcvt ) :fpgm/XegaspglyfŒ]head |dT6hhea d$hmtxEdlocapgHNmaxph name5h@postDlWiAprep Zl<wɉo1LgLj33d PfEd@ VtXR@~S    & / : _!" R    & / 9 _!"1}umd@~   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`apvwxyz{|}~chbiksjmlonrqutZ!7HRu9PuHdyLs4V,K*PXJvY#?+X=YK*PX}Y ԰.-, ڰ +-,KRXE#Y!-,i @PX!@Y-,+X!#!zXYKRXXY#!+XFvYXYYY-, \Z-,"PX \\Y-,$PX@\\Y-, 9/- , }+XY %I# &JPXea PX8!!Ya RX8!!YY- ,+X!!Y- , Ұ +- , /+\X G#Faj X db8!!Y!Y- , 9/ GFa# #JPX#RX@8!Y#PX@e8!YY-,+X=!! ֊KRX #I UX8!!Y!!YY-,# /+\X# XKS!YX&I## I#a8!!!!Y!!!!!Y-, ڰ+-, Ұ+-, /+\X G#Faj G#F#aj` X db8!!Y!!Y-, %Jd# PX<Y-,@@BBKcKc UX RX#b #Bb #BY @RX CcB CcB ce!Y!!Y-,Cc#Cc#-DbT.+//ֱ+ +013!%!!D%hTD%L +/&/ֱ+ '+  $$9  "$9016$  $&2>4." q'qq%ZΚZZϙ 9'qqqqϙZZΚZZsJJ TJ $ /// +/+016&762#!$;265."3%5'Z'j%^%5LHB55B@j!}TZBBBBZkCC55F@36 / +4/ִ +5+ /99 "%999014>2#"&'654&'.>7.'"#"\՟]]{)57RJ}Z1JVi=Zks\3#T! 1VnBBno?Ds^k L`qVlHyIL{?>F)%/7CM/; + 2/G )G+%7/N/ֱ +@ +#+8 +O+#&).9998+,027$9;  999% "8>$9)A997G'+2.L$9014>$ .'&'.6264&"3264&#"$264&"32654&#"3264&#"` X ]w^`Ǣh1E22E5#'33'#9R::RP89NN97Q2?+->>-+Tgi`?I  %L^5R4B--B- E11E1VM66M6)77)'55sR<>^?ETT A-/@@/-A&LDAJV+B/@?0-AAT/@?0-AA!T&%+'/ֱ"2(+0174;27%67%6&=4+"9 ^ h 9= cH qr H `B/j"*Q+*/ ++/ִ$ +$(+ +,+($9999* %99901=4>2&'.'4&6264&"/BnoA+=H%VjjW%I<+hhh VoBBoV ?LL@whhh// +/ִ + ++9014>$ +>54&'.q'qq !RVV%/3f}FfqœTTœT1aT?;H+e;^b/ + +2/ִ 1+ + 2+ + 2++ 9 9 990153!53333;Ca>;^d/ + +2/ִ 1+ + 1+ + 2++ 9  9 9 990153!53 ##87;C ?' +3(/)+017'7'7'77777'''''7'7qqGJqpJHqqHJpqJG\qpJHqqHJpqJGqqG#O+!/3 2! +@ +$/ְ2$+ 2 +@ + +@ +%+015463!46;2!2#!+"&5!"&!#"!!## y"!!## !#X5!!suX%?Z /  /+015463!2#!"&!+!! y"###X? A+ / /ֱ+@+ +9 9013!%!!!Xfu3X *a/ +22#/ +/ִ+++@++@+/@+,+ 9901746;4>232#!"&!4'&'&'&#"+GcnbH+%eh "#-\yFFy\RFD0++1CF i/ 2/ + //ֱ + &+ ++ 9  999 9015!%3 73!4632#"&/;\+!B|>/+@@+/>{-/>>/+??-=Ar/!;/3 3 3A*/ B/ֱ/+77?+C+7/ !)*$9?%>99A;%/6>$9015463!?>3!2!2#!"&2>54."4>2".35#)G 11 H)))1BnoAAonBZ3VuuX33XuuV拋+G/++/G+**VpBBpVTqBBqtV33VtvV44VT  "/22/33 2 /3 22/!33#/ִ@+ 22+ 22@++@+22+ 22$+99 9015!%35#535#535#!! 35#535#535#3h 5Z3?2B3/ֱ$&2$"   /"" +@" +4+$ -9"%9016&>76%.>76. =V5/]"%  {`5^L1 >V53\%# }\5_LRN@-OfŠh Ht+DQN@+RӮJ\Hn-RH @/ +///ֱ++ 9901!%!!?!!mlf^iBX*/3 +2 +/ֱ+014>3!2#!".%=7H))G88G))H7TF )J77J){)I88Iguu  #'+/37+ /$33 %22/(0333 )1222 /,433! -522/ 2 +@ + 228/ִ @+ +2 2+ 22 "22$+(,22' *.22'0+423 623 + 9+99990'993 99011!35!35!%!!53535353535353535353 [ZZ[[[[fX3 粲  +/+011 ''?6VXlLJ)7)97)9dXJJ7'99)82K[rI/QY/<$/ +$ +@$1 +2\/4ֱMMU+F]+M4).-999U(99F@99976$72#!"=4.'."#!">7>;#)"2>4."?8y1D7@%)4;:-9;4)%+7:X\+JJZZI98+ !/LL/!9NVN9!!9NVN9} 7=BF&-'B=7 $%wm%& 9mwL}VN9!!9NVN9!!9DV5+21/& +6/ִ0++ 2+2+0+ +1+7+9&19991$9& $901532>=33!535.74>32#".DV1RpqT1T5^JDJ^5"

    .{7#yb';)u͛`jHn@)+ / +/+ 9901&>$ &&"7u':'b`a]^@nHj-9d/./53/32./ +@.8 +/. +@/1 +:/8ְ027@+2278 +@75 +87 +@8. +;+.!99901&>7>&'.'67>.53533##5+lTT2/XDB y P-MEgy}99JEgx}sJNZZ!31+mTN7) H 4fL}sK#!hwsIFfZZ XB+/3AEIUY] /B/,V33CCB +@C- +@CW +@/7*/#M#*+T0/1G[2201 +@0F +@0Z +/^/ִ@+,+02/22, +' +/B+F2EH2B4+< +EV+Z2Y\2YYQ+J +J/Q +Y+ @+_+015463!2#!"&73!2654&#!"54;2+"35354;2+"533754;2+"33N99ON:u9NXl!!!!Lbbb!  !Lbbb!! !Lccc7ON8!7NNAX!!X!%X!X^LX!!X!ws:-1"/.//2/3+.!99901&>7>&'.'67>.5!-lTT4-VFA w P-MEiw99JEgy|sJ@!31+mTN7) H 4fL}sK#!hwsIFfTTHP: +LP/(?/Q/7ִ +R+?( $9016$  $&36323476767>76767654&'&'.#"264&"q'qq}  N% 1)%?A%D79+! JjLLj9'qqqq  ?<=o"%%'9j## *1CdkIIkL % / + 22/+  99017% !7P}}Pf !D^ cqq:;+ !FT ' xug)8 ++ // ֱ+ 99901!264&"%u۷NJkGGks'kJJkI7 J1E7+ ./" B/8 F/G+". 998B&9901=4672>7 $.5472>7 $.54>$  $.#۲#qq!#۲#!qqq'qqqߴ"#9))9#!/P=##=Pò'#7++8"&/P>##>P´-R>##>R-/R=##=Ru%-]+$/ ^/ ְ2$2$<+O[+<3+73XT2O+#2 2_+3$(.AE$9<@9XOK9F]$9$.E$901354>7.=!%!./767!767>75325>7474'&'.'&'!;u'IiABhI''JhB-Lh>XX} B |VV=hL/%!Z9 )CD) 7Z!%;d53f<7>7654'>4&'676'4'.'674'&'&'.f 57+%9mP jU%E<' NZT$&7 ^4+  '( $sN38=qqp>BhFFW54!!7O!ScrBCFDNwU\_WY]Rjx^ZsB 0qs/" '!#$!T-)T2 $7654'&'&'7727>76'!3267&'&#"!4.#"2>4."1? );16"!2X#+Jd7%F1@ 516$#3V+Ie7L=-NjwkN--NkwjNV3#$51?# B1=M9eJ+U4$$51!1 B1!C#7eI+$wjN--NjwkN--N#w!C>?/73 2D/ִ"K+"2+K+E+2" $9014>32>32'.'.7>7>54.#"'.#"=mRb77`Rj@:`}DXI!#NRF~_9R1VuCNJLNBuV11Vs@\'%%'\BpV1Rj@XLLX@jQ^w>R;9'qqqq);;)+<>R;9'qqqquu3\ii\);;)+<<+);;)+<<)3 + / +4/ֱ  %+**/+ 5+ 9%9* $9/9 9 $9 99"',1$9016$  $&77>27'. 2654&"2654&"q'qq¬X5Ѵ6XBA+=R<>R;9'qqqqP3 \gg\ 3uuZ);;)+<<+);;)+<<2GZcS+# +./d/Fִ8+8T+S+M2S^+ e+6 X+ ..0+ -+ g+ ++ +-,-+++ 0/0.+ #9/0.9 #9,-+9@ +0,-/..........@ +0,-./............@8FA9T@ #6:<=HOQ$9^S  ([$9# [a999. 99014>2#"&##".7267>7.'.">7.'&'&54747>74.'&>54&']Ӟ\b/Pj> FڒF8 BKNѾNLC CLNNLA)'"    Z :/' !" haH?#D9++:W3ZC'2 ## ##x( 42///'  ~9:;>=)767#4654&53&'&/7&'&'7&'.'7&'/7.'+5''''3q'qyoRox^dd1ihh2edde) 1=> ?=L@B%J))I%A ?L>@ ==2 )ddX>)"uqqg f}JM !ih! JM  RF!!N9y{=/V T+ jj *T V/={y9N!!JN   !,U,/ , +@, +-/!ֱ+##)+ .+9# $9) 901&54767>2'####.5676&'&"X T=>?@<=Vm22uw!#\#!"#\Z7845nS=>?>?>T {G\## #\!#X?'s// 3 %/ (/ְ2@+ +@ ++@+2"+)+"9%99901463!2#!!!"&5!!!32654&#"5#%66%3#5f%##$%55%B%8f8'9$$##q)#'K+(/ֱ$+''+ )+$$9'999012>54.'".54675%3q`ۤ`7gThG{{HiTf7\}ݤ^^}^p!;^{GG{^;!p+KPH B+3/  /ִ + + 9 $9 9901 P=55L+D`VDCabR+53D/Y3 + +D +@D^ + D +@  +c/Vְ 2II?+2d+IV99?$*9N$92-9DRV[99 9 -.99901467632>546;2>.'&547>32;2+".6767654'.#"+"&=4.#"'.2$,N3 6'(- RXZR  +'55'+  RZXR .+'6 3N,%1XR  .) '5 3N,%12$,''3 6&'5 3'',&11&,N3 5'+-  Q;^!%+3 +#22/ $33 22 22/&/ִ! '+!+!/! +% '+"" / '+6[A+ ..?A+ #..#$#$........@017!5463!2!#!3!54#!"3#3#;+3%%3+j{{LjLw3^wwkLkFH#56"HF3VH3F'2JK/ִ + +  +)) +-):+@ +D@:+66/DL+ 9 999 99-$%99:)39D62=H99901>75.5462>765.54>2>75.54632!. f!'HjJ)!3y3:ZvD-5-@F=/5.FwZ95!)J53L) f X?_ T5HffH5T  5[x+ZN7 sG1U?%%?T2Hr7NZ+  T5HffH5T ^@+J+/+01!<f4f 1?<+@/ֱ  *+ A+ 9*28$9  901>7.'&'6>74'.'>7&'JNNJfx%%yeeH53Gu߃2boob^Z3G0/H3NHmLLnG Qf~|gTNNTJO==NhVX+/+01!! 7 ' R\yR\\͢ F+3 2/ 3 2/ְ22+ 2 2+011!!!!ssuus%us%u* ++/,+01&547 632"&'#"'&'& 5BB'(jP-6 t!9<9^d~\N)(AA3N/q<%&=:9;:!u0\O'.o"/*#/3( ,2(# +@( +@( +@( +//"ִ*+"* +@" +*++!+!+ +@! +0++*.99014>;&54632>32#!!5!".%333+Jb7mN/L/ODwZ5Ri'BX37bJobJ+ Nm'#;D3XwDV3YA'+JKb 9`&.#/ + + +'/(+#99014>32&54>32>32#!".+Jb7 3D'/L/ODwZ5Ri'BX3h7bJobJ+'C3'!9F3XuCV1ZB'+J'.`#/3 # +@ +//ֱ..++0+. "(999+)!999 *999#(*,$9014>32&54632>32+'#". ##+Jb7mN/L/ODwZ5Ri'BX37bJ+9cJ+ Nm'!9D3XuDV3XB'+Jbb bG+/3 2/ְ22+99 99 9901%!##!5 5!3 3!h)і)iזϓϔ)iהѕh).]*+K/6^/ֱ  0+QQ+$$E+<_+0 )*$9QX9W99$9E56?AK$9K$0;?X$90146?267>4&/.'7"&/&467>26'7>4&/."./&11#CFF1  o  11111}212111}}11221#DEF  n 1}1Z_EFC1CHDq 1}211111<1112211}1Z^FEDDGDq 1  +=M[ix&Y+:/CC m3 +u2 /3 +2K/1( 3! +}2/,ֱ??  '+/3 '+$2?N+\2Vc2VG+5k y3r '+2+,!9999N?:099VCJKB$9G91995km9rn}999:Rjq$9k99 ,5>?FG$91(%y99!$gz$90146;2+"&4?62"'4762"/4>2".62>4."54632#"&54632#"&4762"/4?62"'46;2+"&'r%%r'R6R8RRh@nm??mn@s-NjwkN--NkwjN'$%''$%'{5RQQ8R%s''s$$%''38R6R7R6QcRo??oRTl@@lwjN--NjwkN--Nr%%r''s''s$$o6R8R 5R8Q$%''7`,<Dl%/2D/@ +:/E/ֱ..>+B '+B6+F+B>129:$9@D-.56$9: 9901&476?>7>7>2"'.'.$2>4."462" DT5s;!;>=;s5TA #O)ZqBKHFqZ)N+JdsdJ++JdsdJ}>Z==Z& Bt++  ++uA ')H!HnnG!HsdL++LdsdJ++JZ==Z> +3/ֱ+01!! >fj/6,73<3Cu%mbb5>5A%Gɲ#w | /32/ +/+6=H+   °+  ........ ........@01% '%- RFEf!!guum  5RL#w P/2/+6°+    .... ....@901%  -RFE!gum  3hPL#w % RFEm  3 JZ9/P +I/)3 %2X/ +[/ִL+LT+' +\+L >?$9T6<$9'34$9P9,3?F$9I*H99KLST$9X$99 "$9014?67'>767'>7>277''#"'&'7&'.'7&/&$2>4."o%V9!^9R+\1+)-)+1\+N<`!9T%nn%T9!`;OX`+)+-'+`XR9^!9V%o!7LVL9!!9LVL71/ TLJ+N"97-mffm+99#M+JLT /13- TKJ+N#:9,j-gg.j-8:#N+JLS -^VL9!!9LVL7!!75d/ִ+++014>32>32.;eNu--sNf;RR;=*+9'qqqq XX7('MoN')X?o+333/ְ2 + + +2 2+9 99 999 90133'!'' 33333XfZ X@? Bsf[\>Bs3', + /ֱ+ 9 901>3! .2btbÃcbbbucX?+V+ +22%/ ,/ֱ  +@ ++  +@ +-+ 9901746;4>232#!"&!4&'&'&"X7%XF{yE\#55#%7f-'1551'0Xu%3Jb88bJ3%#55):!!:)O + / /ֱ+ + $9  9999016$  $&!5!q'qq)9'qqqq,7AJ +/5/"*/;@/K/ֱ+&+IIE+ L+9999& -18>$9IBG99ECF995/-199"2799* CF$9;9=99@8>99016$  $&%&7467%2>4."327#"'632&#"6'q'qqR= y1TpqT11TqpT}}?#BA;HF;y@339'qqqqH;BA#?;pT11TpqT11T55= @3у}};FH/?G +-/5G/C=/%/H/ֱ!+11A+EE9+))+ I+A1 $-$9E5<=4$99 %,$9G5  )$9C1890$9=!($9016$  $&2>4."4>2".2>4."462"q'qq/X˘XX˗E@lm??ml`'@XbX@&&@XbX@y-F--F9'qqqq ˗XX˘XXqm??ml@@lbX@''@XbX@&&@F--F-H + / /ֱ+ + $9 $9016$  $&!3!5!#!q'qq9'qqqqSQO+T/ִ>+>+ /  +@7 +U+$%O999>'1397>7>74762632#"'&'-7D')&  5 #! ZNB#+ !%-Q67`iFKF{`!)0KuV =# $!CJA #++0  =: ! UOD+V/ִ+:+G G/: :G +@: +W+:G1299"#/$901%67623#"'"'&5.'.'.'#ja76Q-#!  +#AN\ !" 5 '+'D7- H5 ! : ;   0-+! DGD!$ #? VuL/)!`wE2S[#+,/9J/ T/ֱRRB+U+BR(,999#9,#99(99J9901&547>767672#"'&'"#"'.'&732767>7654'.'&#" lTT^"!:8X2/XDB y PSLHN-4Eg<&(>:9J Fg<&(>sJ ~"!:8X31 lTNU)(++R7) H fLTs>sK #!h<'(?sI Ff<''#5+./!/6/ֱ'+*'* +@'$ +*/++ 7+6&././..ɰ6 + .-/0-0..-0..@'!99*3999 99. '*3$9!()$90146$32#"$&2>4."4673%#"&qqqqu^ۤ^^ۢ#d  ;'/B͓qqqqۤ^^٤^^!5u-d+#-B\?8/ / + /ֱ!+ 99 990154>72674>2".Jj3qq3jJ -Pl{kP//Pk{lP\JoO%))%PoJo??oo@@o#16+// /!$/%  /2$2% 26/*7/&ִ2@+&2 +@&$ + 22223+//3 +@/1 +"2228+01746;#!#532#!"&75!5!5!53546;23%35+Z-+Z%3335%'5@-\3\sZZXX ZZX%66%XX'5x/3+2$/23 26/ֱ +((.+7+ 99(99. 99 (.$9$ !'/5$9015>32>32.#".#"7>32.#">32.#"1u^H1t^HH_u1H^u?P;J5R^-?O;J5R^.y)5)5)5)53+5)3+5L!%#!%#&47 &6?> > &' &/;::<9<;:87<7<;7;XB ) /ֱ++  +015%33%0/X565c5r /ִ@++n990147>?67>76>7'#"'&'&'&5477'632>7>76?'"#&'"#.'.'&7654'&#'08!/ /'749R;3 ͠$$D5; <#C8) ZA->AP!%)$ "15 76)+# c  b  %17 32! '9 <3E $$à 6;R;4:#B7'@X-=F)%!M& . 0!94+ #+   aLN-%LFELN) NLN LLN!FL%L +/&/ֱ+ '+  $$9  "$9016$  $&2>4." q'qq%ZΚZZϙ 9'qqqqϙZZΚZZsJJ7`D?Z /  /+015463!2#!"&!+!! y"###RF 'C%$F 'A$F 'a $F 'CF(u 'A3(2 'C, 'A,X 'aF1 'Ch2 'AV2 'aP2Fa 'C8FN 'A87R 'CD7@ 'AD7 'aD# 'CRH# 'ABH 'CFL 'A3L 'a3Q 'CFR 'A3R 'a-R\ 'CfX\ 'AVX '(2 4'HRAr{}a`/?Z /  /+015463!2#!"&!+!! y"###?Z /  /+015463!2#!"&!+!! y"###?Z /  /+015463!2#!"&!+!! y"###?Z/  /+01!??Z/  /+01!?C Xr' 3'!; '07!!ee 4'LI 'OI'L 3'IIr'O 3'II]_<LjLjr rD /XD{udqP; XXLLFu 3 3r  tVXV 3; 3 3,,,DjP 0j>bZ ( X    40x&HdBRV(n L !!"d"##~#$%r%&l''(r()T)*(*X+(+<+N+`+r++, ,,,$,,,8,D,P,\,h,t,,,,,,,,,,,----(-4-@-L-X-d-p-|---------------...4.<.D.L.T.d.d.l.t.t...... cf     * H ^ nlIcoMoonRegularwebfontIcoMoon RegularVersion 1.0IcoMoonThis font was generated by the Font Squirrel Generator.  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`afjkmqruvxz{}     uni00A0uni00ADuni00B2uni00B3uni00B9uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni2010uni2011 figuredashuni202Funi205FuniE000uniFB01uniFB02uniFB03uniFB04KPXYF+X!YKRX!Y+\X E+D E}++D E9++D E"++D E8++D E5++D E++D E++D E++D E ++D E ++D E $++D E+D E ?+Fv+D E(+Fv+D E+Fv+D EQ+Fv+D E/+Fv+D E+Fv+D E +Fv+D E +Fv+D E +Fv+D E+Fv+D E+Fv+DY+site_pro/fonts/icomoonsocial-webfont.eot0000644075506000000310000006040011725231254016774 0ustar namedaL` LP_IcoMoonRegularVersion 1.0IcoMoon RegularFFTM`# GDEF( OS/2adHVcmapJ\rcvt  TJfpgm/egaspglyf6Sheadd,Y6hheagY$hmtx GZFloca3T[Lmaxp[ name5\@postSN)]Tnprep^ɉo1M M Q33d PfEd@1( 8MYmy  / _!"1APap  / _!"=5* MM  !"#$%&'()*+,-./012345678L9HINO3Vhsf-!-5Vyfumj1|,K*PXJvY#?+X=YK*PX}Y ԰.-, ڰ +-,KRXE#Y!-,i @PX!@Y-,+X!#!zXYKRXXY#!+XFvYXYYY-, \Z-,"PX \\Y-,$PX@\\Y-, 9/- , }+XY %I# &JPXea PX8!!Ya RX8!!YY- ,+X!!Y- , Ұ +- , /+\X G#Faj X db8!!Y!Y- , 9/ GFa# #JPX#RX@8!Y#PX@e8!YY-,+X=!! ֊KRX #I UX8!!Y!!YY-,# /+\X# XKS!YX&I## I#a8!!!!Y!!!!!Y-, ڰ+-, Ұ+-, /+\X G#Faj G#F#aj` X db8!!Y!!Y-, %Jd# PX<Y-,@@BBKcKc UX RX#b #Bb #BY @RX CcB CcB ce!Y!!Y-,Cc#Cc#-DbT:+[+/[+/ִ=++=+ +013!%!!D%hTD4@-+$3A/ֱB+01>3232>2"."".'.&67>7_\#B=6JL!29-=F-3.6;J33:Q<33!#?81/L)1#)t5,%'qqĤb 8/!CgCRoC{L!?15B D=w)/<?x/-;LN$2?./) +>/7 +7>+ +#7>+ +@/A+6=u$+ + +++ #999 9 ........ ........@.%,999>)&+99 3:999# 99749990167>732.#"672.'327#".327#"#d;\e  !)% 3V3rh{k75)Z1{Rk7}-fjyu%MH:-bu{}w 3t(!575 0 D27)X=P!71R7DV/3 2 / 3 /+6>h+ . +  +>+ + #9.... .......@013%!7!7!7!9V7+/-/qVr vVNJP +/ְ2 2+017 '7'7'JX!PX7V+)2!999.)599$!699 $999 99014>32%4&54>2#"&'>32".5465%#".)H^71V#)H^o^H))H^81V###V17_H))H^o^H)!#V17^Hn^H)!7_H))H^85`H)#")Ga57^H))H^7 )G)d+ +++$/ +&+*/ִ +q+"+q+$ +$/++0154>3)2#)".!!265!!"'?X21XB%%BX1##1Y?'HH`{#H`1XB%%BX1##1YA%%AY{`H`H2o+./6 i/_=+Q/ /ִ3 +3p+wf2wI+  + 鰖/+3199pW\99w6Q.i$9I3!2#!".73267>76&#"$'&3267>77>76'.=4&'.+327>732"467>3"#"&>36327>=4'&'&#"'?X21XB%%BX1F1Y?'mbX  `^u 'dJ)5 8 +#b+'NA1 q/& -#E7F3#.+## 9 %#. "" 1XB%%BX1F1YA%%AYbk35 '#LCZZ #--);g'!+B/ # 0_414 #<+ / #() !` 6BNa+M/FA/'3:1/O/ֱ#+  + ++/P++7=CI$9:A+90154>3!2#!".3!2>=4&+"&'4.+"46;2+"463!2#!"'?X21XB%%BX1F1Y?'.Mi;5;iL-#1-Nh;;iM.#F1XB%%BX1F1YA%%AYp;iL--Li; ;iN--Nh<-!!-!--*:+(2 +@ ++/ְ2(#22,+(*90154>3!2#!".%!5'75377!'?X21XB%%BX1F1Y?'yXjH1XB%%BX1F1YA%%AYT/Aw00?DX/d'4=GQ^f+//,\ V3R%/g/ֱ!+ h+!@ (/5;>CHNRV_b$9/ 2AE`e$9\)9,*.X999R!=5$9%8;KPT$90154>3!2#!".2>4."5>7.7>7>7#"&>32&67&'"#".62&'?X21XB%%BX1F1Y?'TÏTT \  hV17zV/V#^7Fh9JSNe7T3!2#!".27>7>772767#"'&'67>7##"'&'.'>76467"67.'"#"&327727"'.'?X21XB%%BX1F1Y?'X/sH^W))01^VBD $/ ##'%  "#-qG, )&# ) %>1# / .+" 8 #"*  $ ?E75 ?i1XB%%BX1F1YA%%AYM?Z#+LK;~A.  32HE   NZV-hF#=    ?1-K(+3& 2/$3/./ִ( +#2(+2/+(%90154>3!2+35#546;5#"#3!".'?X21XB%%BX17bJ+#1Y?'1XB%%BX1F1YA%s&-Pj>n%AY'[{+@3+ +@; +72&; +& Y/,Y, +@Y2 +52,4|/ֱ(22   +@  + S+7(+S7 +@SM +7:+22<02<CC/}+ &]^999S@ #HVWmnu$9CA9:7X9C99& HM999Y(9Pdu$901=67632!"&5;7"#"5463!2!#!!3!#!654.'.5467>54&'37!"&747>7623#"#.1SO\F7'B5##51N &(s5#%6XX6%'D1-'#;?NQNq Z 6'$,1ZJ3  5'$,1[I4X`;&#+-1 5{+//)DJ%66% Z #5'5XNE# %+-)7//N`P@!6P1Rp@# 7P1VoCJTbpD+c z2+Fc+JS/M +t2k/04$3Y`//ֱ82=A2K+D2QHQ/+2nn**/*n +@*$ +nf+vs+2qv+2  ||/+=?9QK &4F$9H'299*,9n/UV99f`9q]\99|z99FJ99Sc'3!2#!".%3254'&'&'4767654'>75#&#"43242#"7276&'&#"3&=57#>33275#"=;35#5467##'?X21XB%%BX1F1Y?'D5Tɜ% +B+) H3/4P17#%dqX\TTF!AFD!! }} O7*!//^31XB%%BX1F1YA%%AYP'f) 45Do15N5,/ @- s7;P#LAA; /P) +-^`(9lJi/   -"&?+# '222# +@#. +%/=3!/ @/ֱ##$+''(+223+ A+#99$!99'99(<927=99%#<9790154>3!2#!".3265.#"3#347>3234&#"5#'?X21XB%%BX1F1Y?'A8;@>978R 6/;2َl+@/! 1XB%%BX1F1YA%%AY_AA//B9rm#1RAw!'^*.2;+ #2+!*/%3 +/3222(/-1:333+3!2#!".!5#"!3!5!#!!5!!5!!54.+%?X21VB%%BV1B1Y?%+'dRqPPX3`@m%5H'b1XB''BX1J3YA%%AYuRDBD)H7'7?+ ,2%/43 8/ֱ!+))1+ 9+0154>3!2#!".2>4."2>4."'?X21XB%%BX1F1Y?'!:MVN: :NVM:!9NVN9!!9NVN91XB%%BX1F1YA%%AY9VN9!!9NVN9!!9NVN9!!9NVN9!!9en+ 52$/T3- C2Na/H3 +f/ֱ8+ g+$39N !(28$9-@ )0=@EFK[]$90154>3!2#!".3267'#".4>3232654&'.546327&#"#"#.'.'.#"'?X21XB%%BX1F1Y?'3VuBL~.+mC1T@%%@T1Hrf `V\{OT5%1'7#D3gP^a^59%#6;3#)dBuV31XB%%BX1F1YA%%AYDuV3B5^7F%@TbT?%N=HPiTNI #/3#^ZHLK#Z <1'TE/^f3Vt #/:DPZfp~?+H +S^it$2/ +/ֱ#2%/2?+A2FP2FU+\ \a+ppk+r rw+ + 鱖+6?"+ )*0 :+ +)**0 1?@+ 45;!D@ )*+0145:;D..........@ )*+0145:;D..........@9%$99F?@E99UKQ99H>9@ !'-38Nd|$90154>3!2#!".3257'4'"32?'&'"?'&#"57'4"2?'&#"574"2?4#"574"26574&#";264&#".#"'?X21XB%%BX1F1Y?'R @ 9  ;  <   =  =  @ ?   Sw`BZZB#0I_79)1XB%%BX1F1YA%%AYFFEEqqpr     Ӆ    # ݁ ` #\Z 5]C' $-4;+' ,/53/ 3!2#!".'32>7!.#&36'4&''?X21XB%%BX1F1Y?' }!jD5^mFr^yy/g5ZZn1XB%%BX1F1YA%%AY!?!?Jz+9+'Jh@IlRRFIQg+//$<+A/ = R/ִ)+ +@ +S+/@ *+25JP$9$ 9AF9=CE990154>3!2#!".%636323'&"%.'.'&#"#"'&54767'?X21XB%%BX1F1Y?'m  J TE NuVS'*/L ;nhjpU 5JC3wN; VZ1XB%%BX1F1YA%%AY""/0!/!31  FP ` i-TC%$?0!.:_+( 422 /".//<+:/ ;/ֱ"/22+(()+445+ <+0154>3!2#!".%2654&"234.#5234&$#'?X21XB%%BX1F1Y?'FfHHfFV;=@^} t1XB%%BX1F1YA%%AY1HH13HHA>;V}ۤ^tN (/355 +@ +^/  ^ +@  +/ֱg)+22g$$/g$ +@gs +g=+= +@=G +=3++=g V$99^5$y$9 9014>32>32#"'#".5467&727>7654'.'&547>327>7654'&'&'&#"#"'.=kR;m/3h!%>jRuY>i?A %!I];$+N_d} Z97YE8+ 'F\D[!#5cP5 k=+^@!+ +J!#+1=+Rk="f3'/q>Rj><g3^X%#1Dg@'(BM2%#"349/% ##;'FdA 6*2F--!% (''7G+$/* 1/ 58/ֱ!+-2 9+!)90154>3!2#!".;264&+".=!264&#!54&"'?X21XB%%BX1F1Y?'f8bJ/A=/3'/AA/>^B1XB%%BX1F1YA%%AYPh3!2#!".>3!24&#!"3335#3373#527673##"'&=#547632#"'&7276=4'&"353276754'&'"5#567632"'&327673#5#"'&3276'5#'&=354'&#"547672'?X21XB%%BX1F1Y?'-\77]qRFRqNHLNT53TaQT)@@  Ab4-1-!L  KB  BB   1H HH k+3C }+'A 1XB%%BX1D1YA%%AY)11)7RqqRy@ɿ %D )+/%  n!'  ~,  ' /5 >R+*!!  !Z9+) :/T3 [/4ֱ 4 +@4 +\+:)K90154>3!2#!".67>2327>76'4'&'&'"623#"&'.'&#"'?X21XB%%BX1F1Y?'##  %/u{h &# /VC "%@  )\%-1XB%%BX1F1YA%%AY/ =VcZG+dd#( 1V9%=#HR[O+m\ =#''-mt+./LOi3331 %//ֱg+V+VJ+88y+~?+~!+ 鱂+g(*.`c$9V+9J@ $%1FZ]C_no$98q9y4>Bu$9.@!*+;BEFZ_bcoru|$91890154>3!2#!". >. 47&>32#"2627>.#+/"323 2627>.#+'%>54&''?X21XB%%BX1F1Y?'Vbcc"1\NoL)6#8   510/5    X}   51ZbPlF1XB%%BX1F1YA%%AYbbcc{lFuNG<)#?#I6%W<b  f  N=c+{At+$ -/4 +29/ B/ִ+2+72  ) +)/C+A99299)$599-$)94*90154>3!2#!".33267675"'&'&=35#5#'?X21XB%%BX1F1Y?''%3-#73B'JM#  +>1XB%%BX1F1YA%%AYj!3#   D'?3  MS[|+) NP22S/UT/@[+C2M/ B \/ֱ +@ +]+S)%499U!9T 78EW$9@H9MBJ9990154>3!2#!".3+373737&+'.47>?37!3.'35!7/".'?X21XB%%BX1F1Y?'X\F'+ 0?@//-RbV P+\s077#!%%) @K)/)1XB%%BX1F1YA%%AYeq^ 8=1 --9B7NP>AA>EL#AFZ!KXy/t/x3][<+I]t+OU/$/1z/ֱMMT+277q+d<+qd +@qY +{+M'+99T01I$97@F99q <>^mx$9dr9j9t p999[Yu99IB999]@A^$9O:>F999U79969$)901632$76#"$'&54%467>754&'.#"'&7>2''.'#"&6327>="47>2"'&7>'. k;IH51{4 %#5 s 5JTVd#+ 8 1T?Jg%#3@3+!TL9)-89  Zb59+D-Hb/#$3H)#)g;)-/ 3#[J/5<" JK 65-  ,8X+0 7/$ 2+/ 9/ֱ.!2.(+  ( +@  +:+ (3499+$ 9014>;2;2#!".3!264&#!"3!264&#!"J``}G6$K)6J}^ `}Jk5%%33%%13##11##`HH`#36&`HHJ33J5E11E2\=+3/+013 !5%'57'5#'\sn/ '}+fF^ZDDZBv%/9GRS +)Q/?8/S/ֱT+Q) -J$9?9998@ #27.'76$7.'327&'>7.#623&'>7&'"#"q'qq LAq  }۲  }/o?yLijk+Ly}cVDNnR  Y\ ho yH H*jh^W9'qqqqoN)3'& g#%VN;+;B'+}#dAFLH= ǑJoHم oKj//W/Lb+Q2p/q+jm999X_`b$9LWT90132767#"'&547>7'"'.'>.'.'>.'&7>7>3676327>7#7'"#'"'&'&#wG:@OI , -*'%@ (32 hqN )8E)-" )3) 1R3#)+  )%)/5) OIbl:8-,bo!5G  ! !" C)'D=7!`f[ ##   LS7:  1 HAXV 4LLNK+/32 //ְ22 +@ + 2 +@ ++01354>;#"!!!L5ZyD$Jb8-%ho+2Gco"//8+D/e+ /m3Me+d/k3e+i2/Y[33+g2p/ֱb4b+/4b +""R+;R+*++n+f2mB+h2mn +@mk +nm +@nd +q+ b8Y99" /ADLM$9R 9;'999(99n*9D8*999(9 "'99M 9dR99e99b9014>;.547#".54>3!##".632654&'.'.#"2>7654'.#"#"53533##59cN?"BhL)7\u@vTv;=;/-# J91]XPiJ%B\5z P;-7cL%%7FJ9''7D% )>>fbL-4%")Jd:7dJ-={H;d%#) # 5mR3aK/:RH7!qT  />)66/W?'!=)/T>'=)3;;7b*2<JZ|C'+-<+u/o[/;gj333\ +e22H/A }/ ְ23+3 /37+% ///%2K+TK>+ETy+]2md2my +@mf +ym +@y\ +yw s~++9997#'-1;$9/99TKHA99sma9u-%1999o#XWs$9[@  374ir$9\OP999H99A`a99017475&'475&'&5476227!"'&73254#"7254'&#"47632#"'4653#4&53='33"'+267'"'&7+7343%-ONkJCL`&;;a?1yKcyb`/b!#+--+# N 'EE'5Tq-!Ӆ-!DZ>?NmPF$$ 'bNH;!+3}RTR mn+##LZ%##f##%--#)< 9ܕ@' !Dh RB~ 476367>7.5467.'&5476762632>762"#"'.=4'.'"'&'.'#"'&547>767'"#.767>7675#"'&'&'.'&'&2>54'."#"&"4632#"4726763#"7432#"64632#"+ CD7%`j:1)  \?mnda;[  /9 V{- !*  !!   - /%4# AqqAHIZb67dXJ!&h3%#33#% 5  (# 3%#33#%'/%)1 :imHt-) &-*))$E58/~MVuILA   )-  3++3  -)    )!, Td5 1f^PB JjjHHjH)#ZNjHHjH(0&/!///1/ֱ*+..+ 2+99*9. &$9 9  !99&9!9)./999*+-999 9 90153>32."#732>5;##"&462"fXsJ{3e;{3NLd<fXsƅjjjͼP^6VJ{3:32#".%4>32#".1VqA?tS22Ss@BpV1)1TqA?sV22Vr@BpT1?sV11Vs?BrT22TrB?sV11Vs?BrT22Tr!yU~R/93K2A/)3#2V/ֱFF +,,+4W+ F 32227654.'.54632&"#./.#"3267#".DrZ7)/EPE-1$8#?^@!}kHd%\1H3@1F)oj-Li=q+#^BpT11TpBZ&8;dZrutD@\o5BQ&*<& -8I2bu>=/D=/#) %ff7]C%hc"8Rd1Rs?BpT1^IHUCu   ,8BMYd{sy/*6@KWb$3q qy +@qF +@qQ +@q< +|/ ְ2D+2+2D+2 +2D+2,+"2(D+&2(8+.24D+224B+:2?D+=2?M+IIY+UUd+a ae+t}+6?{+ .+ .  ...... ...@ 9 9 99,!998('-99B43999M?>9qy $o$9017632"4'?46"5?42"5?432#"5?432#"5742"5742#"57432#"'7432"574762672#!&  F  D D  F E  G GJ)a3<=mQ6&Jg1@%;NPOO  # ݙ D2Γt/ -Lh<gI%@/ $6+ +%/ֱ"$&+$9 9014>7..!#"6725gZ 3)fJ-f\{K)d//] ;W\k9j/@!fNbwu`907$/ (  8//ֱ29+6+ 4*"*+44+4 #9*9*4......*4......@2/+9 $99 9016767'>727672767627.'&#""&'&5467' CR:'P+; b||N b7/,a#`XM^ b f1:b\NZ:tl]R19!;%%#76&_J#7?+H /&33 //,/ֱ22  +'+&-+0154>2#".2!4&'.2 !4$3FMF5oP'E3Xg^bn@gZ'E33F&Po5DŇ``eg;q)8Aai}//Gy/ppy +@pl +s2i/3e鰀2?/3 2W/2/鰍//ֱ994+BBc+gg+鰃+2鰇K+)鰋 )+#鱘+6=)%+ . + . # ..... ......@B4;9c=Y$9gFW/ny{$9GVop$9.rvx$9U9 ST$9KN99ei@ )46&LN`a;$9?@ #9=STY[$9U99999014632>7>>32#"&='632 &'.547.767&'"2>=.'&'.'."$462"6226762 '&7&$462"264&"654&#`D;/Xz_ D)9PO:7NRuT// 9%/PoQQ85@5)`D-J  X=;@?<=XI-3#fLBNi;;iN ^E 3::3 F] R77R:  FF R77R:F11F1ALf#3/B !?+ /  +@ +"/ֱ2 +@ + 2#+014632!2#!3!2#!".iLJddLhhL%=R+JdjJuwϜZh{LkkLhLJhe3^H+dh` 19C\n~327>7>767&'.'.'&'753##3373#53327>73#5#"'&547632#"'&73276=4'&"367632#"'.'53276=4'&'"3327673#5"'.5462#276=3'"'&7354'.`oq/^P9  9P^/qo/^N9 sPM%X77YgVyD   DD J5/!!15P !^C !   -N  LL  y:^!F.-F=  m6ELD+  l:DMLC9k    j:6;DDsmu  ' >)-3)   і (# A !;  +  ;+90Z@ 5#  [?HtI/ִ+ +J+6+ @>$+@?@>+ #9?@>9>?@......>?@......@0167>76323267654'&'"'">7672#"#.'.'&HI?H"/ #3j? ,*8qP9/=!`}r!/+/P> )01/% 3!RD;i Nksr/w=71!bR D*;%,qԿZ/H#xe 'foz +<+(/GINad$3+/<+{/ֱE+44t+xq+x+ |+E@  #(+?ghn$94k9t.:>p$9(@ "#7>ESXYZhnpv$9+49016$  $& >. 47.6$32"&#"3?>4&#"&/"33 3?>.###"%>='q'qqPlmm'6%NZ4eT yT/9%"=  9;-99  `  9-/g5\L9'qqqq'llmmyu%p}VLC)'F$P;'a?k`R!Bj/!%k+ /3 +@  +&/$ִ3+2$ +@ +$ +@$ +/'+9 9 9015?67673!!327#"&'&'&'&5VL=##J*+Aoj\J'O+1D%N53N"-3HDsf5%F+ .-49^!y?EM'/@3 _+/2C /3 /3N/6ֱ@+M2DL2O+6 $9@  #$$9DF99 '29C399  58FL$9015!#%#'!#;"&+"+73?>4&'.'5'3'!JJ4/:h A' L1g^OZ'> '59#-FTPC71-!8?7eV#VV/e^'CXX)>GF;IVN ?;CRJ BXg^G^\-} "LNDV3//++015!f3//+015!f 4'!!eeL '*'L 4'-'L?'* 3'''L'- 3'''__<M M QDJTT\L7fMf 3 3L 3LLL222z v 0 P,`fd&N|< t *!!"#$%&D&'(n)&).)6)>)F)F)F)F)F)F)F)F)F)F)F)F)b)z)z)z))))))R  f     * H ^ nlIcoMoonRegularwebfontIcoMoon RegularVersion 1.0IcoMoonThis font was generated by the Font Squirrel Generator.R$%&'()*+,-./03456789:;<DEFGHIJKLMNOPSTUVWXYZ[\     uni00B2uni00B3uni00B9uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni202Funi205FuniE000uniFB01uniFB02uniFB03uniFB04KPXYF+X!YKRX!Y+\X E+D EV++D E ++D E ++D E,++D E"++D E ++D Eb++D E-++D E++D E++D E ++D E+D E r+Fv+D E +Fv+D E+Fv+D E0+Fv+D E"+Fv+D E+Fv+D E+Fv+D E+Fv+D E+Fv+D E+Fv+D E +Fv+D E+Fv+DY+site_pro/fonts/icomoonsocial-webfont.ttf0000644075506000000310000006011411722015066017002 0ustar namedFFTM`# GDEF( OS/2adHVcmapJ\rcvt  TJfpgm/egaspglyf6Sheadd,Y6hheagY$hmtx GZFloca3T[Lmaxp[ name5\@postSN)]Tnprep^ɉo1M M Q33d PfEd@1( 8MYmy  / _!"1APap  / _!"=5* MM  !"#$%&'()*+,-./012345678L9HINO3Vhsf-!-5Vyfumj1|,K*PXJvY#?+X=YK*PX}Y ԰.-, ڰ +-,KRXE#Y!-,i @PX!@Y-,+X!#!zXYKRXXY#!+XFvYXYYY-, \Z-,"PX \\Y-,$PX@\\Y-, 9/- , }+XY %I# &JPXea PX8!!Ya RX8!!YY- ,+X!!Y- , Ұ +- , /+\X G#Faj X db8!!Y!Y- , 9/ GFa# #JPX#RX@8!Y#PX@e8!YY-,+X=!! ֊KRX #I UX8!!Y!!YY-,# /+\X# XKS!YX&I## I#a8!!!!Y!!!!!Y-, ڰ+-, Ұ+-, /+\X G#Faj G#F#aj` X db8!!Y!!Y-, %Jd# PX<Y-,@@BBKcKc UX RX#b #Bb #BY @RX CcB CcB ce!Y!!Y-,Cc#Cc#-DbT:+[+/[+/ִ=++=+ +013!%!!D%hTD4@-+$3A/ֱB+01>3232>2"."".'.&67>7_\#B=6JL!29-=F-3.6;J33:Q<33!#?81/L)1#)t5,%'qqĤb 8/!CgCRoC{L!?15B D=w)/<?x/-;LN$2?./) +>/7 +7>+ +#7>+ +@/A+6=u$+ + +++ #999 9 ........ ........@.%,999>)&+99 3:999# 99749990167>732.#"672.'327#".327#"#d;\e  !)% 3V3rh{k75)Z1{Rk7}-fjyu%MH:-bu{}w 3t(!575 0 D27)X=P!71R7DV/3 2 / 3 /+6>h+ . +  +>+ + #9.... .......@013%!7!7!7!9V7+/-/qVr vVNJP +/ְ2 2+017 '7'7'JX!PX7V+)2!999.)599$!699 $999 99014>32%4&54>2#"&'>32".5465%#".)H^71V#)H^o^H))H^81V###V17_H))H^o^H)!#V17^Hn^H)!7_H))H^85`H)#")Ga57^H))H^7 )G)d+ +++$/ +&+*/ִ +q+"+q+$ +$/++0154>3)2#)".!!265!!"'?X21XB%%BX1##1Y?'HH`{#H`1XB%%BX1##1YA%%AY{`H`H2o+./6 i/_=+Q/ /ִ3 +3p+wf2wI+  + 鰖/+3199pW\99w6Q.i$9I3!2#!".73267>76&#"$'&3267>77>76'.=4&'.+327>732"467>3"#"&>36327>=4'&'&#"'?X21XB%%BX1F1Y?'mbX  `^u 'dJ)5 8 +#b+'NA1 q/& -#E7F3#.+## 9 %#. "" 1XB%%BX1F1YA%%AYbk35 '#LCZZ #--);g'!+B/ # 0_414 #<+ / #() !` 6BNa+M/FA/'3:1/O/ֱ#+  + ++/P++7=CI$9:A+90154>3!2#!".3!2>=4&+"&'4.+"46;2+"463!2#!"'?X21XB%%BX1F1Y?'.Mi;5;iL-#1-Nh;;iM.#F1XB%%BX1F1YA%%AYp;iL--Li; ;iN--Nh<-!!-!--*:+(2 +@ ++/ְ2(#22,+(*90154>3!2#!".%!5'75377!'?X21XB%%BX1F1Y?'yXjH1XB%%BX1F1YA%%AYT/Aw00?DX/d'4=GQ^f+//,\ V3R%/g/ֱ!+ h+!@ (/5;>CHNRV_b$9/ 2AE`e$9\)9,*.X999R!=5$9%8;KPT$90154>3!2#!".2>4."5>7.7>7>7#"&>32&67&'"#".62&'?X21XB%%BX1F1Y?'TÏTT \  hV17zV/V#^7Fh9JSNe7T3!2#!".27>7>772767#"'&'67>7##"'&'.'>76467"67.'"#"&327727"'.'?X21XB%%BX1F1Y?'X/sH^W))01^VBD $/ ##'%  "#-qG, )&# ) %>1# / .+" 8 #"*  $ ?E75 ?i1XB%%BX1F1YA%%AYM?Z#+LK;~A.  32HE   NZV-hF#=    ?1-K(+3& 2/$3/./ִ( +#2(+2/+(%90154>3!2+35#546;5#"#3!".'?X21XB%%BX17bJ+#1Y?'1XB%%BX1F1YA%s&-Pj>n%AY'[{+@3+ +@; +72&; +& Y/,Y, +@Y2 +52,4|/ֱ(22   +@  + S+7(+S7 +@SM +7:+22<02<CC/}+ &]^999S@ #HVWmnu$9CA9:7X9C99& HM999Y(9Pdu$901=67632!"&5;7"#"5463!2!#!!3!#!654.'.5467>54&'37!"&747>7623#"#.1SO\F7'B5##51N &(s5#%6XX6%'D1-'#;?NQNq Z 6'$,1ZJ3  5'$,1[I4X`;&#+-1 5{+//)DJ%66% Z #5'5XNE# %+-)7//N`P@!6P1Rp@# 7P1VoCJTbpD+c z2+Fc+JS/M +t2k/04$3Y`//ֱ82=A2K+D2QHQ/+2nn**/*n +@*$ +nf+vs+2qv+2  ||/+=?9QK &4F$9H'299*,9n/UV99f`9q]\99|z99FJ99Sc'3!2#!".%3254'&'&'4767654'>75#&#"43242#"7276&'&#"3&=57#>33275#"=;35#5467##'?X21XB%%BX1F1Y?'D5Tɜ% +B+) H3/4P17#%dqX\TTF!AFD!! }} O7*!//^31XB%%BX1F1YA%%AYP'f) 45Do15N5,/ @- s7;P#LAA; /P) +-^`(9lJi/   -"&?+# '222# +@#. +%/=3!/ @/ֱ##$+''(+223+ A+#99$!99'99(<927=99%#<9790154>3!2#!".3265.#"3#347>3234&#"5#'?X21XB%%BX1F1Y?'A8;@>978R 6/;2َl+@/! 1XB%%BX1F1YA%%AY_AA//B9rm#1RAw!'^*.2;+ #2+!*/%3 +/3222(/-1:333+3!2#!".!5#"!3!5!#!!5!!5!!54.+%?X21VB%%BV1B1Y?%+'dRqPPX3`@m%5H'b1XB''BX1J3YA%%AYuRDBD)H7'7?+ ,2%/43 8/ֱ!+))1+ 9+0154>3!2#!".2>4."2>4."'?X21XB%%BX1F1Y?'!:MVN: :NVM:!9NVN9!!9NVN91XB%%BX1F1YA%%AY9VN9!!9NVN9!!9NVN9!!9NVN9!!9en+ 52$/T3- C2Na/H3 +f/ֱ8+ g+$39N !(28$9-@ )0=@EFK[]$90154>3!2#!".3267'#".4>3232654&'.546327&#"#"#.'.'.#"'?X21XB%%BX1F1Y?'3VuBL~.+mC1T@%%@T1Hrf `V\{OT5%1'7#D3gP^a^59%#6;3#)dBuV31XB%%BX1F1YA%%AYDuV3B5^7F%@TbT?%N=HPiTNI #/3#^ZHLK#Z <1'TE/^f3Vt #/:DPZfp~?+H +S^it$2/ +/ֱ#2%/2?+A2FP2FU+\ \a+ppk+r rw+ + 鱖+6?"+ )*0 :+ +)**0 1?@+ 45;!D@ )*+0145:;D..........@ )*+0145:;D..........@9%$99F?@E99UKQ99H>9@ !'-38Nd|$90154>3!2#!".3257'4'"32?'&'"?'&#"57'4"2?'&#"574"2?4#"574"26574&#";264&#".#"'?X21XB%%BX1F1Y?'R @ 9  ;  <   =  =  @ ?   Sw`BZZB#0I_79)1XB%%BX1F1YA%%AYFFEEqqpr     Ӆ    # ݁ ` #\Z 5]C' $-4;+' ,/53/ 3!2#!".'32>7!.#&36'4&''?X21XB%%BX1F1Y?' }!jD5^mFr^yy/g5ZZn1XB%%BX1F1YA%%AY!?!?Jz+9+'Jh@IlRRFIQg+//$<+A/ = R/ִ)+ +@ +S+/@ *+25JP$9$ 9AF9=CE990154>3!2#!".%636323'&"%.'.'&#"#"'&54767'?X21XB%%BX1F1Y?'m  J TE NuVS'*/L ;nhjpU 5JC3wN; VZ1XB%%BX1F1YA%%AY""/0!/!31  FP ` i-TC%$?0!.:_+( 422 /".//<+:/ ;/ֱ"/22+(()+445+ <+0154>3!2#!".%2654&"234.#5234&$#'?X21XB%%BX1F1Y?'FfHHfFV;=@^} t1XB%%BX1F1YA%%AY1HH13HHA>;V}ۤ^tN (/355 +@ +^/  ^ +@  +/ֱg)+22g$$/g$ +@gs +g=+= +@=G +=3++=g V$99^5$y$9 9014>32>32#"'#".5467&727>7654'.'&547>327>7654'&'&'&#"#"'.=kR;m/3h!%>jRuY>i?A %!I];$+N_d} Z97YE8+ 'F\D[!#5cP5 k=+^@!+ +J!#+1=+Rk="f3'/q>Rj><g3^X%#1Dg@'(BM2%#"349/% ##;'FdA 6*2F--!% (''7G+$/* 1/ 58/ֱ!+-2 9+!)90154>3!2#!".;264&+".=!264&#!54&"'?X21XB%%BX1F1Y?'f8bJ/A=/3'/AA/>^B1XB%%BX1F1YA%%AYPh3!2#!".>3!24&#!"3335#3373#527673##"'&=#547632#"'&7276=4'&"353276754'&'"5#567632"'&327673#5#"'&3276'5#'&=354'&#"547672'?X21XB%%BX1F1Y?'-\77]qRFRqNHLNT53TaQT)@@  Ab4-1-!L  KB  BB   1H HH k+3C }+'A 1XB%%BX1D1YA%%AY)11)7RqqRy@ɿ %D )+/%  n!'  ~,  ' /5 >R+*!!  !Z9+) :/T3 [/4ֱ 4 +@4 +\+:)K90154>3!2#!".67>2327>76'4'&'&'"623#"&'.'&#"'?X21XB%%BX1F1Y?'##  %/u{h &# /VC "%@  )\%-1XB%%BX1F1YA%%AY/ =VcZG+dd#( 1V9%=#HR[O+m\ =#''-mt+./LOi3331 %//ֱg+V+VJ+88y+~?+~!+ 鱂+g(*.`c$9V+9J@ $%1FZ]C_no$98q9y4>Bu$9.@!*+;BEFZ_bcoru|$91890154>3!2#!". >. 47&>32#"2627>.#+/"323 2627>.#+'%>54&''?X21XB%%BX1F1Y?'Vbcc"1\NoL)6#8   510/5    X}   51ZbPlF1XB%%BX1F1YA%%AYbbcc{lFuNG<)#?#I6%W<b  f  N=c+{At+$ -/4 +29/ B/ִ+2+72  ) +)/C+A99299)$599-$)94*90154>3!2#!".33267675"'&'&=35#5#'?X21XB%%BX1F1Y?''%3-#73B'JM#  +>1XB%%BX1F1YA%%AYj!3#   D'?3  MS[|+) NP22S/UT/@[+C2M/ B \/ֱ +@ +]+S)%499U!9T 78EW$9@H9MBJ9990154>3!2#!".3+373737&+'.47>?37!3.'35!7/".'?X21XB%%BX1F1Y?'X\F'+ 0?@//-RbV P+\s077#!%%) @K)/)1XB%%BX1F1YA%%AYeq^ 8=1 --9B7NP>AA>EL#AFZ!KXy/t/x3][<+I]t+OU/$/1z/ֱMMT+277q+d<+qd +@qY +{+M'+99T01I$97@F99q <>^mx$9dr9j9t p999[Yu99IB999]@A^$9O:>F999U79969$)901632$76#"$'&54%467>754&'.#"'&7>2''.'#"&6327>="47>2"'&7>'. k;IH51{4 %#5 s 5JTVd#+ 8 1T?Jg%#3@3+!TL9)-89  Zb59+D-Hb/#$3H)#)g;)-/ 3#[J/5<" JK 65-  ,8X+0 7/$ 2+/ 9/ֱ.!2.(+  ( +@  +:+ (3499+$ 9014>;2;2#!".3!264&#!"3!264&#!"J``}G6$K)6J}^ `}Jk5%%33%%13##11##`HH`#36&`HHJ33J5E11E2\=+3/+013 !5%'57'5#'\sn/ '}+fF^ZDDZBv%/9GRS +)Q/?8/S/ֱT+Q) -J$9?9998@ #27.'76$7.'327&'>7.#623&'>7&'"#"q'qq LAq  }۲  }/o?yLijk+Ly}cVDNnR  Y\ ho yH H*jh^W9'qqqqoN)3'& g#%VN;+;B'+}#dAFLH= ǑJoHم oKj//W/Lb+Q2p/q+jm999X_`b$9LWT90132767#"'&547>7'"'.'>.'.'>.'&7>7>3676327>7#7'"#'"'&'&#wG:@OI , -*'%@ (32 hqN )8E)-" )3) 1R3#)+  )%)/5) OIbl:8-,bo!5G  ! !" C)'D=7!`f[ ##   LS7:  1 HAXV 4LLNK+/32 //ְ22 +@ + 2 +@ ++01354>;#"!!!L5ZyD$Jb8-%ho+2Gco"//8+D/e+ /m3Me+d/k3e+i2/Y[33+g2p/ֱb4b+/4b +""R+;R+*++n+f2mB+h2mn +@mk +nm +@nd +q+ b8Y99" /ADLM$9R 9;'999(99n*9D8*999(9 "'99M 9dR99e99b9014>;.547#".54>3!##".632654&'.'.#"2>7654'.#"#"53533##59cN?"BhL)7\u@vTv;=;/-# J91]XPiJ%B\5z P;-7cL%%7FJ9''7D% )>>fbL-4%")Jd:7dJ-={H;d%#) # 5mR3aK/:RH7!qT  />)66/W?'!=)/T>'=)3;;7b*2<JZ|C'+-<+u/o[/;gj333\ +e22H/A }/ ְ23+3 /37+% ///%2K+TK>+ETy+]2md2my +@mf +ym +@y\ +yw s~++9997#'-1;$9/99TKHA99sma9u-%1999o#XWs$9[@  374ir$9\OP999H99A`a99017475&'475&'&5476227!"'&73254#"7254'&#"47632#"'4653#4&53='33"'+267'"'&7+7343%-ONkJCL`&;;a?1yKcyb`/b!#+--+# N 'EE'5Tq-!Ӆ-!DZ>?NmPF$$ 'bNH;!+3}RTR mn+##LZ%##f##%--#)< 9ܕ@' !Dh RB~ 476367>7.5467.'&5476762632>762"#"'.=4'.'"'&'.'#"'&547>767'"#.767>7675#"'&'&'.'&'&2>54'."#"&"4632#"4726763#"7432#"64632#"+ CD7%`j:1)  \?mnda;[  /9 V{- !*  !!   - /%4# AqqAHIZb67dXJ!&h3%#33#% 5  (# 3%#33#%'/%)1 :imHt-) &-*))$E58/~MVuILA   )-  3++3  -)    )!, Td5 1f^PB JjjHHjH)#ZNjHHjH(0&/!///1/ֱ*+..+ 2+99*9. &$9 9  !99&9!9)./999*+-999 9 90153>32."#732>5;##"&462"fXsJ{3e;{3NLd<fXsƅjjjͼP^6VJ{3:32#".%4>32#".1VqA?tS22Ss@BpV1)1TqA?sV22Vr@BpT1?sV11Vs?BrT22TrB?sV11Vs?BrT22Tr!yU~R/93K2A/)3#2V/ֱFF +,,+4W+ F 32227654.'.54632&"#./.#"3267#".DrZ7)/EPE-1$8#?^@!}kHd%\1H3@1F)oj-Li=q+#^BpT11TpBZ&8;dZrutD@\o5BQ&*<& -8I2bu>=/D=/#) %ff7]C%hc"8Rd1Rs?BpT1^IHUCu   ,8BMYd{sy/*6@KWb$3q qy +@qF +@qQ +@q< +|/ ְ2D+2+2D+2 +2D+2,+"2(D+&2(8+.24D+224B+:2?D+=2?M+IIY+UUd+a ae+t}+6?{+ .+ .  ...... ...@ 9 9 99,!998('-99B43999M?>9qy $o$9017632"4'?46"5?42"5?432#"5?432#"5742"5742#"57432#"'7432"574762672#!&  F  D D  F E  G GJ)a3<=mQ6&Jg1@%;NPOO  # ݙ D2Γt/ -Lh<gI%@/ $6+ +%/ֱ"$&+$9 9014>7..!#"6725gZ 3)fJ-f\{K)d//] ;W\k9j/@!fNbwu`907$/ (  8//ֱ29+6+ 4*"*+44+4 #9*9*4......*4......@2/+9 $99 9016767'>727672767627.'&#""&'&5467' CR:'P+; b||N b7/,a#`XM^ b f1:b\NZ:tl]R19!;%%#76&_J#7?+H /&33 //,/ֱ22  +'+&-+0154>2#".2!4&'.2 !4$3FMF5oP'E3Xg^bn@gZ'E33F&Po5DŇ``eg;q)8Aai}//Gy/ppy +@pl +s2i/3e鰀2?/3 2W/2/鰍//ֱ994+BBc+gg+鰃+2鰇K+)鰋 )+#鱘+6=)%+ . + . # ..... ......@B4;9c=Y$9gFW/ny{$9GVop$9.rvx$9U9 ST$9KN99ei@ )46&LN`a;$9?@ #9=STY[$9U99999014632>7>>32#"&='632 &'.547.767&'"2>=.'&'.'."$462"6226762 '&7&$462"264&"654&#`D;/Xz_ D)9PO:7NRuT// 9%/PoQQ85@5)`D-J  X=;@?<=XI-3#fLBNi;;iN ^E 3::3 F] R77R:  FF R77R:F11F1ALf#3/B !?+ /  +@ +"/ֱ2 +@ + 2#+014632!2#!3!2#!".iLJddLhhL%=R+JdjJuwϜZh{LkkLhLJhe3^H+dh` 19C\n~327>7>767&'.'.'&'753##3373#53327>73#5#"'&547632#"'&73276=4'&"367632#"'.'53276=4'&'"3327673#5"'.5462#276=3'"'&7354'.`oq/^P9  9P^/qo/^N9 sPM%X77YgVyD   DD J5/!!15P !^C !   -N  LL  y:^!F.-F=  m6ELD+  l:DMLC9k    j:6;DDsmu  ' >)-3)   і (# A !;  +  ;+90Z@ 5#  [?HtI/ִ+ +J+6+ @>$+@?@>+ #9?@>9>?@......>?@......@0167>76323267654'&'"'">7672#"#.'.'&HI?H"/ #3j? ,*8qP9/=!`}r!/+/P> )01/% 3!RD;i Nksr/w=71!bR D*;%,qԿZ/H#xe 'foz +<+(/GINad$3+/<+{/ֱE+44t+xq+x+ |+E@  #(+?ghn$94k9t.:>p$9(@ "#7>ESXYZhnpv$9+49016$  $& >. 47.6$32"&#"3?>4&#"&/"33 3?>.###"%>='q'qqPlmm'6%NZ4eT yT/9%"=  9;-99  `  9-/g5\L9'qqqq'llmmyu%p}VLC)'F$P;'a?k`R!Bj/!%k+ /3 +@  +&/$ִ3+2$ +@ +$ +@$ +/'+9 9 9015?67673!!327#"&'&'&'&5VL=##J*+Aoj\J'O+1D%N53N"-3HDsf5%F+ .-49^!y?EM'/@3 _+/2C /3 /3N/6ֱ@+M2DL2O+6 $9@  #$$9DF99 '29C399  58FL$9015!#%#'!#;"&+"+73?>4&'.'5'3'!JJ4/:h A' L1g^OZ'> '59#-FTPC71-!8?7eV#VV/e^'CXX)>GF;IVN ?;CRJ BXg^G^\-} "LNDV3//++015!f3//+015!f 4'!!eeL '*'L 4'-'L?'* 3'''L'- 3'''__<M M QDJTT\L7fMf 3 3L 3LLL222z v 0 P,`fd&N|< t *!!"#$%&D&'(n)&).)6)>)F)F)F)F)F)F)F)F)F)F)F)F)b)z)z)z))))))R  f     * H ^ nlIcoMoonRegularwebfontIcoMoon RegularVersion 1.0IcoMoonThis font was generated by the Font Squirrel Generator.R$%&'()*+,-./03456789:;<DEFGHIJKLMNOPSTUVWXYZ[\     uni00B2uni00B3uni00B9uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni202Funi205FuniE000uniFB01uniFB02uniFB03uniFB04KPXYF+X!YKRX!Y+\X E+D EV++D E ++D E ++D E,++D E"++D E ++D Eb++D E-++D E++D E++D E ++D E+D E r+Fv+D E +Fv+D E+Fv+D E0+Fv+D E"+Fv+D E+Fv+D E+Fv+D E+Fv+D E+Fv+D E+Fv+D E +Fv+D E+Fv+DY+site_pro/fonts/icomoonsocial-webfont.woff0000644075506000000310000004205411725231430017147 0ustar namedwOFFD,`LFFTMl`#GDEF OS/2CVadcmapJ\rcvt JJ fpgme/gaspglyf;}S6head@T.6d,hhea@ $ghmtx@yF GlocaA 3TmaxpA nameA@5postBnSN)prepCTxc```d /q(} >bxc`d``b `b`@ fxc`dmaj:QB3_gHa```b`dF$`:Axc```f`FX1, i _H\JU v*p)(++*=`?P!#CC"CP& a _ /`dc+cdL hbfaecyxED$$edJ*jZ:z F&f $tKl<O54;;sΙ3KʑwisHnf~'EFF#-63z}f4N@y[CFN2?><fZg!=|3ni5YwA_:\ TT\m63wp!"?hj@ӟ:z>b rl &?Dpa2]T-3vp,:ؤJsU -2KC*1B$BN9w?)P>1oθaq50fS[0~G/ƒ>6F؎X `QUs/3%`y_';6/emc6eݪ\EwU5TC/gOᠱ}@  ލZuU o5x} t֕. EQDRM$#,˲,˲ȲȲ?M]q]dRIڤIe2YYydRO㦓wWg^fr:]5drcoPvDy!@b}7HDA1B؈Vb "E[nSB:[@C?%VX{%)M #kdyuƋ}H >Md.B&znUe:H-]  [xܵ(xd-d=O`kF(wt61!u t!%ܜ+jZ6M +-):Dƙ?eVEb_=7+ݾֶdww*:9LY<-϶Wί"A Y^Ho Y]s RPf `nbT#HRnsWۏkIN!TD\ ]8+q7_ q+4/J胍tg3BNJh^A_ѻaEiA* FG\hPiqZOW$CMݏOlh}L۳ON(b1gfߜdwʥ, R0<5Cjx^ e6 wd=3b(ˑ _wP.2,044e%EGid೟T-:_2N3$EƔ^ ɓ*!9i!)򂜌Z WDʳUyi /dR|J[mAI堕Ƹ!%<dx:V#uNbؾAT7F? 1hh$܈KO05'4b ΄O{י ^1%zܵ@`2$ly(uӰKfrpᤕ&7-lqPRS|wC?*g~Q?n+M:OO-.-NUڼp8. 501惕ܘ^'v0O UFX2BJ:m4AMbeDX^jl3h#OOL &](tG_ݯݷzug߄:wsgj'ibtU5V{K5chnS00a.Q;zG5g_ +t؞Lz'U}Y<[GƠl$PP &qȕX0(„NƖ…]4mQ9]X=Xf$JB}ukşs1ٷX#nqu\Y=?.Ё& um?*_VV~7)\`Aw<>{)Y++;z*ЏcoGYW=p_?M^>mQ#6X}bB9?#~!?iZ퉭s/3.l״Xt>5M:p5l3`szb=l/J646yskǧ0!сթW{x;S]Ӡ}CQb)1<+t(9V^%xTaCqCª?~Z[OwKR/M^_sX'705,u]"lT6 2Ct#0Dr@Ejk5$cbPe]xurO,)2+ew<| uzE$XhĘHN; FoЌZհal" Qz`WPi!DV0- $jY%-jVDG V b|A.dݣ;ɑ}] 3 ve+q( n|7]ڢnlE )b4.:F07–Ux|KƳi}`d,pg\ZD8N06ʋD#\}slހ. 8 &ޫ@Juۦ,v٭Ae`c#+5eu.{apV|e_cadiQ.ҰLj-7HѬXxyx^#KQ*Y Fd,;7 `M>KQb (*59dsd+[e&fQQB0LXgo U_/HZ/DrH#ĕ?ěl(^pDRU̳5pmnD 25zتRz!v=%0ϕe kJ)]!ohY]@XZ߯^Y9h[ia@sv 40AI&WIHM~P0PX@sW$(ᅴ1G~E0y6>WczQZf F, z$ Atq%3}^2j7?_|ЬAOcm=u:/XmjY?羅;Kz`lm/7Y:2`A Ҋ 1=x㡽-q,V ismѢHoweyu|vXr#HeE8Ce~v)"q(ѓ31T>U"sSccaG}>w8'nI"uE rhc)VUJ&ӤIi$|aWy>Nl_PhߟgW u%}G!z_F^_*r(DN3^iɽ* Y<Ʈ'D'e?KbET+`AkZ[heI%=&LCoZ[±_Coalcmd۱2E63 R9[c- MĶH QBlYE\i*n)v|˯~Fp9&0˕Ģݭ=7 KGE F{; L'tt%&qU#`"w^У+p4},2БQJa%\7L{\ȚʿI"X?Ncanl# `7ЈFʺ^'VfPW:"@lC+ X xP[]+_C_:>3 z@X13ATK{o8hd\0RjX tYIJ íuuZI"\.+u/l>voݡLژf$v{0>: XGvU$-˔g7 @ntut IVw_uۗr&\>fJ.DFcGq\]bxeJ[Ə =МMuE"]c#]\hf|ƱP6"byO=2}:[(9R$2~id`';kΎuFz`d +UTMZɺZ-wi@;@!T`}1 0]wfNkqcgh[Ns=^Q@/w#hNXiHZ``N vhKa#{D0ihxF?Q w~J ;.M׌u׮^;PNFYԵ?UzQ ]#@Slk`4Zn ?>`¢QξLz0wMxņc2_~h3;乎DHRWņJ[ž ۱5 rHāV^U;  Ce 5%lLuKzAk4RKNˬՒ-Ś`lmq|#Z^Ix"'α5cx61Orv7GE٩`vp*͹'Wq^] ?TR`B$[ϲ~DG3{or@skça@T=zȖ :ը Ţj5 fA[ʨW& F0̸ F#6ھD^Ӣh lJ$ +K.}O=~xXIF?N Dtw/zӯ1 H4gzHk4#KBYDjӪ4qXq vJF<} .n> A'^\ZhpoZm=>B9LwcܤuKaQLxJbY\NJ@jfNoL`E k+h)j1kbX'+'хe6Ā$,GʣGԀ<&-?XKQ! VlHCmB`#][d!eM/Y.?շ5dwdiT]\{bˆDa%jOPAuZL^ZtyaJ(]XcφtMDqLAHp{XX\ÑkJ': Y@8!*ibX{G^A5lHdmT&'דf$a#˂8Qq lGaӅYQw̞XnW?h1/:w*Y2C{zu]t‡qOĉMmW'%~bm#,I]P.Mţd xAv)A`ƢyXΙ;qpiYl4|f.q Nu{.]~W%쐋ew0 !8݊MB7G ᱬU۾i$WWGRݳ@&T2\3ogY1{*F`D!$tPch('IK~ CQ2|D,D -r,>(nMb<ѥD_]+kXF*Q 1z>xE5r?h"Ewx1/f,$V]iQV>\)bRKKoՁ;+V rpގD?h )z$ )ܫ$^6,2280 N{ ;8,_?qTb` LŦ63|h3 X:dW\]v !T Qk,&t9\u㽎z ԐRKB2+|R$W<tɵ; ]cs^(:iM\+[7&L$ۮ>'c&:-dyah^Mӌ[ID pq1fx{`XlwEiyf;㢞(RlԤ'si~B9^$N%MbϚ{fw:r~|lJ[,$ԒuL4(J.n_Btzyj9Pt*!upg+ ѿyqǎSO/֧QjK-˹=, \VNVt ,3nq;tHK+jģf?}'] #wmqS En{%IJDRT;My2:&0}GB'ag]7M%z,.ffޗ L+UGՂF8O\8d QmE^ѐ#`;=#M_dv{ͬƞG8m'qX/Ww|,J(zb KO;+{_RBc|rGp}e7NV'հn 6[?W@ͪq1uRܛD=L1Z!3mؘmƅpA-kK ƆQZ<'A 2"^~  ;K'aYӲaByr}ᢇSX(&pWwv0 Z6ztv$Sk|X.#L$Β]_1 ;Y=E1v2IŸ)iax_rwRΒT?I/((p{% DjX~LտV]Y06ZK]i0_Su-co1`^^0 9`E$Jlel$m!q V Xu*4jհb!kh D l4N͕l g#4w5 H`zRZ0jQ[ YFmj3vj-kO0]f.DDG4-RIi +~n\>=0p hh] fjM*&mLýKTNjHw5,NGɃK?Gj]M86Qpw-nuq$fqhUl0e= d}k֮Xf0~ tde-1ԞK\eMz6e g4'Y^9%QFظn%jгpֆ %²^`T7.b}@xfV r"픟8;59괂cB -YRvx{bA# 5;f f  W.Y u,1+U6>¸*YDCog'O|Im)\&_+Bø˦ÆxpXl9֌r]#Wq`|,΀,LۚղG(%[q~{ SǻWƾRl/IVqRyh`g*H)I_~P 1jcEq~؁fL(Rk &Źr{Qmz #N392 ۭuĪ֊}A`gAǛ@ڈA`^b!uJ`jK@ Yc;2F7T{K'҆. c ?b.#wcG6KRqmc>a7ɬ-m@N 4넩Y'`%\le!m NCrP%S8S8zP;fA͎'ERX/elZNgT.HGqQmhl>gq 9-ڶ|52\Իt%E,*4e5PTLLԕQ :Hӱqq^L#hC3r/w"O0nw<Љs]3ހ:GXI$CL(4 /7W(<`ckc|27%pߤ::?)=!:G (@&#R%7HRJ9oǻblX{$ANR<A79׉%&~MO.,3Ւ&va/f1.UJd6Uh |ҏ'hբXLJ{a/،lX~MvG\4*erX&ܳGKw_zCε­sow믍΍ÑmsOA_@wv=ShUz+ڢȗ?Bz)$_YS_ GVZmdscGz,OǏ@X{Ξ#cؑc9Ow8\ЌVAvz\1̙}`/փf^^lEͪkN/f*}q25YkO띂y_ hͻc۝%}`1SG'%t5?t۵׾ߙZ\q ׹kI^/Z hVA69,u.0 0f;&Fp#FB:#˜?bCʉqm:Q&m,ҷ[T>λ>d׭Nx ݢ@msx`9Q8JXaYs:YntkHᅵKV(AfvIkk?)GHY0MlexB3i%<-=xx{(-$}}.{THRl2Jiu.V[RHY 8 8 g@q?沚;q ;pkl$Ql[7v,^ΫUVfMTUmYҬ̹T+9;5G3o6 S_w@,9zYwةܡłCbon~r'iCqtWdO*WyQ-U*~*aϔXWݮ+=p'cM=YUJ>}OˊgSMr 5Op h&}ў$͈>̡g 6-iuCp!(:ȆDo=~Xt_$ ckCY5S`CKe0ˋnGX!bx;`h4-240M:iA ~)>Y 3t?Ԝ i6@nP_-S C2Nm0[/-I‹S`}bUB__(`9pz_(TS4]9^@u- ₝a j r_*^XC4^"èXpOXPm[ Yyx)QWOvagTY9Xwyڭ[;#gW`zͿ\&]qͨjD]D&]•ή&{0>T bGg-`rޭ/_DzWZQ *lc ,@#Zy5Ū6*Wnh:ٷJ5qI=f3>w$&(Ja- [J}ŽfZ:2>vbkScm^7>쀽N/HrLUK4MNQdik,pGzaZ7wB¾JI¢a/DQVNbK'1]'wl/wy9G#dX@5O;?8_>oӴ|NV򵒟:+;4hLjƯW]xc`dUsm2s}yNβr9@:w Nxc`d``8Aɷ|xczLXg2t13z(f=Hq 3A7~#Ajd6LMF34` M@e``a`8 >H 1Plg}}<xc``0yUϘ60O`acVv}N..{|B-:҄n=%"&'qFcdmK')~P̦AIEcֆ9~LV;W#"!=.Nՙ:Gu%q;7ߝj%V>G\tVJE6wrR)tt ,x}GRaǀYP5?3u#%c^;o\Pd>vU׳&+("K,*k&[(SavqDTQ>rLN9 .nMy3/@CֈFј5IMiZ3回9+7 Ư9g ȌͪY3QOR-IO_ofX=Jx=?`p>P( lm?M< GvR/%6^N:N7W_R'cMj:ՄzMOAW$K/Sjg'<3f01l2ڀ3Z@֜a{uq4f@{AQGS7 j7C"B0Oa &ppaCafpΛ5fksite_pro/fonts/icomoon-webfont.ttf0000644075506000000310000006666411722015022015617 0ustar namedFFTM`# GDEF( OS/2agHVcmaprQUzcvt ) :fpgm/XegaspglyfŒ]head |dT6hhea d$hmtxEdlocapgHNmaxph name5h@postDlWiAprep Zl<wɉo1LgLj33d PfEd@ VtXR@~S    & / : _!" R    & / 9 _!"1}umd@~   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`apvwxyz{|}~chbiksjmlonrqutZ!7HRu9PuHdyLs4V,K*PXJvY#?+X=YK*PX}Y ԰.-, ڰ +-,KRXE#Y!-,i @PX!@Y-,+X!#!zXYKRXXY#!+XFvYXYYY-, \Z-,"PX \\Y-,$PX@\\Y-, 9/- , }+XY %I# &JPXea PX8!!Ya RX8!!YY- ,+X!!Y- , Ұ +- , /+\X G#Faj X db8!!Y!Y- , 9/ GFa# #JPX#RX@8!Y#PX@e8!YY-,+X=!! ֊KRX #I UX8!!Y!!YY-,# /+\X# XKS!YX&I## I#a8!!!!Y!!!!!Y-, ڰ+-, Ұ+-, /+\X G#Faj G#F#aj` X db8!!Y!!Y-, %Jd# PX<Y-,@@BBKcKc UX RX#b #Bb #BY @RX CcB CcB ce!Y!!Y-,Cc#Cc#-DbT.+//ֱ+ +013!%!!D%hTD%L +/&/ֱ+ '+  $$9  "$9016$  $&2>4." q'qq%ZΚZZϙ 9'qqqqϙZZΚZZsJJ TJ $ /// +/+016&762#!$;265."3%5'Z'j%^%5LHB55B@j!}TZBBBBZkCC55F@36 / +4/ִ +5+ /99 "%999014>2#"&'654&'.>7.'"#"\՟]]{)57RJ}Z1JVi=Zks\3#T! 1VnBBno?Ds^k L`qVlHyIL{?>F)%/7CM/; + 2/G )G+%7/N/ֱ +@ +#+8 +O+#&).9998+,027$9;  999% "8>$9)A997G'+2.L$9014>$ .'&'.6264&"3264&#"$264&"32654&#"3264&#"` X ]w^`Ǣh1E22E5#'33'#9R::RP89NN97Q2?+->>-+Tgi`?I  %L^5R4B--B- E11E1VM66M6)77)'55sR<>^?ETT A-/@@/-A&LDAJV+B/@?0-AAT/@?0-AA!T&%+'/ֱ"2(+0174;27%67%6&=4+"9 ^ h 9= cH qr H `B/j"*Q+*/ ++/ִ$ +$(+ +,+($9999* %99901=4>2&'.'4&6264&"/BnoA+=H%VjjW%I<+hhh VoBBoV ?LL@whhh// +/ִ + ++9014>$ +>54&'.q'qq !RVV%/3f}FfqœTTœT1aT?;H+e;^b/ + +2/ִ 1+ + 2+ + 2++ 9 9 990153!53333;Ca>;^d/ + +2/ִ 1+ + 1+ + 2++ 9  9 9 990153!53 ##87;C ?' +3(/)+017'7'7'77777'''''7'7qqGJqpJHqqHJpqJG\qpJHqqHJpqJGqqG#O+!/3 2! +@ +$/ְ2$+ 2 +@ + +@ +%+015463!46;2!2#!+"&5!"&!#"!!## y"!!## !#X5!!suX%?Z /  /+015463!2#!"&!+!! y"###X? A+ / /ֱ+@+ +9 9013!%!!!Xfu3X *a/ +22#/ +/ִ+++@++@+/@+,+ 9901746;4>232#!"&!4'&'&'&#"+GcnbH+%eh "#-\yFFy\RFD0++1CF i/ 2/ + //ֱ + &+ ++ 9  999 9015!%3 73!4632#"&/;\+!B|>/+@@+/>{-/>>/+??-=Ar/!;/3 3 3A*/ B/ֱ/+77?+C+7/ !)*$9?%>99A;%/6>$9015463!?>3!2!2#!"&2>54."4>2".35#)G 11 H)))1BnoAAonBZ3VuuX33XuuV拋+G/++/G+**VpBBpVTqBBqtV33VtvV44VT  "/22/33 2 /3 22/!33#/ִ@+ 22+ 22@++@+22+ 22$+99 9015!%35#535#535#!! 35#535#535#3h 5Z3?2B3/ֱ$&2$"   /"" +@" +4+$ -9"%9016&>76%.>76. =V5/]"%  {`5^L1 >V53\%# }\5_LRN@-OfŠh Ht+DQN@+RӮJ\Hn-RH @/ +///ֱ++ 9901!%!!?!!mlf^iBX*/3 +2 +/ֱ+014>3!2#!".%=7H))G88G))H7TF )J77J){)I88Iguu  #'+/37+ /$33 %22/(0333 )1222 /,433! -522/ 2 +@ + 228/ִ @+ +2 2+ 22 "22$+(,22' *.22'0+423 623 + 9+99990'993 99011!35!35!%!!53535353535353535353 [ZZ[[[[fX3 粲  +/+011 ''?6VXlLJ)7)97)9dXJJ7'99)82K[rI/QY/<$/ +$ +@$1 +2\/4ֱMMU+F]+M4).-999U(99F@99976$72#!"=4.'."#!">7>;#)"2>4."?8y1D7@%)4;:-9;4)%+7:X\+JJZZI98+ !/LL/!9NVN9!!9NVN9} 7=BF&-'B=7 $%wm%& 9mwL}VN9!!9NVN9!!9DV5+21/& +6/ִ0++ 2+2+0+ +1+7+9&19991$9& $901532>=33!535.74>32#".DV1RpqT1T5^JDJ^5"

    .{7#yb';)u͛`jHn@)+ / +/+ 9901&>$ &&"7u':'b`a]^@nHj-9d/./53/32./ +@.8 +/. +@/1 +:/8ְ027@+2278 +@75 +87 +@8. +;+.!99901&>7>&'.'67>.53533##5+lTT2/XDB y P-MEgy}99JEgx}sJNZZ!31+mTN7) H 4fL}sK#!hwsIFfZZ XB+/3AEIUY] /B/,V33CCB +@C- +@CW +@/7*/#M#*+T0/1G[2201 +@0F +@0Z +/^/ִ@+,+02/22, +' +/B+F2EH2B4+< +EV+Z2Y\2YYQ+J +J/Q +Y+ @+_+015463!2#!"&73!2654&#!"54;2+"35354;2+"533754;2+"33N99ON:u9NXl!!!!Lbbb!  !Lbbb!! !Lccc7ON8!7NNAX!!X!%X!X^LX!!X!ws:-1"/.//2/3+.!99901&>7>&'.'67>.5!-lTT4-VFA w P-MEiw99JEgy|sJ@!31+mTN7) H 4fL}sK#!hwsIFfTTHP: +LP/(?/Q/7ִ +R+?( $9016$  $&36323476767>76767654&'&'.#"264&"q'qq}  N% 1)%?A%D79+! JjLLj9'qqqq  ?<=o"%%'9j## *1CdkIIkL % / + 22/+  99017% !7P}}Pf !D^ cqq:;+ !FT ' xug)8 ++ // ֱ+ 99901!264&"%u۷NJkGGks'kJJkI7 J1E7+ ./" B/8 F/G+". 998B&9901=4672>7 $.5472>7 $.54>$  $.#۲#qq!#۲#!qqq'qqqߴ"#9))9#!/P=##=Pò'#7++8"&/P>##>P´-R>##>R-/R=##=Ru%-]+$/ ^/ ְ2$2$<+O[+<3+73XT2O+#2 2_+3$(.AE$9<@9XOK9F]$9$.E$901354>7.=!%!./767!767>75325>7474'&'.'&'!;u'IiABhI''JhB-Lh>XX} B |VV=hL/%!Z9 )CD) 7Z!%;d53f<7>7654'>4&'676'4'.'674'&'&'.f 57+%9mP jU%E<' NZT$&7 ^4+  '( $sN38=qqp>BhFFW54!!7O!ScrBCFDNwU\_WY]Rjx^ZsB 0qs/" '!#$!T-)T2 $7654'&'&'7727>76'!3267&'&#"!4.#"2>4."1? );16"!2X#+Jd7%F1@ 516$#3V+Ie7L=-NjwkN--NkwjNV3#$51?# B1=M9eJ+U4$$51!1 B1!C#7eI+$wjN--NjwkN--N#w!C>?/73 2D/ִ"K+"2+K+E+2" $9014>32>32'.'.7>7>54.#"'.#"=mRb77`Rj@:`}DXI!#NRF~_9R1VuCNJLNBuV11Vs@\'%%'\BpV1Rj@XLLX@jQ^w>R;9'qqqq);;)+<>R;9'qqqquu3\ii\);;)+<<+);;)+<<)3 + / +4/ֱ  %+**/+ 5+ 9%9* $9/9 9 $9 99"',1$9016$  $&77>27'. 2654&"2654&"q'qq¬X5Ѵ6XBA+=R<>R;9'qqqqP3 \gg\ 3uuZ);;)+<<+);;)+<<2GZcS+# +./d/Fִ8+8T+S+M2S^+ e+6 X+ ..0+ -+ g+ ++ +-,-+++ 0/0.+ #9/0.9 #9,-+9@ +0,-/..........@ +0,-./............@8FA9T@ #6:<=HOQ$9^S  ([$9# [a999. 99014>2#"&##".7267>7.'.">7.'&'&54747>74.'&>54&']Ӟ\b/Pj> FڒF8 BKNѾNLC CLNNLA)'"    Z :/' !" haH?#D9++:W3ZC'2 ## ##x( 42///'  ~9:;>=)767#4654&53&'&/7&'&'7&'.'7&'/7.'+5''''3q'qyoRox^dd1ihh2edde) 1=> ?=L@B%J))I%A ?L>@ ==2 )ddX>)"uqqg f}JM !ih! JM  RF!!N9y{=/V T+ jj *T V/={y9N!!JN   !,U,/ , +@, +-/!ֱ+##)+ .+9# $9) 901&54767>2'####.5676&'&"X T=>?@<=Vm22uw!#\#!"#\Z7845nS=>?>?>T {G\## #\!#X?'s// 3 %/ (/ְ2@+ +@ ++@+2"+)+"9%99901463!2#!!!"&5!!!32654&#"5#%66%3#5f%##$%55%B%8f8'9$$##q)#'K+(/ֱ$+''+ )+$$9'999012>54.'".54675%3q`ۤ`7gThG{{HiTf7\}ݤ^^}^p!;^{GG{^;!p+KPH B+3/  /ִ + + 9 $9 9901 P=55L+D`VDCabR+53D/Y3 + +D +@D^ + D +@  +c/Vְ 2II?+2d+IV99?$*9N$92-9DRV[99 9 -.99901467632>546;2>.'&547>32;2+".6767654'.#"+"&=4.#"'.2$,N3 6'(- RXZR  +'55'+  RZXR .+'6 3N,%1XR  .) '5 3N,%12$,''3 6&'5 3'',&11&,N3 5'+-  Q;^!%+3 +#22/ $33 22 22/&/ִ! '+!+!/! +% '+"" / '+6[A+ ..?A+ #..#$#$........@017!5463!2!#!3!54#!"3#3#;+3%%3+j{{LjLw3^wwkLkFH#56"HF3VH3F'2JK/ִ + +  +)) +-):+@ +D@:+66/DL+ 9 999 99-$%99:)39D62=H99901>75.5462>765.54>2>75.54632!. f!'HjJ)!3y3:ZvD-5-@F=/5.FwZ95!)J53L) f X?_ T5HffH5T  5[x+ZN7 sG1U?%%?T2Hr7NZ+  T5HffH5T ^@+J+/+01!<f4f 1?<+@/ֱ  *+ A+ 9*28$9  901>7.'&'6>74'.'>7&'JNNJfx%%yeeH53Gu߃2boob^Z3G0/H3NHmLLnG Qf~|gTNNTJO==NhVX+/+01!! 7 ' R\yR\\͢ F+3 2/ 3 2/ְ22+ 2 2+011!!!!ssuus%us%u* ++/,+01&547 632"&'#"'&'& 5BB'(jP-6 t!9<9^d~\N)(AA3N/q<%&=:9;:!u0\O'.o"/*#/3( ,2(# +@( +@( +@( +//"ִ*+"* +@" +*++!+!+ +@! +0++*.99014>;&54632>32#!!5!".%333+Jb7mN/L/ODwZ5Ri'BX37bJobJ+ Nm'#;D3XwDV3YA'+JKb 9`&.#/ + + +'/(+#99014>32&54>32>32#!".+Jb7 3D'/L/ODwZ5Ri'BX3h7bJobJ+'C3'!9F3XuCV1ZB'+J'.`#/3 # +@ +//ֱ..++0+. "(999+)!999 *999#(*,$9014>32&54632>32+'#". ##+Jb7mN/L/ODwZ5Ri'BX37bJ+9cJ+ Nm'!9D3XuDV3XB'+Jbb bG+/3 2/ְ22+99 99 9901%!##!5 5!3 3!h)і)iזϓϔ)iהѕh).]*+K/6^/ֱ  0+QQ+$$E+<_+0 )*$9QX9W99$9E56?AK$9K$0;?X$90146?267>4&/.'7"&/&467>26'7>4&/."./&11#CFF1  o  11111}212111}}11221#DEF  n 1}1Z_EFC1CHDq 1}211111<1112211}1Z^FEDDGDq 1  +=M[ix&Y+:/CC m3 +u2 /3 +2K/1( 3! +}2/,ֱ??  '+/3 '+$2?N+\2Vc2VG+5k y3r '+2+,!9999N?:099VCJKB$9G91995km9rn}999:Rjq$9k99 ,5>?FG$91(%y99!$gz$90146;2+"&4?62"'4762"/4>2".62>4."54632#"&54632#"&4762"/4?62"'46;2+"&'r%%r'R6R8RRh@nm??mn@s-NjwkN--NkwjN'$%''$%'{5RQQ8R%s''s$$%''38R6R7R6QcRo??oRTl@@lwjN--NjwkN--Nr%%r''s''s$$o6R8R 5R8Q$%''7`,<Dl%/2D/@ +:/E/ֱ..>+B '+B6+F+B>129:$9@D-.56$9: 9901&476?>7>7>2"'.'.$2>4."462" DT5s;!;>=;s5TA #O)ZqBKHFqZ)N+JdsdJ++JdsdJ}>Z==Z& Bt++  ++uA ')H!HnnG!HsdL++LdsdJ++JZ==Z> +3/ֱ+01!! >fj/6,73<3Cu%mbb5>5A%Gɲ#w | /32/ +/+6=H+   °+  ........ ........@01% '%- RFEf!!guum  5RL#w P/2/+6°+    .... ....@901%  -RFE!gum  3hPL#w % RFEm  3 JZ9/P +I/)3 %2X/ +[/ִL+LT+' +\+L >?$9T6<$9'34$9P9,3?F$9I*H99KLST$9X$99 "$9014?67'>767'>7>277''#"'&'7&'.'7&/&$2>4."o%V9!^9R+\1+)-)+1\+N<`!9T%nn%T9!`;OX`+)+-'+`XR9^!9V%o!7LVL9!!9LVL71/ TLJ+N"97-mffm+99#M+JLT /13- TKJ+N#:9,j-gg.j-8:#N+JLS -^VL9!!9LVL7!!75d/ִ+++014>32>32.;eNu--sNf;RR;=*+9'qqqq XX7('MoN')X?o+333/ְ2 + + +2 2+9 99 999 90133'!'' 33333XfZ X@? Bsf[\>Bs3', + /ֱ+ 9 901>3! .2btbÃcbbbucX?+V+ +22%/ ,/ֱ  +@ ++  +@ +-+ 9901746;4>232#!"&!4&'&'&"X7%XF{yE\#55#%7f-'1551'0Xu%3Jb88bJ3%#55):!!:)O + / /ֱ+ + $9  9999016$  $&!5!q'qq)9'qqqq,7AJ +/5/"*/;@/K/ֱ+&+IIE+ L+9999& -18>$9IBG99ECF995/-199"2799* CF$9;9=99@8>99016$  $&%&7467%2>4."327#"'632&#"6'q'qqR= y1TpqT11TqpT}}?#BA;HF;y@339'qqqqH;BA#?;pT11TpqT11T55= @3у}};FH/?G +-/5G/C=/%/H/ֱ!+11A+EE9+))+ I+A1 $-$9E5<=4$99 %,$9G5  )$9C1890$9=!($9016$  $&2>4."4>2".2>4."462"q'qq/X˘XX˗E@lm??ml`'@XbX@&&@XbX@y-F--F9'qqqq ˗XX˘XXqm??ml@@lbX@''@XbX@&&@F--F-H + / /ֱ+ + $9 $9016$  $&!3!5!#!q'qq9'qqqqSQO+T/ִ>+>+ /  +@7 +U+$%O999>'1397>7>74762632#"'&'-7D')&  5 #! ZNB#+ !%-Q67`iFKF{`!)0KuV =# $!CJA #++0  =: ! UOD+V/ִ+:+G G/: :G +@: +W+:G1299"#/$901%67623#"'"'&5.'.'.'#ja76Q-#!  +#AN\ !" 5 '+'D7- H5 ! : ;   0-+! DGD!$ #? VuL/)!`wE2S[#+,/9J/ T/ֱRRB+U+BR(,999#9,#99(99J9901&547>767672#"'&'"#"'.'&732767>7654'.'&#" lTT^"!:8X2/XDB y PSLHN-4Eg<&(>:9J Fg<&(>sJ ~"!:8X31 lTNU)(++R7) H fLTs>sK #!h<'(?sI Ff<''#5+./!/6/ֱ'+*'* +@'$ +*/++ 7+6&././..ɰ6 + .-/0-0..-0..@'!99*3999 99. '*3$9!()$90146$32#"$&2>4."4673%#"&qqqqu^ۤ^^ۢ#d  ;'/B͓qqqqۤ^^٤^^!5u-d+#-B\?8/ / + /ֱ!+ 99 990154>72674>2".Jj3qq3jJ -Pl{kP//Pk{lP\JoO%))%PoJo??oo@@o#16+// /!$/%  /2$2% 26/*7/&ִ2@+&2 +@&$ + 22223+//3 +@/1 +"2228+01746;#!#532#!"&75!5!5!53546;23%35+Z-+Z%3335%'5@-\3\sZZXX ZZX%66%XX'5x/3+2$/23 26/ֱ +((.+7+ 99(99. 99 (.$9$ !'/5$9015>32>32.#".#"7>32.#">32.#"1u^H1t^HH_u1H^u?P;J5R^-?O;J5R^.y)5)5)5)53+5)3+5L!%#!%#&47 &6?> > &' &/;::<9<;:87<7<;7;XB ) /ֱ++  +015%33%0/X565c5r /ִ@++n990147>?67>76>7'#"'&'&'&5477'632>7>76?'"#&'"#.'.'&7654'&#'08!/ /'749R;3 ͠$$D5; <#C8) ZA->AP!%)$ "15 76)+# c  b  %17 32! '9 <3E $$à 6;R;4:#B7'@X-=F)%!M& . 0!94+ #+   aLN-%LFELN) NLN LLN!FL%L +/&/ֱ+ '+  $$9  "$9016$  $&2>4." q'qq%ZΚZZϙ 9'qqqqϙZZΚZZsJJ7`D?Z /  /+015463!2#!"&!+!! y"###RF 'C%$F 'A$F 'a $F 'CF(u 'A3(2 'C, 'A,X 'aF1 'Ch2 'AV2 'aP2Fa 'C8FN 'A87R 'CD7@ 'AD7 'aD# 'CRH# 'ABH 'CFL 'A3L 'a3Q 'CFR 'A3R 'a-R\ 'CfX\ 'AVX '(2 4'HRAr{}a`/?Z /  /+015463!2#!"&!+!! y"###?Z /  /+015463!2#!"&!+!! y"###?Z /  /+015463!2#!"&!+!! y"###?Z/  /+01!??Z/  /+01!?C Xr' 3'!; '07!!ee 4'LI 'OI'L 3'IIr'O 3'II]_<LjLjr rD /XD{udqP; XXLLFu 3 3r  tVXV 3; 3 3,,,DjP 0j>bZ ( X    40x&HdBRV(n L !!"d"##~#$%r%&l''(r()T)*(*X+(+<+N+`+r++, ,,,$,,,8,D,P,\,h,t,,,,,,,,,,,----(-4-@-L-X-d-p-|---------------...4.<.D.L.T.d.d.l.t.t...... cf     * H ^ nlIcoMoonRegularwebfontIcoMoon RegularVersion 1.0IcoMoonThis font was generated by the Font Squirrel Generator.  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`afjkmqruvxz{}     uni00A0uni00ADuni00B2uni00B3uni00B9uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni2010uni2011 figuredashuni202Funi205FuniE000uniFB01uniFB02uniFB03uniFB04KPXYF+X!YKRX!Y+\X E+D E}++D E9++D E"++D E8++D E5++D E++D E++D E++D E ++D E ++D E $++D E+D E ?+Fv+D E(+Fv+D E+Fv+D EQ+Fv+D E/+Fv+D E+Fv+D E +Fv+D E +Fv+D E +Fv+D E+Fv+D E+Fv+DY+site_pro/functional-slider.html0000644075506000000310000002053511734731420015147 0ustar named Functional Slider

    Functional Slider

    Choose an effect

    • blindX
    • blindY
    • blindZ
    • cover
    • curtainX
    • curtainY
    • fade
    • fadeZoom
    • growX
    • growY
    • none
    • scrollUp
    • scrollDown
    • scrollLeft
    • scrollRight
    • scrollHorz
    • scrollVert
    • shuffle
    • slideX
    • slideY
    • toss
    • turnUp
    • turnDown
    • turnLeft
    • turnRight
    • uncover
    • wipe
    • zoom

    Slideshow with default effect

    Description

    To make the slider work jquery.cycle.all.min.js file is used

    The HTML Slideshow Structure:

    <div id="YourSlideshowID">
    	<img src="YourImage.jpg" alt="">
    	<img src="YourImage.jpg" alt="">
    	<img src="YourImage.jpg" alt="">
    	...
    </div>

    To add more images to the slider duplicate the following code:

    <img src="YourImage.jpg" alt="">

    Using the src attribute define the path to the image file.

    Basic initialization:

    $('#YourSlideshowID').cycle({ fx:'TheEffectYouChoosed'});

    To initialize the slider input the slider block ID($('#YourSlideshowID')) and animation effect you want to use (fx:'TheEffectYouChoosed').

    site_pro/gallery-page1.html0000644075506000000310000003632711734731420014165 0ustar named Gallery

    Gallery

    Description

    To make the gallery work tms-0.4.x.js and uCarausel.js files are used

    The HTML Structure of Gallery

    <div id="simple_gallery">			  	
    	<div class="gallery_bg">
    		<div class="simple_gallery">
    			<ul class="items">
    				<li>
    					<img src="YourImage.jpg" alt="" />
    					<div class="banner">banner content</div>
    				</li>
    				...
    			</ul>
    		</div>
    	</div>
    	<div class="pag">
    		<div class="img-pags">
    			<ul>
    				<li><a href="#"><span><img src="YourThumbs.jpg" alt="" /></span></a></li>
    				...
    			</ul>
    		</div>
    		<a href="#" class="btn prev button3" data-type="prevPage"><span></span></a>
    		<a href="#" class="btn next button4" data-type="nextPage"><span></span></a>
    	</div>
    </div>

    To add new images to the gallery you should have 2 images: 1 for the slider and 1 thumbnail. You need to add these images to different places. The images and thumbnails are connected by the order number. So the first thumbnail in the block <div class="img-pags"> will display on click the first image in the list <ul class="items">.

    Slider image should be added to the list <ul class="items"> using the code:

    <li>
    	<img src="YourImage.jpg" alt="" />
    	<div class="banner">banner content</div>
    </li>

    Thumbnail image should be added to the block <div class="img-pags"> using the code:

    <li><a href="#"><span><img src="YourThumbs.jpg" alt="" /></span></a></li>

    You'll get more info on working with Gallery in the template manual after purchase. Manual is located in the "documentation" folder of the template package.

    site_pro/head.html0000644075506000000310000000627712231675161012437 0ustar named site_pro/head.html~0000644075506000000310000000626012231675065012630 0ustar named site_pro/highstock.js0000644000000000000000000050274512123075001013725 0ustar rootroot/* Highstock JS v1.3.0 (2013-03-22) (c) 2009-2013 Torstein Hønsi License: www.highcharts.com/license */ (function(){function z(a,b){var c;a||(a={});for(c in b)a[c]=b[c];return a}function v(){var a,b=arguments.length,c={},d=function(a,b){var c,h;for(h in b)b.hasOwnProperty(h)&&(c=b[h],typeof a!=="object"&&(a={}),a[h]=c&&typeof c==="object"&&Object.prototype.toString.call(c)!=="[object Array]"&&typeof c.nodeType!=="number"?d(a[h]||{},c):b[h]);return a};for(a=0;a-1?b.split(".")[1].length:0):a=isNaN(b=T(b))?2:b;var b=a,c=c===void 0?e.decimalPoint:c,d=d===void 0?e.thousandsSep:d,e=f<0?"-":"",a=String(A(f=T(+f||0).toFixed(b))),g=a.length>3?a.length%3:0;return e+(g?a.substr(0,g)+d:"")+a.substr(g).replace(/(\d{3})(?=\d)/g,"$1"+d)+(b?c+T(f-a).toFixed(b).slice(2):"")}function Ja(a,b){return Array((b||2)+1-String(a).length).join(0)+a}function xa(a,b,c){var d=a[b];a[b]=function(){var a= Array.prototype.slice.call(arguments);a.unshift(d);return c.apply(this,a)}}function Xa(a,b){for(var c="{",d=!1,e,f,g,h,i,j=[];(c=a.indexOf(c))!==-1;){e=a.slice(0,c);if(d){f=e.split(":");g=f.shift().split(".");i=g.length;e=b;for(h=0;h-1?h.thousandsSep:"")):e=ya(f,e)}j.push(e);a=a.slice(c+1);c=(d=!d)?"}":"{"}j.push(a);return j.join("")}function xb(a, b,c,d){var e,c=p(c,1);e=a/c;b||(b=[1,2,2.5,5,10],d&&d.allowDecimals===!1&&(c===1?b=[1,2,5,10]:c<=0.1&&(b=[1/c])));for(d=0;d=I[db]&&(i.setMilliseconds(0),i.setSeconds(j>=I[Ya]?0:k*V(i.getSeconds()/k)));if(j>=I[Ya])i[Mb](j>=I[za]?0:k*V(i[zb]()/k));if(j>=I[za])i[Nb](j>=I[fa]?0:k*V(i[Ab]()/k));if(j>=I[fa])i[Bb](j>=I[La]?1:k*V(i[Ma]()/k));j>=I[La]&&(i[Ob](j>=I[ra]?0:k*V(i[kb]()/k)),h=i[lb]());j>=I[ra]&& (h-=h%k,i[Pb](h));if(j===I[Ka])i[Bb](i[Ma]()-i[Cb]()+p(d,1));b=1;h=i[lb]();for(var d=i.getTime(),m=i[kb](),l=i[Ma](),i=g?0:(864E5+i.getTimezoneOffset()*6E4)%864E5;dc&&(c=a[b]);return c}function Aa(a,b){for(var c in a)a[c]&&a[c]!==b&&a[c].destroy&&a[c].destroy(),delete a[c]}function Za(a){nb||(nb=aa(Oa));a&&nb.appendChild(a);nb.innerHTML=""}function Ba(a,b){var c="Highcharts error #"+a+": www.highcharts.com/errors/"+a;if(b)throw c;else X.console&&console.log(c)}function oa(a){return parseFloat(a.toPrecision(14))} function $a(a,b){Pa=p(a,b.animation)}function Sb(){var a=K.global.useUTC,b=a?"getUTC":"get",c=a?"setUTC":"set";mb=a?Date.UTC:function(a,b,c,g,h,i){return(new Date(a,b,p(c,1),p(g,0),p(h,0),p(i,0))).getTime()};zb=b+"Minutes";Ab=b+"Hours";Cb=b+"Day";Ma=b+"Date";kb=b+"Month";lb=b+"FullYear";Mb=c+"Minutes";Nb=c+"Hours";Bb=c+"Date";Ob=c+"Month";Pb=c+"FullYear"}function Ca(){}function ab(a,b,c,d){this.axis=a;this.pos=b;this.type=c||"";this.isNew=!0;!c&&!d&&this.addLabel()}function Db(a,b){this.axis=a;if(b)this.options= b,this.id=b.id}function Tb(a,b,c,d,e,f){var g=a.chart.inverted;this.axis=a;this.isNegative=c;this.options=b;this.x=d;this.stack=e;this.percent=f==="percent";this.alignOptions={align:b.align||(g?c?"left":"right":"center"),verticalAlign:b.verticalAlign||(g?"middle":c?"bottom":"top"),y:p(b.y,g?4:c?14:-6),x:p(b.x,g?c?-6:6:0)};this.textAlign=b.textAlign||(g?c?"right":"left":"center")}function Da(){this.init.apply(this,arguments)}function Eb(){this.init.apply(this,arguments)}function ob(a,b){this.init(a, b)}function Fb(a,b){this.init(a,b)}function Qa(){this.init.apply(this,arguments)}function Gb(a){var b=a.options,c=b.navigator,d=c.enabled,b=b.scrollbar,e=b.enabled,f=d?c.height:0,g=e?b.height:0,h=c.baseSeries;this.baseSeries=a.series[h]||typeof h==="string"&&a.get(h)||a.series[0];this.handles=[];this.scrollbarButtons=[];this.elementsToDestroy=[];this.chart=a;this.height=f;this.scrollbarHeight=g;this.scrollbarEnabled=e;this.navigatorEnabled=d;this.navigatorOptions=c;this.scrollbarOptions=b;this.outlineHeight= f+g;this.init()}function Hb(a){this.init(a)}var r,G=document,X=window,O=Math,s=O.round,V=O.floor,pa=O.ceil,t=O.max,C=O.min,T=O.abs,ga=O.cos,ja=O.sin,bb=O.PI,pb=bb*2/360,Ra=navigator.userAgent,Ub=X.opera,Va=/msie/i.test(Ra)&&!Ub,qb=G.documentMode===8,rb=/AppleWebKit/.test(Ra),sb=/Firefox/.test(Ra),tb=/(Mobile|Android|Windows Phone)/.test(Ra),Ea="http://www.w3.org/2000/svg",ca=!!G.createElementNS&&!!G.createElementNS(Ea,"svg").createSVGRect,cc=sb&&parseInt(Ra.split("Firefox/")[1],10)<4,ha=!ca&&!Va&& !!G.createElement("canvas").getContext,cb,fb=G.documentElement.ontouchstart!==r,Vb={},Ib=0,nb,K,ya,Pa,Jb,I,qa=function(){},Sa=[],Oa="div",ba="none",Wb="rgba(192,192,192,"+(ca?1.0E-4:0.002)+")",jb="millisecond",db="second",Ya="minute",za="hour",fa="day",Ka="week",La="month",ra="year",Xb="stroke-width",mb,zb,Ab,Cb,Ma,kb,lb,Mb,Nb,Bb,Ob,Pb,P={};X.Highcharts=X.Highcharts?Ba(16,!0):{};ya=function(a,b,c){if(!x(b)||isNaN(b))return"Invalid date";var a=p(a,"%Y-%m-%d %H:%M:%S"),d=new Date(b),e,f=d[Ab](),g=d[Cb](), h=d[Ma](),i=d[kb](),j=d[lb](),k=K.lang,m=k.weekdays,d=z({a:m[g].substr(0,3),A:m[g],d:Ja(h),e:h,b:k.shortMonths[i],B:k.months[i],m:Ja(i+1),y:j.toString().substr(2,2),Y:j,H:Ja(f),I:Ja(f%12||12),l:f%12||12,M:Ja(d[zb]()),p:f<12?"AM":"PM",P:f<12?"am":"pm",S:Ja(d.getSeconds()),L:Ja(s(b%1E3),3)},Highcharts.dateFormats);for(e in d)for(;a.indexOf("%"+e)!==-1;)a=a.replace("%"+e,typeof d[e]==="function"?d[e](b):d[e]);return c?a.substr(0,1).toUpperCase()+a.substr(1):a};Qb.prototype={wrapColor:function(a){if(this.color>= a)this.color=0},wrapSymbol:function(a){if(this.symbol>=a)this.symbol=0}};I=ib(jb,1,db,1E3,Ya,6E4,za,36E5,fa,864E5,Ka,6048E5,La,26784E5,ra,31556952E3);Jb={init:function(a,b,c){var b=b||"",d=a.shift,e=b.indexOf("C")>-1,f=e?7:3,g,b=b.split(" "),c=[].concat(c),h,i,j=function(a){for(g=a.length;g--;)a[g]==="M"&&a.splice(g+1,0,a[g+1],a[g+2],a[g+1],a[g+2])};e&&(j(b),j(c));a.isArea&&(h=b.splice(b.length-6,6),i=c.splice(c.length-6,6));if(d<=c.length/f)for(;d--;)c=[].concat(c).splice(0,f).concat(c);a.shift= 0;if(b.length)for(a=c.length;b.length{point.key}
    ', pointFormat:'{series.name}: {point.y}
    ',shadow:!0,snap:tb?25:10,style:{color:"#333333",cursor:"default",fontSize:"12px",padding:"8px",whiteSpace:"nowrap"}},credits:{enabled:!0,text:"Highcharts.com",href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#909090",fontSize:"9px"}}};var R=K.plotOptions,Q=R.line;Sb();var ua=function(a){var b=[],c,d;(function(a){a&&a.stops?d=Fa(a.stops, function(a){return ua(a[1])}):(c=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/.exec(a))?b=[A(c[1]),A(c[2]),A(c[3]),parseFloat(c[4],10)]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(a))?b=[A(c[1],16),A(c[2],16),A(c[3],16),1]:(c=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(a))&&(b=[A(c[1]),A(c[2]),A(c[3]),1])})(a);return{get:function(c){var f;d?(f=v(a),f.stops=[].concat(f.stops),n(d,function(a,b){f.stops[b]=[f.stops[b][0], a.get(c)]})):f=b&&!isNaN(b[0])?c==="rgb"?"rgb("+b[0]+","+b[1]+","+b[2]+")":c==="a"?b[3]:"rgba("+b.join(",")+")":a;return f},brighten:function(a){if(d)n(d,function(b){b.brighten(a)});else if(va(a)&&a!==0){var c;for(c=0;c<3;c++)b[c]+=A(a*255),b[c]<0&&(b[c]=0),b[c]>255&&(b[c]=255)}return this},rgba:b,setOpacity:function(a){b[3]=a;return this}}};Ca.prototype={init:function(a,b){this.element=b==="span"?aa(b):G.createElementNS(Ea,b);this.renderer=a;this.attrSetters={}},opacity:1,animate:function(a,b,c){b= p(b,Pa,!0);gb(this);if(b){b=v(b);if(c)b.complete=c;Kb(this,a,b)}else this.attr(a),c&&c()},attr:function(a,b){var c,d,e,f,g=this.element,h=g.nodeName.toLowerCase(),i=this.renderer,j,k=this.attrSetters,m=this.shadows,l,o,q=this;ma(a)&&x(b)&&(c=a,a={},a[c]=b);if(ma(a))c=a,h==="circle"?c={x:"cx",y:"cy"}[c]||c:c==="strokeWidth"&&(c="stroke-width"),q=L(g,c)||this[c]||0,c!=="d"&&c!=="visibility"&&(q=parseFloat(q));else{for(c in a)if(j=!1,d=a[c],e=k[c]&&k[c].call(this,d,c),e!==!1){e!==r&&(d=e);if(c==="d")d&& d.join&&(d=d.join(" ")),/(NaN| {2}|^$)/.test(d)&&(d="M 0 0");else if(c==="x"&&h==="text")for(e=0;el&&/[ \-]/.test(b.textContent||b.innerText))M(b,{width:l+"px",display:"block",whiteSpace:"normal"}),k=l;l=a.fontMetrics(b.style.fontSize).b;y=q<0&&-k;u=o<0&&-m;N=q*o<0;y+=o*l*(N?1-h:h);u-=q*l*(j?N?h:1-h:1);i&&(y-=k*h*(q<0?-1:1),j&&(u-=m*h*(o<0?-1:1)),M(b,{textAlign:g}));this.xCorr=y;this.yCorr=u}M(b,{left:e+y+"px",top:f+u+"px"});if(rb)m=b.offsetHeight;this.cTT=w}}else this.alignOnAdd=!0},updateTransform:function(){var a=this.translateX|| 0,b=this.translateY||0,c=this.scaleX,d=this.scaleY,e=this.inverted,f=this.rotation,g=[];e&&(a+=this.attr("width"),b+=this.attr("height"));(a||b)&&g.push("translate("+a+","+b+")");e?g.push("rotate(90) scale(-1,1)"):f&&g.push("rotate("+f+" "+(this.x||0)+" "+(this.y||0)+")");(x(c)||x(d))&&g.push("scale("+p(c,1)+" "+p(d,1)+")");g.length&&L(this.element,"transform",g.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},align:function(a,b,c){var d,e,f,g,h={};e=this.renderer; f=e.alignedObjects;if(a){if(this.alignOptions=a,this.alignByTranslate=b,!c||ma(c))this.alignTo=d=c||"renderer",na(f,this),f.push(this),c=null}else a=this.alignOptions,b=this.alignByTranslate,d=this.alignTo;c=p(c,e[d],e);d=a.align;e=a.verticalAlign;f=(c.x||0)+(a.x||0);g=(c.y||0)+(a.y||0);if(d==="right"||d==="center")f+=(c.width-(a.width||0))/{right:1,center:2}[d];h[b?"translateX":"x"]=s(f);if(e==="bottom"||e==="middle")g+=(c.height-(a.height||0))/({bottom:1,middle:2}[e]||1);h[b?"translateY":"y"]=s(g); this[this.placed?"animate":"attr"](h);this.placed=!0;this.alignAttr=h;return this},getBBox:function(){var a=this.bBox,b=this.renderer,c,d=this.rotation;c=this.element;var e=this.styles,f=d*pb;if(!a){if(c.namespaceURI===Ea||b.forExport){try{a=c.getBBox?z({},c.getBBox()):{width:c.offsetWidth,height:c.offsetHeight}}catch(g){}if(!a||a.width<0)a={width:0,height:0}}else a=this.htmlGetBBox();if(b.isSVG){b=a.width;c=a.height;if(Va&&e&&e.fontSize==="11px"&&c.toPrecision(3)===22.7)a.height=c=14;if(d)a.width= T(c*ja(f))+T(b*ga(f)),a.height=T(c*ga(f))+T(b*ja(f))}this.bBox=a}return a},show:function(){return this.attr({visibility:"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(a){var b=this;b.animate({opacity:0},{duration:a||150,complete:function(){b.hide()}})},add:function(a){var b=this.renderer,c=a||b,d=c.element||b.box,e=d.childNodes,f=this.element,g=L(f,"zIndex"),h;if(a)this.parentGroup=a;this.parentInverted=a&&a.inverted;this.textStr!==void 0&&b.buildText(this); if(g)c.handleZ=!0,g=A(g);if(c.handleZ)for(c=0;cg||!x(g)&&x(b))){d.insertBefore(f,a);h=!0;break}h||d.appendChild(f);this.added=!0;D(this,"add");return this},safeRemoveChild:function(a){var b=a.parentNode;b&&b.removeChild(a)},destroy:function(){var a=this,b=a.element||{},c=a.shadows,d,e;b.onclick=b.onmouseout=b.onmouseover=b.onmousemove=b.point=null;gb(a);if(a.clipPath)a.clipPath=a.clipPath.destroy();if(a.stops){for(e=0;e/g,'').replace(/<(i|em)>/g, '').replace(//g,"").split(//g),f=b.childNodes,g=/style="([^"]+)"/,h=/href="([^"]+)"/,i=L(b,"x"),j=a.styles,k=j&&j.width&&A(j.width),m=j&&j.lineHeight,l=f.length;l--;)b.removeChild(f[l]);k&&!a.added&&this.box.appendChild(b);e[e.length-1]===""&&e.pop();n(e,function(e,f){var l,y=0,e=e.replace(//g,"|||");l=e.split("|||");n(l,function(e){if(e!==""||l.length===1){var o={}, n=G.createElementNS(Ea,"tspan"),p;g.test(e)&&(p=e.match(g)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),L(n,"style",p));h.test(e)&&!d&&(L(n,"onclick",'location.href="'+e.match(h)[1]+'"'),M(n,{cursor:"pointer"}));e=(e.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"<").replace(/>/g,">");n.appendChild(G.createTextNode(e));y?o.dx=0:o.x=i;L(n,o);!y&&f&&(!ca&&d&&M(n,{display:"block"}),L(n,"dy",m||c.fontMetrics(/px$/.test(n.style.fontSize)?n.style.fontSize:j.fontSize).h,rb&&n.offsetHeight));b.appendChild(n); y++;if(k)for(var e=e.replace(/([^\^])-/g,"$1- ").split(" "),E,B=[];e.length||B.length;)delete a.bBox,E=a.getBBox().width,o=E>k,!o||e.length===1?(e=B,B=[],e.length&&(n=G.createElementNS(Ea,"tspan"),L(n,{dy:m||16,x:i}),p&&L(n,"style",p),b.appendChild(n),E>k&&(k=E))):(n.removeChild(n.firstChild),B.unshift(e.pop())),e.length&&n.appendChild(G.createTextNode(e.join(" ").replace(/- /g,"-")))}})})},button:function(a,b,c,d,e,f,g){var h=this.label(a,b,c,null,null,null,null,null,"button"),i=0,j,k,m,l,o,a={x1:0, y1:0,x2:0,y2:1},e=v({"stroke-width":1,stroke:"#CCCCCC",fill:{linearGradient:a,stops:[[0,"#FEFEFE"],[1,"#F6F6F6"]]},r:2,padding:5,style:{color:"black"}},e);m=e.style;delete e.style;f=v(e,{stroke:"#68A",fill:{linearGradient:a,stops:[[0,"#FFF"],[1,"#ACF"]]}},f);l=f.style;delete f.style;g=v(e,{stroke:"#68A",fill:{linearGradient:a,stops:[[0,"#9BD"],[1,"#CDF"]]}},g);o=g.style;delete g.style;H(h.element,"mouseenter",function(){h.attr(f).css(l)});H(h.element,"mouseleave",function(){j=[e,f,g][i];k=[m,l,o][i]; h.attr(j).css(k)});h.setState=function(a){(i=a)?a===2&&h.attr(g).css(o):h.attr(e).css(m)};return h.on("click",function(){d.call(h)}).attr(e).css(z({cursor:"default"},m))},crispLine:function(a,b){a[1]===a[4]&&(a[1]=a[4]=s(a[1])-b%2/2);a[2]===a[5]&&(a[2]=a[5]=s(a[2])+b%2/2);return a},path:function(a){var b={fill:ba};Ua(a)?b.d=a:da(a)&&z(b,a);return this.createElement("path").attr(b)},circle:function(a,b,c){a=da(a)?a:{x:a,y:b,r:c};return this.createElement("circle").attr(a)},arc:function(a,b,c,d,e,f){if(da(a))b= a.y,c=a.r,d=a.innerR,e=a.start,f=a.end,a=a.x;return this.symbol("arc",a||0,b||0,c||0,c||0,{innerR:d||0,start:e||0,end:f||0})},rect:function(a,b,c,d,e,f){e=da(a)?a.r:e;e=this.createElement("rect").attr({rx:e,ry:e,fill:ba});return e.attr(da(a)?a:e.crisp(f,a,b,t(c,0),t(d,0)))},setSize:function(a,b,c){var d=this.alignedObjects,e=d.length;this.width=a;this.height=b;for(this.boxWrapper[p(c,!0)?"animate":"attr"]({width:a,height:b});e--;)d[e].align()},g:function(a){var b=this.createElement("g");return x(a)? b.attr({"class":"highcharts-"+a}):b},image:function(a,b,c,d,e){var f={preserveAspectRatio:ba};arguments.length>1&&z(f,{x:b,y:c,width:d,height:e});f=this.createElement("image").attr(f);f.element.setAttributeNS?f.element.setAttributeNS("http://www.w3.org/1999/xlink","href",a):f.element.setAttribute("hc-svg-href",a);return f},symbol:function(a,b,c,d,e,f){var g,h=this.symbols[a],h=h&&h(s(b),s(c),d,e,f),i=/^url\((.*?)\)$/,j,k;h?(g=this.path(h),z(g,{symbolName:a,x:b,y:c,width:d,height:e}),f&&z(g,f)):i.test(a)&& (k=function(a,b){a.element&&(a.attr({width:b[0],height:b[1]}),a.alignByTranslate||a.translate(s((d-b[0])/2),s((e-b[1])/2)))},j=a.match(i)[1],a=Vb[j],g=this.image(j).attr({x:b,y:c}),a?k(g,a):(g.attr({width:0,height:0}),aa("img",{onload:function(){k(g,Vb[j]=[this.width,this.height])},src:j})));return g},symbols:{circle:function(a,b,c,d){var e=0.166*c;return["M",a+c/2,b,"C",a+c+e,b,a+c+e,b+d,a+c/2,b+d,"C",a-e,b+d,a-e,b,a+c/2,b,"Z"]},square:function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c,b+d,a,b+d,"Z"]}, triangle:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d,a,b+d,"Z"]},"triangle-down":function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c/2,b+d,"Z"]},diamond:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d/2,a+c/2,b+d,a,b+d/2,"Z"]},arc:function(a,b,c,d,e){var f=e.start,c=e.r||c||d,g=e.end-0.001,d=e.innerR,h=e.open,i=ga(f),j=ja(f),k=ga(g),g=ja(g),e=e.end-f');if(b)c=e||b==="span"||b==="img"?c.join(""):a.prepVML(c),this.element=aa(c);this.renderer=a;this.attrSetters={}},add:function(a){var b=this.renderer,c=this.element,d=b.box,d=a?a.element||a:d;a&&a.inverted&&b.invertChild(c,d);d.appendChild(c);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();D(this,"add");return this}, updateTransform:Ca.prototype.htmlUpdateTransform,attr:function(a,b){var c,d,e,f=this.element||{},g=f.style,h=f.nodeName,i=this.renderer,j=this.symbolName,k,m=this.shadows,l,o=this.attrSetters,q=this;ma(a)&&x(b)&&(c=a,a={},a[c]=b);if(ma(a))c=a,q=c==="strokeWidth"||c==="stroke-width"?this.strokeweight:this[c];else for(c in a)if(d=a[c],l=!1,e=o[c]&&o[c].call(this,d,c),e!==!1&&d!==null){e!==r&&(d=e);if(j&&/^(x|y|r|start|end|width|height|innerR|anchorX|anchorY)/.test(c))k||(this.symbolAttr(a),k=!0),l= !0;else if(c==="d"){d=d||[];this.d=d.join(" ");e=d.length;for(l=[];e--;)if(va(d[e]))l[e]=s(d[e]*10)-5;else if(d[e]==="Z")l[e]="x";else if(l[e]=d[e],d[e]==="wa"||d[e]==="at")l[e+5]===l[e+7]&&(l[e+7]-=1),l[e+6]===l[e+8]&&(l[e+8]-=1);d=l.join(" ")||"x";f.path=d;if(m)for(e=m.length;e--;)m[e].path=m[e].cutOff?this.cutOffPath(d,m[e].cutOff):d;l=!0}else if(c==="visibility"){if(m)for(e=m.length;e--;)m[e].style[c]=d;h==="DIV"&&(d=d==="hidden"?"-999em":0,qb||(g[c]=d?"hidden":"visible"),c="top");g[c]=d;l=!0}else if(c=== "zIndex")d&&(g[c]=d),l=!0;else if(ta(c,["x","y","width","height"])!==-1)this[c]=d,c==="x"||c==="y"?c={x:"left",y:"top"}[c]:d=t(0,d),this.updateClipping?(this[c]=d,this.updateClipping()):g[c]=d,l=!0;else if(c==="class"&&h==="DIV")f.className=d;else if(c==="stroke")d=i.color(d,f,c),c="strokecolor";else if(c==="stroke-width"||c==="strokeWidth")f.stroked=d?!0:!1,c="strokeweight",this[c]=d,va(d)&&(d+="px");else if(c==="dashstyle")(f.getElementsByTagName("stroke")[0]||aa(i.prepVML([""]),null,null, f))[c]=d||"solid",this.dashstyle=d,l=!0;else if(c==="fill")if(h==="SPAN")g.color=d;else{if(h!=="IMG")f.filled=d!==ba?!0:!1,d=i.color(d,f,c,this),c="fillcolor"}else if(c==="opacity")l=!0;else if(h==="shape"&&c==="rotation")this[c]=d,f.style.left=-s(ja(d*pb)+1)+"px",f.style.top=s(ga(d*pb))+"px";else if(c==="translateX"||c==="translateY"||c==="rotation")this[c]=d,this.updateTransform(),l=!0;else if(c==="text")this.bBox=null,f.innerHTML=d,l=!0;l||(qb?f[c]=d:L(f,c,d))}return q},clip:function(a){var b= this,c;a?(c=a.members,na(c,b),c.push(b),b.destroyClip=function(){na(c,b)},a=a.getCSS(b)):(b.destroyClip&&b.destroyClip(),a={clip:qb?"inherit":"rect(auto)"});return b.css(a)},css:Ca.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&Za(a)},destroy:function(){this.destroyClip&&this.destroyClip();return Ca.prototype.destroy.apply(this)},on:function(a,b){this.element["on"+a]=function(){var a=X.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c,a=a.split(/[ ,]/);c=a.length; if(c===9||c===11)a[c-4]=a[c-2]=A(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,c){var d=[],e,f=this.element,g=this.renderer,h,i=f.style,j,k=f.path,m,l,o,q;k&&typeof k.value!=="string"&&(k="x");l=k;if(a){o=p(a.width,3);q=(a.opacity||0.15)/o;for(e=1;e<=3;e++){m=o*2+1-2*e;c&&(l=this.cutOffPath(k.value,m+0.5));j=[''];h=aa(g.prepVML(j),null,{left:A(i.left)+p(a.offsetX,1),top:A(i.top)+ p(a.offsetY,1)});if(c)h.cutOff=m+1;j=[''];aa(g.prepVML(j),null,null,h);b?b.element.appendChild(h):f.parentNode.insertBefore(h,f);d.push(h)}this.shadows=d}return this}},Y=ea(Ca,Y),Y={Element:Y,isIE8:Ra.indexOf("MSIE 8.0")>-1,init:function(a,b,c){var d,e;this.alignedObjects=[];d=this.createElement(Oa);e=d.element;e.style.position="relative";a.appendChild(d.element);this.isVML=!0;this.box=e;this.boxWrapper=d;this.setSize(b,c,!1);if(!G.namespaces.hcv)G.namespaces.add("hcv", "urn:schemas-microsoft-com:vml"),G.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "},isHidden:function(){return!this.box.offsetWidth},clipRect:function(a,b,c,d){var e=this.createElement(),f=da(a);return z(e,{members:[],left:f?a.x:a,top:f?a.y:b,width:f?a.width:c,height:f?a.height:d,getCSS:function(a){var b=a.element,c=b.nodeName,a=a.inverted,d=this.top-(c==="shape"?b.offsetTop:0),e=this.left,b=e+this.width,f=d+this.height, d={clip:"rect("+s(a?e:d)+"px,"+s(a?f:b)+"px,"+s(a?b:f)+"px,"+s(a?d:e)+"px)"};!a&&qb&&c==="DIV"&&z(d,{width:b+"px",height:f+"px"});return d},updateClipping:function(){n(e.members,function(a){a.css(e.getCSS(a))})}})},color:function(a,b,c,d){var e=this,f,g=/^rgba/,h,i,j=ba;a&&a.linearGradient?i="gradient":a&&a.radialGradient&&(i="pattern");if(i){var k,m,l=a.linearGradient||a.radialGradient,o,q,p,y,u,w="",a=a.stops,t,$=[],E=function(){h=[''];aa(e.prepVML(h),null,null,b)};o=a[0];t=a[a.length-1];o[0]>0&&a.unshift([0,o[1]]);t[0]<1&&a.push([1,t[1]]);n(a,function(a,b){g.test(a[1])?(f=ua(a[1]),k=f.get("rgb"),m=f.get("a")):(k=a[1],m=1);$.push(a[0]*100+"% "+k);b?(p=m,y=k):(q=m,u=k)});if(c==="fill")if(i==="gradient")c=l.x1||l[0]||0,a=l.y1||l[1]||0,o=l.x2||l[2]||0,l=l.y2||l[3]||0,w='angle="'+(90-O.atan((l-a)/(o-c))*180/bb)+'"',E();else{var j=l.r,B=j*2,S=j*2,r=l.cx,x=l.cy,s=b.radialReference,v, j=function(){s&&(v=d.getBBox(),r+=(s[0]-v.x)/v.width-0.5,x+=(s[1]-v.y)/v.height-0.5,B*=s[2]/v.width,S*=s[2]/v.height);w='src="'+K.global.VMLRadialGradientURL+'" size="'+B+","+S+'" origin="0.5,0.5" position="'+r+","+x+'" color2="'+u+'" ';E()};d.added?j():H(d,"add",j);j=y}else j=k}else if(g.test(a)&&b.tagName!=="IMG")f=ua(a),h=["<",c,' opacity="',f.get("a"),'"/>'],aa(this.prepVML(h),null,null,b),j=f.get("rgb");else{j=b.getElementsByTagName(c);if(j.length)j[0].opacity=1,j[0].type="solid";j=a}return j}, prepVML:function(a){var b=this.isIE8,a=a.join("");b?(a=a.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),a=a.indexOf('style="')===-1?a.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):a.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):a=a.replace("<","1&&f.attr({x:b,y:c,width:d,height:e});return f},rect:function(a,b,c,d,e,f){if(da(a))b=a.y,c=a.width,d=a.height,f=a.strokeWidth,a=a.x;var g=this.symbol("rect");g.r=e;return g.attr(g.crisp(f,a,b,t(c,0),t(d,0)))}, invertChild:function(a,b){var c=b.style;M(a,{flip:"x",left:A(c.width)-1,top:A(c.height)-1,rotation:-90})},symbols:{arc:function(a,b,c,d,e){var f=e.start,g=e.end,h=e.r||c||d,c=e.innerR,d=ga(f),i=ja(f),j=ga(g),k=ja(g);if(g-f===0)return["x"];f=["wa",a-h,b-h,a+h,b+h,a+h*d,b+h*i,a+h*j,b+h*k];e.open&&!c&&f.push("e","M",a,b);f.push("at",a-c,b-c,a+c,b+c,a+c*j,b+c*k,a+c*d,b+c*i,"x","e");return f},circle:function(a,b,c,d){return["wa",a,b,a+c,b+d,a+c,b+d/2,a+c,b+d/2,"e"]},rect:function(a,b,c,d,e){var f=a+c, g=b+d,h;!x(e)||!e.r?f=Ga.prototype.symbols.square.apply(0,arguments):(h=C(e.r,c,d),f=["M",a+h,b,"L",f-h,b,"wa",f-2*h,b,f,b+2*h,f-h,b,f,b+h,"L",f,g-h,"wa",f-2*h,g-2*h,f,g,f,g-h,f-h,g,"L",a+h,g,"wa",a,g-2*h,a+2*h,g,a+h,g,a,g-h,"L",a,b+h,"wa",a,b,a+2*h,b+2*h,a,b+h,a+h,b,"x","e"]);return f}}},Highcharts.VMLRenderer=hb=function(){this.init.apply(this,arguments)},hb.prototype=v(Ga.prototype,Y),cb=hb;var $b;if(ha)Highcharts.CanVGRenderer=Y=function(){Ea="http://www.w3.org/1999/xhtml"},Y.prototype.symbols= {},$b=function(){function a(){var a=b.length,d;for(d=0;dj&&(c=!1)):h+k>l&&(h=l-k,d&&h+m0&&b.height>0){f=v({align:c&&k&&"center",x:c?!k&&4:10,verticalAlign:!c&&k&&"middle",y:c?k?16:10:k?6:-4,rotation:c&&!k&&90},f);if(!g)a.label=g=r.text(f.text,0,0).attr({align:f.textAlign||f.align,rotation:f.rotation, zIndex:u}).css(f.style).add();b=[q[1],q[4],p(q[6],q[1])];q=[q[2],q[5],p(q[7],q[2])];c=Na(b);k=Na(q);g.align(f,!1,{x:c,y:k,width:sa(b)-c,height:sa(q)-k});g.show()}else g&&g.hide();return a},destroy:function(){na(this.axis.plotLinesAndBands,this);Aa(this,this.axis)}};Tb.prototype={destroy:function(){Aa(this,this.axis)},setTotal:function(a){this.cum=this.total=a},render:function(a){var b=this.options,c=b.formatter.call(this);this.label?this.label.attr({text:c,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(c, 0,0,b.useHTML).css(b.style).attr({align:this.textAlign,rotation:b.rotation,visibility:"hidden"}).add(a)},setOffset:function(a,b){var c=this.axis,d=c.chart,e=d.inverted,f=this.isNegative,g=c.translate(this.percent?100:this.total,0,0,0,1),c=c.translate(0),c=T(g-c),h=d.xAxis[0].translate(this.x)+a,i=d.plotHeight,f={x:e?f?g:g-c:h,y:e?i-h-b:f?i-g-c:i-g,width:e?c:b,height:e?b:c};if(e=this.label)e.align(this.alignOptions,null,f),f=e.alignAttr,e.attr({visibility:this.options.crop===!1||d.isInsidePlot(f.x, f.y)?ca?"inherit":"visible":"hidden"})}};Da.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,gridLineColor:"#C0C0C0",labels:F,lineColor:"#C0D0E0",lineWidth:1,minPadding:0.01,maxPadding:0.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickColor:"#C0D0E0",tickLength:5, tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",tickWidth:1,title:{align:"middle",style:{color:"#4d759e",fontWeight:"bold"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0,labels:{align:"right",x:-8,y:3},lineWidth:0,maxPadding:0.05,minPadding:0.05,startOnTick:!0,tickWidth:0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return this.total},style:F.style}},defaultLeftAxisOptions:{labels:{align:"right", x:-8,y:null},title:{rotation:270}},defaultRightAxisOptions:{labels:{align:"left",x:8,y:null},title:{rotation:90}},defaultBottomAxisOptions:{labels:{align:"center",x:0,y:14},title:{rotation:0}},defaultTopAxisOptions:{labels:{align:"center",x:0,y:-5},title:{rotation:0}},init:function(a,b){var c=b.isX;this.horiz=a.inverted?!c:c;this.xOrY=(this.isXAxis=c)?"x":"y";this.opposite=b.opposite;this.side=this.horiz?this.opposite?0:2:this.opposite?1:3;this.setOptions(b);var d=this.options,e=d.type;this.labelFormatter= d.labels.formatter||this.defaultLabelFormatter;this.staggerLines=this.horiz&&d.labels.staggerLines;this.userOptions=b;this.minPixelPadding=0;this.chart=a;this.reversed=d.reversed;this.zoomEnabled=d.zoomEnabled!==!1;this.categories=d.categories||e==="category";this.isLog=e==="logarithmic";this.isDatetimeAxis=e==="datetime";this.isLinked=x(d.linkedTo);this.tickmarkOffset=this.categories&&d.tickmarkPlacement==="between"?0.5:0;this.ticks={};this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands= {};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom;this.range=d.range;this.offset=d.offset||0;this.stacks={};this._stacksTouched=0;this.min=this.max=null;var f,d=this.options.events;ta(this,a.axes)===-1&&(a.axes.push(this),a[c?"xAxis":"yAxis"].push(this));this.series=this.series||[];if(a.inverted&&c&&this.reversed===r)this.reversed=!0;this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(f in d)H(this,f,d[f]);if(this.isLog)this.val2lin=wa,this.lin2val=la},setOptions:function(a){this.options= v(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],v(K[this.isXAxis?"xAxis":"yAxis"],a))},update:function(a,b){var c=this.chart,a=c.options[this.xOrY+"Axis"][this.options.index]=v(this.userOptions,a);this.destroy();this._addedPlotLB=!1;this.init(c,a);c.isDirtyBox=!0;p(b,!0)&&c.redraw()},remove:function(a){var b=this.chart,c=this.xOrY+"Axis";n(this.series,function(a){a.remove(!1)}); na(b.axes,this);na(b[c],this);b.options[c].splice(this.options.index,1);this.destroy();b.isDirtyBox=!0;p(a,!0)&&b.redraw()},defaultLabelFormatter:function(){var a=this.axis,b=this.value,c=a.categories,d=this.dateTimeLabelFormat,e=K.lang.numericSymbols,f=e&&e.length,g,h=a.options.labels.format,a=a.isLog?b:a.tickInterval;if(h)g=Xa(h,this);else if(c)g=b;else if(d)g=ya(d,b);else if(f&&a>=1E3)for(;f--&&g===r;)c=Math.pow(1E3,f+1),a>=c&&e[f]!==null&&(g=Wa(b/c,-1)+e[f]);g===r&&(g=b>=1E3?Wa(b,0):Wa(b,-1)); return g},getSeriesExtremes:function(){var a=this,b=a.chart,c=a.stacks,d=[],e=[],f=a._stacksTouched+=1,g,h;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=null;n(a.series,function(g){if(g.visible||!b.options.chart.ignoreHiddenSeries){var j=g.options,k,m,l,o,q,n,y,u,w,s=j.threshold,$,E=[],B=0;a.hasVisibleSeries=!0;if(a.isLog&&s<=0)s=j.threshold=null;if(a.isXAxis){if(j=g.xData,j.length)a.dataMin=C(p(a.dataMin,j[0]),Na(j)),a.dataMax=t(p(a.dataMax,j[0]),sa(j))}else{var S,v,J,z=g.cropped,A=g.xAxis.getExtremes(), H=!!g.modifyValue;k=j.stacking;a.usePercentage=k==="percent";if(k)q=j.stack,o=g.type+p(q,""),n="-"+o,g.stackKey=o,m=d[o]||[],d[o]=m,l=e[n]||[],e[n]=l;if(a.usePercentage)a.dataMin=0,a.dataMax=99;j=g.processedXData;y=g.processedYData;$=y.length;for(h=0;h<$;h++){u=j[h];w=y[h];if(k)v=(S=w0))if(H&& (w=g.modifyValue(w)),g.getExtremesFromAll||z||(j[h+1]||u)>=A.min&&(j[h-1]||u)<=A.max)if(u=w.length)for(;u--;)w[u]!==null&&(E[B++]=w[u]);else E[B++]=w}if(!a.usePercentage&&E.length)g.dataMin=k=Na(E),g.dataMax=g=sa(E),a.dataMin=C(p(a.dataMin,k),k),a.dataMax=t(p(a.dataMax,g),g);if(x(s))if(a.dataMin>=s)a.dataMin=s,a.ignoreMinPadding=!0;else if(a.dataMaxf+this.width)l=!0}else if(c=f,i=m-this.right,hg+this.height)l=!0;return l&&!d?null:e.renderer.crispLine(["M",c,h,"L",i,j],b||0)},getPlotBandPath:function(a,b){var c=this.getPlotLinePath(b), d=this.getPlotLinePath(a);d&&c?d.push(c[4],c[5],c[1],c[2]):d=null;return d},getLinearTickPositions:function(a,b,c){for(var d,b=oa(V(b/a)*a),c=oa(pa(c/a)*a),e=[];b<=c;){e.push(b);b=oa(b+a);if(b===d)break;d=b}return e},getLogTickPositions:function(a,b,c,d){var e=this.options,f=this.len,g=[];if(!d)this._minorAutoInterval=null;if(a>=0.5)a=s(a),g=this.getLinearTickPositions(a,b,c);else if(a>=0.08)for(var f=V(b),h,i,j,k,m,e=a>0.3?[1,2,4]:a>0.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];fb&&k<=c&&g.push(k),k>c&&(m=!0),k=j}else if(b=la(b),c=la(c),a=e[d?"minorTickInterval":"tickInterval"],a=p(a==="auto"?null:a,this._minorAutoInterval,(c-b)*(e.tickPixelInterval/(d?5:1))/((d?f/this.tickPositions.length:f)||1)),a=xb(a,null,O.pow(10,V(O.log(a)/O.LN10))),g=Fa(this.getLinearTickPositions(a,b,c),wa),!d)this._minorAutoInterval=a/5;if(!d)this.tickInterval=a;return g},getMinorTickPositions:function(){var a=this.options,b=this.tickPositions,c=this.minorTickInterval, d=[],e;if(this.isLog){e=b.length;for(a=1;a=this.minRange,f,g,h,i,j;if(this.isXAxis&&this.minRange===r&&!this.isLog)x(a.min)||x(a.max)? this.minRange=null:(n(this.series,function(a){i=a.xData;for(g=j=a.xIncrement?1:i.length-1;g>0;g--)if(h=i[g]-i[g-1],f===r||hb&&(g=0);c=t(c,g);e=t(e,h?0:g/2);f=t(f,h==="on"?0:g);!a.noSharedTooltip&&x(m)&&(d=x(d)?C(d,m):m)}),this.minPointOffset=e,this.pointRangePadding=f,this.pointRange=C(c,b),this.closestPointRange=d;if(a)this.oldTransA=h;this.translationSlope=this.transA=h=this.len/(b+f||1);this.transB=this.horiz?this.left:this.bottom;this.minPixelPadding=h*e},setTickPositions:function(a){var b= this,c=b.chart,d=b.options,e=b.isLog,f=b.isDatetimeAxis,g=b.isXAxis,h=b.isLinked,i=b.options.tickPositioner,j=d.maxPadding,k=d.minPadding,m=d.tickInterval,l=d.minTickInterval,o=d.tickPixelInterval,q=b.categories;h?(b.linkedParent=c[g?"xAxis":"yAxis"][d.linkedTo],c=b.linkedParent.getExtremes(),b.min=p(c.min,c.dataMin),b.max=p(c.max,c.dataMax),d.type!==b.linkedParent.options.type&&Ba(11,1)):(b.min=p(b.userMin,d.min,b.dataMin),b.max=p(b.userMax,d.max,b.dataMax));if(e)!a&&C(b.min,p(b.dataMin,b.min))<= 0&&Ba(10,1),b.min=oa(wa(b.min)),b.max=oa(wa(b.max));if(b.range&&(b.userMin=b.min=t(b.min,b.max-b.range),b.userMax=b.max,a))b.range=null;b.beforePadding&&b.beforePadding();b.adjustForMinRange();if(!q&&!b.usePercentage&&!h&&x(b.min)&&x(b.max)&&(c=b.max-b.min)){if(!x(d.min)&&!x(b.userMin)&&k&&(b.dataMin<0||!b.ignoreMinPadding))b.min-=c*k;if(!x(d.max)&&!x(b.userMax)&&j&&(b.dataMax>0||!b.ignoreMaxPadding))b.max+=c*j}b.tickInterval=b.min===b.max||b.min===void 0||b.max===void 0?1:h&&!m&&o===b.linkedParent.options.tickPixelInterval? b.linkedParent.tickInterval:p(m,q?1:(b.max-b.min)*o/(b.len||1));g&&!a&&n(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);b.beforeSetTickPositions&&b.beforeSetTickPositions();if(b.postProcessTickInterval)b.tickInterval=b.postProcessTickInterval(b.tickInterval);if(!m&&b.tickIntervale&&i.shift(),d.endOnTick? b.max=f:b.max+h(b[d]||0)&&this.options.alignTicks!==!1)b[d]=c.length;a.maxTicks=b},adjustTickAmount:function(){var a=this._maxTicksKey,b=this.tickPositions,c=this.chart.maxTicks;if(c&&c[a]&&!this.isDatetimeAxis&&!this.categories&&!this.isLinked&&this.options.alignTicks!== !1){var d=this.tickAmount,e=b.length;this.tickAmount=a=c[a];if(e=this.dataMax&&(b=r);this.displayBtn=a!==r||b!==r;this.setExtremes(a,b,!1,r,{trigger:"zoom"});return!0},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=b.offsetRight||0,e=this.horiz,f,g;this.left=g=p(b.left,a.plotLeft+c);this.top=f=p(b.top,a.plotTop);this.width=c=p(b.width,a.plotWidth-c+d);this.height=b=p(b.height,a.plotHeight);this.bottom=a.chartHeight-b-f;this.right=a.chartWidth-c-g;this.len=t(e?c:b,0);this.pos= e?g:f},getExtremes:function(){var a=this.isLog;return{min:a?oa(la(this.min)):this.min,max:a?oa(la(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=b?la(this.min):this.min,b=b?la(this.max):this.max;c>a||a===null?a=c:b=a.min&&b<=a.max)j[b]||(j[b]=new ab(a,b)),u&&j[b].isNew&&j[b].render(c,!0),j[b].render(c,!1,1)}),q&&a.min===0&&(j[-1]||(j[-1]=new ab(a,-1,null,!0)),j[-1].render(-1))),o&&n(g,function(b,c){if(c%2===0&&b1||T(b-f.y)>1))clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){e&&e.move(a,b,c,d)},32)},hide:function(){var a=this,b;if(!this.isHidden)b=this.chart.hoverPoints,this.hideTimer=setTimeout(function(){a.label.fadeOut(); a.isHidden=!0},p(this.options.hideDelay,500)),b&&n(b,function(a){a.setState()}),this.chart.hoverPoints=null},hideCrosshairs:function(){n(this.crosshairs,function(a){a&&a.hide()})},getAnchor:function(a,b){var c,d=this.chart,e=d.inverted,f=d.plotTop,g=0,h=0,i,a=ia(a);c=a[0].tooltipPos;this.followPointer&&b&&(b.chartX===r&&(b=d.pointer.normalize(b)),c=[b.chartX-d.plotLeft,b.chartY-f]);c||(n(a,function(a){i=a.series.yAxis;g+=a.plotX;h+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!e&&i?i.top-f:0)}), g/=a.length,h/=a.length,c=[e?d.plotWidth-h:g,this.shared&&!e&&a.length>1&&b?b.chartY-f:e?d.plotHeight-g:h]);return Fa(c,s)},getPosition:function(a,b,c){var d=this.chart,e=d.plotLeft,f=d.plotTop,g=d.plotWidth,h=d.plotHeight,i=p(this.options.distance,12),j=c.plotX,c=c.plotY,d=j+e+(d.inverted?i:-a-i),k=c-b+f+15,m;d<7&&(d=e+t(j,0)+i);d+a>e+g&&(d-=d+a-(e+g),k=c-b+f-i,m=!0);k=k&&c<=k+b&&(k=c+f+i));k+b>f+h&&(k=t(f,f+h-b-i));return{x:d,y:k}},defaultFormatter:function(a){var b=this.points|| ia(this),c=b[0].series,d;d=[c.tooltipHeaderFormatter(b[0])];n(b,function(a){c=a.series;d.push(c.tooltipFormatter&&c.tooltipFormatter(a)||a.point.tooltipFormatter(c.tooltipOptions.pointFormat))});d.push(a.options.footerFormat||"");return d.join("")},refresh:function(a,b){var c=this.chart,d=this.label,e=this.options,f,g,h,i={},j,k=[];j=e.formatter||this.defaultFormatter;var i=c.hoverPoints,m,l=e.crosshairs;h=this.shared;clearTimeout(this.hideTimer);this.followPointer=ia(a)[0].series.tooltipOptions.followPointer; g=this.getAnchor(a,b);f=g[0];g=g[1];h&&(!a.series||!a.series.noSharedTooltip)?(c.hoverPoints=a,i&&n(i,function(a){a.setState()}),n(a,function(a){a.setState("hover");k.push(a.getLabelConfig())}),i={x:a[0].category,y:a[0].y},i.points=k,a=a[0]):i=a.getLabelConfig();j=j.call(i,this);i=a.series;h=h||!i.isCartesian||i.tooltipOutsidePlot||c.isInsidePlot(f,g);j===!1||!h?this.hide():(this.isHidden&&(gb(d),d.attr("opacity",1).show()),d.attr({text:j}),m=e.borderColor||a.color||i.color||"#606060",d.attr({stroke:m}), this.updatePosition({plotX:f,plotY:g}),this.isHidden=!1);if(l){l=ia(l);for(d=l.length;d--;)if(e=a.series[d?"yAxis":"xAxis"],l[d]&&e)if(e=e.getPlotLinePath(d?p(a.stackY,a.y):a.x,1),this.crosshairs[d])this.crosshairs[d].attr({d:e,visibility:"visible"});else{h={"stroke-width":l[d].width||1,stroke:l[d].color||"#C0C0C0",zIndex:l[d].zIndex||2};if(l[d].dashStyle)h.dashstyle=l[d].dashStyle;this.crosshairs[d]=c.renderer.path(e).attr(h).add()}}D(c,"tooltipRefresh",{text:j,x:f+c.plotLeft,y:g+c.plotTop,borderColor:m})}, updatePosition:function(a){var b=this.chart,c=this.label,c=(this.options.positioner||this.getPosition).call(this,c.width,c.height,a);this.move(s(c.x),s(c.y),a.plotX+b.plotLeft,a.plotY+b.plotTop)}};ob.prototype={init:function(a,b){var c=ha?"":b.chart.zoomType,d=a.inverted,e;this.options=b;this.chart=a;this.zoomX=e=/x/.test(c);this.zoomY=c=/y/.test(c);this.zoomHor=e&&!d||c&&d;this.zoomVert=c&&!d||e&&d;this.pinchDown=[];this.lastValidTouch={};if(b.tooltip.enabled)a.tooltip=new Eb(a,b.tooltip);this.setDOMEvents()}, normalize:function(a){var b,c,d,a=a||X.event;if(!a.target)a.target=a.srcElement;a=Zb(a);d=a.touches?a.touches.item(0):a;this.chartPosition=b=ec(this.chart.container);d.pageX===r?(c=a.x,b=a.y):(c=d.pageX-b.left,b=d.pageY-b.top);return z(a,{chartX:s(c),chartY:s(b)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};n(this.chart.axes,function(c){b[c.isXAxis?"xAxis":"yAxis"].push({axis:c,value:c.toValue(a[c.horiz?"chartX":"chartY"])})});return b},getIndex:function(a){var b=this.chart;return b.inverted? b.plotHeight+b.plotTop-a.chartY:a.chartX-b.plotLeft},runPointActions:function(a){var b=this.chart,c=b.series,d=b.tooltip,e,f=b.hoverPoint,g=b.hoverSeries,h,i,j=b.chartWidth,k=this.getIndex(a);if(d&&this.options.tooltip.shared&&(!g||!g.noSharedTooltip)){e=[];h=c.length;for(i=0;i j&&e.splice(h,1);if(e.length&&e[0].clientX!==this.hoverX)d.refresh(e,a),this.hoverX=e[0].clientX}if(g&&g.tracker){if((b=g.tooltipPoints[k])&&b!==f)b.onMouseOver(a)}else d&&d.followPointer&&!d.isHidden&&(a=d.getAnchor([{}],a),d.updatePosition({plotX:a[0],plotY:a[1]}))},reset:function(a){var b=this.chart,c=b.hoverSeries,d=b.hoverPoint,e=b.tooltip,b=e&&e.shared?b.hoverPoints:d;(a=a&&e&&b)&&ia(b)[0].plotX===r&&(a=!1);if(a)e.refresh(b);else{if(d)d.onMouseOut();if(c)c.onMouseOut();e&&(e.hide(),e.hideCrosshairs()); this.hoverX=null}},scaleGroups:function(a,b){var c=this.chart;n(c.series,function(d){d.xAxis.zoomEnabled&&(d.group.attr(a),d.markerGroup&&(d.markerGroup.attr(a),d.markerGroup.clip(b?c.clipRect:null)),d.dataLabelsGroup&&d.dataLabelsGroup.attr(a))});c.clipRect.attr(b||c.clipBox)},pinchTranslateDirection:function(a,b,c,d,e,f,g){var h=this.chart,i=a?"x":"y",j=a?"X":"Y",k="chart"+j,m=a?"width":"height",l=h["plot"+(a?"Left":"Top")],o,q,n=1,p=h.inverted,u=h.bounds[a?"h":"v"],w=b.length===1,t=b[0][k],r=c[0][k], E=!w&&b[1][k],B=!w&&c[1][k],s,c=function(){!w&&T(t-E)>20&&(n=T(r-B)/T(t-E));q=(l-r)/n+t;o=h["plot"+(a?"Width":"Height")]/n};c();b=q;bu.max&&(b=u.max-o,s=!0);s?(r-=0.8*(r-g[i][0]),w||(B-=0.8*(B-g[i][1])),c()):g[i]=[r,B];p||(f[i]=q-l,f[m]=o);f=p?1/n:n;e[m]=o;e[i]=b;d[p?a?"scaleY":"scaleX":"scale"+j]=n;d["translate"+j]=f*l+(r-f*t)},pinch:function(a){var b=this,c=b.chart,d=b.pinchDown,e=a.touches,f=b.lastValidTouch,g=b.zoomHor||b.pinchHor,h=b.zoomVert||b.pinchVert,i=b.selectionMarker, j={},k={};a.type==="touchstart"&&(b.inClass(a.target,"highcharts-tracker")?c.runTrackerClick||a.preventDefault():c.runChartClick||a.preventDefault());Fa(e,function(a){return b.normalize(a)});if(a.type==="touchstart")n(e,function(a,b){d[b]={chartX:a.chartX,chartY:a.chartY}}),f.x=[d[0].chartX,d[1]&&d[1].chartX],f.y=[d[0].chartY,d[1]&&d[1].chartY],n(c.axes,function(a){if(a.zoomEnabled){var b=c.bounds[a.horiz?"h":"v"],d=a.minPixelPadding,e=a.toPixels(a.dataMin),f=a.toPixels(a.dataMax),g=C(e,f),e=t(e, f);b.min=C(a.pos,g-d);b.max=t(a.pos+a.len,e+d)}});else if(d.length){if(!i)b.selectionMarker=i=z({destroy:qa},c.plotBox);g&&b.pinchTranslateDirection(!0,d,e,j,i,k,f);h&&b.pinchTranslateDirection(!1,d,e,j,i,k,f);b.hasPinched=g||h;b.scaleGroups(j,k)}},dragStart:function(a){var b=this.chart;b.mouseIsDown=a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX;this.mouseDownY=a.chartY},drag:function(a){var b=this.chart,c=b.options.chart,d=a.chartX,a=a.chartY,e=this.zoomHor,f=this.zoomVert,g=b.plotLeft, h=b.plotTop,i=b.plotWidth,j=b.plotHeight,k,m=this.mouseDownX,l=this.mouseDownY;dg+i&&(d=g+i);ah+j&&(a=h+j);this.hasDragged=Math.sqrt(Math.pow(m-d,2)+Math.pow(l-a,2));if(this.hasDragged>10){k=b.isInsidePlot(m-g,l-h);if(b.hasCartesianSeries&&(this.zoomX||this.zoomY)&&k&&!this.selectionMarker)this.selectionMarker=b.renderer.rect(g,h,e?1:i,f?1:j,0).attr({fill:c.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add();this.selectionMarker&&e&&(e=d-m,this.selectionMarker.attr({width:T(e), x:(e>0?0:e)+m}));this.selectionMarker&&f&&(e=a-l,this.selectionMarker.attr({height:T(e),y:(e>0?0:e)+l}));k&&!this.selectionMarker&&c.panning&&b.pan(d)}},drop:function(a){var b=this.chart,c=this.hasPinched;if(this.selectionMarker){var d={xAxis:[],yAxis:[],originalEvent:a.originalEvent||a},e=this.selectionMarker,f=e.x,g=e.y,h;if(this.hasDragged||c)n(b.axes,function(a){if(a.zoomEnabled){var b=a.horiz,c=a.minPixelPadding,m=a.toValue((b?f:g)+c),b=a.toValue((b?f+e.width:g+e.height)-c);!isNaN(m)&&!isNaN(b)&& (d[a.xOrY+"Axis"].push({axis:a,min:C(m,b),max:t(m,b)}),h=!0)}}),h&&D(b,"selection",d,function(a){b.zoom(z(a,c?{animation:!1}:null))});this.selectionMarker=this.selectionMarker.destroy();c&&this.scaleGroups({translateX:b.plotLeft,translateY:b.plotTop,scaleX:1,scaleY:1})}if(b)M(b.container,{cursor:"auto"}),b.cancelClick=this.hasDragged,b.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[]},onContainerMouseDown:function(a){a=this.normalize(a);a.preventDefault&&a.preventDefault();this.dragStart(a)}, onDocumentMouseUp:function(a){this.drop(a)},onDocumentMouseMove:function(a){var b=this.chart,c=this.chartPosition,d=b.hoverSeries,a=Zb(a);c&&d&&d.isCartesian&&!b.isInsidePlot(a.pageX-c.left-b.plotLeft,a.pageY-c.top-b.plotTop)&&this.reset()},onContainerMouseLeave:function(){this.reset();this.chartPosition=null},onContainerMouseMove:function(a){var b=this.chart,a=this.normalize(a);a.returnValue=!1;b.mouseIsDown==="mousedown"&&this.drag(a);b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)&&this.runPointActions(a)}, inClass:function(a,b){for(var c;a;){if(c=L(a,"class"))if(c.indexOf(b)!==-1)return!0;else if(c.indexOf("highcharts-container")!==-1)return!1;a=a.parentNode}},onTrackerMouseOut:function(a){var b=this.chart.hoverSeries;if(b&&!b.options.stickyTracking&&!this.inClass(a.toElement||a.relatedTarget,"highcharts-tooltip"))b.onMouseOut()},onContainerClick:function(a){var b=this.chart,c=b.hoverPoint,d=b.plotLeft,e=b.plotTop,f=b.inverted,g,h,i,a=this.normalize(a);a.cancelBubble=!0;if(!b.cancelClick)c&&this.inClass(a.target, "highcharts-tracker")?(g=this.chartPosition,h=c.plotX,i=c.plotY,z(c,{pageX:g.left+d+(f?b.plotWidth-i:h),pageY:g.top+e+(f?b.plotHeight-h:i)}),D(c.series,"click",z(a,{point:c})),c.firePointEvent("click",a)):(z(a,this.getCoordinates(a)),b.isInsidePlot(a.chartX-d,a.chartY-e)&&D(b,"click",a))},onContainerTouchStart:function(a){var b=this.chart;a.touches.length===1?(a=this.normalize(a),b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)&&(this.runPointActions(a),this.pinch(a))):a.touches.length===2&& this.pinch(a)},onContainerTouchMove:function(a){(a.touches.length===1||a.touches.length===2)&&this.pinch(a)},onDocumentTouchEnd:function(a){this.drop(a)},setDOMEvents:function(){var a=this,b=a.chart.container,c;this._events=c=[[b,"onmousedown","onContainerMouseDown"],[b,"onmousemove","onContainerMouseMove"],[b,"onclick","onContainerClick"],[b,"mouseleave","onContainerMouseLeave"],[G,"mousemove","onDocumentMouseMove"],[G,"mouseup","onDocumentMouseUp"]];fb&&c.push([b,"ontouchstart","onContainerTouchStart"], [b,"ontouchmove","onContainerTouchMove"],[G,"touchend","onDocumentTouchEnd"]);n(c,function(b){a["_"+b[2]]=function(c){a[b[2]](c)};b[1].indexOf("on")===0?b[0][b[1]]=a["_"+b[2]]:H(b[0],b[1],a["_"+b[2]])})},destroy:function(){var a=this;n(a._events,function(b){b[1].indexOf("on")===0?b[0][b[1]]=null:W(b[0],b[1],a["_"+b[2]])});delete a._events;clearInterval(a.tooltipTimeout)}};Fb.prototype={init:function(a,b){var c=this,d=b.itemStyle,e=p(b.padding,8),f=b.itemMarginTop||0;this.options=b;if(b.enabled)c.baseline= A(d.fontSize)+3+f,c.itemStyle=d,c.itemHiddenStyle=v(d,b.itemHiddenStyle),c.itemMarginTop=f,c.padding=e,c.initialItemX=e,c.initialItemY=e-5,c.maxItemWidth=0,c.chart=a,c.itemHeight=0,c.lastLineHeight=0,c.render(),H(c.chart,"endResize",function(){c.positionCheckboxes()})},colorizeItem:function(a,b){var c=this.options,d=a.legendItem,e=a.legendLine,f=a.legendSymbol,g=this.itemHiddenStyle.color,c=b?c.itemStyle.color:g,h=b?a.color:g,g=a.options&&a.options.marker,i={stroke:h,fill:h},j;d&&d.css({fill:c,color:c}); e&&e.attr({stroke:h});if(f){if(g)for(j in g=a.convertAttribs(g),g)d=g[j],d!==r&&(i[j]=d);f.attr(i)}},positionItem:function(a){var b=this.options,c=b.symbolPadding,b=!b.rtl,d=a._legendItemPos,e=d[0],d=d[1],f=a.checkbox;a.legendGroup&&a.legendGroup.translate(b?e:this.legendWidth-e-2*c-4,d);if(f)f.x=e,f.y=d},destroyItem:function(a){var b=a.checkbox;n(["legendItem","legendLine","legendSymbol","legendGroup"],function(b){a[b]&&a[b].destroy()});b&&Za(a.checkbox)},destroy:function(){var a=this.group,b=this.box; if(b)this.box=b.destroy();if(a)this.group=a.destroy()},positionCheckboxes:function(a){var b=this.group.alignAttr,c,d=this.clipHeight||this.legendHeight;if(b)c=b.translateY,n(this.allItems,function(e){var f=e.checkbox,g;f&&(g=c+f.y+(a||0)+3,M(f,{left:b.translateX+e.legendItemWidth+f.x-20+"px",top:g+"px",display:g>c-6&&g(l||c.chartWidth-2*k-n))b.itemX=n,b.itemY+=q+b.lastLineHeight+ o,b.lastLineHeight=0;b.maxItemWidth=t(b.maxItemWidth,e);b.lastItemY=q+b.itemY+o;b.lastLineHeight=t(g,b.lastLineHeight);a._legendItemPos=[b.itemX,b.itemY];f?b.itemX+=e:(b.itemY+=q+g+o,b.lastLineHeight=g);b.offsetWidth=l||t(f?b.itemX-n:e,b.offsetWidth)},render:function(){var a=this,b=a.chart,c=b.renderer,d=a.group,e,f,g,h,i=a.box,j=a.options,k=a.padding,m=j.borderWidth,l=j.backgroundColor;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;if(!d)a.group=d=c.g("legend").attr({zIndex:7}).add(), a.contentGroup=c.g().attr({zIndex:1}).add(d),a.scrollGroup=c.g().add(a.contentGroup),a.clipRect=c.clipRect(0,0,9999,b.chartHeight),a.contentGroup.clip(a.clipRect);a.renderTitle();e=[];n(b.series,function(a){var b=a.options;b.showInLegend&&!x(b.linkedTo)&&(e=e.concat(a.legendItems||(b.legendType==="point"?a.data:a)))});Rb(e,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});j.reversed&&e.reverse();a.allItems=e;a.display=f=!!e.length;n(e,function(b){a.renderItem(b)}); g=j.width||a.offsetWidth;h=a.lastItemY+a.lastLineHeight+a.titleHeight;h=a.handleOverflow(h);if(m||l){g+=k;h+=k;if(i){if(g>0&&h>0)i[i.isNew?"attr":"animate"](i.crisp(null,null,null,g,h)),i.isNew=!1}else a.box=i=c.rect(0,0,g,h,j.borderRadius,m||0).attr({stroke:j.borderColor,"stroke-width":m||0,fill:l||ba}).add(d).shadow(j.shadow),i.isNew=!0;i[f?"show":"hide"]()}a.legendWidth=g;a.legendHeight=h;n(e,function(b){a.positionItem(b)});f&&d.align(z({width:g,height:h},j),!0,"spacingBox");b.isResizing||this.positionCheckboxes()}, handleOverflow:function(a){var b=this,c=this.chart,d=c.renderer,e=this.options,f=e.y,f=c.spacingBox.height+(e.verticalAlign==="top"?-f:f)-this.padding,g=e.maxHeight,h=this.clipRect,i=e.navigation,j=p(i.animation,!0),k=i.arrowSize||12,m=this.nav;e.layout==="horizontal"&&(f/=2);g&&(f=C(f,g));if(a>f&&!e.useHTML){this.clipHeight=c=f-20-this.titleHeight;this.pageCount=pa(a/c);this.currentPage=p(this.currentPage,1);this.fullHeight=a;h.attr({height:c});if(!m)this.nav=m=d.g().attr({zIndex:1}).add(this.group), this.up=d.symbol("triangle",0,0,k,k).on("click",function(){b.scroll(-1,j)}).add(m),this.pager=d.text("",15,10).css(i.style).add(m),this.down=d.symbol("triangle-down",0,0,k,k).on("click",function(){b.scroll(1,j)}).add(m);b.scroll(0);a=f}else if(m)h.attr({height:c.chartHeight}),m.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0;return a},scroll:function(a,b){var c=this.pageCount,d=this.currentPage+a,e=this.clipHeight,f=this.options.navigation,g=f.activeColor,h=f.inactiveColor,f=this.pager, i=this.padding;d>c&&(d=c);if(d>0)b!==r&&$a(b,this.chart),this.nav.attr({translateX:i,translateY:e+7+this.titleHeight,visibility:"visible"}),this.up.attr({fill:d===1?h:g}).css({cursor:d===1?"default":"pointer"}),f.attr({text:d+"/"+this.pageCount}),this.down.attr({x:18+this.pager.getBBox().width,fill:d===c?h:g}).css({cursor:d===c?"default":"pointer"}),e=-C(e*(d-1),this.fullHeight-e+i)+1,this.scrollGroup.animate({translateY:e}),f.attr({text:d+"/"+c}),this.currentPage=d,this.positionCheckboxes(e)}};Qa.prototype= {init:function(a,b){var c,d=a.series;a.series=null;c=v(K,a);c.series=a.series=d;var d=c.chart,e=d.margin,e=da(e)?e:[e,e,e,e];this.optionsMarginTop=p(d.marginTop,e[0]);this.optionsMarginRight=p(d.marginRight,e[1]);this.optionsMarginBottom=p(d.marginBottom,e[2]);this.optionsMarginLeft=p(d.marginLeft,e[3]);this.runChartClick=(e=d.events)&&!!e.click;this.bounds={h:{},v:{}};this.callback=b;this.isResizing=0;this.options=c;this.axes=[];this.series=[];this.hasCartesianSeries=d.showAxes;var f=this,g;f.index= Sa.length;Sa.push(f);d.reflow!==!1&&H(f,"load",function(){f.initReflow()});if(e)for(g in e)H(f,g,e[g]);f.xAxis=[];f.yAxis=[];f.animation=ha?!1:p(d.animation,!0);f.pointCount=0;f.counters=new Qb;f.firstRender()},initSeries:function(a){var b=this.options.chart;(b=P[a.type||b.type||b.defaultSeriesType])||Ba(17,!0);b=new b;b.init(this,a);return b},addSeries:function(a,b,c){var d,e=this;a&&(b=p(b,!0),D(e,"addSeries",{options:a},function(){d=e.initSeries(a);e.isDirtyLegend=!0;b&&e.redraw(c)}));return d}, addAxis:function(a,b,c,d){var b=b?"xAxis":"yAxis",e=this.options;new Da(this,v(a,{index:this[b].length}));e[b]=ia(e[b]||{});e[b].push(a);p(c,!0)&&this.redraw(d)},isInsidePlot:function(a,b,c){var d=c?b:a,a=c?a:b;return d>=0&&d<=this.plotWidth&&a>=0&&a<=this.plotHeight},adjustTickAmounts:function(){this.options.chart.alignTicks!==!1&&n(this.axes,function(a){a.adjustTickAmount()});this.maxTicks=null},redraw:function(a){var b=this.axes,c=this.series,d=this.pointer,e=this.legend,f=this.isDirtyLegend,g, h=this.isDirtyBox,i=c.length,j=i,k=this.renderer,m=k.isHidden(),l=[];$a(a,this);for(m&&this.cloneRenderTo();j--;)if(a=c[j],a.isDirty&&a.options.stacking){g=!0;break}if(g)for(j=i;j--;)if(a=c[j],a.options.stacking)a.isDirty=!0;n(c,function(a){a.isDirty&&a.options.legendType==="point"&&(f=!0)});if(f&&e.options.enabled)e.render(),this.isDirtyLegend=!1;if(this.hasCartesianSeries){if(!this.isResizing)this.maxTicks=null,n(b,function(a){a.setScale()});this.adjustTickAmounts();this.getMargins();n(b,function(a){if(a.isDirtyExtremes)a.isDirtyExtremes= !1,l.push(function(){D(a,"afterSetExtremes",a.getExtremes())});if(a.isDirty||h||g)a.redraw(),h=!0})}h&&this.drawChartBox();n(c,function(a){a.isDirty&&a.visible&&(!a.isCartesian||a.xAxis)&&a.redraw()});d&&d.reset&&d.reset(!0);k.draw();D(this,"redraw");m&&this.cloneRenderTo(!0);n(l,function(a){a.call()})},showLoading:function(a){var b=this.options,c=this.loadingDiv,d=b.loading;if(!c)this.loadingDiv=c=aa(Oa,{className:"highcharts-loading"},z(d.style,{left:this.plotLeft+"px",top:this.plotTop+"px",width:this.plotWidth+ "px",height:this.plotHeight+"px",zIndex:10,display:ba}),this.container),this.loadingSpan=aa("span",null,d.labelStyle,c);this.loadingSpan.innerHTML=a||b.lang.loading;if(!this.loadingShown)M(c,{opacity:0,display:""}),Kb(c,{opacity:d.style.opacity},{duration:d.showDuration||0}),this.loadingShown=!0},hideLoading:function(){var a=this.options,b=this.loadingDiv;b&&Kb(b,{opacity:0},{duration:a.loading.hideDuration||100,complete:function(){M(b,{display:ba})}});this.loadingShown=!1},get:function(a){var b= this.axes,c=this.series,d,e;for(d=0;dC(e.dataMin,e.min)&&c19?this.containerHeight:400))},cloneRenderTo:function(a){var b=this.renderToClone,c=this.container;a?b&&(this.renderTo.appendChild(c),Za(b),delete this.renderToClone):(c&&this.renderTo.removeChild(c),this.renderToClone=b=this.renderTo.cloneNode(0),M(b,{position:"absolute",top:"-9999px",display:"block"}),G.body.appendChild(b),c&&b.appendChild(c))},getContainer:function(){var a,b=this.options.chart,c,d,e;this.renderTo=a=b.renderTo;e="highcharts-"+Ib++;if(ma(a))this.renderTo= a=G.getElementById(a);a||Ba(13,!0);c=A(L(a,"data-highcharts-chart"));!isNaN(c)&&Sa[c]&&Sa[c].destroy();L(a,"data-highcharts-chart",this.index);a.innerHTML="";a.offsetWidth||this.cloneRenderTo();this.getChartSize();c=this.chartWidth;d=this.chartHeight;this.container=a=aa(Oa,{className:"highcharts-container"+(b.className?" "+b.className:""),id:e},z({position:"relative",overflow:"hidden",width:c+"px",height:d+"px",textAlign:"left",lineHeight:"normal",zIndex:0},b.style),this.renderToClone||a);this.renderer= b.forExport?new Ga(a,c,d,!0):new cb(a,c,d);ha&&this.renderer.create(this,a,c,d)},getMargins:function(){var a=this.options.chart,b=a.spacingTop,c=a.spacingRight,d=a.spacingBottom,a=a.spacingLeft,e,f=this.legend,g=this.optionsMarginTop,h=this.optionsMarginLeft,i=this.optionsMarginRight,j=this.optionsMarginBottom,k=this.options.title,m=this.options.subtitle,l=this.options.legend,o=p(l.margin,10),q=l.x,N=l.y,y=l.align,u=l.verticalAlign;this.resetMargins();e=this.axisOffset;if((this.title||this.subtitle)&& !x(this.optionsMarginTop))if(m=t(this.title&&!k.floating&&!k.verticalAlign&&k.y||0,this.subtitle&&!m.floating&&!m.verticalAlign&&m.y||0))this.plotTop=t(this.plotTop,m+p(k.margin,15)+b);if(f.display&&!l.floating)if(y==="right"){if(!x(i))this.marginRight=t(this.marginRight,f.legendWidth-q+o+c)}else if(y==="left"){if(!x(h))this.plotLeft=t(this.plotLeft,f.legendWidth+q+o+a)}else if(u==="top"){if(!x(g))this.plotTop=t(this.plotTop,f.legendHeight+N+o+b)}else if(u==="bottom"&&!x(j))this.marginBottom=t(this.marginBottom, f.legendHeight-N+o+d);this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin);this.extraTopMargin&&(this.plotTop+=this.extraTopMargin);this.hasCartesianSeries&&n(this.axes,function(a){a.getOffset()});x(h)||(this.plotLeft+=e[3]);x(g)||(this.plotTop+=e[0]);x(j)||(this.marginBottom+=e[2]);x(i)||(this.marginRight+=e[1]);this.setChartSize()},initReflow:function(){function a(a){var g=c.width||ub(d,"width"),h=c.height||ub(d,"height"),a=a?a.target:X;if(!b.hasUserSize&&g&&h&&(a===X||a===G)){if(g!== b.containerWidth||h!==b.containerHeight)clearTimeout(e),b.reflowTimeout=e=setTimeout(function(){if(b.container)b.setSize(g,h,!1),b.hasUserSize=null},100);b.containerWidth=g;b.containerHeight=h}}var b=this,c=b.options.chart,d=b.renderTo,e;H(X,"resize",a);H(b,"destroy",function(){W(X,"resize",a)})},setSize:function(a,b,c){var d=this,e,f,g;d.isResizing+=1;g=function(){d&&D(d,"endResize",null,function(){d.isResizing-=1})};$a(c,d);d.oldChartHeight=d.chartHeight;d.oldChartWidth=d.chartWidth;if(x(a))d.chartWidth= e=t(0,s(a)),d.hasUserSize=!!e;if(x(b))d.chartHeight=f=t(0,s(b));M(d.container,{width:e+"px",height:f+"px"});d.setChartSize(!0);d.renderer.setSize(e,f,c);d.maxTicks=null;n(d.axes,function(a){a.isDirty=!0;a.setScale()});n(d.series,function(a){a.isDirty=!0});d.isDirtyLegend=!0;d.isDirtyBox=!0;d.getMargins();d.redraw(c);d.oldChartHeight=null;D(d,"resize");Pa===!1?g():setTimeout(g,Pa&&Pa.duration||500)},setChartSize:function(a){var b=this.inverted,c=this.renderer,d=this.chartWidth,e=this.chartHeight,f= this.options.chart,g=f.spacingTop,h=f.spacingRight,i=f.spacingBottom,j=f.spacingLeft,k=this.clipOffset,m,l,o,q;this.plotLeft=m=s(this.plotLeft);this.plotTop=l=s(this.plotTop);this.plotWidth=o=t(0,s(d-m-this.marginRight));this.plotHeight=q=t(0,s(e-l-this.marginBottom));this.plotSizeX=b?q:o;this.plotSizeY=b?o:q;this.plotBorderWidth=b=f.plotBorderWidth||0;this.spacingBox=c.spacingBox={x:j,y:g,width:d-j-h,height:e-g-i};this.plotBox=c.plotBox={x:m,y:l,width:o,height:q};c=pa(t(b,k[3])/2);d=pa(t(b,k[0])/ 2);this.clipBox={x:c,y:d,width:V(this.plotSizeX-t(b,k[1])/2-c),height:V(this.plotSizeY-t(b,k[2])/2-d)};a||n(this.axes,function(a){a.setAxisSize();a.setAxisTranslation()})},resetMargins:function(){var a=this.options.chart,b=a.spacingRight,c=a.spacingBottom,d=a.spacingLeft;this.plotTop=p(this.optionsMarginTop,a.spacingTop);this.marginRight=p(this.optionsMarginRight,b);this.marginBottom=p(this.optionsMarginBottom,c);this.plotLeft=p(this.optionsMarginLeft,d);this.axisOffset=[0,0,0,0];this.clipOffset= [0,0,0,0]},drawChartBox:function(){var a=this.options.chart,b=this.renderer,c=this.chartWidth,d=this.chartHeight,e=this.chartBackground,f=this.plotBackground,g=this.plotBorder,h=this.plotBGImage,i=a.borderWidth||0,j=a.backgroundColor,k=a.plotBackgroundColor,m=a.plotBackgroundImage,l=a.plotBorderWidth||0,o,q=this.plotLeft,n=this.plotTop,p=this.plotWidth,u=this.plotHeight,w=this.plotBox,r=this.clipRect,t=this.clipBox;o=i+(a.shadow?8:0);if(i||j)if(e)e.animate(e.crisp(null,null,null,c-o,d-o));else{e= {fill:j||ba};if(i)e.stroke=a.borderColor,e["stroke-width"]=i;this.chartBackground=b.rect(o/2,o/2,c-o,d-o,a.borderRadius,i).attr(e).add().shadow(a.shadow)}if(k)f?f.animate(w):this.plotBackground=b.rect(q,n,p,u,0).attr({fill:k}).add().shadow(a.plotShadow);if(m)h?h.animate(w):this.plotBGImage=b.image(m,q,n,p,u).add();r?r.animate({width:t.width,height:t.height}):this.clipRect=b.clipRect(t);if(l)g?g.animate(g.crisp(null,q,n,p,u)):this.plotBorder=b.rect(q,n,p,u,0,l).attr({stroke:a.plotBorderColor,"stroke-width":l, zIndex:1}).add();this.isDirtyBox=!1},propFromSeries:function(){var a=this,b=a.options.chart,c,d=a.options.series,e,f;n(["inverted","angular","polar"],function(g){c=P[b.type||b.defaultSeriesType];f=a[g]||b[g]||c&&c.prototype[g];for(e=d&&d.length;!f&&e--;)(c=P[d[e].type])&&c.prototype[g]&&(f=!0);a[g]=f})},render:function(){var a=this,b=a.axes,c=a.renderer,d=a.options,e=d.labels,f=d.credits,g;a.setTitle();a.legend=new Fb(a,d.legend);n(b,function(a){a.setScale()});a.getMargins();a.maxTicks=null;n(b,function(a){a.setTickPositions(!0); a.setMaxTicks()});a.adjustTickAmounts();a.getMargins();a.drawChartBox();a.hasCartesianSeries&&n(b,function(a){a.render()});if(!a.seriesGroup)a.seriesGroup=c.g("series-group").attr({zIndex:3}).add();n(a.series,function(a){a.translate();a.setTooltipPoints();a.render()});e.items&&n(e.items,function(b){var d=z(e.style,b.style),f=A(d.left)+a.plotLeft,g=A(d.top)+a.plotTop+12;delete d.left;delete d.top;c.text(b.html,f,g).attr({zIndex:2}).css(d).add()});if(f.enabled&&!a.credits)g=f.href,a.credits=c.text(f.text, 0,0).on("click",function(){if(g)location.href=g}).attr({align:f.position.align,zIndex:8}).css(f.style).add().align(f.position);a.hasRendered=!0},destroy:function(){var a=this,b=a.axes,c=a.series,d=a.container,e,f=d&&d.parentNode;D(a,"destroy");Sa[a.index]=r;a.renderTo.removeAttribute("data-highcharts-chart");W(a);for(e=b.length;e--;)b[e]=b[e].destroy();for(e=c.length;e--;)c[e]=c[e].destroy();n("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,pointer,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","), function(b){var c=a[b];c&&c.destroy&&(a[b]=c.destroy())});if(d)d.innerHTML="",W(d),f&&Za(d);for(e in a)delete a[e]},isReadyToRender:function(){var a=this;return!ca&&X==X.top&&G.readyState!=="complete"||ha&&!X.canvg?(ha?$b.push(function(){a.firstRender()},a.options.global.canvasToolsURL):G.attachEvent("onreadystatechange",function(){G.detachEvent("onreadystatechange",a.firstRender);G.readyState==="complete"&&a.firstRender()}),!1):!0},firstRender:function(){var a=this,b=a.options,c=a.callback;if(a.isReadyToRender())a.getContainer(), D(a,"init"),a.resetMargins(),a.setChartSize(),a.propFromSeries(),a.getAxes(),n(b.series||[],function(b){a.initSeries(b)}),D(a,"beforeRender"),a.pointer=new ob(a,b),a.render(),a.renderer.draw(),c&&c.apply(a,[a]),n(a.callbacks,function(b){b.apply(a,[a])}),a.cloneRenderTo(!0),D(a,"load")}};Qa.prototype.callbacks=[];var Ha=function(){};Ha.prototype={init:function(a,b,c){this.series=a;this.applyOptions(b,c);this.pointAttr={};if(a.options.colorByPoint&&(b=a.options.colors||a.chart.options.colors,this.color= this.color||b[a.colorCounter++],a.colorCounter===b.length))a.colorCounter=0;a.chart.pointCount++;return this},applyOptions:function(a,b){var c=this.series,d=c.pointValKey,a=Ha.prototype.optionsToObject.call(this,a);z(this,a);this.options=this.options?z(this.options,a):a;if(d)this.y=this[d];if(this.x===r&&c)this.x=b===r?c.autoIncrement():b;return this},optionsToObject:function(a){var b,c=this.series,d=c.pointArrayMap||["y"],e=d.length,f=0,g=0;if(typeof a==="number"||a===null)b={y:a};else if(Ua(a)){b= {};if(a.length>e){c=typeof a[0];if(c==="string")b.name=a[0];else if(c==="number")b.x=a[0];f++}for(;ga+1&&b.push(d.slice(a+1,g)),a=g):g===e-1&&b.push(d.slice(a+1,g+1))});this.segments=b},setOptions:function(a){var b= this.chart.options,c=b.plotOptions,d=c[this.type];this.userOptions=a;a=v(d,c.series,a);this.tooltipOptions=v(b.tooltip,a.tooltip);d.marker===null&&delete a.marker;return a},getColor:function(){var a=this.options,b=this.userOptions,c=this.chart.options.colors,d=this.chart.counters,e;e=a.color||R[this.type].color;if(!e&&!a.colorByPoint)x(b._colorIndex)?a=b._colorIndex:(b._colorIndex=d.color,a=d.color++),e=c[a];this.color=e;d.wrapColor(c.length)},getSymbol:function(){var a=this.userOptions,b=this.options.marker, c=this.chart,d=c.options.symbols,c=c.counters;this.symbol=b.symbol;if(!this.symbol)x(a._symbolIndex)?a=a._symbolIndex:(a._symbolIndex=c.symbol,a=c.symbol++),this.symbol=d[a];if(/^url/.test(this.symbol))b.radius=0;c.wrapSymbol(d.length)},drawLegendSymbol:function(a){var b=this.options,c=b.marker,d=a.options.symbolWidth,e=this.chart.renderer,f=this.legendGroup,a=a.baseline,g;if(b.lineWidth){g={"stroke-width":b.lineWidth};if(b.dashStyle)g.dashstyle=b.dashStyle;this.legendLine=e.path(["M",0,a-4,"L",d, a-4]).attr(g).add(f)}if(c&&c.enabled)b=c.radius,this.legendSymbol=e.symbol(this.symbol,d/2-b,a-4-b,2*b,2*b).add(f)},addPoint:function(a,b,c,d){var e=this.options,f=this.data,g=this.graph,h=this.area,i=this.chart,j=this.xData,k=this.yData,m=this.zData,l=this.names,o=g&&g.shift||0,q=e.data;$a(d,i);if(g&&c)g.shift=o+1;if(h){if(c)h.shift=o+1;h.isArea=!0}b=p(b,!0);d={series:this};this.pointClass.prototype.applyOptions.apply(d,[a]);j.push(d.x);k.push(this.toYData?this.toYData(d):d.y);m.push(d.z);if(l)l[d.x]= d.name;q.push(a);e.legendType==="point"&&this.generatePoints();c&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),j.shift(),k.shift(),m.shift(),q.shift()));this.getAttribs();this.isDirtyData=this.isDirty=!0;b&&i.redraw()},setData:function(a,b){var c=this.points,d=this.options,e=this.chart,f=null,g=this.xAxis,h=g&&g.categories&&!g.categories.length?[]:null,i;this.xIncrement=null;this.pointRange=g&&g.categories?1:d.pointRange;this.colorCounter=0;var j=[],k=[],m=[],l=a?a.length:[],o=(i=this.pointArrayMap)&& i.length,q=!!this.toYData;if(l>(d.turboThreshold||1E3)){for(i=0;f===null&&i1&&j[1]k||this.forceCrop))if(a=i.getExtremes(),i=a.min,k=a.max,b[d-1]k)b=[],c=[];else if(b[0]k){for(a=0;a=i){e=t(0,a-1);break}for(;ak){f=a+1;break}b=b.slice(e,f);c=c.slice(e,f);g=!0}for(a=b.length-1;a>0;a--)if(d=b[a]-b[a-1],d>0&&(h===r||d=0&&c<=d;)h[c++]=f}this.tooltipPoints= h}},tooltipHeaderFormatter:function(a){var b=this.tooltipOptions,c=b.xDateFormat,d=this.xAxis,e=d&&d.options.type==="datetime",f=b.headerFormat,g;if(e&&!c)for(g in I)if(I[g]>=d.closestPointRange){c=b.dateTimeLabelFormats[g];break}e&&c&&va(a.key)&&(f=f.replace("{point.key}","{point.key:"+c+"}"));return Xa(f,{point:a,series:this})},onMouseOver:function(){var a=this.chart,b=a.hoverSeries;if(b&&b!==this)b.onMouseOut();this.options.events.mouseOver&&D(this,"mouseOver");this.setState("hover");a.hoverSeries= this},onMouseOut:function(){var a=this.options,b=this.chart,c=b.tooltip,d=b.hoverPoint;if(d)d.onMouseOut();this&&a.events.mouseOut&&D(this,"mouseOut");c&&!a.stickyTracking&&(!c.shared||this.noSharedTooltip)&&c.hide();this.setState();b.hoverSeries=null},animate:function(a){var b=this,c=b.chart,d=c.renderer,e;e=b.options.animation;var f=c.clipBox,g=c.inverted,h;if(e&&!da(e))e=R[b.type].animation;h="_sharedClip"+e.duration+e.easing;if(a)a=c[h],e=c[h+"m"],a||(c[h]=a=d.clipRect(z(f,{width:0})),c[h+"m"]= e=d.clipRect(-99,g?-c.plotLeft:-c.plotTop,99,g?c.chartWidth:c.chartHeight)),b.group.clip(a),b.markerGroup.clip(e),b.sharedClipKey=h;else{if(a=c[h])a.animate({width:c.plotSizeX},e),c[h+"m"].animate({width:c.plotSizeX+99},e);b.animate=null;b.animationTimeout=setTimeout(function(){b.afterAnimate()},e.duration)}},afterAnimate:function(){var a=this.chart,b=this.sharedClipKey,c=this.group;c&&this.options.clip!==!1&&(c.clip(a.clipRect),this.markerGroup.clip());setTimeout(function(){b&&a[b]&&(a[b]=a[b].destroy(), a[b+"m"]=a[b+"m"].destroy())},100)},drawPoints:function(){var a,b=this.points,c=this.chart,d,e,f,g,h,i,j,k,m=this.options.marker,l,o=this.markerGroup;if(m.enabled||this._hasPointMarkers)for(f=b.length;f--;)if(g=b[f],d=g.plotX,e=g.plotY,k=g.graphic,i=g.marker||{},a=m.enabled&&i.enabled===r||i.enabled,l=c.isInsidePlot(d,e,c.inverted),a&&e!==r&&!isNaN(e)&&g.y!==null)if(a=g.pointAttr[g.selected?"select":""],h=a.r,i=p(i.symbol,this.symbol),j=i.indexOf("url")===0,k)k.attr({visibility:l?ca?"inherit":"visible": "hidden"}).animate(z({x:d-h,y:e-h},k.symbolName?{width:2*h,height:2*h}:{}));else{if(l&&(h>0||j))g.graphic=c.renderer.symbol(i,d-h,e-h,2*h,2*h).attr(a).add(o)}else if(k)g.graphic=k.destroy()},convertAttribs:function(a,b,c,d){var e=this.pointAttrToOptions,f,g,h={},a=a||{},b=b||{},c=c||{},d=d||{};for(f in e)g=e[f],h[f]=p(a[g],b[f],c[f],d[f]);return h},getAttribs:function(){var a=this,b=a.options,c=R[a.type].marker?b.marker:b,d=c.states,e=d.hover,f,g=a.color,h={stroke:g,fill:g},i=a.points||[],j=[],k, m=a.pointAttrToOptions,l=b.negativeColor,o;b.marker?(e.radius=e.radius||c.radius+2,e.lineWidth=e.lineWidth||c.lineWidth+1):e.color=e.color||ua(e.color||g).brighten(e.brightness).get();j[""]=a.convertAttribs(c,h);n(["hover","select"],function(b){j[b]=a.convertAttribs(d[b],j[""])});a.pointAttr=j;for(g=i.length;g--;){h=i[g];if((c=h.options&&h.options.marker||h.options)&&c.enabled===!1)c.radius=0;if(h.negative)h.color=h.fillColor=l;f=b.colorByPoint||h.color;if(h.options)for(o in m)x(c[m[o]])&&(f=!0); if(f){c=c||{};k=[];d=c.states||{};f=d.hover=d.hover||{};if(!b.marker)f.color=ua(f.color||h.color).brighten(f.brightness||e.brightness).get();k[""]=a.convertAttribs(z({color:h.color},c),j[""]);k.hover=a.convertAttribs(d.hover,j.hover,k[""]);k.select=a.convertAttribs(d.select,j.select,k[""]);if(h.negative&&b.marker)k[""].fill=k.hover.fill=k.select.fill=a.convertAttribs({fillColor:l}).fill}else k=j;h.pointAttr=k}},update:function(a,b){var c=this.chart,d=this.type,a=v(this.userOptions,{animation:!1,index:this.index, pointStart:this.xData[0]},a);this.remove(!1);z(this,P[a.type||d].prototype);this.init(c,a);p(b,!0)&&c.redraw(!1)},destroy:function(){var a=this,b=a.chart,c=/AppleWebKit\/533/.test(Ra),d,e,f=a.data||[],g,h,i;D(a,"destroy");W(a);n(["xAxis","yAxis"],function(b){if(i=a[b])na(i.series,a),i.isDirty=i.forceRedraw=!0});a.legendItem&&a.chart.legend.destroyItem(a);for(e=f.length;e--;)(g=f[e])&&g.destroy&&g.destroy();a.points=null;clearTimeout(a.animationTimeout);n("area,graph,dataLabelsGroup,group,markerGroup,tracker,graphNeg,areaNeg,posClip,negClip".split(","), function(b){a[b]&&(d=c&&b==="group"?"hide":"destroy",a[b][d]())});if(b.hoverSeries===a)b.hoverSeries=null;na(b.series,a);for(h in a)delete a[h]},drawDataLabels:function(){var a=this,b=a.options.dataLabels,c=a.points,d,e,f,g;if(b.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(b),g=a.plotGroup("dataLabelsGroup","data-labels",a.visible?"visible":"hidden",b.zIndex||6),e=b,n(c,function(c){var i,j=c.dataLabel,k,m,l=c.connector,o=!0;d=c.options&&c.options.dataLabels;i=e.enabled||d&&d.enabled; if(j&&!i)c.dataLabel=j.destroy();else if(i){i=b.rotation;b=v(e,d);k=c.getLabelConfig();f=b.format?Xa(b.format,k):b.formatter.call(k,b);b.style.color=p(b.color,b.style.color,a.color,"black");if(j)if(x(f))j.attr({text:f}),o=!1;else{if(c.dataLabel=j=j.destroy(),l)c.connector=l.destroy()}else if(x(f)){j={fill:b.backgroundColor,stroke:b.borderColor,"stroke-width":b.borderWidth,r:b.borderRadius||0,rotation:i,padding:b.padding,zIndex:1};for(m in j)j[m]===r&&delete j[m];j=c.dataLabel=a.chart.renderer[i?"text": "label"](f,0,-999,null,null,null,b.useHTML).attr(j).css(b.style).add(g).shadow(b.shadow)}j&&a.alignDataLabel(c,j,b,null,o)}})},alignDataLabel:function(a,b,c,d,e){var f=this.chart,g=f.inverted,h=p(a.plotX,-999),a=p(a.plotY,-999),i=b.getBBox(),d=z({x:g?f.plotWidth-a:h,y:s(g?f.plotHeight-h:a),width:0,height:0},d);z(c,{width:i.width,height:i.height});c.rotation?(d={align:c.align,x:d.x+c.x+d.width/2,y:d.y+c.y+d.height/2},b[e?"attr":"animate"](d)):b.align(c,null,d);b.attr({visibility:c.crop===!1||f.isInsidePlot(h, a,g)?f.renderer.isSVG?"inherit":"visible":"hidden"})},getSegmentPath:function(a){var b=this,c=[],d=b.options.step;n(a,function(e,f){var g=e.plotX,h=e.plotY,i;b.getPointSpline?c.push.apply(c,b.getPointSpline(a,e,f)):(c.push(f?"L":"M"),d&&f&&(i=a[f-1],d==="right"?c.push(i.plotX,h):d==="center"?c.push((i.plotX+g)/2,i.plotY,(i.plotX+g)/2,h):c.push(g,i.plotY)),c.push(e.plotX,e.plotY))});return c},getGraphPath:function(){var a=this,b=[],c,d=[];n(a.segments,function(e){c=a.getSegmentPath(e);e.length>1?b= b.concat(c):d.push(e[0])});a.singlePoints=d;return a.graphPath=b},drawGraph:function(){var a=this,b=this.options,c=[["graph",b.lineColor||this.color]],d=b.lineWidth,e=b.dashStyle,f=this.getGraphPath(),g=b.negativeColor;g&&c.push(["graphNeg",g]);n(c,function(c,g){var j=c[0],k=a[j];if(k)gb(k),k.animate({d:f});else if(d&&f.length){k={stroke:c[1],"stroke-width":d,zIndex:1};if(e)k.dashstyle=e;a[j]=a.chart.renderer.path(f).attr(k).add(a.group).shadow(!g&&b.shadow)}})},clipNeg:function(){var a=this.options, b=this.chart,c=b.renderer,d=a.negativeColor,e,f=this.posClip,g=this.negClip;e=b.chartWidth;var h=b.chartHeight,i=t(e,h);if(d&&this.graph)d=pa(this.yAxis.len-this.yAxis.translate(a.threshold||0)),a={x:0,y:0,width:i,height:d},i={x:0,y:d,width:i,height:i-d},b.inverted&&c.isVML&&(a={x:b.plotWidth-d-b.plotLeft,y:0,width:e,height:h},i={x:d+b.plotLeft-e,y:0,width:b.plotLeft+d,height:e}),this.yAxis.reversed?(b=i,e=a):(b=a,e=i),f?(f.animate(b),g.animate(e)):(this.posClip=f=c.clipRect(b),this.graph.clip(f), this.negClip=g=c.clipRect(e),this.graphNeg.clip(g),this.area&&(this.area.clip(f),this.areaNeg.clip(g)))},invertGroups:function(){function a(){var a={width:b.yAxis.len,height:b.xAxis.len};n(["group","markerGroup"],function(c){b[c]&&b[c].attr(a).invert()})}var b=this,c=b.chart;H(c,"resize",a);H(b,"destroy",function(){W(c,"resize",a)});a();b.invertGroups=a},plotGroup:function(a,b,c,d,e){var f=this[a],g=!f,h=this.chart,i=this.xAxis,j=this.yAxis;g&&(this[a]=f=h.renderer.g(b).attr({visibility:c,zIndex:d|| 0.1}).add(e));f[g?"attr":"animate"]({translateX:i?i.left:h.plotLeft,translateY:j?j.top:h.plotTop});return f},render:function(){var a=this.chart,b,c=this.options,d=c.animation&&!!this.animate&&a.renderer.isSVG,e=this.visible?"visible":"hidden",f=c.zIndex,g=this.hasRendered,h=a.seriesGroup;b=this.plotGroup("group","series",e,f,h);this.markerGroup=this.plotGroup("markerGroup","markers",e,f,h);d&&this.animate(!0);this.getAttribs();b.inverted=a.inverted;this.drawGraph&&(this.drawGraph(),this.clipNeg()); this.drawDataLabels();this.drawPoints();this.options.enableMouseTracking!==!1&&this.drawTracker();a.inverted&&this.invertGroups();c.clip!==!1&&!this.sharedClipKey&&!g&&b.clip(a.clipRect);d?this.animate():g||this.afterAnimate();this.isDirty=this.isDirtyData=!1;this.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirtyData,c=this.group,d=this.xAxis,e=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:p(d&&d.left,a.plotLeft),translateY:p(e&&e.top, a.plotTop)}));this.translate();this.setTooltipPoints(!0);this.render();b&&D(this,"updatedData")},setState:function(a){var b=this.options,c=this.graph,d=this.graphNeg,e=b.states,b=b.lineWidth,a=a||"";if(this.state!==a)this.state=a,e[a]&&e[a].enabled===!1||(a&&(b=e[a].lineWidth||b+1),c&&!c.dashstyle&&(a={"stroke-width":b},c.attr(a),d&&d.attr(a)))},setVisible:function(a,b){var c=this,d=c.chart,e=c.legendItem,f,g=d.options.chart.ignoreHiddenSeries,h=c.visible;f=(c.visible=a=c.userOptions.visible=a=== r?!h:a)?"show":"hide";n(["group","dataLabelsGroup","markerGroup","tracker"],function(a){if(c[a])c[a][f]()});if(d.hoverSeries===c)c.onMouseOut();e&&d.legend.colorizeItem(c,a);c.isDirty=!0;c.options.stacking&&n(d.series,function(a){if(a.options.stacking&&a.visible)a.isDirty=!0});n(c.linkedSeries,function(b){b.setVisible(a,!1)});if(g)d.isDirtyBox=!0;b!==!1&&d.redraw();D(c,f)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(a){this.selected=a=a===r?!this.selected: a;if(this.checkbox)this.checkbox.checked=a;D(this,a?"select":"unselect")},drawTracker:function(){var a=this,b=a.options,c=b.trackByArea,d=[].concat(c?a.areaPath:a.graphPath),e=d.length,f=a.chart,g=f.pointer,h=f.renderer,i=f.options.tooltip.snap,j=a.tracker,k=b.cursor,k=k&&{cursor:k},m=a.singlePoints,l,o=function(){if(f.hoverSeries!==a)a.onMouseOver()};if(e&&!c)for(l=e+1;l--;)d[l]==="M"&&d.splice(l+1,0,d[l+1]-i,d[l+2],"L"),(l&&d[l]==="M"||l===e)&&d.splice(l,0,"L",d[l-2]+i,d[l-1]);for(l=0;l=0;d--)da&&i>e?(i=t(a,e),k=2*e-i):ig&&k>e?(k=t(g,e),i=2*e-k):kh?o-h:g-(f.translate(c.y,0,1,0,1)<=g?h:0));c.barX=q;c.pointWidth=i;c.shapeType="rect"; c.shapeArgs=c=b.renderer.Element.prototype.crisp.call(0,e,q,n,j,l);e%2&&(c.y-=1,c.height+=1)})},getSymbol:qa,drawLegendSymbol:F.prototype.drawLegendSymbol,drawGraph:qa,drawPoints:function(){var a=this,b=a.options,c=a.chart.renderer,d;n(a.points,function(e){var f=e.plotY,g=e.graphic;if(f!==r&&!isNaN(f)&&e.y!==null)d=e.shapeArgs,g?(gb(g),g.animate(v(d))):e.graphic=c[e.shapeType](d).attr(e.pointAttr[e.selected?"select":""]).add(a.group).shadow(b.shadow,null,b.stacking&&!b.borderRadius);else if(g)e.graphic= g.destroy()})},drawTracker:function(){var a=this,b=a.chart.pointer,c=a.options.cursor,d=c&&{cursor:c},e=function(b){var c=b.target,d;for(a.onMouseOver();c&&!d;)d=c.point,c=c.parentNode;if(d!==r)d.onMouseOver(b)};n(a.points,function(a){if(a.graphic)a.graphic.element.point=a;if(a.dataLabel)a.dataLabel.element.point=a});a._hasTracking?a._hasTracking=!0:n(a.trackerGroups,function(c){if(a[c]&&(a[c].addClass("highcharts-tracker").on("mouseover",e).on("mouseout",function(a){b.onTrackerMouseOut(a)}).css(d), fb))a[c].on("touchstart",e)})},alignDataLabel:function(a,b,c,d,e){var f=this.chart,g=f.inverted,h=a.dlBox||a.shapeArgs,i=a.below||a.plotY>p(this.translatedThreshold,f.plotSizeY),j=p(c.inside,!!this.options.stacking);if(h&&(d=v(h),g&&(d={x:f.plotWidth-d.y-d.height,y:f.plotHeight-d.x-d.width,width:d.height,height:d.width}),!j))g?(d.x+=i?0:d.width,d.width=0):(d.y+=i?d.height:0,d.height=0);c.align=p(c.align,!g||j?"center":i?"right":"left");c.verticalAlign=p(c.verticalAlign,g||j?"middle":i?"top":"bottom"); Z.prototype.alignDataLabel.call(this,a,b,c,d,e)},animate:function(a){var b=this.yAxis,c=this.options,d=this.chart.inverted,e={};if(ca)a?(e.scaleY=0.001,a=C(b.pos+b.len,t(b.pos,b.toPixels(c.threshold))),d?e.translateX=a-b.len:e.translateY=a,this.group.attr(e)):(e.scaleY=1,e[d?"translateX":"translateY"]=b.pos,this.group.animate(e,this.options.animation),this.animate=null)},remove:function(){var a=this,b=a.chart;b.hasRendered&&n(b.series,function(b){if(b.type===a.type)b.isDirty=!0});Z.prototype.remove.apply(a, arguments)}});P.column=Y;R.bar=v(R.column);Ta=ea(Y,{type:"bar",inverted:!0});P.bar=Ta;R.scatter=v(Q,{lineWidth:0,tooltip:{headerFormat:'{series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    ",followPointer:!0},stickyTracking:!1});Ta=ea(Z,{type:"scatter",sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["markerGroup"],drawTracker:Y.prototype.drawTracker,setTooltipPoints:qa});P.scatter=Ta;R.pie=v(Q,{borderColor:"#FFFFFF", borderWidth:1,center:[null,null],colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.name}},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,states:{hover:{brightness:0.1,shadow:!1}},stickyTracking:!1,tooltip:{followPointer:!0}});Q={type:"pie",isCartesian:!1,pointClass:ea(Ha,{init:function(){Ha.prototype.init.apply(this,arguments);var a=this,b;if(a.y<0)a.y=null;z(a,{visible:a.visible!==!1,name:p(a.name,"Slice")});b= function(){a.slice()};H(a,"select",b);H(a,"unselect",b);return a},setVisible:function(a){var b=this,c=b.series,d=c.chart,e;b.visible=b.options.visible=a=a===r?!b.visible:a;c.options.data[ta(b,c.data)]=b.options;e=a?"show":"hide";n(["graphic","dataLabel","connector","shadowGroup"],function(a){if(b[a])b[a][e]()});b.legendItem&&d.legend.colorizeItem(b,a);if(!c.isDirty&&c.options.ignoreHiddenPoint)c.isDirty=!0,d.redraw()},slice:function(a,b,c){var d=this.series;$a(c,d.chart);p(b,!0);this.sliced=this.options.sliced= a=x(a)?a:!this.sliced;d.options.data[ta(this,d.data)]=this.options;a=a?this.slicedTranslation:{translateX:0,translateY:0};this.graphic.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)}}),requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},getColor:qa,animate:function(a){var b=this,c=b.points,d=b.startAngleRad;if(!a)n(c,function(a){var c=a.graphic,a=a.shapeArgs;c&&(c.attr({r:b.center[3]/ 2,start:d,end:d}),c.animate({r:a.r,start:a.start,end:a.end},b.options.animation))}),b.animate=null},setData:function(a,b){Z.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();p(b,!0)&&this.chart.redraw()},getCenter:function(){var a=this.options,b=this.chart,c=2*(a.dataLabels&&a.dataLabels.enabled?0:a.slicedOffset||0),d=b.plotWidth-2*c,e=b.plotHeight-2*c,b=a.center,a=[p(b[0],"50%"),p(b[1],"50%"),a.size||"100%",a.innerSize||0],f=C(d,e),g;return Fa(a,function(a,b){g=/%$/.test(a); return(g?[d,e,f,f][b]*A(a)/100:a)+(b<3?c:0)})},translate:function(a){this.generatePoints();var b=0,c=0,d=this.options,e=d.slicedOffset,f=e+d.borderWidth,g,h,i,j=this.startAngleRad=bb/180*((d.startAngle||0)%360-90),k=this.points,m=2*bb,l=d.dataLabels.distance,o=d.ignoreHiddenPoint,q,n=k.length,p;if(!a)this.center=a=this.getCenter();this.getX=function(b,c){i=O.asin((b-a[1])/(a[2]/2+l));return a[0]+(c?-1:1)*ga(i)*(a[2]/2+l)};for(q=0;q0.75*m&&(i-=2*bb);p.slicedTranslation={translateX:s(ga(i)*e),translateY:s(ja(i)*e)};g=ga(i)*a[2]/2;h=ja(i)*a[2]/2;p.tooltipPos=[a[0]+g*0.7,a[1]+h*0.7];p.half=i0,y,u,w,x,v=[[],[]],E,B,z,A,J,C=[0,0,0,0],H=function(a,b){return b.y-a.y},L=function(a,b){a.sort(function(a,c){return a.angle!==void 0&&(c.angle-a.angle)*b})};if(e.enabled||a._hasPointLabels){Z.prototype.drawDataLabels.apply(a);n(b, function(a){a.dataLabel&&v[a.half].push(a)});for(A=0;!x&&b[A];)x=b[A]&&b[A].dataLabel&&(b[A].dataLabel.getBBox().height||21),A++;for(A=2;A--;){var b=[],I=[],G=v[A],F=G.length,D;L(G,A-0.5);if(m>0){for(J=q-o-m;J<=q+o+m;J+=x)b.push(J);u=b.length;if(F>u){c=[].concat(G);c.sort(H);for(J=F;J--;)c[J].rank=J;for(J=F;J--;)G[J].rank>=u&&G.splice(J,1);F=G.length}for(J=0;J0){if(u=I.pop(),D=u.i,B=u.y,c>B&&b[D+1]!==null||ch-f&& (C[1]=t(s(E+u-h+f),C[1])),B-x/2<0?C[0]=t(s(-B+x/2),C[0]):B+x/2>d&&(C[2]=t(s(B+x/2-d),C[2]))}}if(sa(C)===0||this.verifyDataLabelOverflow(C))this.placeDataLabels(),r&&g&&n(this.points,function(b){i=b.connector;w=b.labelPos;if((y=b.dataLabel)&&y._pos)E=y.connX,B=y.connY,j=k?["M",E+(w[6]==="left"?5:-5),B,"C",E,B,2*w[2]-w[4],2*w[3]-w[5],w[2],w[3],"L",w[4],w[5]]:["M",E+(w[6]==="left"?5:-5),B,"L",w[2],w[3],"L",w[4],w[5]],i?(i.animate({d:j}),i.attr("visibility",z)):b.connector=i=a.chart.renderer.path(j).attr({"stroke-width":g, stroke:e.connectorColor||b.color||"#606060",visibility:z}).add(a.group);else if(i)b.connector=i.destroy()})}},verifyDataLabelOverflow:function(a){var b=this.center,c=this.options,d=c.center,e=c=c.minSize||80,f;d[0]!==null?e=t(b[2]-t(a[1],a[3]),c):(e=t(b[2]-a[1]-a[3],c),b[0]+=(a[3]-a[1])/2);d[1]!==null?e=t(C(e,b[2]-t(a[0],a[2])),c):(e=t(C(e,b[2]-a[0]-a[2]),c),b[1]+=(a[0]-a[2])/2);e=c[1]||n===i;)if(j=c.shift(),k=d.apply(0,l),k!==r&&(g.push(j),h.push(k)),l[0]=[],l[1]=[],l[2]=[],l[3]=[],n===i)break;if(n===i)break;if(o){j=this.cropStart+n;j=e&&e[j]||this.pointClass.prototype.applyOptions.apply({series:this},[f[j]]);var p;for(k=0;kg/i||j&&c.forced){e=!0;this.points=null;a=h.getExtremes();j=a.min;k=a.max;a=h.getGroupIntervalFactor&&h.getGroupIntervalFactor(j,k,d)||1;g=i*(k-j)/g*a;h=(h.getNonLinearTimeTicks||eb)(yb(g,c.units||bc),j,k,null,d,this.closestPointRange);f=U.groupData.apply(this,[d,f,h,c.approximation]);d=f[0];f=f[1];if(c.smoothed){a=d.length-1;for(d[a]=k;a--&&a>0;)d[a]+=g/2;d[0]=j}this.currentDataGrouping=h.info; if(b.pointRange===null)this.pointRange=h.info.totalRange;this.closestPointRange=h.info.totalRange;this.processedXData=d;this.processedYData=f}else this.currentDataGrouping=null,this.pointRange=m;this.hasGroupedData=e}};U.destroyGroupedData=function(){var a=this.groupedData;n(a||[],function(b,c){b&&(a[c]=b.destroy?b.destroy():null)});this.groupedData=null};U.generatePoints=function(){gc.apply(this);this.destroyGroupedData();this.groupedData=this.hasGroupedData?this.points:null};U.tooltipHeaderFormatter= function(a){var b=this.tooltipOptions,c=this.options.dataGrouping,d=b.xDateFormat,e,f=this.xAxis,g,h;if(f&&f.options.type==="datetime"&&c&&va(a.key)){g=this.currentDataGrouping;c=c.dateTimeLabelFormats;if(g)f=c[g.unitName],g.count===1?d=f[0]:(d=f[1],e=f[2]);else if(!d)for(h in I)if(I[h]>=f.closestPointRange){d=c[h][0];break}d=ya(d,a.key);e&&(d+=ya(e,a.key+g.totalRange-1));a=b.headerFormat.replace("{point.key}",d)}else a=ic.call(this,a);return a};U.destroy=function(){for(var a=this.groupedData||[], b=a.length;b--;)a[b]&&a[b].destroy();hc.apply(this)};xa(U,"setOptions",function(a,b){var c=a.call(this,b),d=this.type,e=this.chart.options.plotOptions,f=R[d].dataGrouping;if(ac[d])f||(f=v(jc,ac[d])),c.dataGrouping=v(f,e.series&&e.series.dataGrouping,e[d].dataGrouping,b.dataGrouping);if(this.chart.options._stock)this.requireSorting=!0;return c});R.ohlc=v(R.column,{lineWidth:1,tooltip:{pointFormat:'{series.name}
    Open: {point.open}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '}, states:{hover:{lineWidth:3}},threshold:null});Q=ea(P.column,{type:"ohlc",pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"high",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},upColorProp:"stroke",getAttribs:function(){P.column.prototype.getAttribs.apply(this,arguments);var a=this.options,b=a.states,c=a.upColor||this.color,a=v(this.pointAttr),d=this.upColorProp,e=this.points||[],f=e.length;a[""][d]=c;a.hover[d]=b.hover.upColor|| c;a.select[d]=b.select.upColor||c;for(d=0;d0?e[d-1].close"},threshold:null,y:-30});P.flags=ea(P.column,{type:"flags",sorted:!1,noSharedTooltip:!0,takeOrdinalPosition:!1,forceCrop:!0,init:Z.prototype.init,pointAttrToOptions:{fill:"fillColor",stroke:"color", "stroke-width":"lineWidth",r:"radius"},translate:function(){P.column.prototype.translate.apply(this);var a=this.chart,b=this.points,c=b.length-1,d,e,f=this.options.onSeries,f=(d=f&&a.get(f))&&d.options.step,g=d&&d.points,h=g&&g.length,i=this.xAxis,j=i.getExtremes(),k,m,l;if(d&&d.visible&&h){m=g[h-1].x;for(b.sort(function(a,b){return a.x-b.x});h--&&b[c];)if(d=b[c],k=g[h],k.x<=d.x&&k.plotY!==r){if(d.x<=m)d.plotY=k.plotY,k.x=j.min&&c.x<=j.max?c.plotY=i.lineTop-a.plotTop:c.shapeArgs={};if((e=b[d-1])&&e.plotX===c.plotX){if(e.stackIndex===r)e.stackIndex=0;c.stackIndex=e.stackIndex+1}})},drawPoints:function(){var a,b=this.points,c=this.chart.renderer,d,e,f=this.options,g=f.y,h,i,j,k,m,l=f.lineWidth%2/2,o;for(j=b.length;j--;)if(k=b[j],d=k.plotX+l,a=k.stackIndex,h=k.options.shape||f.shape,e=k.plotY,e!==r&&(e=k.plotY+g+l-(a!==r&&a*f.stackDistance)),i=a?r:k.plotX+l, o=a?r:k.plotY,m=k.graphic,e!==r)a=k.pointAttr[k.selected?"select":""],m?m.attr({x:d,y:e,r:a.r,anchorX:i,anchorY:o}):m=k.graphic=c.label(k.options.title||f.title||"A",d,e,h,i,o,f.useHTML).css(v(f.style,k.style)).attr(a).attr({align:h==="flag"?"left":"center",width:f.width,height:f.height}).add(this.group).shadow(f.shadow),i=m.box,a=i.getBBox(),k.shapeArgs=z(a,{x:d-(h==="flag"?0:i.attr("width")/2),y:e});else if(m)k.graphic=m.destroy()},drawTracker:function(){P.column.prototype.drawTracker.apply(this); ca&&n(this.points,function(a){a.graphic&&H(a.graphic.element,"mouseover",function(){a.graphic.toFront()})})},animate:qa});wb.flag=function(a,b,c,d,e){var f=e&&e.anchorX||a,e=e&&e.anchorY||b;return["M",f,e,"L",a,b+d,a,b,a+c,b,a+c,b+d,a,b+d,"M",f,e,"Z"]};n(["circle","square"],function(a){wb[a+"pin"]=function(b,c,d,e,f){var g=f&&f.anchorX,f=f&&f.anchorY,b=wb[a](b,c,d,e);g&&f&&b.push("M",g,c+e,"L",g,f);return b}});cb===hb&&n(["flag","circlepin","squarepin"],function(a){hb.prototype.symbols[a]=wb[a]}); Q=ib("linearGradient",{x1:0,y1:0,x2:0,y2:1},"stops",[[0,"#FFF"],[1,"#CCC"]]);F=[].concat(bc);F[4]=[fa,[1,2,3,4]];F[5]=[Ka,[1,2,3]];z(K,{navigator:{handles:{backgroundColor:"#FFF",borderColor:"#666"},height:40,margin:10,maskFill:"rgba(255, 255, 255, 0.75)",outlineColor:"#444",outlineWidth:1,series:{type:"areaspline",color:"#4572A7",compare:null,fillOpacity:0.4,dataGrouping:{approximation:"average",groupPixelWidth:2,smoothed:!0,units:F},dataLabels:{enabled:!1},id:"highcharts-navigator-series",lineColor:"#4572A7", lineWidth:1,marker:{enabled:!1},pointRange:0,shadow:!1},xAxis:{tickWidth:0,lineWidth:0,gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",x:3,y:-4}},yAxis:{gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:0.1,maxPadding:0.1,labels:{enabled:!1},title:{text:null},tickWidth:0}},scrollbar:{height:tb?20:14,barBackgroundColor:Q,barBorderRadius:2,barBorderWidth:1,barBorderColor:"#666",buttonArrowColor:"#666",buttonBackgroundColor:Q,buttonBorderColor:"#666",buttonBorderRadius:2,buttonBorderWidth:1, minWidth:6,rifleColor:"#666",trackBackgroundColor:ib("linearGradient",{x1:0,y1:0,x2:0,y2:1},"stops",[[0,"#EEE"],[1,"#FFF"]]),trackBorderColor:"#CCC",trackBorderWidth:1,liveRedraw:ca}});Gb.prototype={drawHandle:function(a,b){var c=this.chart,d=c.renderer,e=this.elementsToDestroy,f=this.handles,g=this.navigatorOptions.handles,g={fill:g.backgroundColor,stroke:g.borderColor,"stroke-width":1},h;this.rendered||(f[b]=d.g().css({cursor:"e-resize"}).attr({zIndex:4-b}).add(),h=d.rect(-4.5,0,9,16,3,1).attr(g).add(f[b]), e.push(h),h=d.path(["M",-1.5,4,"L",-1.5,12,"M",0.5,4,"L",0.5,12]).attr(g).add(f[b]),e.push(h));f[b][c.isResizing?"animate":"attr"]({translateX:this.scrollerLeft+this.scrollbarHeight+parseInt(a,10),translateY:this.top+this.height/2-8})},drawScrollbarButton:function(a){var b=this.chart.renderer,c=this.elementsToDestroy,d=this.scrollbarButtons,e=this.scrollbarHeight,f=this.scrollbarOptions,g;this.rendered||(d[a]=b.g().add(this.scrollbarGroup),g=b.rect(-0.5,-0.5,e+1,e+1,f.buttonBorderRadius,f.buttonBorderWidth).attr({stroke:f.buttonBorderColor, "stroke-width":f.buttonBorderWidth,fill:f.buttonBackgroundColor}).add(d[a]),c.push(g),g=b.path(["M",e/2+(a?-1:1),e/2-3,"L",e/2+(a?-1:1),e/2+3,e/2+(a?2:-2),e/2]).attr({fill:f.buttonArrowColor}).add(d[a]),c.push(g));a&&d[a].attr({translateX:this.scrollerWidth-e})},render:function(a,b,c,d){var e=this.chart,f=e.renderer,g,h,i,j,k=this.scrollbarGroup,m=this.navigatorGroup,l=this.scrollbar,m=this.xAxis,o=this.scrollbarTrack,n=this.scrollbarHeight,r=this.scrollbarEnabled,y=this.navigatorOptions,u=this.scrollbarOptions, w=u.minWidth,x=this.height,v=this.top,E=this.navigatorEnabled,B=y.outlineWidth,z=B/2,D=0,J=this.outlineHeight,H=u.barBorderRadius,G=u.barBorderWidth,F=v+z;if(!isNaN(a)){this.navigatorLeft=g=p(m.left,e.plotLeft+n);this.navigatorWidth=h=p(m.len,e.plotWidth-2*n);this.scrollerLeft=i=g-n;this.scrollerWidth=j=j=h+2*n;if(m.getExtremes){var I=e.xAxis[0].getExtremes(),L=I.dataMin===null,K=m.getExtremes(),M=C(I.dataMin,K.dataMin),I=t(I.dataMax,K.dataMax);!L&&(M!==K.min||I!==K.max)&&m.setExtremes(M,I,!0,!1)}c= p(c,m.translate(a));d=p(d,m.translate(b));this.zoomedMax=a=C(A(t(c,d)),h);this.zoomedMin=d=this.fixedWidth?a-this.fixedWidth:t(A(C(c,d)),0);this.range=c=a-d;this.fixedWidth=null;if(!this.rendered){if(E)this.navigatorGroup=m=f.g("navigator").attr({zIndex:3}).add(),this.leftShade=f.rect().attr({fill:y.maskFill}).add(m),this.rightShade=f.rect().attr({fill:y.maskFill}).add(m),this.outline=f.path().attr({"stroke-width":B,stroke:y.outlineColor}).add(m);if(r)this.scrollbarGroup=k=f.g("scrollbar").add(), l=u.trackBorderWidth,this.scrollbarTrack=o=f.rect().attr({y:-l%2/2,fill:u.trackBackgroundColor,stroke:u.trackBorderColor,"stroke-width":l,r:u.trackBorderRadius||0,height:n}).add(k),this.scrollbar=l=f.rect().attr({y:-G%2/2,height:n,fill:u.barBackgroundColor,stroke:u.barBorderColor,"stroke-width":G,r:H}).add(k),this.scrollbarRifles=f.path().attr({stroke:u.rifleColor,"stroke-width":1}).add(k)}e=e.isResizing?"animate":"attr";E&&(this.leftShade[e]({x:g,y:v,width:d,height:x}),this.rightShade[e]({x:g+a, y:v,width:h-a,height:x}),this.outline[e]({d:["M",i,F,"L",g+d+z,F,g+d+z,F+J-n,"M",g+a-z,F+J-n,"L",g+a-z,F,i+j,F]}),this.drawHandle(d+z,0),this.drawHandle(a+z,1));if(r)this.drawScrollbarButton(0),this.drawScrollbarButton(1),k[e]({translateX:i,translateY:s(F+x)}),o[e]({width:j}),g=n+d,h=c-G,h12?"visible":"hidden"})[e]({d:["M",w-3,n/4,"L",w-3,2*n/3,"M",w,n/4,"L",w,2*n/3,"M", w+3,n/4,"L",w+3,2*n/3]});this.scrollbarPad=D;this.rendered=!0}},addEvents:function(){var a=this.chart.container,b=this.mouseDownHandler,c=this.mouseMoveHandler,d=this.mouseUpHandler,e;e=[[a,"mousedown",b],[a,"mousemove",c],[document,"mouseup",d]];fb&&e.push([a,"touchstart",b],[a,"touchmove",c],[document,"touchend",d]);n(e,function(a){H.apply(null,a)});this._events=e},removeEvents:function(){n(this._events,function(a){W.apply(null,a)});this._events=r;this.navigatorEnabled&&this.baseSeries&&W(this.baseSeries, "updatedData",this.updatedDataHandler)},init:function(){var a=this,b=a.chart,c,d,e=a.scrollbarHeight,f=a.navigatorOptions,g=a.height,h=a.top,i,j,k,m=document.body.style,l,o=a.baseSeries,n;a.mouseDownHandler=function(d){var d=b.pointer.normalize(d),e=a.zoomedMin,f=a.zoomedMax,h=a.top,i=a.scrollbarHeight,k=a.scrollerLeft,o=a.scrollerWidth,n=a.navigatorLeft,p=a.navigatorWidth,q=a.scrollbarPad,r=a.range,u=d.chartX,t=d.chartY,d=b.xAxis[0],y=tb?10:7;if(t>h&&tn+e-q&&uk&&uk+o-i?e+C(10,r):up&&(f=p-r),f!==e)){a.fixedWidth=r;if(!d.ordinalPositions)d.fixedRange=d.max-d.min;e=c.translate(f,!0);d.setExtremes(e,d.fixedRange?e+d.fixedRange:c.translate(f+r,!0),!0,!1,{trigger:"navigator"})}};a.mouseMoveHandler= function(c){var d=a.scrollbarHeight,e=a.navigatorLeft,f=a.navigatorWidth,g=a.scrollerLeft,h=a.scrollerWidth,i=a.range;if(c.pageX!==0)c=b.pointer.normalize(c),c=c.chartX,cg+h-d&&(c=g+h-d),a.grabbedLeft?(k=!0,a.render(0,0,c-e,a.otherHandlePos)):a.grabbedRight?(k=!0,a.render(0,0,a.otherHandlePos,c-e)):a.grabbedCenter&&(k=!0,cf+j-i&&(c=f+j-i),a.render(0,0,c-j,c-j+i)),k&&a.scrollbarOptions.liveRedraw&&setTimeout(function(){a.mouseUpHandler(!1)},0)};a.mouseUpHandler=function(d){k&&b.xAxis[0].setExtremes(c.translate(a.zoomedMin, !0),c.translate(a.zoomedMax,!0),!0,!1,{trigger:"navigator"});if(d!==!1)a.grabbedLeft=a.grabbedRight=a.grabbedCenter=k=j=null,m.cursor=l||""};a.updatedDataHandler=function(){var c=o.xAxis,d=c.getExtremes(),e=d.min,f=d.max,g=d.dataMin,d=d.dataMax,h=f-e,j,k,l,m,p;j=i.xData;var r=!!c.setExtremes;k=f>=j[j.length-1];j=e<=g;if(!n)i.options.pointStart=o.xData[0],i.setData(o.options.data,!1),p=!0;j&&(m=g,l=m+h);k&&(l=d,j||(m=t(l-h,i.xData[0])));r&&(j||k)?c.setExtremes(m,l,!0,!1,{trigger:"updatedData"}):(p&& b.redraw(!1),a.render(t(e,g),C(f,d)))};var r=b.xAxis.length,y=b.yAxis.length;b.extraBottomMargin=a.outlineHeight+f.margin;if(a.navigatorEnabled){var u=o?o.options:{},w=u.data,s=f.series;n=s.data;a.xAxis=c=new Da(b,v({ordinal:o&&o.xAxis.options.ordinal},f.xAxis,{isX:!0,type:"datetime",index:r,height:g,offset:0,offsetLeft:e,offsetRight:-e,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1}));a.yAxis=d=new Da(b,v(f.yAxis,{alignTicks:!1,height:g,offset:0,index:y,zoomEnabled:!1}));r= v(u,s,{threshold:null,clip:!1,enableMouseTracking:!1,group:"nav",padXAxis:!1,xAxis:r,yAxis:y,name:"Navigator",showInLegend:!1,isInternal:!0,visible:!0});r.data=n||w;i=b.initSeries(r);if(o&&f.adaptToUpdatedData!==!1)H(o,"updatedData",a.updatedDataHandler),o.userOptions.events=z(o.userOptions.event,{updatedData:a.updatedDataHandler})}else a.xAxis=c={translate:function(a,c){var d=b.xAxis[0].getExtremes(),f=b.plotWidth-2*e,g=d.dataMin,d=d.dataMax-g;return c?a*d/f+g:f*(a-g)/d}};a.series=i;xa(b,"getMargins", function(b){var e=this.legend,f=e.options;b.call(this);a.top=h=a.navigatorOptions.top||this.chartHeight-a.height-a.scrollbarHeight-this.options.chart.spacingBottom-(f.verticalAlign==="bottom"&&f.enabled?e.legendHeight+p(f.margin,10):0);if(c&&d)c.options.top=d.options.top=h,c.setAxisSize(),d.setAxisSize()});a.addEvents()},destroy:function(){this.removeEvents();n([this.xAxis,this.yAxis,this.leftShade,this.rightShade,this.outline,this.scrollbarTrack,this.scrollbarRifles,this.scrollbarGroup,this.scrollbar], function(a){a&&a.destroy&&a.destroy()});this.xAxis=this.yAxis=this.leftShade=this.rightShade=this.outline=this.scrollbarTrack=this.scrollbarRifles=this.scrollbarGroup=this.scrollbar=null;n([this.scrollbarButtons,this.handles,this.elementsToDestroy],function(a){Aa(a)})}};Highcharts.Scroller=Gb;xa(Da.prototype,"zoom",function(a,b,c){var d=this.chart,e=d.options,f=e.chart.zoomType,g=e.navigator,e=e.rangeSelector,h;if(this.isXAxis&&(g&&g.enabled||e&&e.enabled))if(f==="x")d.resetZoomButton="blocked";else if(f=== "y")h=!1;else if(f==="xy")d=this.previousZoom,x(b)?this.previousZoom=[this.min,this.max]:d&&(b=d[0],c=d[1],delete this.previousZoom);return h!==r?h:a.call(this,b,c)});xa(Qa.prototype,"init",function(a,b,c){H(this,"beforeRender",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=new Gb(this)});a.call(this,b,c)});z(K,{rangeSelector:{buttonTheme:{width:28,height:16,padding:1,r:0,stroke:"#68A",zIndex:7},inputPosition:{align:"right"},labelStyle:{color:"#666"}}});K.lang= v(K.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});Hb.prototype={clickButton:function(a,b,c){var d=this,e=d.chart,f=d.buttons,g=e.xAxis[0],h=g&&g.getExtremes(),i=e.scroller&&e.scroller.xAxis,j=i&&i.getExtremes&&i.getExtremes(),i=j&&j.dataMin,j=j&&j.dataMax,k=h&&h.dataMin,m=h&&h.dataMax,l=(x(k)&&x(i)?C:p)(k,i),o=(x(m)&&x(j)?t:p)(m,j),q,h=g&&C(h.max,o),i=new Date(h),j=b.type,k=b.count,s,y,m={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(!(l=== null||o===null||a===d.selected)){if(m[j])s=m[j]*k,q=t(h-s,l);else if(j==="month")i.setMonth(i.getMonth()-k),q=t(i.getTime(),l),s=2592E6*k;else if(j==="ytd")if(g){if(o===r)l=Number.MAX_VALUE,o=Number.MIN_VALUE,n(e.series,function(a){a=a.xData;l=C(a[0],l);o=t(a[a.length-1],o)}),c=!1;h=new Date(o);y=h.getFullYear();q=y=t(l||0,Date.UTC(y,0,1));h=h.getTime();h=C(o||h,h)}else{H(e,"beforeRender",function(){d.clickButton(a,b)});return}else j==="year"?(i.setFullYear(i.getFullYear()-k),q=t(l,i.getTime()),s= 31536E6*k):j==="all"&&g&&(q=l,h=o);f[a]&&f[a].setState(2);g?g.setExtremes(q,h,p(c,1),0,{trigger:"rangeSelectorButton",rangeSelectorButton:b}):(c=e.options.xAxis,c[0]=v(c[0],{range:s,min:y}));d.selected=a}},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}],init:function(a){var b=this,c=a.options.rangeSelector,d=c.buttons||[].concat(b.defaultButtons),e=b.buttons= [],c=c.selected,f=b.blurInputs=function(){var a=b.minInput,c=b.maxInput;a&&a.blur();c&&c.blur()};b.chart=a;a.extraTopMargin=25;b.buttonOptions=d;H(a.container,"mousedown",f);H(a,"resize",f);c!==r&&d[c]&&this.clickButton(c,d[c],!1);H(a,"load",function(){H(a.xAxis[0],"afterSetExtremes",function(){if(this.fixedRange!==this.max-this.min)e[b.selected]&&!a.renderer.forExport&&e[b.selected].setState(0),b.selected=null;this.fixedRange=null})})},setInputValue:function(a,b){var c=this.chart.options.rangeSelector; if(b)this[a+"Input"].HCTime=b;this[a+"Input"].value=ya(c.inputEditDateFormat||"%Y-%m-%d",this[a+"Input"].HCTime);this[a+"DateBox"].attr({text:ya(c.inputDateFormat||"%b %e, %Y",this[a+"Input"].HCTime)})},drawInput:function(a){var b=this,c=b.chart,d=c.options.chart.style,e=c.renderer,f=c.options.rangeSelector,g=b.div,h=a==="min",i,j,k,m=this.inputGroup;this[a+"Label"]=j=e.label(K.lang[h?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).attr({padding:1}).css(v(d,f.labelStyle)).add(m);m.offset+= j.width+5;this[a+"DateBox"]=k=e.label("",m.offset).attr({padding:1,width:90,height:16,stroke:"silver","stroke-width":1}).css(v({textAlign:"center"},d,f.inputStyle)).on("click",function(){b[a+"Input"].focus()}).add(m);m.offset+=k.width+(h?10:0);this[a+"Input"]=i=aa("input",{name:a,className:"highcharts-range-selector",type:"text"},z({position:"absolute",border:"2px solid silver",top:"-9999em",textAlign:"center",fontSize:d.fontSize,fontFamily:d.fontFamily},f.inputStyle),g);i.onfocus=function(){M(this, {left:m.translateX+k.x+"px",top:m.translateY+"px",width:k.width-2+"px",height:k.height-2+"px"})};i.onblur=function(){M(this,{top:"-9999em"});b.setInputValue(a)};i.onchange=function(){var a=i.value,d=Date.parse(a),e=c.xAxis[0].getExtremes();isNaN(d)&&(d=a.split("-"),d=Date.UTC(A(d[0]),A(d[1])-1,A(d[2])));if(!isNaN(d)&&(K.global.useUTC||(d+=(new Date).getTimezoneOffset()*6E4),h&&d>=e.dataMin&&d<=b.maxInput.HCTime||!h&&d<=e.dataMax&&d>=b.minInput.HCTime))c.xAxis[0].setExtremes(h?d:e.min,h?e.max:d,r, r,{trigger:"rangeSelectorInput"})}},render:function(a,b){var c=this,d=c.chart,e=d.renderer,f=d.container,g=d.options,h=g.exporting&&d.options.navigation.buttonOptions,i=g.rangeSelector,j=c.buttons,k=K.lang,m=c.div,m=c.inputGroup,l=i.buttonTheme,o=i.inputEnabled!==!1,p=l&&l.states,r=d.plotLeft,t;if(!c.rendered&&(c.zoomText=e.text(k.rangeSelectorZoom,r,d.plotTop-10).css(i.labelStyle).add(),t=r+c.zoomText.getBBox().width+5,n(c.buttonOptions,function(a,b){j[b]=e.button(a.text,t,d.plotTop-25,function(){c.clickButton(b, a);c.isActive=!0},l,p&&p.hover,p&&p.select).css({textAlign:"center"}).add();t+=j[b].width+(i.buttonSpacing||0);c.selected===b&&j[b].setState(2)}),o))c.div=m=aa("div",null,{position:"relative",height:0,zIndex:1}),f.parentNode.insertBefore(m,f),c.inputGroup=m=e.g("input-group").add(),m.offset=0,c.drawInput("min"),c.drawInput("max");o&&(f=d.plotTop-35,m.align(z({y:f,width:m.offset,x:h&&f<(h.y||0)+h.height-g.chart.spacingTop?-40:0},i.inputPosition),!0,d.spacingBox),c.setInputValue("min",a),c.setInputValue("max", b));c.rendered=!0},destroy:function(){var a=this.minInput,b=this.maxInput,c=this.chart,d=this.blurInputs,e;W(c.container,"mousedown",d);W(c,"resize",d);Aa(this.buttons);if(a)a.onfocus=a.onblur=a.onchange=null;if(b)b.onfocus=b.onblur=b.onchange=null;for(e in this)this[e]&&e!=="chart"&&(this[e].destroy?this[e].destroy():this[e].nodeType&&Za(this[e])),this[e]=null}};xa(Qa.prototype,"init",function(a,b,c){H(this,"init",function(){if(this.options.rangeSelector.enabled)this.rangeSelector=new Hb(this)}); a.call(this,b,c)});Highcharts.RangeSelector=Hb;Qa.prototype.callbacks.push(function(a){function b(){f=a.xAxis[0].getExtremes();g.render(t(f.min,f.dataMin),C(f.max,f.dataMax))}function c(){f=a.xAxis[0].getExtremes();h.render(f.min,f.max)}function d(a){g.render(a.min,a.max)}function e(a){h.render(a.min,a.max)}var f,g=a.scroller,h=a.rangeSelector;g&&(H(a.xAxis[0],"afterSetExtremes",d),xa(a,"drawChartBox",function(a){var c=this.isDirtyBox;a.call(this);c&&b()}),b());h&&(H(a.xAxis[0],"afterSetExtremes", e),H(a,"resize",c),c());H(a,"destroy",function(){g&&W(a.xAxis[0],"afterSetExtremes",d);h&&(W(a,"resize",c),W(a.xAxis[0],"afterSetExtremes",e))})});Highcharts.StockChart=function(a,b){var c=a.series,d,e={marker:{enabled:!1,states:{hover:{radius:5}}},states:{hover:{lineWidth:2}}},f={shadow:!1,borderWidth:0};a.xAxis=Fa(ia(a.xAxis||{}),function(a){return v({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"},showLastLabel:!0},a,{type:"datetime",categories:null})});a.yAxis= Fa(ia(a.yAxis||{}),function(a){d=a.opposite;return v({labels:{align:d?"right":"left",x:d?-2:2,y:-2},showLastLabel:!1,title:{text:null}},a)});a.series=null;a=v({chart:{panning:!0,pinchType:"x"},navigator:{enabled:!0},scrollbar:{enabled:!0},rangeSelector:{enabled:!0},title:{text:null},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:e,spline:e,area:e,areaspline:e,arearange:e,areasplinerange:e,column:f,columnrange:f,candlestick:f,ohlc:f}},a,{_stock:!0,chart:{inverted:!1}});a.series= c;return new Qa(a,b)};xa(ob.prototype,"init",function(a,b,c){var d=c.chart.pinchType||"";a.call(this,b,c);this.pinchX=this.pinchHor=d.indexOf("x")!==-1;this.pinchY=this.pinchVert=d.indexOf("y")!==-1});var kc=U.init,lc=U.processData,mc=Ha.prototype.tooltipFormatter;U.init=function(){kc.apply(this,arguments);this.setCompare(this.options.compare)};U.setCompare=function(a){this.modifyValue=a==="value"||a==="percent"?function(b,c){var d=this.compareValue,b=a==="value"?b-d:b=100*(b/d)-100;if(c)c.change= b;return b}:null;if(this.chart.hasRendered)this.isDirty=!0};U.processData=function(){lc.apply(this,arguments);if(this.options.compare)for(var a=0,b=this.processedXData,c=this.processedYData,d=c.length,e=this.xAxis.getExtremes().min;a=e){this.compareValue=c[a];break}};Da.prototype.setCompare=function(a,b){this.isXAxis||(n(this.series,function(b){b.setCompare(a)}),p(b,!0)&&this.chart.redraw())};Ha.prototype.tooltipFormatter=function(a){a=a.replace("{point.change}", (this.change>0?"+":"")+Wa(this.change,this.series.tooltipOptions.changeDecimals||2));return mc.apply(this,[a])};(function(){var a=U.init,b=U.getSegments;U.init=function(){var b,d;a.apply(this,arguments);b=this.chart;(d=this.xAxis)&&d.options.ordinal&&H(this,"updatedData",function(){delete d.ordinalIndex});if(d&&d.options.ordinal&&!d.hasOrdinalExtension){d.hasOrdinalExtension=!0;d.beforeSetTickPositions=function(){var a,b=[],c=!1,e,j=this.getExtremes(),k=j.min,j=j.max,m;if(this.options.ordinal){n(this.series, function(c,d){if(c.visible!==!1&&c.takeOrdinalPosition!==!1&&(b=b.concat(c.processedXData),a=b.length,d&&a)){b.sort(function(a,b){return a-b});for(d=a-1;d--;)b[d]===b[d+1]&&b.splice(d,1)}});a=b.length;if(a>2){e=b[1]-b[0];for(m=a-1;m--&&!c;)b[m+1]-b[m]!==e&&(c=!0)}c?(this.ordinalPositions=b,c=d.val2lin(k,!0),e=d.val2lin(j,!0),this.ordinalSlope=j=(j-k)/(e-c),this.ordinalOffset=k-c*j):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=r}};d.val2lin=function(a,b){var c=this.ordinalPositions;if(c){var d= c.length,e,k;for(e=d;e--;)if(c[e]===a){k=e;break}for(e=d-1;e--;)if(a>c[e]||e===0){c=(a-c[e])/(c[e+1]-c[e]);k=e+c;break}return b?k:this.ordinalSlope*(k||0)+this.ordinalOffset}else return a};d.lin2val=function(a,b){var c=this.ordinalPositions;if(c){var d=this.ordinalSlope,e=this.ordinalOffset,k=c.length-1,m,l;if(b)a<0?a=c[0]:a>k?a=c[k]:(k=V(a),l=a-k);else for(;k--;)if(m=d*k+e,a>=m){d=d*(k+1)+e;l=(a-m)/(d-m);break}return l!==r&&c[k]!==r?c[k]+(l?l*(c[k+1]-c[k]):0):a}else return a};d.getExtendedPositions= function(){var a=d.series[0].currentDataGrouping,e=d.ordinalIndex,h=a?a.count+a.unitName:"raw",i=d.getExtremes(),j,k;if(!e)e=d.ordinalIndex={};if(!e[h])j={series:[],getExtremes:function(){return{min:i.dataMin,max:i.dataMax}},options:{ordinal:!0}},n(d.series,function(d){k={xAxis:j,xData:d.xData,chart:b,destroyGroupedData:qa};k.options={dataGrouping:a?{enabled:!0,forced:!0,approximation:"open",units:[[a.unitName,[a.count]]]}:{enabled:!1}};d.processData.apply(k);j.series.push(k)}),d.beforeSetTickPositions.apply(j), e[h]=j.ordinalPositions;return e[h]};d.getGroupIntervalFactor=function(a,b,c){for(var d=0,e=c.length,k=[];dc;j[n]k*5||w){if(j[n]>z){for(p=eb(a,j[l],j[n],e);p.length&&p[0]<=z;)p.shift();p.length&&(z=p[p.length-1]);v=v.concat(p)}l=n+1}if(w)break}a=p.info;if(m&&a.unitRange<=I[za]){n=v.length-1;for(l=1;lc?a-1: a;for(B=void 0;m--;)l=n[m],c=B-l,B&&c1)o&&n(o,function(a){a.setState()}), i<0?(o=r,r=d.ordinalPositions?d:r):o=d.ordinalPositions?d:r,s=r.ordinalPositions,k>s[s.length-1]&&s.push(k),o=p.apply(o,[u.apply(o,[m,!0])+i,!0]),i=p.apply(r,[u.apply(r,[l,!0])+i,!0]),o>C(j.dataMin,m)&&ia.xAxis.closestPointRange* e&&d.splice(g+1,0,b.splice(h+1,b.length-h))})}})();z(Highcharts,{Axis:Da,Chart:Qa,Color:ua,Legend:Fb,Pointer:ob,Point:Ha,Tick:ab,Tooltip:Eb,Renderer:cb,Series:Z,SVGElement:Ca,SVGRenderer:Ga,arrayMin:Na,arrayMax:sa,charts:Sa,dateFormat:ya,format:Xa,pathAnim:Jb,getOptions:function(){return K},hasBidiBug:cc,isTouchDevice:tb,numberFormat:Wa,seriesTypes:P,setOptions:function(a){K=v(K,a);Sb();return K},addEvent:H,removeEvent:W,createElement:aa,discardElement:Za,css:M,each:n,extend:z,map:Fa,merge:v,pick:p, splat:ia,extendClass:ea,pInt:A,wrap:xa,svg:ca,canvas:ha,vml:!ca&&!ha,product:"Highstock",version:"1.3.0"})})(); site_pro/highstock.js.10000644000000000000000000050274512123075001014064 0ustar rootroot/* Highstock JS v1.3.0 (2013-03-22) (c) 2009-2013 Torstein Hønsi License: www.highcharts.com/license */ (function(){function z(a,b){var c;a||(a={});for(c in b)a[c]=b[c];return a}function v(){var a,b=arguments.length,c={},d=function(a,b){var c,h;for(h in b)b.hasOwnProperty(h)&&(c=b[h],typeof a!=="object"&&(a={}),a[h]=c&&typeof c==="object"&&Object.prototype.toString.call(c)!=="[object Array]"&&typeof c.nodeType!=="number"?d(a[h]||{},c):b[h]);return a};for(a=0;a-1?b.split(".")[1].length:0):a=isNaN(b=T(b))?2:b;var b=a,c=c===void 0?e.decimalPoint:c,d=d===void 0?e.thousandsSep:d,e=f<0?"-":"",a=String(A(f=T(+f||0).toFixed(b))),g=a.length>3?a.length%3:0;return e+(g?a.substr(0,g)+d:"")+a.substr(g).replace(/(\d{3})(?=\d)/g,"$1"+d)+(b?c+T(f-a).toFixed(b).slice(2):"")}function Ja(a,b){return Array((b||2)+1-String(a).length).join(0)+a}function xa(a,b,c){var d=a[b];a[b]=function(){var a= Array.prototype.slice.call(arguments);a.unshift(d);return c.apply(this,a)}}function Xa(a,b){for(var c="{",d=!1,e,f,g,h,i,j=[];(c=a.indexOf(c))!==-1;){e=a.slice(0,c);if(d){f=e.split(":");g=f.shift().split(".");i=g.length;e=b;for(h=0;h-1?h.thousandsSep:"")):e=ya(f,e)}j.push(e);a=a.slice(c+1);c=(d=!d)?"}":"{"}j.push(a);return j.join("")}function xb(a, b,c,d){var e,c=p(c,1);e=a/c;b||(b=[1,2,2.5,5,10],d&&d.allowDecimals===!1&&(c===1?b=[1,2,5,10]:c<=0.1&&(b=[1/c])));for(d=0;d=I[db]&&(i.setMilliseconds(0),i.setSeconds(j>=I[Ya]?0:k*V(i.getSeconds()/k)));if(j>=I[Ya])i[Mb](j>=I[za]?0:k*V(i[zb]()/k));if(j>=I[za])i[Nb](j>=I[fa]?0:k*V(i[Ab]()/k));if(j>=I[fa])i[Bb](j>=I[La]?1:k*V(i[Ma]()/k));j>=I[La]&&(i[Ob](j>=I[ra]?0:k*V(i[kb]()/k)),h=i[lb]());j>=I[ra]&& (h-=h%k,i[Pb](h));if(j===I[Ka])i[Bb](i[Ma]()-i[Cb]()+p(d,1));b=1;h=i[lb]();for(var d=i.getTime(),m=i[kb](),l=i[Ma](),i=g?0:(864E5+i.getTimezoneOffset()*6E4)%864E5;dc&&(c=a[b]);return c}function Aa(a,b){for(var c in a)a[c]&&a[c]!==b&&a[c].destroy&&a[c].destroy(),delete a[c]}function Za(a){nb||(nb=aa(Oa));a&&nb.appendChild(a);nb.innerHTML=""}function Ba(a,b){var c="Highcharts error #"+a+": www.highcharts.com/errors/"+a;if(b)throw c;else X.console&&console.log(c)}function oa(a){return parseFloat(a.toPrecision(14))} function $a(a,b){Pa=p(a,b.animation)}function Sb(){var a=K.global.useUTC,b=a?"getUTC":"get",c=a?"setUTC":"set";mb=a?Date.UTC:function(a,b,c,g,h,i){return(new Date(a,b,p(c,1),p(g,0),p(h,0),p(i,0))).getTime()};zb=b+"Minutes";Ab=b+"Hours";Cb=b+"Day";Ma=b+"Date";kb=b+"Month";lb=b+"FullYear";Mb=c+"Minutes";Nb=c+"Hours";Bb=c+"Date";Ob=c+"Month";Pb=c+"FullYear"}function Ca(){}function ab(a,b,c,d){this.axis=a;this.pos=b;this.type=c||"";this.isNew=!0;!c&&!d&&this.addLabel()}function Db(a,b){this.axis=a;if(b)this.options= b,this.id=b.id}function Tb(a,b,c,d,e,f){var g=a.chart.inverted;this.axis=a;this.isNegative=c;this.options=b;this.x=d;this.stack=e;this.percent=f==="percent";this.alignOptions={align:b.align||(g?c?"left":"right":"center"),verticalAlign:b.verticalAlign||(g?"middle":c?"bottom":"top"),y:p(b.y,g?4:c?14:-6),x:p(b.x,g?c?-6:6:0)};this.textAlign=b.textAlign||(g?c?"right":"left":"center")}function Da(){this.init.apply(this,arguments)}function Eb(){this.init.apply(this,arguments)}function ob(a,b){this.init(a, b)}function Fb(a,b){this.init(a,b)}function Qa(){this.init.apply(this,arguments)}function Gb(a){var b=a.options,c=b.navigator,d=c.enabled,b=b.scrollbar,e=b.enabled,f=d?c.height:0,g=e?b.height:0,h=c.baseSeries;this.baseSeries=a.series[h]||typeof h==="string"&&a.get(h)||a.series[0];this.handles=[];this.scrollbarButtons=[];this.elementsToDestroy=[];this.chart=a;this.height=f;this.scrollbarHeight=g;this.scrollbarEnabled=e;this.navigatorEnabled=d;this.navigatorOptions=c;this.scrollbarOptions=b;this.outlineHeight= f+g;this.init()}function Hb(a){this.init(a)}var r,G=document,X=window,O=Math,s=O.round,V=O.floor,pa=O.ceil,t=O.max,C=O.min,T=O.abs,ga=O.cos,ja=O.sin,bb=O.PI,pb=bb*2/360,Ra=navigator.userAgent,Ub=X.opera,Va=/msie/i.test(Ra)&&!Ub,qb=G.documentMode===8,rb=/AppleWebKit/.test(Ra),sb=/Firefox/.test(Ra),tb=/(Mobile|Android|Windows Phone)/.test(Ra),Ea="http://www.w3.org/2000/svg",ca=!!G.createElementNS&&!!G.createElementNS(Ea,"svg").createSVGRect,cc=sb&&parseInt(Ra.split("Firefox/")[1],10)<4,ha=!ca&&!Va&& !!G.createElement("canvas").getContext,cb,fb=G.documentElement.ontouchstart!==r,Vb={},Ib=0,nb,K,ya,Pa,Jb,I,qa=function(){},Sa=[],Oa="div",ba="none",Wb="rgba(192,192,192,"+(ca?1.0E-4:0.002)+")",jb="millisecond",db="second",Ya="minute",za="hour",fa="day",Ka="week",La="month",ra="year",Xb="stroke-width",mb,zb,Ab,Cb,Ma,kb,lb,Mb,Nb,Bb,Ob,Pb,P={};X.Highcharts=X.Highcharts?Ba(16,!0):{};ya=function(a,b,c){if(!x(b)||isNaN(b))return"Invalid date";var a=p(a,"%Y-%m-%d %H:%M:%S"),d=new Date(b),e,f=d[Ab](),g=d[Cb](), h=d[Ma](),i=d[kb](),j=d[lb](),k=K.lang,m=k.weekdays,d=z({a:m[g].substr(0,3),A:m[g],d:Ja(h),e:h,b:k.shortMonths[i],B:k.months[i],m:Ja(i+1),y:j.toString().substr(2,2),Y:j,H:Ja(f),I:Ja(f%12||12),l:f%12||12,M:Ja(d[zb]()),p:f<12?"AM":"PM",P:f<12?"am":"pm",S:Ja(d.getSeconds()),L:Ja(s(b%1E3),3)},Highcharts.dateFormats);for(e in d)for(;a.indexOf("%"+e)!==-1;)a=a.replace("%"+e,typeof d[e]==="function"?d[e](b):d[e]);return c?a.substr(0,1).toUpperCase()+a.substr(1):a};Qb.prototype={wrapColor:function(a){if(this.color>= a)this.color=0},wrapSymbol:function(a){if(this.symbol>=a)this.symbol=0}};I=ib(jb,1,db,1E3,Ya,6E4,za,36E5,fa,864E5,Ka,6048E5,La,26784E5,ra,31556952E3);Jb={init:function(a,b,c){var b=b||"",d=a.shift,e=b.indexOf("C")>-1,f=e?7:3,g,b=b.split(" "),c=[].concat(c),h,i,j=function(a){for(g=a.length;g--;)a[g]==="M"&&a.splice(g+1,0,a[g+1],a[g+2],a[g+1],a[g+2])};e&&(j(b),j(c));a.isArea&&(h=b.splice(b.length-6,6),i=c.splice(c.length-6,6));if(d<=c.length/f)for(;d--;)c=[].concat(c).splice(0,f).concat(c);a.shift= 0;if(b.length)for(a=c.length;b.length{point.key}

    ', pointFormat:'{series.name}: {point.y}
    ',shadow:!0,snap:tb?25:10,style:{color:"#333333",cursor:"default",fontSize:"12px",padding:"8px",whiteSpace:"nowrap"}},credits:{enabled:!0,text:"Highcharts.com",href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#909090",fontSize:"9px"}}};var R=K.plotOptions,Q=R.line;Sb();var ua=function(a){var b=[],c,d;(function(a){a&&a.stops?d=Fa(a.stops, function(a){return ua(a[1])}):(c=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/.exec(a))?b=[A(c[1]),A(c[2]),A(c[3]),parseFloat(c[4],10)]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(a))?b=[A(c[1],16),A(c[2],16),A(c[3],16),1]:(c=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(a))&&(b=[A(c[1]),A(c[2]),A(c[3]),1])})(a);return{get:function(c){var f;d?(f=v(a),f.stops=[].concat(f.stops),n(d,function(a,b){f.stops[b]=[f.stops[b][0], a.get(c)]})):f=b&&!isNaN(b[0])?c==="rgb"?"rgb("+b[0]+","+b[1]+","+b[2]+")":c==="a"?b[3]:"rgba("+b.join(",")+")":a;return f},brighten:function(a){if(d)n(d,function(b){b.brighten(a)});else if(va(a)&&a!==0){var c;for(c=0;c<3;c++)b[c]+=A(a*255),b[c]<0&&(b[c]=0),b[c]>255&&(b[c]=255)}return this},rgba:b,setOpacity:function(a){b[3]=a;return this}}};Ca.prototype={init:function(a,b){this.element=b==="span"?aa(b):G.createElementNS(Ea,b);this.renderer=a;this.attrSetters={}},opacity:1,animate:function(a,b,c){b= p(b,Pa,!0);gb(this);if(b){b=v(b);if(c)b.complete=c;Kb(this,a,b)}else this.attr(a),c&&c()},attr:function(a,b){var c,d,e,f,g=this.element,h=g.nodeName.toLowerCase(),i=this.renderer,j,k=this.attrSetters,m=this.shadows,l,o,q=this;ma(a)&&x(b)&&(c=a,a={},a[c]=b);if(ma(a))c=a,h==="circle"?c={x:"cx",y:"cy"}[c]||c:c==="strokeWidth"&&(c="stroke-width"),q=L(g,c)||this[c]||0,c!=="d"&&c!=="visibility"&&(q=parseFloat(q));else{for(c in a)if(j=!1,d=a[c],e=k[c]&&k[c].call(this,d,c),e!==!1){e!==r&&(d=e);if(c==="d")d&& d.join&&(d=d.join(" ")),/(NaN| {2}|^$)/.test(d)&&(d="M 0 0");else if(c==="x"&&h==="text")for(e=0;el&&/[ \-]/.test(b.textContent||b.innerText))M(b,{width:l+"px",display:"block",whiteSpace:"normal"}),k=l;l=a.fontMetrics(b.style.fontSize).b;y=q<0&&-k;u=o<0&&-m;N=q*o<0;y+=o*l*(N?1-h:h);u-=q*l*(j?N?h:1-h:1);i&&(y-=k*h*(q<0?-1:1),j&&(u-=m*h*(o<0?-1:1)),M(b,{textAlign:g}));this.xCorr=y;this.yCorr=u}M(b,{left:e+y+"px",top:f+u+"px"});if(rb)m=b.offsetHeight;this.cTT=w}}else this.alignOnAdd=!0},updateTransform:function(){var a=this.translateX|| 0,b=this.translateY||0,c=this.scaleX,d=this.scaleY,e=this.inverted,f=this.rotation,g=[];e&&(a+=this.attr("width"),b+=this.attr("height"));(a||b)&&g.push("translate("+a+","+b+")");e?g.push("rotate(90) scale(-1,1)"):f&&g.push("rotate("+f+" "+(this.x||0)+" "+(this.y||0)+")");(x(c)||x(d))&&g.push("scale("+p(c,1)+" "+p(d,1)+")");g.length&&L(this.element,"transform",g.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},align:function(a,b,c){var d,e,f,g,h={};e=this.renderer; f=e.alignedObjects;if(a){if(this.alignOptions=a,this.alignByTranslate=b,!c||ma(c))this.alignTo=d=c||"renderer",na(f,this),f.push(this),c=null}else a=this.alignOptions,b=this.alignByTranslate,d=this.alignTo;c=p(c,e[d],e);d=a.align;e=a.verticalAlign;f=(c.x||0)+(a.x||0);g=(c.y||0)+(a.y||0);if(d==="right"||d==="center")f+=(c.width-(a.width||0))/{right:1,center:2}[d];h[b?"translateX":"x"]=s(f);if(e==="bottom"||e==="middle")g+=(c.height-(a.height||0))/({bottom:1,middle:2}[e]||1);h[b?"translateY":"y"]=s(g); this[this.placed?"animate":"attr"](h);this.placed=!0;this.alignAttr=h;return this},getBBox:function(){var a=this.bBox,b=this.renderer,c,d=this.rotation;c=this.element;var e=this.styles,f=d*pb;if(!a){if(c.namespaceURI===Ea||b.forExport){try{a=c.getBBox?z({},c.getBBox()):{width:c.offsetWidth,height:c.offsetHeight}}catch(g){}if(!a||a.width<0)a={width:0,height:0}}else a=this.htmlGetBBox();if(b.isSVG){b=a.width;c=a.height;if(Va&&e&&e.fontSize==="11px"&&c.toPrecision(3)===22.7)a.height=c=14;if(d)a.width= T(c*ja(f))+T(b*ga(f)),a.height=T(c*ga(f))+T(b*ja(f))}this.bBox=a}return a},show:function(){return this.attr({visibility:"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(a){var b=this;b.animate({opacity:0},{duration:a||150,complete:function(){b.hide()}})},add:function(a){var b=this.renderer,c=a||b,d=c.element||b.box,e=d.childNodes,f=this.element,g=L(f,"zIndex"),h;if(a)this.parentGroup=a;this.parentInverted=a&&a.inverted;this.textStr!==void 0&&b.buildText(this); if(g)c.handleZ=!0,g=A(g);if(c.handleZ)for(c=0;cg||!x(g)&&x(b))){d.insertBefore(f,a);h=!0;break}h||d.appendChild(f);this.added=!0;D(this,"add");return this},safeRemoveChild:function(a){var b=a.parentNode;b&&b.removeChild(a)},destroy:function(){var a=this,b=a.element||{},c=a.shadows,d,e;b.onclick=b.onmouseout=b.onmouseover=b.onmousemove=b.point=null;gb(a);if(a.clipPath)a.clipPath=a.clipPath.destroy();if(a.stops){for(e=0;e/g,'').replace(/<(i|em)>/g, '').replace(/
    /g,"").split(//g),f=b.childNodes,g=/style="([^"]+)"/,h=/href="([^"]+)"/,i=L(b,"x"),j=a.styles,k=j&&j.width&&A(j.width),m=j&&j.lineHeight,l=f.length;l--;)b.removeChild(f[l]);k&&!a.added&&this.box.appendChild(b);e[e.length-1]===""&&e.pop();n(e,function(e,f){var l,y=0,e=e.replace(//g,"|||");l=e.split("|||");n(l,function(e){if(e!==""||l.length===1){var o={}, n=G.createElementNS(Ea,"tspan"),p;g.test(e)&&(p=e.match(g)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),L(n,"style",p));h.test(e)&&!d&&(L(n,"onclick",'location.href="'+e.match(h)[1]+'"'),M(n,{cursor:"pointer"}));e=(e.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"<").replace(/>/g,">");n.appendChild(G.createTextNode(e));y?o.dx=0:o.x=i;L(n,o);!y&&f&&(!ca&&d&&M(n,{display:"block"}),L(n,"dy",m||c.fontMetrics(/px$/.test(n.style.fontSize)?n.style.fontSize:j.fontSize).h,rb&&n.offsetHeight));b.appendChild(n); y++;if(k)for(var e=e.replace(/([^\^])-/g,"$1- ").split(" "),E,B=[];e.length||B.length;)delete a.bBox,E=a.getBBox().width,o=E>k,!o||e.length===1?(e=B,B=[],e.length&&(n=G.createElementNS(Ea,"tspan"),L(n,{dy:m||16,x:i}),p&&L(n,"style",p),b.appendChild(n),E>k&&(k=E))):(n.removeChild(n.firstChild),B.unshift(e.pop())),e.length&&n.appendChild(G.createTextNode(e.join(" ").replace(/- /g,"-")))}})})},button:function(a,b,c,d,e,f,g){var h=this.label(a,b,c,null,null,null,null,null,"button"),i=0,j,k,m,l,o,a={x1:0, y1:0,x2:0,y2:1},e=v({"stroke-width":1,stroke:"#CCCCCC",fill:{linearGradient:a,stops:[[0,"#FEFEFE"],[1,"#F6F6F6"]]},r:2,padding:5,style:{color:"black"}},e);m=e.style;delete e.style;f=v(e,{stroke:"#68A",fill:{linearGradient:a,stops:[[0,"#FFF"],[1,"#ACF"]]}},f);l=f.style;delete f.style;g=v(e,{stroke:"#68A",fill:{linearGradient:a,stops:[[0,"#9BD"],[1,"#CDF"]]}},g);o=g.style;delete g.style;H(h.element,"mouseenter",function(){h.attr(f).css(l)});H(h.element,"mouseleave",function(){j=[e,f,g][i];k=[m,l,o][i]; h.attr(j).css(k)});h.setState=function(a){(i=a)?a===2&&h.attr(g).css(o):h.attr(e).css(m)};return h.on("click",function(){d.call(h)}).attr(e).css(z({cursor:"default"},m))},crispLine:function(a,b){a[1]===a[4]&&(a[1]=a[4]=s(a[1])-b%2/2);a[2]===a[5]&&(a[2]=a[5]=s(a[2])+b%2/2);return a},path:function(a){var b={fill:ba};Ua(a)?b.d=a:da(a)&&z(b,a);return this.createElement("path").attr(b)},circle:function(a,b,c){a=da(a)?a:{x:a,y:b,r:c};return this.createElement("circle").attr(a)},arc:function(a,b,c,d,e,f){if(da(a))b= a.y,c=a.r,d=a.innerR,e=a.start,f=a.end,a=a.x;return this.symbol("arc",a||0,b||0,c||0,c||0,{innerR:d||0,start:e||0,end:f||0})},rect:function(a,b,c,d,e,f){e=da(a)?a.r:e;e=this.createElement("rect").attr({rx:e,ry:e,fill:ba});return e.attr(da(a)?a:e.crisp(f,a,b,t(c,0),t(d,0)))},setSize:function(a,b,c){var d=this.alignedObjects,e=d.length;this.width=a;this.height=b;for(this.boxWrapper[p(c,!0)?"animate":"attr"]({width:a,height:b});e--;)d[e].align()},g:function(a){var b=this.createElement("g");return x(a)? b.attr({"class":"highcharts-"+a}):b},image:function(a,b,c,d,e){var f={preserveAspectRatio:ba};arguments.length>1&&z(f,{x:b,y:c,width:d,height:e});f=this.createElement("image").attr(f);f.element.setAttributeNS?f.element.setAttributeNS("http://www.w3.org/1999/xlink","href",a):f.element.setAttribute("hc-svg-href",a);return f},symbol:function(a,b,c,d,e,f){var g,h=this.symbols[a],h=h&&h(s(b),s(c),d,e,f),i=/^url\((.*?)\)$/,j,k;h?(g=this.path(h),z(g,{symbolName:a,x:b,y:c,width:d,height:e}),f&&z(g,f)):i.test(a)&& (k=function(a,b){a.element&&(a.attr({width:b[0],height:b[1]}),a.alignByTranslate||a.translate(s((d-b[0])/2),s((e-b[1])/2)))},j=a.match(i)[1],a=Vb[j],g=this.image(j).attr({x:b,y:c}),a?k(g,a):(g.attr({width:0,height:0}),aa("img",{onload:function(){k(g,Vb[j]=[this.width,this.height])},src:j})));return g},symbols:{circle:function(a,b,c,d){var e=0.166*c;return["M",a+c/2,b,"C",a+c+e,b,a+c+e,b+d,a+c/2,b+d,"C",a-e,b+d,a-e,b,a+c/2,b,"Z"]},square:function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c,b+d,a,b+d,"Z"]}, triangle:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d,a,b+d,"Z"]},"triangle-down":function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c/2,b+d,"Z"]},diamond:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d/2,a+c/2,b+d,a,b+d/2,"Z"]},arc:function(a,b,c,d,e){var f=e.start,c=e.r||c||d,g=e.end-0.001,d=e.innerR,h=e.open,i=ga(f),j=ja(f),k=ga(g),g=ja(g),e=e.end-f');if(b)c=e||b==="span"||b==="img"?c.join(""):a.prepVML(c),this.element=aa(c);this.renderer=a;this.attrSetters={}},add:function(a){var b=this.renderer,c=this.element,d=b.box,d=a?a.element||a:d;a&&a.inverted&&b.invertChild(c,d);d.appendChild(c);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();D(this,"add");return this}, updateTransform:Ca.prototype.htmlUpdateTransform,attr:function(a,b){var c,d,e,f=this.element||{},g=f.style,h=f.nodeName,i=this.renderer,j=this.symbolName,k,m=this.shadows,l,o=this.attrSetters,q=this;ma(a)&&x(b)&&(c=a,a={},a[c]=b);if(ma(a))c=a,q=c==="strokeWidth"||c==="stroke-width"?this.strokeweight:this[c];else for(c in a)if(d=a[c],l=!1,e=o[c]&&o[c].call(this,d,c),e!==!1&&d!==null){e!==r&&(d=e);if(j&&/^(x|y|r|start|end|width|height|innerR|anchorX|anchorY)/.test(c))k||(this.symbolAttr(a),k=!0),l= !0;else if(c==="d"){d=d||[];this.d=d.join(" ");e=d.length;for(l=[];e--;)if(va(d[e]))l[e]=s(d[e]*10)-5;else if(d[e]==="Z")l[e]="x";else if(l[e]=d[e],d[e]==="wa"||d[e]==="at")l[e+5]===l[e+7]&&(l[e+7]-=1),l[e+6]===l[e+8]&&(l[e+8]-=1);d=l.join(" ")||"x";f.path=d;if(m)for(e=m.length;e--;)m[e].path=m[e].cutOff?this.cutOffPath(d,m[e].cutOff):d;l=!0}else if(c==="visibility"){if(m)for(e=m.length;e--;)m[e].style[c]=d;h==="DIV"&&(d=d==="hidden"?"-999em":0,qb||(g[c]=d?"hidden":"visible"),c="top");g[c]=d;l=!0}else if(c=== "zIndex")d&&(g[c]=d),l=!0;else if(ta(c,["x","y","width","height"])!==-1)this[c]=d,c==="x"||c==="y"?c={x:"left",y:"top"}[c]:d=t(0,d),this.updateClipping?(this[c]=d,this.updateClipping()):g[c]=d,l=!0;else if(c==="class"&&h==="DIV")f.className=d;else if(c==="stroke")d=i.color(d,f,c),c="strokecolor";else if(c==="stroke-width"||c==="strokeWidth")f.stroked=d?!0:!1,c="strokeweight",this[c]=d,va(d)&&(d+="px");else if(c==="dashstyle")(f.getElementsByTagName("stroke")[0]||aa(i.prepVML([""]),null,null, f))[c]=d||"solid",this.dashstyle=d,l=!0;else if(c==="fill")if(h==="SPAN")g.color=d;else{if(h!=="IMG")f.filled=d!==ba?!0:!1,d=i.color(d,f,c,this),c="fillcolor"}else if(c==="opacity")l=!0;else if(h==="shape"&&c==="rotation")this[c]=d,f.style.left=-s(ja(d*pb)+1)+"px",f.style.top=s(ga(d*pb))+"px";else if(c==="translateX"||c==="translateY"||c==="rotation")this[c]=d,this.updateTransform(),l=!0;else if(c==="text")this.bBox=null,f.innerHTML=d,l=!0;l||(qb?f[c]=d:L(f,c,d))}return q},clip:function(a){var b= this,c;a?(c=a.members,na(c,b),c.push(b),b.destroyClip=function(){na(c,b)},a=a.getCSS(b)):(b.destroyClip&&b.destroyClip(),a={clip:qb?"inherit":"rect(auto)"});return b.css(a)},css:Ca.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&Za(a)},destroy:function(){this.destroyClip&&this.destroyClip();return Ca.prototype.destroy.apply(this)},on:function(a,b){this.element["on"+a]=function(){var a=X.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c,a=a.split(/[ ,]/);c=a.length; if(c===9||c===11)a[c-4]=a[c-2]=A(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,c){var d=[],e,f=this.element,g=this.renderer,h,i=f.style,j,k=f.path,m,l,o,q;k&&typeof k.value!=="string"&&(k="x");l=k;if(a){o=p(a.width,3);q=(a.opacity||0.15)/o;for(e=1;e<=3;e++){m=o*2+1-2*e;c&&(l=this.cutOffPath(k.value,m+0.5));j=[''];h=aa(g.prepVML(j),null,{left:A(i.left)+p(a.offsetX,1),top:A(i.top)+ p(a.offsetY,1)});if(c)h.cutOff=m+1;j=[''];aa(g.prepVML(j),null,null,h);b?b.element.appendChild(h):f.parentNode.insertBefore(h,f);d.push(h)}this.shadows=d}return this}},Y=ea(Ca,Y),Y={Element:Y,isIE8:Ra.indexOf("MSIE 8.0")>-1,init:function(a,b,c){var d,e;this.alignedObjects=[];d=this.createElement(Oa);e=d.element;e.style.position="relative";a.appendChild(d.element);this.isVML=!0;this.box=e;this.boxWrapper=d;this.setSize(b,c,!1);if(!G.namespaces.hcv)G.namespaces.add("hcv", "urn:schemas-microsoft-com:vml"),G.createStyleSheet().cssText="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } "},isHidden:function(){return!this.box.offsetWidth},clipRect:function(a,b,c,d){var e=this.createElement(),f=da(a);return z(e,{members:[],left:f?a.x:a,top:f?a.y:b,width:f?a.width:c,height:f?a.height:d,getCSS:function(a){var b=a.element,c=b.nodeName,a=a.inverted,d=this.top-(c==="shape"?b.offsetTop:0),e=this.left,b=e+this.width,f=d+this.height, d={clip:"rect("+s(a?e:d)+"px,"+s(a?f:b)+"px,"+s(a?b:f)+"px,"+s(a?d:e)+"px)"};!a&&qb&&c==="DIV"&&z(d,{width:b+"px",height:f+"px"});return d},updateClipping:function(){n(e.members,function(a){a.css(e.getCSS(a))})}})},color:function(a,b,c,d){var e=this,f,g=/^rgba/,h,i,j=ba;a&&a.linearGradient?i="gradient":a&&a.radialGradient&&(i="pattern");if(i){var k,m,l=a.linearGradient||a.radialGradient,o,q,p,y,u,w="",a=a.stops,t,$=[],E=function(){h=[''];aa(e.prepVML(h),null,null,b)};o=a[0];t=a[a.length-1];o[0]>0&&a.unshift([0,o[1]]);t[0]<1&&a.push([1,t[1]]);n(a,function(a,b){g.test(a[1])?(f=ua(a[1]),k=f.get("rgb"),m=f.get("a")):(k=a[1],m=1);$.push(a[0]*100+"% "+k);b?(p=m,y=k):(q=m,u=k)});if(c==="fill")if(i==="gradient")c=l.x1||l[0]||0,a=l.y1||l[1]||0,o=l.x2||l[2]||0,l=l.y2||l[3]||0,w='angle="'+(90-O.atan((l-a)/(o-c))*180/bb)+'"',E();else{var j=l.r,B=j*2,S=j*2,r=l.cx,x=l.cy,s=b.radialReference,v, j=function(){s&&(v=d.getBBox(),r+=(s[0]-v.x)/v.width-0.5,x+=(s[1]-v.y)/v.height-0.5,B*=s[2]/v.width,S*=s[2]/v.height);w='src="'+K.global.VMLRadialGradientURL+'" size="'+B+","+S+'" origin="0.5,0.5" position="'+r+","+x+'" color2="'+u+'" ';E()};d.added?j():H(d,"add",j);j=y}else j=k}else if(g.test(a)&&b.tagName!=="IMG")f=ua(a),h=["<",c,' opacity="',f.get("a"),'"/>'],aa(this.prepVML(h),null,null,b),j=f.get("rgb");else{j=b.getElementsByTagName(c);if(j.length)j[0].opacity=1,j[0].type="solid";j=a}return j}, prepVML:function(a){var b=this.isIE8,a=a.join("");b?(a=a.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),a=a.indexOf('style="')===-1?a.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):a.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):a=a.replace("<","1&&f.attr({x:b,y:c,width:d,height:e});return f},rect:function(a,b,c,d,e,f){if(da(a))b=a.y,c=a.width,d=a.height,f=a.strokeWidth,a=a.x;var g=this.symbol("rect");g.r=e;return g.attr(g.crisp(f,a,b,t(c,0),t(d,0)))}, invertChild:function(a,b){var c=b.style;M(a,{flip:"x",left:A(c.width)-1,top:A(c.height)-1,rotation:-90})},symbols:{arc:function(a,b,c,d,e){var f=e.start,g=e.end,h=e.r||c||d,c=e.innerR,d=ga(f),i=ja(f),j=ga(g),k=ja(g);if(g-f===0)return["x"];f=["wa",a-h,b-h,a+h,b+h,a+h*d,b+h*i,a+h*j,b+h*k];e.open&&!c&&f.push("e","M",a,b);f.push("at",a-c,b-c,a+c,b+c,a+c*j,b+c*k,a+c*d,b+c*i,"x","e");return f},circle:function(a,b,c,d){return["wa",a,b,a+c,b+d,a+c,b+d/2,a+c,b+d/2,"e"]},rect:function(a,b,c,d,e){var f=a+c, g=b+d,h;!x(e)||!e.r?f=Ga.prototype.symbols.square.apply(0,arguments):(h=C(e.r,c,d),f=["M",a+h,b,"L",f-h,b,"wa",f-2*h,b,f,b+2*h,f-h,b,f,b+h,"L",f,g-h,"wa",f-2*h,g-2*h,f,g,f,g-h,f-h,g,"L",a+h,g,"wa",a,g-2*h,a+2*h,g,a+h,g,a,g-h,"L",a,b+h,"wa",a,b,a+2*h,b+2*h,a,b+h,a+h,b,"x","e"]);return f}}},Highcharts.VMLRenderer=hb=function(){this.init.apply(this,arguments)},hb.prototype=v(Ga.prototype,Y),cb=hb;var $b;if(ha)Highcharts.CanVGRenderer=Y=function(){Ea="http://www.w3.org/1999/xhtml"},Y.prototype.symbols= {},$b=function(){function a(){var a=b.length,d;for(d=0;dj&&(c=!1)):h+k>l&&(h=l-k,d&&h+m0&&b.height>0){f=v({align:c&&k&&"center",x:c?!k&&4:10,verticalAlign:!c&&k&&"middle",y:c?k?16:10:k?6:-4,rotation:c&&!k&&90},f);if(!g)a.label=g=r.text(f.text,0,0).attr({align:f.textAlign||f.align,rotation:f.rotation, zIndex:u}).css(f.style).add();b=[q[1],q[4],p(q[6],q[1])];q=[q[2],q[5],p(q[7],q[2])];c=Na(b);k=Na(q);g.align(f,!1,{x:c,y:k,width:sa(b)-c,height:sa(q)-k});g.show()}else g&&g.hide();return a},destroy:function(){na(this.axis.plotLinesAndBands,this);Aa(this,this.axis)}};Tb.prototype={destroy:function(){Aa(this,this.axis)},setTotal:function(a){this.cum=this.total=a},render:function(a){var b=this.options,c=b.formatter.call(this);this.label?this.label.attr({text:c,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(c, 0,0,b.useHTML).css(b.style).attr({align:this.textAlign,rotation:b.rotation,visibility:"hidden"}).add(a)},setOffset:function(a,b){var c=this.axis,d=c.chart,e=d.inverted,f=this.isNegative,g=c.translate(this.percent?100:this.total,0,0,0,1),c=c.translate(0),c=T(g-c),h=d.xAxis[0].translate(this.x)+a,i=d.plotHeight,f={x:e?f?g:g-c:h,y:e?i-h-b:f?i-g-c:i-g,width:e?c:b,height:e?b:c};if(e=this.label)e.align(this.alignOptions,null,f),f=e.alignAttr,e.attr({visibility:this.options.crop===!1||d.isInsidePlot(f.x, f.y)?ca?"inherit":"visible":"hidden"})}};Da.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,gridLineColor:"#C0C0C0",labels:F,lineColor:"#C0D0E0",lineWidth:1,minPadding:0.01,maxPadding:0.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickColor:"#C0D0E0",tickLength:5, tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",tickWidth:1,title:{align:"middle",style:{color:"#4d759e",fontWeight:"bold"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0,labels:{align:"right",x:-8,y:3},lineWidth:0,maxPadding:0.05,minPadding:0.05,startOnTick:!0,tickWidth:0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return this.total},style:F.style}},defaultLeftAxisOptions:{labels:{align:"right", x:-8,y:null},title:{rotation:270}},defaultRightAxisOptions:{labels:{align:"left",x:8,y:null},title:{rotation:90}},defaultBottomAxisOptions:{labels:{align:"center",x:0,y:14},title:{rotation:0}},defaultTopAxisOptions:{labels:{align:"center",x:0,y:-5},title:{rotation:0}},init:function(a,b){var c=b.isX;this.horiz=a.inverted?!c:c;this.xOrY=(this.isXAxis=c)?"x":"y";this.opposite=b.opposite;this.side=this.horiz?this.opposite?0:2:this.opposite?1:3;this.setOptions(b);var d=this.options,e=d.type;this.labelFormatter= d.labels.formatter||this.defaultLabelFormatter;this.staggerLines=this.horiz&&d.labels.staggerLines;this.userOptions=b;this.minPixelPadding=0;this.chart=a;this.reversed=d.reversed;this.zoomEnabled=d.zoomEnabled!==!1;this.categories=d.categories||e==="category";this.isLog=e==="logarithmic";this.isDatetimeAxis=e==="datetime";this.isLinked=x(d.linkedTo);this.tickmarkOffset=this.categories&&d.tickmarkPlacement==="between"?0.5:0;this.ticks={};this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands= {};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom;this.range=d.range;this.offset=d.offset||0;this.stacks={};this._stacksTouched=0;this.min=this.max=null;var f,d=this.options.events;ta(this,a.axes)===-1&&(a.axes.push(this),a[c?"xAxis":"yAxis"].push(this));this.series=this.series||[];if(a.inverted&&c&&this.reversed===r)this.reversed=!0;this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(f in d)H(this,f,d[f]);if(this.isLog)this.val2lin=wa,this.lin2val=la},setOptions:function(a){this.options= v(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],v(K[this.isXAxis?"xAxis":"yAxis"],a))},update:function(a,b){var c=this.chart,a=c.options[this.xOrY+"Axis"][this.options.index]=v(this.userOptions,a);this.destroy();this._addedPlotLB=!1;this.init(c,a);c.isDirtyBox=!0;p(b,!0)&&c.redraw()},remove:function(a){var b=this.chart,c=this.xOrY+"Axis";n(this.series,function(a){a.remove(!1)}); na(b.axes,this);na(b[c],this);b.options[c].splice(this.options.index,1);this.destroy();b.isDirtyBox=!0;p(a,!0)&&b.redraw()},defaultLabelFormatter:function(){var a=this.axis,b=this.value,c=a.categories,d=this.dateTimeLabelFormat,e=K.lang.numericSymbols,f=e&&e.length,g,h=a.options.labels.format,a=a.isLog?b:a.tickInterval;if(h)g=Xa(h,this);else if(c)g=b;else if(d)g=ya(d,b);else if(f&&a>=1E3)for(;f--&&g===r;)c=Math.pow(1E3,f+1),a>=c&&e[f]!==null&&(g=Wa(b/c,-1)+e[f]);g===r&&(g=b>=1E3?Wa(b,0):Wa(b,-1)); return g},getSeriesExtremes:function(){var a=this,b=a.chart,c=a.stacks,d=[],e=[],f=a._stacksTouched+=1,g,h;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=null;n(a.series,function(g){if(g.visible||!b.options.chart.ignoreHiddenSeries){var j=g.options,k,m,l,o,q,n,y,u,w,s=j.threshold,$,E=[],B=0;a.hasVisibleSeries=!0;if(a.isLog&&s<=0)s=j.threshold=null;if(a.isXAxis){if(j=g.xData,j.length)a.dataMin=C(p(a.dataMin,j[0]),Na(j)),a.dataMax=t(p(a.dataMax,j[0]),sa(j))}else{var S,v,J,z=g.cropped,A=g.xAxis.getExtremes(), H=!!g.modifyValue;k=j.stacking;a.usePercentage=k==="percent";if(k)q=j.stack,o=g.type+p(q,""),n="-"+o,g.stackKey=o,m=d[o]||[],d[o]=m,l=e[n]||[],e[n]=l;if(a.usePercentage)a.dataMin=0,a.dataMax=99;j=g.processedXData;y=g.processedYData;$=y.length;for(h=0;h<$;h++){u=j[h];w=y[h];if(k)v=(S=w0))if(H&& (w=g.modifyValue(w)),g.getExtremesFromAll||z||(j[h+1]||u)>=A.min&&(j[h-1]||u)<=A.max)if(u=w.length)for(;u--;)w[u]!==null&&(E[B++]=w[u]);else E[B++]=w}if(!a.usePercentage&&E.length)g.dataMin=k=Na(E),g.dataMax=g=sa(E),a.dataMin=C(p(a.dataMin,k),k),a.dataMax=t(p(a.dataMax,g),g);if(x(s))if(a.dataMin>=s)a.dataMin=s,a.ignoreMinPadding=!0;else if(a.dataMaxf+this.width)l=!0}else if(c=f,i=m-this.right,hg+this.height)l=!0;return l&&!d?null:e.renderer.crispLine(["M",c,h,"L",i,j],b||0)},getPlotBandPath:function(a,b){var c=this.getPlotLinePath(b), d=this.getPlotLinePath(a);d&&c?d.push(c[4],c[5],c[1],c[2]):d=null;return d},getLinearTickPositions:function(a,b,c){for(var d,b=oa(V(b/a)*a),c=oa(pa(c/a)*a),e=[];b<=c;){e.push(b);b=oa(b+a);if(b===d)break;d=b}return e},getLogTickPositions:function(a,b,c,d){var e=this.options,f=this.len,g=[];if(!d)this._minorAutoInterval=null;if(a>=0.5)a=s(a),g=this.getLinearTickPositions(a,b,c);else if(a>=0.08)for(var f=V(b),h,i,j,k,m,e=a>0.3?[1,2,4]:a>0.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];fb&&k<=c&&g.push(k),k>c&&(m=!0),k=j}else if(b=la(b),c=la(c),a=e[d?"minorTickInterval":"tickInterval"],a=p(a==="auto"?null:a,this._minorAutoInterval,(c-b)*(e.tickPixelInterval/(d?5:1))/((d?f/this.tickPositions.length:f)||1)),a=xb(a,null,O.pow(10,V(O.log(a)/O.LN10))),g=Fa(this.getLinearTickPositions(a,b,c),wa),!d)this._minorAutoInterval=a/5;if(!d)this.tickInterval=a;return g},getMinorTickPositions:function(){var a=this.options,b=this.tickPositions,c=this.minorTickInterval, d=[],e;if(this.isLog){e=b.length;for(a=1;a=this.minRange,f,g,h,i,j;if(this.isXAxis&&this.minRange===r&&!this.isLog)x(a.min)||x(a.max)? this.minRange=null:(n(this.series,function(a){i=a.xData;for(g=j=a.xIncrement?1:i.length-1;g>0;g--)if(h=i[g]-i[g-1],f===r||hb&&(g=0);c=t(c,g);e=t(e,h?0:g/2);f=t(f,h==="on"?0:g);!a.noSharedTooltip&&x(m)&&(d=x(d)?C(d,m):m)}),this.minPointOffset=e,this.pointRangePadding=f,this.pointRange=C(c,b),this.closestPointRange=d;if(a)this.oldTransA=h;this.translationSlope=this.transA=h=this.len/(b+f||1);this.transB=this.horiz?this.left:this.bottom;this.minPixelPadding=h*e},setTickPositions:function(a){var b= this,c=b.chart,d=b.options,e=b.isLog,f=b.isDatetimeAxis,g=b.isXAxis,h=b.isLinked,i=b.options.tickPositioner,j=d.maxPadding,k=d.minPadding,m=d.tickInterval,l=d.minTickInterval,o=d.tickPixelInterval,q=b.categories;h?(b.linkedParent=c[g?"xAxis":"yAxis"][d.linkedTo],c=b.linkedParent.getExtremes(),b.min=p(c.min,c.dataMin),b.max=p(c.max,c.dataMax),d.type!==b.linkedParent.options.type&&Ba(11,1)):(b.min=p(b.userMin,d.min,b.dataMin),b.max=p(b.userMax,d.max,b.dataMax));if(e)!a&&C(b.min,p(b.dataMin,b.min))<= 0&&Ba(10,1),b.min=oa(wa(b.min)),b.max=oa(wa(b.max));if(b.range&&(b.userMin=b.min=t(b.min,b.max-b.range),b.userMax=b.max,a))b.range=null;b.beforePadding&&b.beforePadding();b.adjustForMinRange();if(!q&&!b.usePercentage&&!h&&x(b.min)&&x(b.max)&&(c=b.max-b.min)){if(!x(d.min)&&!x(b.userMin)&&k&&(b.dataMin<0||!b.ignoreMinPadding))b.min-=c*k;if(!x(d.max)&&!x(b.userMax)&&j&&(b.dataMax>0||!b.ignoreMaxPadding))b.max+=c*j}b.tickInterval=b.min===b.max||b.min===void 0||b.max===void 0?1:h&&!m&&o===b.linkedParent.options.tickPixelInterval? b.linkedParent.tickInterval:p(m,q?1:(b.max-b.min)*o/(b.len||1));g&&!a&&n(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);b.beforeSetTickPositions&&b.beforeSetTickPositions();if(b.postProcessTickInterval)b.tickInterval=b.postProcessTickInterval(b.tickInterval);if(!m&&b.tickIntervale&&i.shift(),d.endOnTick? b.max=f:b.max+h(b[d]||0)&&this.options.alignTicks!==!1)b[d]=c.length;a.maxTicks=b},adjustTickAmount:function(){var a=this._maxTicksKey,b=this.tickPositions,c=this.chart.maxTicks;if(c&&c[a]&&!this.isDatetimeAxis&&!this.categories&&!this.isLinked&&this.options.alignTicks!== !1){var d=this.tickAmount,e=b.length;this.tickAmount=a=c[a];if(e=this.dataMax&&(b=r);this.displayBtn=a!==r||b!==r;this.setExtremes(a,b,!1,r,{trigger:"zoom"});return!0},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=b.offsetRight||0,e=this.horiz,f,g;this.left=g=p(b.left,a.plotLeft+c);this.top=f=p(b.top,a.plotTop);this.width=c=p(b.width,a.plotWidth-c+d);this.height=b=p(b.height,a.plotHeight);this.bottom=a.chartHeight-b-f;this.right=a.chartWidth-c-g;this.len=t(e?c:b,0);this.pos= e?g:f},getExtremes:function(){var a=this.isLog;return{min:a?oa(la(this.min)):this.min,max:a?oa(la(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=b?la(this.min):this.min,b=b?la(this.max):this.max;c>a||a===null?a=c:b=a.min&&b<=a.max)j[b]||(j[b]=new ab(a,b)),u&&j[b].isNew&&j[b].render(c,!0),j[b].render(c,!1,1)}),q&&a.min===0&&(j[-1]||(j[-1]=new ab(a,-1,null,!0)),j[-1].render(-1))),o&&n(g,function(b,c){if(c%2===0&&b1||T(b-f.y)>1))clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){e&&e.move(a,b,c,d)},32)},hide:function(){var a=this,b;if(!this.isHidden)b=this.chart.hoverPoints,this.hideTimer=setTimeout(function(){a.label.fadeOut(); a.isHidden=!0},p(this.options.hideDelay,500)),b&&n(b,function(a){a.setState()}),this.chart.hoverPoints=null},hideCrosshairs:function(){n(this.crosshairs,function(a){a&&a.hide()})},getAnchor:function(a,b){var c,d=this.chart,e=d.inverted,f=d.plotTop,g=0,h=0,i,a=ia(a);c=a[0].tooltipPos;this.followPointer&&b&&(b.chartX===r&&(b=d.pointer.normalize(b)),c=[b.chartX-d.plotLeft,b.chartY-f]);c||(n(a,function(a){i=a.series.yAxis;g+=a.plotX;h+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!e&&i?i.top-f:0)}), g/=a.length,h/=a.length,c=[e?d.plotWidth-h:g,this.shared&&!e&&a.length>1&&b?b.chartY-f:e?d.plotHeight-g:h]);return Fa(c,s)},getPosition:function(a,b,c){var d=this.chart,e=d.plotLeft,f=d.plotTop,g=d.plotWidth,h=d.plotHeight,i=p(this.options.distance,12),j=c.plotX,c=c.plotY,d=j+e+(d.inverted?i:-a-i),k=c-b+f+15,m;d<7&&(d=e+t(j,0)+i);d+a>e+g&&(d-=d+a-(e+g),k=c-b+f-i,m=!0);k=k&&c<=k+b&&(k=c+f+i));k+b>f+h&&(k=t(f,f+h-b-i));return{x:d,y:k}},defaultFormatter:function(a){var b=this.points|| ia(this),c=b[0].series,d;d=[c.tooltipHeaderFormatter(b[0])];n(b,function(a){c=a.series;d.push(c.tooltipFormatter&&c.tooltipFormatter(a)||a.point.tooltipFormatter(c.tooltipOptions.pointFormat))});d.push(a.options.footerFormat||"");return d.join("")},refresh:function(a,b){var c=this.chart,d=this.label,e=this.options,f,g,h,i={},j,k=[];j=e.formatter||this.defaultFormatter;var i=c.hoverPoints,m,l=e.crosshairs;h=this.shared;clearTimeout(this.hideTimer);this.followPointer=ia(a)[0].series.tooltipOptions.followPointer; g=this.getAnchor(a,b);f=g[0];g=g[1];h&&(!a.series||!a.series.noSharedTooltip)?(c.hoverPoints=a,i&&n(i,function(a){a.setState()}),n(a,function(a){a.setState("hover");k.push(a.getLabelConfig())}),i={x:a[0].category,y:a[0].y},i.points=k,a=a[0]):i=a.getLabelConfig();j=j.call(i,this);i=a.series;h=h||!i.isCartesian||i.tooltipOutsidePlot||c.isInsidePlot(f,g);j===!1||!h?this.hide():(this.isHidden&&(gb(d),d.attr("opacity",1).show()),d.attr({text:j}),m=e.borderColor||a.color||i.color||"#606060",d.attr({stroke:m}), this.updatePosition({plotX:f,plotY:g}),this.isHidden=!1);if(l){l=ia(l);for(d=l.length;d--;)if(e=a.series[d?"yAxis":"xAxis"],l[d]&&e)if(e=e.getPlotLinePath(d?p(a.stackY,a.y):a.x,1),this.crosshairs[d])this.crosshairs[d].attr({d:e,visibility:"visible"});else{h={"stroke-width":l[d].width||1,stroke:l[d].color||"#C0C0C0",zIndex:l[d].zIndex||2};if(l[d].dashStyle)h.dashstyle=l[d].dashStyle;this.crosshairs[d]=c.renderer.path(e).attr(h).add()}}D(c,"tooltipRefresh",{text:j,x:f+c.plotLeft,y:g+c.plotTop,borderColor:m})}, updatePosition:function(a){var b=this.chart,c=this.label,c=(this.options.positioner||this.getPosition).call(this,c.width,c.height,a);this.move(s(c.x),s(c.y),a.plotX+b.plotLeft,a.plotY+b.plotTop)}};ob.prototype={init:function(a,b){var c=ha?"":b.chart.zoomType,d=a.inverted,e;this.options=b;this.chart=a;this.zoomX=e=/x/.test(c);this.zoomY=c=/y/.test(c);this.zoomHor=e&&!d||c&&d;this.zoomVert=c&&!d||e&&d;this.pinchDown=[];this.lastValidTouch={};if(b.tooltip.enabled)a.tooltip=new Eb(a,b.tooltip);this.setDOMEvents()}, normalize:function(a){var b,c,d,a=a||X.event;if(!a.target)a.target=a.srcElement;a=Zb(a);d=a.touches?a.touches.item(0):a;this.chartPosition=b=ec(this.chart.container);d.pageX===r?(c=a.x,b=a.y):(c=d.pageX-b.left,b=d.pageY-b.top);return z(a,{chartX:s(c),chartY:s(b)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};n(this.chart.axes,function(c){b[c.isXAxis?"xAxis":"yAxis"].push({axis:c,value:c.toValue(a[c.horiz?"chartX":"chartY"])})});return b},getIndex:function(a){var b=this.chart;return b.inverted? b.plotHeight+b.plotTop-a.chartY:a.chartX-b.plotLeft},runPointActions:function(a){var b=this.chart,c=b.series,d=b.tooltip,e,f=b.hoverPoint,g=b.hoverSeries,h,i,j=b.chartWidth,k=this.getIndex(a);if(d&&this.options.tooltip.shared&&(!g||!g.noSharedTooltip)){e=[];h=c.length;for(i=0;i j&&e.splice(h,1);if(e.length&&e[0].clientX!==this.hoverX)d.refresh(e,a),this.hoverX=e[0].clientX}if(g&&g.tracker){if((b=g.tooltipPoints[k])&&b!==f)b.onMouseOver(a)}else d&&d.followPointer&&!d.isHidden&&(a=d.getAnchor([{}],a),d.updatePosition({plotX:a[0],plotY:a[1]}))},reset:function(a){var b=this.chart,c=b.hoverSeries,d=b.hoverPoint,e=b.tooltip,b=e&&e.shared?b.hoverPoints:d;(a=a&&e&&b)&&ia(b)[0].plotX===r&&(a=!1);if(a)e.refresh(b);else{if(d)d.onMouseOut();if(c)c.onMouseOut();e&&(e.hide(),e.hideCrosshairs()); this.hoverX=null}},scaleGroups:function(a,b){var c=this.chart;n(c.series,function(d){d.xAxis.zoomEnabled&&(d.group.attr(a),d.markerGroup&&(d.markerGroup.attr(a),d.markerGroup.clip(b?c.clipRect:null)),d.dataLabelsGroup&&d.dataLabelsGroup.attr(a))});c.clipRect.attr(b||c.clipBox)},pinchTranslateDirection:function(a,b,c,d,e,f,g){var h=this.chart,i=a?"x":"y",j=a?"X":"Y",k="chart"+j,m=a?"width":"height",l=h["plot"+(a?"Left":"Top")],o,q,n=1,p=h.inverted,u=h.bounds[a?"h":"v"],w=b.length===1,t=b[0][k],r=c[0][k], E=!w&&b[1][k],B=!w&&c[1][k],s,c=function(){!w&&T(t-E)>20&&(n=T(r-B)/T(t-E));q=(l-r)/n+t;o=h["plot"+(a?"Width":"Height")]/n};c();b=q;bu.max&&(b=u.max-o,s=!0);s?(r-=0.8*(r-g[i][0]),w||(B-=0.8*(B-g[i][1])),c()):g[i]=[r,B];p||(f[i]=q-l,f[m]=o);f=p?1/n:n;e[m]=o;e[i]=b;d[p?a?"scaleY":"scaleX":"scale"+j]=n;d["translate"+j]=f*l+(r-f*t)},pinch:function(a){var b=this,c=b.chart,d=b.pinchDown,e=a.touches,f=b.lastValidTouch,g=b.zoomHor||b.pinchHor,h=b.zoomVert||b.pinchVert,i=b.selectionMarker, j={},k={};a.type==="touchstart"&&(b.inClass(a.target,"highcharts-tracker")?c.runTrackerClick||a.preventDefault():c.runChartClick||a.preventDefault());Fa(e,function(a){return b.normalize(a)});if(a.type==="touchstart")n(e,function(a,b){d[b]={chartX:a.chartX,chartY:a.chartY}}),f.x=[d[0].chartX,d[1]&&d[1].chartX],f.y=[d[0].chartY,d[1]&&d[1].chartY],n(c.axes,function(a){if(a.zoomEnabled){var b=c.bounds[a.horiz?"h":"v"],d=a.minPixelPadding,e=a.toPixels(a.dataMin),f=a.toPixels(a.dataMax),g=C(e,f),e=t(e, f);b.min=C(a.pos,g-d);b.max=t(a.pos+a.len,e+d)}});else if(d.length){if(!i)b.selectionMarker=i=z({destroy:qa},c.plotBox);g&&b.pinchTranslateDirection(!0,d,e,j,i,k,f);h&&b.pinchTranslateDirection(!1,d,e,j,i,k,f);b.hasPinched=g||h;b.scaleGroups(j,k)}},dragStart:function(a){var b=this.chart;b.mouseIsDown=a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX;this.mouseDownY=a.chartY},drag:function(a){var b=this.chart,c=b.options.chart,d=a.chartX,a=a.chartY,e=this.zoomHor,f=this.zoomVert,g=b.plotLeft, h=b.plotTop,i=b.plotWidth,j=b.plotHeight,k,m=this.mouseDownX,l=this.mouseDownY;dg+i&&(d=g+i);ah+j&&(a=h+j);this.hasDragged=Math.sqrt(Math.pow(m-d,2)+Math.pow(l-a,2));if(this.hasDragged>10){k=b.isInsidePlot(m-g,l-h);if(b.hasCartesianSeries&&(this.zoomX||this.zoomY)&&k&&!this.selectionMarker)this.selectionMarker=b.renderer.rect(g,h,e?1:i,f?1:j,0).attr({fill:c.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add();this.selectionMarker&&e&&(e=d-m,this.selectionMarker.attr({width:T(e), x:(e>0?0:e)+m}));this.selectionMarker&&f&&(e=a-l,this.selectionMarker.attr({height:T(e),y:(e>0?0:e)+l}));k&&!this.selectionMarker&&c.panning&&b.pan(d)}},drop:function(a){var b=this.chart,c=this.hasPinched;if(this.selectionMarker){var d={xAxis:[],yAxis:[],originalEvent:a.originalEvent||a},e=this.selectionMarker,f=e.x,g=e.y,h;if(this.hasDragged||c)n(b.axes,function(a){if(a.zoomEnabled){var b=a.horiz,c=a.minPixelPadding,m=a.toValue((b?f:g)+c),b=a.toValue((b?f+e.width:g+e.height)-c);!isNaN(m)&&!isNaN(b)&& (d[a.xOrY+"Axis"].push({axis:a,min:C(m,b),max:t(m,b)}),h=!0)}}),h&&D(b,"selection",d,function(a){b.zoom(z(a,c?{animation:!1}:null))});this.selectionMarker=this.selectionMarker.destroy();c&&this.scaleGroups({translateX:b.plotLeft,translateY:b.plotTop,scaleX:1,scaleY:1})}if(b)M(b.container,{cursor:"auto"}),b.cancelClick=this.hasDragged,b.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[]},onContainerMouseDown:function(a){a=this.normalize(a);a.preventDefault&&a.preventDefault();this.dragStart(a)}, onDocumentMouseUp:function(a){this.drop(a)},onDocumentMouseMove:function(a){var b=this.chart,c=this.chartPosition,d=b.hoverSeries,a=Zb(a);c&&d&&d.isCartesian&&!b.isInsidePlot(a.pageX-c.left-b.plotLeft,a.pageY-c.top-b.plotTop)&&this.reset()},onContainerMouseLeave:function(){this.reset();this.chartPosition=null},onContainerMouseMove:function(a){var b=this.chart,a=this.normalize(a);a.returnValue=!1;b.mouseIsDown==="mousedown"&&this.drag(a);b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)&&this.runPointActions(a)}, inClass:function(a,b){for(var c;a;){if(c=L(a,"class"))if(c.indexOf(b)!==-1)return!0;else if(c.indexOf("highcharts-container")!==-1)return!1;a=a.parentNode}},onTrackerMouseOut:function(a){var b=this.chart.hoverSeries;if(b&&!b.options.stickyTracking&&!this.inClass(a.toElement||a.relatedTarget,"highcharts-tooltip"))b.onMouseOut()},onContainerClick:function(a){var b=this.chart,c=b.hoverPoint,d=b.plotLeft,e=b.plotTop,f=b.inverted,g,h,i,a=this.normalize(a);a.cancelBubble=!0;if(!b.cancelClick)c&&this.inClass(a.target, "highcharts-tracker")?(g=this.chartPosition,h=c.plotX,i=c.plotY,z(c,{pageX:g.left+d+(f?b.plotWidth-i:h),pageY:g.top+e+(f?b.plotHeight-h:i)}),D(c.series,"click",z(a,{point:c})),c.firePointEvent("click",a)):(z(a,this.getCoordinates(a)),b.isInsidePlot(a.chartX-d,a.chartY-e)&&D(b,"click",a))},onContainerTouchStart:function(a){var b=this.chart;a.touches.length===1?(a=this.normalize(a),b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)&&(this.runPointActions(a),this.pinch(a))):a.touches.length===2&& this.pinch(a)},onContainerTouchMove:function(a){(a.touches.length===1||a.touches.length===2)&&this.pinch(a)},onDocumentTouchEnd:function(a){this.drop(a)},setDOMEvents:function(){var a=this,b=a.chart.container,c;this._events=c=[[b,"onmousedown","onContainerMouseDown"],[b,"onmousemove","onContainerMouseMove"],[b,"onclick","onContainerClick"],[b,"mouseleave","onContainerMouseLeave"],[G,"mousemove","onDocumentMouseMove"],[G,"mouseup","onDocumentMouseUp"]];fb&&c.push([b,"ontouchstart","onContainerTouchStart"], [b,"ontouchmove","onContainerTouchMove"],[G,"touchend","onDocumentTouchEnd"]);n(c,function(b){a["_"+b[2]]=function(c){a[b[2]](c)};b[1].indexOf("on")===0?b[0][b[1]]=a["_"+b[2]]:H(b[0],b[1],a["_"+b[2]])})},destroy:function(){var a=this;n(a._events,function(b){b[1].indexOf("on")===0?b[0][b[1]]=null:W(b[0],b[1],a["_"+b[2]])});delete a._events;clearInterval(a.tooltipTimeout)}};Fb.prototype={init:function(a,b){var c=this,d=b.itemStyle,e=p(b.padding,8),f=b.itemMarginTop||0;this.options=b;if(b.enabled)c.baseline= A(d.fontSize)+3+f,c.itemStyle=d,c.itemHiddenStyle=v(d,b.itemHiddenStyle),c.itemMarginTop=f,c.padding=e,c.initialItemX=e,c.initialItemY=e-5,c.maxItemWidth=0,c.chart=a,c.itemHeight=0,c.lastLineHeight=0,c.render(),H(c.chart,"endResize",function(){c.positionCheckboxes()})},colorizeItem:function(a,b){var c=this.options,d=a.legendItem,e=a.legendLine,f=a.legendSymbol,g=this.itemHiddenStyle.color,c=b?c.itemStyle.color:g,h=b?a.color:g,g=a.options&&a.options.marker,i={stroke:h,fill:h},j;d&&d.css({fill:c,color:c}); e&&e.attr({stroke:h});if(f){if(g)for(j in g=a.convertAttribs(g),g)d=g[j],d!==r&&(i[j]=d);f.attr(i)}},positionItem:function(a){var b=this.options,c=b.symbolPadding,b=!b.rtl,d=a._legendItemPos,e=d[0],d=d[1],f=a.checkbox;a.legendGroup&&a.legendGroup.translate(b?e:this.legendWidth-e-2*c-4,d);if(f)f.x=e,f.y=d},destroyItem:function(a){var b=a.checkbox;n(["legendItem","legendLine","legendSymbol","legendGroup"],function(b){a[b]&&a[b].destroy()});b&&Za(a.checkbox)},destroy:function(){var a=this.group,b=this.box; if(b)this.box=b.destroy();if(a)this.group=a.destroy()},positionCheckboxes:function(a){var b=this.group.alignAttr,c,d=this.clipHeight||this.legendHeight;if(b)c=b.translateY,n(this.allItems,function(e){var f=e.checkbox,g;f&&(g=c+f.y+(a||0)+3,M(f,{left:b.translateX+e.legendItemWidth+f.x-20+"px",top:g+"px",display:g>c-6&&g(l||c.chartWidth-2*k-n))b.itemX=n,b.itemY+=q+b.lastLineHeight+ o,b.lastLineHeight=0;b.maxItemWidth=t(b.maxItemWidth,e);b.lastItemY=q+b.itemY+o;b.lastLineHeight=t(g,b.lastLineHeight);a._legendItemPos=[b.itemX,b.itemY];f?b.itemX+=e:(b.itemY+=q+g+o,b.lastLineHeight=g);b.offsetWidth=l||t(f?b.itemX-n:e,b.offsetWidth)},render:function(){var a=this,b=a.chart,c=b.renderer,d=a.group,e,f,g,h,i=a.box,j=a.options,k=a.padding,m=j.borderWidth,l=j.backgroundColor;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;if(!d)a.group=d=c.g("legend").attr({zIndex:7}).add(), a.contentGroup=c.g().attr({zIndex:1}).add(d),a.scrollGroup=c.g().add(a.contentGroup),a.clipRect=c.clipRect(0,0,9999,b.chartHeight),a.contentGroup.clip(a.clipRect);a.renderTitle();e=[];n(b.series,function(a){var b=a.options;b.showInLegend&&!x(b.linkedTo)&&(e=e.concat(a.legendItems||(b.legendType==="point"?a.data:a)))});Rb(e,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});j.reversed&&e.reverse();a.allItems=e;a.display=f=!!e.length;n(e,function(b){a.renderItem(b)}); g=j.width||a.offsetWidth;h=a.lastItemY+a.lastLineHeight+a.titleHeight;h=a.handleOverflow(h);if(m||l){g+=k;h+=k;if(i){if(g>0&&h>0)i[i.isNew?"attr":"animate"](i.crisp(null,null,null,g,h)),i.isNew=!1}else a.box=i=c.rect(0,0,g,h,j.borderRadius,m||0).attr({stroke:j.borderColor,"stroke-width":m||0,fill:l||ba}).add(d).shadow(j.shadow),i.isNew=!0;i[f?"show":"hide"]()}a.legendWidth=g;a.legendHeight=h;n(e,function(b){a.positionItem(b)});f&&d.align(z({width:g,height:h},j),!0,"spacingBox");b.isResizing||this.positionCheckboxes()}, handleOverflow:function(a){var b=this,c=this.chart,d=c.renderer,e=this.options,f=e.y,f=c.spacingBox.height+(e.verticalAlign==="top"?-f:f)-this.padding,g=e.maxHeight,h=this.clipRect,i=e.navigation,j=p(i.animation,!0),k=i.arrowSize||12,m=this.nav;e.layout==="horizontal"&&(f/=2);g&&(f=C(f,g));if(a>f&&!e.useHTML){this.clipHeight=c=f-20-this.titleHeight;this.pageCount=pa(a/c);this.currentPage=p(this.currentPage,1);this.fullHeight=a;h.attr({height:c});if(!m)this.nav=m=d.g().attr({zIndex:1}).add(this.group), this.up=d.symbol("triangle",0,0,k,k).on("click",function(){b.scroll(-1,j)}).add(m),this.pager=d.text("",15,10).css(i.style).add(m),this.down=d.symbol("triangle-down",0,0,k,k).on("click",function(){b.scroll(1,j)}).add(m);b.scroll(0);a=f}else if(m)h.attr({height:c.chartHeight}),m.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0;return a},scroll:function(a,b){var c=this.pageCount,d=this.currentPage+a,e=this.clipHeight,f=this.options.navigation,g=f.activeColor,h=f.inactiveColor,f=this.pager, i=this.padding;d>c&&(d=c);if(d>0)b!==r&&$a(b,this.chart),this.nav.attr({translateX:i,translateY:e+7+this.titleHeight,visibility:"visible"}),this.up.attr({fill:d===1?h:g}).css({cursor:d===1?"default":"pointer"}),f.attr({text:d+"/"+this.pageCount}),this.down.attr({x:18+this.pager.getBBox().width,fill:d===c?h:g}).css({cursor:d===c?"default":"pointer"}),e=-C(e*(d-1),this.fullHeight-e+i)+1,this.scrollGroup.animate({translateY:e}),f.attr({text:d+"/"+c}),this.currentPage=d,this.positionCheckboxes(e)}};Qa.prototype= {init:function(a,b){var c,d=a.series;a.series=null;c=v(K,a);c.series=a.series=d;var d=c.chart,e=d.margin,e=da(e)?e:[e,e,e,e];this.optionsMarginTop=p(d.marginTop,e[0]);this.optionsMarginRight=p(d.marginRight,e[1]);this.optionsMarginBottom=p(d.marginBottom,e[2]);this.optionsMarginLeft=p(d.marginLeft,e[3]);this.runChartClick=(e=d.events)&&!!e.click;this.bounds={h:{},v:{}};this.callback=b;this.isResizing=0;this.options=c;this.axes=[];this.series=[];this.hasCartesianSeries=d.showAxes;var f=this,g;f.index= Sa.length;Sa.push(f);d.reflow!==!1&&H(f,"load",function(){f.initReflow()});if(e)for(g in e)H(f,g,e[g]);f.xAxis=[];f.yAxis=[];f.animation=ha?!1:p(d.animation,!0);f.pointCount=0;f.counters=new Qb;f.firstRender()},initSeries:function(a){var b=this.options.chart;(b=P[a.type||b.type||b.defaultSeriesType])||Ba(17,!0);b=new b;b.init(this,a);return b},addSeries:function(a,b,c){var d,e=this;a&&(b=p(b,!0),D(e,"addSeries",{options:a},function(){d=e.initSeries(a);e.isDirtyLegend=!0;b&&e.redraw(c)}));return d}, addAxis:function(a,b,c,d){var b=b?"xAxis":"yAxis",e=this.options;new Da(this,v(a,{index:this[b].length}));e[b]=ia(e[b]||{});e[b].push(a);p(c,!0)&&this.redraw(d)},isInsidePlot:function(a,b,c){var d=c?b:a,a=c?a:b;return d>=0&&d<=this.plotWidth&&a>=0&&a<=this.plotHeight},adjustTickAmounts:function(){this.options.chart.alignTicks!==!1&&n(this.axes,function(a){a.adjustTickAmount()});this.maxTicks=null},redraw:function(a){var b=this.axes,c=this.series,d=this.pointer,e=this.legend,f=this.isDirtyLegend,g, h=this.isDirtyBox,i=c.length,j=i,k=this.renderer,m=k.isHidden(),l=[];$a(a,this);for(m&&this.cloneRenderTo();j--;)if(a=c[j],a.isDirty&&a.options.stacking){g=!0;break}if(g)for(j=i;j--;)if(a=c[j],a.options.stacking)a.isDirty=!0;n(c,function(a){a.isDirty&&a.options.legendType==="point"&&(f=!0)});if(f&&e.options.enabled)e.render(),this.isDirtyLegend=!1;if(this.hasCartesianSeries){if(!this.isResizing)this.maxTicks=null,n(b,function(a){a.setScale()});this.adjustTickAmounts();this.getMargins();n(b,function(a){if(a.isDirtyExtremes)a.isDirtyExtremes= !1,l.push(function(){D(a,"afterSetExtremes",a.getExtremes())});if(a.isDirty||h||g)a.redraw(),h=!0})}h&&this.drawChartBox();n(c,function(a){a.isDirty&&a.visible&&(!a.isCartesian||a.xAxis)&&a.redraw()});d&&d.reset&&d.reset(!0);k.draw();D(this,"redraw");m&&this.cloneRenderTo(!0);n(l,function(a){a.call()})},showLoading:function(a){var b=this.options,c=this.loadingDiv,d=b.loading;if(!c)this.loadingDiv=c=aa(Oa,{className:"highcharts-loading"},z(d.style,{left:this.plotLeft+"px",top:this.plotTop+"px",width:this.plotWidth+ "px",height:this.plotHeight+"px",zIndex:10,display:ba}),this.container),this.loadingSpan=aa("span",null,d.labelStyle,c);this.loadingSpan.innerHTML=a||b.lang.loading;if(!this.loadingShown)M(c,{opacity:0,display:""}),Kb(c,{opacity:d.style.opacity},{duration:d.showDuration||0}),this.loadingShown=!0},hideLoading:function(){var a=this.options,b=this.loadingDiv;b&&Kb(b,{opacity:0},{duration:a.loading.hideDuration||100,complete:function(){M(b,{display:ba})}});this.loadingShown=!1},get:function(a){var b= this.axes,c=this.series,d,e;for(d=0;dC(e.dataMin,e.min)&&c19?this.containerHeight:400))},cloneRenderTo:function(a){var b=this.renderToClone,c=this.container;a?b&&(this.renderTo.appendChild(c),Za(b),delete this.renderToClone):(c&&this.renderTo.removeChild(c),this.renderToClone=b=this.renderTo.cloneNode(0),M(b,{position:"absolute",top:"-9999px",display:"block"}),G.body.appendChild(b),c&&b.appendChild(c))},getContainer:function(){var a,b=this.options.chart,c,d,e;this.renderTo=a=b.renderTo;e="highcharts-"+Ib++;if(ma(a))this.renderTo= a=G.getElementById(a);a||Ba(13,!0);c=A(L(a,"data-highcharts-chart"));!isNaN(c)&&Sa[c]&&Sa[c].destroy();L(a,"data-highcharts-chart",this.index);a.innerHTML="";a.offsetWidth||this.cloneRenderTo();this.getChartSize();c=this.chartWidth;d=this.chartHeight;this.container=a=aa(Oa,{className:"highcharts-container"+(b.className?" "+b.className:""),id:e},z({position:"relative",overflow:"hidden",width:c+"px",height:d+"px",textAlign:"left",lineHeight:"normal",zIndex:0},b.style),this.renderToClone||a);this.renderer= b.forExport?new Ga(a,c,d,!0):new cb(a,c,d);ha&&this.renderer.create(this,a,c,d)},getMargins:function(){var a=this.options.chart,b=a.spacingTop,c=a.spacingRight,d=a.spacingBottom,a=a.spacingLeft,e,f=this.legend,g=this.optionsMarginTop,h=this.optionsMarginLeft,i=this.optionsMarginRight,j=this.optionsMarginBottom,k=this.options.title,m=this.options.subtitle,l=this.options.legend,o=p(l.margin,10),q=l.x,N=l.y,y=l.align,u=l.verticalAlign;this.resetMargins();e=this.axisOffset;if((this.title||this.subtitle)&& !x(this.optionsMarginTop))if(m=t(this.title&&!k.floating&&!k.verticalAlign&&k.y||0,this.subtitle&&!m.floating&&!m.verticalAlign&&m.y||0))this.plotTop=t(this.plotTop,m+p(k.margin,15)+b);if(f.display&&!l.floating)if(y==="right"){if(!x(i))this.marginRight=t(this.marginRight,f.legendWidth-q+o+c)}else if(y==="left"){if(!x(h))this.plotLeft=t(this.plotLeft,f.legendWidth+q+o+a)}else if(u==="top"){if(!x(g))this.plotTop=t(this.plotTop,f.legendHeight+N+o+b)}else if(u==="bottom"&&!x(j))this.marginBottom=t(this.marginBottom, f.legendHeight-N+o+d);this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin);this.extraTopMargin&&(this.plotTop+=this.extraTopMargin);this.hasCartesianSeries&&n(this.axes,function(a){a.getOffset()});x(h)||(this.plotLeft+=e[3]);x(g)||(this.plotTop+=e[0]);x(j)||(this.marginBottom+=e[2]);x(i)||(this.marginRight+=e[1]);this.setChartSize()},initReflow:function(){function a(a){var g=c.width||ub(d,"width"),h=c.height||ub(d,"height"),a=a?a.target:X;if(!b.hasUserSize&&g&&h&&(a===X||a===G)){if(g!== b.containerWidth||h!==b.containerHeight)clearTimeout(e),b.reflowTimeout=e=setTimeout(function(){if(b.container)b.setSize(g,h,!1),b.hasUserSize=null},100);b.containerWidth=g;b.containerHeight=h}}var b=this,c=b.options.chart,d=b.renderTo,e;H(X,"resize",a);H(b,"destroy",function(){W(X,"resize",a)})},setSize:function(a,b,c){var d=this,e,f,g;d.isResizing+=1;g=function(){d&&D(d,"endResize",null,function(){d.isResizing-=1})};$a(c,d);d.oldChartHeight=d.chartHeight;d.oldChartWidth=d.chartWidth;if(x(a))d.chartWidth= e=t(0,s(a)),d.hasUserSize=!!e;if(x(b))d.chartHeight=f=t(0,s(b));M(d.container,{width:e+"px",height:f+"px"});d.setChartSize(!0);d.renderer.setSize(e,f,c);d.maxTicks=null;n(d.axes,function(a){a.isDirty=!0;a.setScale()});n(d.series,function(a){a.isDirty=!0});d.isDirtyLegend=!0;d.isDirtyBox=!0;d.getMargins();d.redraw(c);d.oldChartHeight=null;D(d,"resize");Pa===!1?g():setTimeout(g,Pa&&Pa.duration||500)},setChartSize:function(a){var b=this.inverted,c=this.renderer,d=this.chartWidth,e=this.chartHeight,f= this.options.chart,g=f.spacingTop,h=f.spacingRight,i=f.spacingBottom,j=f.spacingLeft,k=this.clipOffset,m,l,o,q;this.plotLeft=m=s(this.plotLeft);this.plotTop=l=s(this.plotTop);this.plotWidth=o=t(0,s(d-m-this.marginRight));this.plotHeight=q=t(0,s(e-l-this.marginBottom));this.plotSizeX=b?q:o;this.plotSizeY=b?o:q;this.plotBorderWidth=b=f.plotBorderWidth||0;this.spacingBox=c.spacingBox={x:j,y:g,width:d-j-h,height:e-g-i};this.plotBox=c.plotBox={x:m,y:l,width:o,height:q};c=pa(t(b,k[3])/2);d=pa(t(b,k[0])/ 2);this.clipBox={x:c,y:d,width:V(this.plotSizeX-t(b,k[1])/2-c),height:V(this.plotSizeY-t(b,k[2])/2-d)};a||n(this.axes,function(a){a.setAxisSize();a.setAxisTranslation()})},resetMargins:function(){var a=this.options.chart,b=a.spacingRight,c=a.spacingBottom,d=a.spacingLeft;this.plotTop=p(this.optionsMarginTop,a.spacingTop);this.marginRight=p(this.optionsMarginRight,b);this.marginBottom=p(this.optionsMarginBottom,c);this.plotLeft=p(this.optionsMarginLeft,d);this.axisOffset=[0,0,0,0];this.clipOffset= [0,0,0,0]},drawChartBox:function(){var a=this.options.chart,b=this.renderer,c=this.chartWidth,d=this.chartHeight,e=this.chartBackground,f=this.plotBackground,g=this.plotBorder,h=this.plotBGImage,i=a.borderWidth||0,j=a.backgroundColor,k=a.plotBackgroundColor,m=a.plotBackgroundImage,l=a.plotBorderWidth||0,o,q=this.plotLeft,n=this.plotTop,p=this.plotWidth,u=this.plotHeight,w=this.plotBox,r=this.clipRect,t=this.clipBox;o=i+(a.shadow?8:0);if(i||j)if(e)e.animate(e.crisp(null,null,null,c-o,d-o));else{e= {fill:j||ba};if(i)e.stroke=a.borderColor,e["stroke-width"]=i;this.chartBackground=b.rect(o/2,o/2,c-o,d-o,a.borderRadius,i).attr(e).add().shadow(a.shadow)}if(k)f?f.animate(w):this.plotBackground=b.rect(q,n,p,u,0).attr({fill:k}).add().shadow(a.plotShadow);if(m)h?h.animate(w):this.plotBGImage=b.image(m,q,n,p,u).add();r?r.animate({width:t.width,height:t.height}):this.clipRect=b.clipRect(t);if(l)g?g.animate(g.crisp(null,q,n,p,u)):this.plotBorder=b.rect(q,n,p,u,0,l).attr({stroke:a.plotBorderColor,"stroke-width":l, zIndex:1}).add();this.isDirtyBox=!1},propFromSeries:function(){var a=this,b=a.options.chart,c,d=a.options.series,e,f;n(["inverted","angular","polar"],function(g){c=P[b.type||b.defaultSeriesType];f=a[g]||b[g]||c&&c.prototype[g];for(e=d&&d.length;!f&&e--;)(c=P[d[e].type])&&c.prototype[g]&&(f=!0);a[g]=f})},render:function(){var a=this,b=a.axes,c=a.renderer,d=a.options,e=d.labels,f=d.credits,g;a.setTitle();a.legend=new Fb(a,d.legend);n(b,function(a){a.setScale()});a.getMargins();a.maxTicks=null;n(b,function(a){a.setTickPositions(!0); a.setMaxTicks()});a.adjustTickAmounts();a.getMargins();a.drawChartBox();a.hasCartesianSeries&&n(b,function(a){a.render()});if(!a.seriesGroup)a.seriesGroup=c.g("series-group").attr({zIndex:3}).add();n(a.series,function(a){a.translate();a.setTooltipPoints();a.render()});e.items&&n(e.items,function(b){var d=z(e.style,b.style),f=A(d.left)+a.plotLeft,g=A(d.top)+a.plotTop+12;delete d.left;delete d.top;c.text(b.html,f,g).attr({zIndex:2}).css(d).add()});if(f.enabled&&!a.credits)g=f.href,a.credits=c.text(f.text, 0,0).on("click",function(){if(g)location.href=g}).attr({align:f.position.align,zIndex:8}).css(f.style).add().align(f.position);a.hasRendered=!0},destroy:function(){var a=this,b=a.axes,c=a.series,d=a.container,e,f=d&&d.parentNode;D(a,"destroy");Sa[a.index]=r;a.renderTo.removeAttribute("data-highcharts-chart");W(a);for(e=b.length;e--;)b[e]=b[e].destroy();for(e=c.length;e--;)c[e]=c[e].destroy();n("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,pointer,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","), function(b){var c=a[b];c&&c.destroy&&(a[b]=c.destroy())});if(d)d.innerHTML="",W(d),f&&Za(d);for(e in a)delete a[e]},isReadyToRender:function(){var a=this;return!ca&&X==X.top&&G.readyState!=="complete"||ha&&!X.canvg?(ha?$b.push(function(){a.firstRender()},a.options.global.canvasToolsURL):G.attachEvent("onreadystatechange",function(){G.detachEvent("onreadystatechange",a.firstRender);G.readyState==="complete"&&a.firstRender()}),!1):!0},firstRender:function(){var a=this,b=a.options,c=a.callback;if(a.isReadyToRender())a.getContainer(), D(a,"init"),a.resetMargins(),a.setChartSize(),a.propFromSeries(),a.getAxes(),n(b.series||[],function(b){a.initSeries(b)}),D(a,"beforeRender"),a.pointer=new ob(a,b),a.render(),a.renderer.draw(),c&&c.apply(a,[a]),n(a.callbacks,function(b){b.apply(a,[a])}),a.cloneRenderTo(!0),D(a,"load")}};Qa.prototype.callbacks=[];var Ha=function(){};Ha.prototype={init:function(a,b,c){this.series=a;this.applyOptions(b,c);this.pointAttr={};if(a.options.colorByPoint&&(b=a.options.colors||a.chart.options.colors,this.color= this.color||b[a.colorCounter++],a.colorCounter===b.length))a.colorCounter=0;a.chart.pointCount++;return this},applyOptions:function(a,b){var c=this.series,d=c.pointValKey,a=Ha.prototype.optionsToObject.call(this,a);z(this,a);this.options=this.options?z(this.options,a):a;if(d)this.y=this[d];if(this.x===r&&c)this.x=b===r?c.autoIncrement():b;return this},optionsToObject:function(a){var b,c=this.series,d=c.pointArrayMap||["y"],e=d.length,f=0,g=0;if(typeof a==="number"||a===null)b={y:a};else if(Ua(a)){b= {};if(a.length>e){c=typeof a[0];if(c==="string")b.name=a[0];else if(c==="number")b.x=a[0];f++}for(;ga+1&&b.push(d.slice(a+1,g)),a=g):g===e-1&&b.push(d.slice(a+1,g+1))});this.segments=b},setOptions:function(a){var b= this.chart.options,c=b.plotOptions,d=c[this.type];this.userOptions=a;a=v(d,c.series,a);this.tooltipOptions=v(b.tooltip,a.tooltip);d.marker===null&&delete a.marker;return a},getColor:function(){var a=this.options,b=this.userOptions,c=this.chart.options.colors,d=this.chart.counters,e;e=a.color||R[this.type].color;if(!e&&!a.colorByPoint)x(b._colorIndex)?a=b._colorIndex:(b._colorIndex=d.color,a=d.color++),e=c[a];this.color=e;d.wrapColor(c.length)},getSymbol:function(){var a=this.userOptions,b=this.options.marker, c=this.chart,d=c.options.symbols,c=c.counters;this.symbol=b.symbol;if(!this.symbol)x(a._symbolIndex)?a=a._symbolIndex:(a._symbolIndex=c.symbol,a=c.symbol++),this.symbol=d[a];if(/^url/.test(this.symbol))b.radius=0;c.wrapSymbol(d.length)},drawLegendSymbol:function(a){var b=this.options,c=b.marker,d=a.options.symbolWidth,e=this.chart.renderer,f=this.legendGroup,a=a.baseline,g;if(b.lineWidth){g={"stroke-width":b.lineWidth};if(b.dashStyle)g.dashstyle=b.dashStyle;this.legendLine=e.path(["M",0,a-4,"L",d, a-4]).attr(g).add(f)}if(c&&c.enabled)b=c.radius,this.legendSymbol=e.symbol(this.symbol,d/2-b,a-4-b,2*b,2*b).add(f)},addPoint:function(a,b,c,d){var e=this.options,f=this.data,g=this.graph,h=this.area,i=this.chart,j=this.xData,k=this.yData,m=this.zData,l=this.names,o=g&&g.shift||0,q=e.data;$a(d,i);if(g&&c)g.shift=o+1;if(h){if(c)h.shift=o+1;h.isArea=!0}b=p(b,!0);d={series:this};this.pointClass.prototype.applyOptions.apply(d,[a]);j.push(d.x);k.push(this.toYData?this.toYData(d):d.y);m.push(d.z);if(l)l[d.x]= d.name;q.push(a);e.legendType==="point"&&this.generatePoints();c&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),j.shift(),k.shift(),m.shift(),q.shift()));this.getAttribs();this.isDirtyData=this.isDirty=!0;b&&i.redraw()},setData:function(a,b){var c=this.points,d=this.options,e=this.chart,f=null,g=this.xAxis,h=g&&g.categories&&!g.categories.length?[]:null,i;this.xIncrement=null;this.pointRange=g&&g.categories?1:d.pointRange;this.colorCounter=0;var j=[],k=[],m=[],l=a?a.length:[],o=(i=this.pointArrayMap)&& i.length,q=!!this.toYData;if(l>(d.turboThreshold||1E3)){for(i=0;f===null&&i1&&j[1]k||this.forceCrop))if(a=i.getExtremes(),i=a.min,k=a.max,b[d-1]k)b=[],c=[];else if(b[0]k){for(a=0;a=i){e=t(0,a-1);break}for(;ak){f=a+1;break}b=b.slice(e,f);c=c.slice(e,f);g=!0}for(a=b.length-1;a>0;a--)if(d=b[a]-b[a-1],d>0&&(h===r||d=0&&c<=d;)h[c++]=f}this.tooltipPoints= h}},tooltipHeaderFormatter:function(a){var b=this.tooltipOptions,c=b.xDateFormat,d=this.xAxis,e=d&&d.options.type==="datetime",f=b.headerFormat,g;if(e&&!c)for(g in I)if(I[g]>=d.closestPointRange){c=b.dateTimeLabelFormats[g];break}e&&c&&va(a.key)&&(f=f.replace("{point.key}","{point.key:"+c+"}"));return Xa(f,{point:a,series:this})},onMouseOver:function(){var a=this.chart,b=a.hoverSeries;if(b&&b!==this)b.onMouseOut();this.options.events.mouseOver&&D(this,"mouseOver");this.setState("hover");a.hoverSeries= this},onMouseOut:function(){var a=this.options,b=this.chart,c=b.tooltip,d=b.hoverPoint;if(d)d.onMouseOut();this&&a.events.mouseOut&&D(this,"mouseOut");c&&!a.stickyTracking&&(!c.shared||this.noSharedTooltip)&&c.hide();this.setState();b.hoverSeries=null},animate:function(a){var b=this,c=b.chart,d=c.renderer,e;e=b.options.animation;var f=c.clipBox,g=c.inverted,h;if(e&&!da(e))e=R[b.type].animation;h="_sharedClip"+e.duration+e.easing;if(a)a=c[h],e=c[h+"m"],a||(c[h]=a=d.clipRect(z(f,{width:0})),c[h+"m"]= e=d.clipRect(-99,g?-c.plotLeft:-c.plotTop,99,g?c.chartWidth:c.chartHeight)),b.group.clip(a),b.markerGroup.clip(e),b.sharedClipKey=h;else{if(a=c[h])a.animate({width:c.plotSizeX},e),c[h+"m"].animate({width:c.plotSizeX+99},e);b.animate=null;b.animationTimeout=setTimeout(function(){b.afterAnimate()},e.duration)}},afterAnimate:function(){var a=this.chart,b=this.sharedClipKey,c=this.group;c&&this.options.clip!==!1&&(c.clip(a.clipRect),this.markerGroup.clip());setTimeout(function(){b&&a[b]&&(a[b]=a[b].destroy(), a[b+"m"]=a[b+"m"].destroy())},100)},drawPoints:function(){var a,b=this.points,c=this.chart,d,e,f,g,h,i,j,k,m=this.options.marker,l,o=this.markerGroup;if(m.enabled||this._hasPointMarkers)for(f=b.length;f--;)if(g=b[f],d=g.plotX,e=g.plotY,k=g.graphic,i=g.marker||{},a=m.enabled&&i.enabled===r||i.enabled,l=c.isInsidePlot(d,e,c.inverted),a&&e!==r&&!isNaN(e)&&g.y!==null)if(a=g.pointAttr[g.selected?"select":""],h=a.r,i=p(i.symbol,this.symbol),j=i.indexOf("url")===0,k)k.attr({visibility:l?ca?"inherit":"visible": "hidden"}).animate(z({x:d-h,y:e-h},k.symbolName?{width:2*h,height:2*h}:{}));else{if(l&&(h>0||j))g.graphic=c.renderer.symbol(i,d-h,e-h,2*h,2*h).attr(a).add(o)}else if(k)g.graphic=k.destroy()},convertAttribs:function(a,b,c,d){var e=this.pointAttrToOptions,f,g,h={},a=a||{},b=b||{},c=c||{},d=d||{};for(f in e)g=e[f],h[f]=p(a[g],b[f],c[f],d[f]);return h},getAttribs:function(){var a=this,b=a.options,c=R[a.type].marker?b.marker:b,d=c.states,e=d.hover,f,g=a.color,h={stroke:g,fill:g},i=a.points||[],j=[],k, m=a.pointAttrToOptions,l=b.negativeColor,o;b.marker?(e.radius=e.radius||c.radius+2,e.lineWidth=e.lineWidth||c.lineWidth+1):e.color=e.color||ua(e.color||g).brighten(e.brightness).get();j[""]=a.convertAttribs(c,h);n(["hover","select"],function(b){j[b]=a.convertAttribs(d[b],j[""])});a.pointAttr=j;for(g=i.length;g--;){h=i[g];if((c=h.options&&h.options.marker||h.options)&&c.enabled===!1)c.radius=0;if(h.negative)h.color=h.fillColor=l;f=b.colorByPoint||h.color;if(h.options)for(o in m)x(c[m[o]])&&(f=!0); if(f){c=c||{};k=[];d=c.states||{};f=d.hover=d.hover||{};if(!b.marker)f.color=ua(f.color||h.color).brighten(f.brightness||e.brightness).get();k[""]=a.convertAttribs(z({color:h.color},c),j[""]);k.hover=a.convertAttribs(d.hover,j.hover,k[""]);k.select=a.convertAttribs(d.select,j.select,k[""]);if(h.negative&&b.marker)k[""].fill=k.hover.fill=k.select.fill=a.convertAttribs({fillColor:l}).fill}else k=j;h.pointAttr=k}},update:function(a,b){var c=this.chart,d=this.type,a=v(this.userOptions,{animation:!1,index:this.index, pointStart:this.xData[0]},a);this.remove(!1);z(this,P[a.type||d].prototype);this.init(c,a);p(b,!0)&&c.redraw(!1)},destroy:function(){var a=this,b=a.chart,c=/AppleWebKit\/533/.test(Ra),d,e,f=a.data||[],g,h,i;D(a,"destroy");W(a);n(["xAxis","yAxis"],function(b){if(i=a[b])na(i.series,a),i.isDirty=i.forceRedraw=!0});a.legendItem&&a.chart.legend.destroyItem(a);for(e=f.length;e--;)(g=f[e])&&g.destroy&&g.destroy();a.points=null;clearTimeout(a.animationTimeout);n("area,graph,dataLabelsGroup,group,markerGroup,tracker,graphNeg,areaNeg,posClip,negClip".split(","), function(b){a[b]&&(d=c&&b==="group"?"hide":"destroy",a[b][d]())});if(b.hoverSeries===a)b.hoverSeries=null;na(b.series,a);for(h in a)delete a[h]},drawDataLabels:function(){var a=this,b=a.options.dataLabels,c=a.points,d,e,f,g;if(b.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(b),g=a.plotGroup("dataLabelsGroup","data-labels",a.visible?"visible":"hidden",b.zIndex||6),e=b,n(c,function(c){var i,j=c.dataLabel,k,m,l=c.connector,o=!0;d=c.options&&c.options.dataLabels;i=e.enabled||d&&d.enabled; if(j&&!i)c.dataLabel=j.destroy();else if(i){i=b.rotation;b=v(e,d);k=c.getLabelConfig();f=b.format?Xa(b.format,k):b.formatter.call(k,b);b.style.color=p(b.color,b.style.color,a.color,"black");if(j)if(x(f))j.attr({text:f}),o=!1;else{if(c.dataLabel=j=j.destroy(),l)c.connector=l.destroy()}else if(x(f)){j={fill:b.backgroundColor,stroke:b.borderColor,"stroke-width":b.borderWidth,r:b.borderRadius||0,rotation:i,padding:b.padding,zIndex:1};for(m in j)j[m]===r&&delete j[m];j=c.dataLabel=a.chart.renderer[i?"text": "label"](f,0,-999,null,null,null,b.useHTML).attr(j).css(b.style).add(g).shadow(b.shadow)}j&&a.alignDataLabel(c,j,b,null,o)}})},alignDataLabel:function(a,b,c,d,e){var f=this.chart,g=f.inverted,h=p(a.plotX,-999),a=p(a.plotY,-999),i=b.getBBox(),d=z({x:g?f.plotWidth-a:h,y:s(g?f.plotHeight-h:a),width:0,height:0},d);z(c,{width:i.width,height:i.height});c.rotation?(d={align:c.align,x:d.x+c.x+d.width/2,y:d.y+c.y+d.height/2},b[e?"attr":"animate"](d)):b.align(c,null,d);b.attr({visibility:c.crop===!1||f.isInsidePlot(h, a,g)?f.renderer.isSVG?"inherit":"visible":"hidden"})},getSegmentPath:function(a){var b=this,c=[],d=b.options.step;n(a,function(e,f){var g=e.plotX,h=e.plotY,i;b.getPointSpline?c.push.apply(c,b.getPointSpline(a,e,f)):(c.push(f?"L":"M"),d&&f&&(i=a[f-1],d==="right"?c.push(i.plotX,h):d==="center"?c.push((i.plotX+g)/2,i.plotY,(i.plotX+g)/2,h):c.push(g,i.plotY)),c.push(e.plotX,e.plotY))});return c},getGraphPath:function(){var a=this,b=[],c,d=[];n(a.segments,function(e){c=a.getSegmentPath(e);e.length>1?b= b.concat(c):d.push(e[0])});a.singlePoints=d;return a.graphPath=b},drawGraph:function(){var a=this,b=this.options,c=[["graph",b.lineColor||this.color]],d=b.lineWidth,e=b.dashStyle,f=this.getGraphPath(),g=b.negativeColor;g&&c.push(["graphNeg",g]);n(c,function(c,g){var j=c[0],k=a[j];if(k)gb(k),k.animate({d:f});else if(d&&f.length){k={stroke:c[1],"stroke-width":d,zIndex:1};if(e)k.dashstyle=e;a[j]=a.chart.renderer.path(f).attr(k).add(a.group).shadow(!g&&b.shadow)}})},clipNeg:function(){var a=this.options, b=this.chart,c=b.renderer,d=a.negativeColor,e,f=this.posClip,g=this.negClip;e=b.chartWidth;var h=b.chartHeight,i=t(e,h);if(d&&this.graph)d=pa(this.yAxis.len-this.yAxis.translate(a.threshold||0)),a={x:0,y:0,width:i,height:d},i={x:0,y:d,width:i,height:i-d},b.inverted&&c.isVML&&(a={x:b.plotWidth-d-b.plotLeft,y:0,width:e,height:h},i={x:d+b.plotLeft-e,y:0,width:b.plotLeft+d,height:e}),this.yAxis.reversed?(b=i,e=a):(b=a,e=i),f?(f.animate(b),g.animate(e)):(this.posClip=f=c.clipRect(b),this.graph.clip(f), this.negClip=g=c.clipRect(e),this.graphNeg.clip(g),this.area&&(this.area.clip(f),this.areaNeg.clip(g)))},invertGroups:function(){function a(){var a={width:b.yAxis.len,height:b.xAxis.len};n(["group","markerGroup"],function(c){b[c]&&b[c].attr(a).invert()})}var b=this,c=b.chart;H(c,"resize",a);H(b,"destroy",function(){W(c,"resize",a)});a();b.invertGroups=a},plotGroup:function(a,b,c,d,e){var f=this[a],g=!f,h=this.chart,i=this.xAxis,j=this.yAxis;g&&(this[a]=f=h.renderer.g(b).attr({visibility:c,zIndex:d|| 0.1}).add(e));f[g?"attr":"animate"]({translateX:i?i.left:h.plotLeft,translateY:j?j.top:h.plotTop});return f},render:function(){var a=this.chart,b,c=this.options,d=c.animation&&!!this.animate&&a.renderer.isSVG,e=this.visible?"visible":"hidden",f=c.zIndex,g=this.hasRendered,h=a.seriesGroup;b=this.plotGroup("group","series",e,f,h);this.markerGroup=this.plotGroup("markerGroup","markers",e,f,h);d&&this.animate(!0);this.getAttribs();b.inverted=a.inverted;this.drawGraph&&(this.drawGraph(),this.clipNeg()); this.drawDataLabels();this.drawPoints();this.options.enableMouseTracking!==!1&&this.drawTracker();a.inverted&&this.invertGroups();c.clip!==!1&&!this.sharedClipKey&&!g&&b.clip(a.clipRect);d?this.animate():g||this.afterAnimate();this.isDirty=this.isDirtyData=!1;this.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirtyData,c=this.group,d=this.xAxis,e=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:p(d&&d.left,a.plotLeft),translateY:p(e&&e.top, a.plotTop)}));this.translate();this.setTooltipPoints(!0);this.render();b&&D(this,"updatedData")},setState:function(a){var b=this.options,c=this.graph,d=this.graphNeg,e=b.states,b=b.lineWidth,a=a||"";if(this.state!==a)this.state=a,e[a]&&e[a].enabled===!1||(a&&(b=e[a].lineWidth||b+1),c&&!c.dashstyle&&(a={"stroke-width":b},c.attr(a),d&&d.attr(a)))},setVisible:function(a,b){var c=this,d=c.chart,e=c.legendItem,f,g=d.options.chart.ignoreHiddenSeries,h=c.visible;f=(c.visible=a=c.userOptions.visible=a=== r?!h:a)?"show":"hide";n(["group","dataLabelsGroup","markerGroup","tracker"],function(a){if(c[a])c[a][f]()});if(d.hoverSeries===c)c.onMouseOut();e&&d.legend.colorizeItem(c,a);c.isDirty=!0;c.options.stacking&&n(d.series,function(a){if(a.options.stacking&&a.visible)a.isDirty=!0});n(c.linkedSeries,function(b){b.setVisible(a,!1)});if(g)d.isDirtyBox=!0;b!==!1&&d.redraw();D(c,f)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(a){this.selected=a=a===r?!this.selected: a;if(this.checkbox)this.checkbox.checked=a;D(this,a?"select":"unselect")},drawTracker:function(){var a=this,b=a.options,c=b.trackByArea,d=[].concat(c?a.areaPath:a.graphPath),e=d.length,f=a.chart,g=f.pointer,h=f.renderer,i=f.options.tooltip.snap,j=a.tracker,k=b.cursor,k=k&&{cursor:k},m=a.singlePoints,l,o=function(){if(f.hoverSeries!==a)a.onMouseOver()};if(e&&!c)for(l=e+1;l--;)d[l]==="M"&&d.splice(l+1,0,d[l+1]-i,d[l+2],"L"),(l&&d[l]==="M"||l===e)&&d.splice(l,0,"L",d[l-2]+i,d[l-1]);for(l=0;l=0;d--)da&&i>e?(i=t(a,e),k=2*e-i):ig&&k>e?(k=t(g,e),i=2*e-k):kh?o-h:g-(f.translate(c.y,0,1,0,1)<=g?h:0));c.barX=q;c.pointWidth=i;c.shapeType="rect"; c.shapeArgs=c=b.renderer.Element.prototype.crisp.call(0,e,q,n,j,l);e%2&&(c.y-=1,c.height+=1)})},getSymbol:qa,drawLegendSymbol:F.prototype.drawLegendSymbol,drawGraph:qa,drawPoints:function(){var a=this,b=a.options,c=a.chart.renderer,d;n(a.points,function(e){var f=e.plotY,g=e.graphic;if(f!==r&&!isNaN(f)&&e.y!==null)d=e.shapeArgs,g?(gb(g),g.animate(v(d))):e.graphic=c[e.shapeType](d).attr(e.pointAttr[e.selected?"select":""]).add(a.group).shadow(b.shadow,null,b.stacking&&!b.borderRadius);else if(g)e.graphic= g.destroy()})},drawTracker:function(){var a=this,b=a.chart.pointer,c=a.options.cursor,d=c&&{cursor:c},e=function(b){var c=b.target,d;for(a.onMouseOver();c&&!d;)d=c.point,c=c.parentNode;if(d!==r)d.onMouseOver(b)};n(a.points,function(a){if(a.graphic)a.graphic.element.point=a;if(a.dataLabel)a.dataLabel.element.point=a});a._hasTracking?a._hasTracking=!0:n(a.trackerGroups,function(c){if(a[c]&&(a[c].addClass("highcharts-tracker").on("mouseover",e).on("mouseout",function(a){b.onTrackerMouseOut(a)}).css(d), fb))a[c].on("touchstart",e)})},alignDataLabel:function(a,b,c,d,e){var f=this.chart,g=f.inverted,h=a.dlBox||a.shapeArgs,i=a.below||a.plotY>p(this.translatedThreshold,f.plotSizeY),j=p(c.inside,!!this.options.stacking);if(h&&(d=v(h),g&&(d={x:f.plotWidth-d.y-d.height,y:f.plotHeight-d.x-d.width,width:d.height,height:d.width}),!j))g?(d.x+=i?0:d.width,d.width=0):(d.y+=i?d.height:0,d.height=0);c.align=p(c.align,!g||j?"center":i?"right":"left");c.verticalAlign=p(c.verticalAlign,g||j?"middle":i?"top":"bottom"); Z.prototype.alignDataLabel.call(this,a,b,c,d,e)},animate:function(a){var b=this.yAxis,c=this.options,d=this.chart.inverted,e={};if(ca)a?(e.scaleY=0.001,a=C(b.pos+b.len,t(b.pos,b.toPixels(c.threshold))),d?e.translateX=a-b.len:e.translateY=a,this.group.attr(e)):(e.scaleY=1,e[d?"translateX":"translateY"]=b.pos,this.group.animate(e,this.options.animation),this.animate=null)},remove:function(){var a=this,b=a.chart;b.hasRendered&&n(b.series,function(b){if(b.type===a.type)b.isDirty=!0});Z.prototype.remove.apply(a, arguments)}});P.column=Y;R.bar=v(R.column);Ta=ea(Y,{type:"bar",inverted:!0});P.bar=Ta;R.scatter=v(Q,{lineWidth:0,tooltip:{headerFormat:'{series.name}
    ',pointFormat:"x: {point.x}
    y: {point.y}
    ",followPointer:!0},stickyTracking:!1});Ta=ea(Z,{type:"scatter",sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["markerGroup"],drawTracker:Y.prototype.drawTracker,setTooltipPoints:qa});P.scatter=Ta;R.pie=v(Q,{borderColor:"#FFFFFF", borderWidth:1,center:[null,null],colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.name}},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,states:{hover:{brightness:0.1,shadow:!1}},stickyTracking:!1,tooltip:{followPointer:!0}});Q={type:"pie",isCartesian:!1,pointClass:ea(Ha,{init:function(){Ha.prototype.init.apply(this,arguments);var a=this,b;if(a.y<0)a.y=null;z(a,{visible:a.visible!==!1,name:p(a.name,"Slice")});b= function(){a.slice()};H(a,"select",b);H(a,"unselect",b);return a},setVisible:function(a){var b=this,c=b.series,d=c.chart,e;b.visible=b.options.visible=a=a===r?!b.visible:a;c.options.data[ta(b,c.data)]=b.options;e=a?"show":"hide";n(["graphic","dataLabel","connector","shadowGroup"],function(a){if(b[a])b[a][e]()});b.legendItem&&d.legend.colorizeItem(b,a);if(!c.isDirty&&c.options.ignoreHiddenPoint)c.isDirty=!0,d.redraw()},slice:function(a,b,c){var d=this.series;$a(c,d.chart);p(b,!0);this.sliced=this.options.sliced= a=x(a)?a:!this.sliced;d.options.data[ta(this,d.data)]=this.options;a=a?this.slicedTranslation:{translateX:0,translateY:0};this.graphic.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)}}),requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},getColor:qa,animate:function(a){var b=this,c=b.points,d=b.startAngleRad;if(!a)n(c,function(a){var c=a.graphic,a=a.shapeArgs;c&&(c.attr({r:b.center[3]/ 2,start:d,end:d}),c.animate({r:a.r,start:a.start,end:a.end},b.options.animation))}),b.animate=null},setData:function(a,b){Z.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();p(b,!0)&&this.chart.redraw()},getCenter:function(){var a=this.options,b=this.chart,c=2*(a.dataLabels&&a.dataLabels.enabled?0:a.slicedOffset||0),d=b.plotWidth-2*c,e=b.plotHeight-2*c,b=a.center,a=[p(b[0],"50%"),p(b[1],"50%"),a.size||"100%",a.innerSize||0],f=C(d,e),g;return Fa(a,function(a,b){g=/%$/.test(a); return(g?[d,e,f,f][b]*A(a)/100:a)+(b<3?c:0)})},translate:function(a){this.generatePoints();var b=0,c=0,d=this.options,e=d.slicedOffset,f=e+d.borderWidth,g,h,i,j=this.startAngleRad=bb/180*((d.startAngle||0)%360-90),k=this.points,m=2*bb,l=d.dataLabels.distance,o=d.ignoreHiddenPoint,q,n=k.length,p;if(!a)this.center=a=this.getCenter();this.getX=function(b,c){i=O.asin((b-a[1])/(a[2]/2+l));return a[0]+(c?-1:1)*ga(i)*(a[2]/2+l)};for(q=0;q0.75*m&&(i-=2*bb);p.slicedTranslation={translateX:s(ga(i)*e),translateY:s(ja(i)*e)};g=ga(i)*a[2]/2;h=ja(i)*a[2]/2;p.tooltipPos=[a[0]+g*0.7,a[1]+h*0.7];p.half=i0,y,u,w,x,v=[[],[]],E,B,z,A,J,C=[0,0,0,0],H=function(a,b){return b.y-a.y},L=function(a,b){a.sort(function(a,c){return a.angle!==void 0&&(c.angle-a.angle)*b})};if(e.enabled||a._hasPointLabels){Z.prototype.drawDataLabels.apply(a);n(b, function(a){a.dataLabel&&v[a.half].push(a)});for(A=0;!x&&b[A];)x=b[A]&&b[A].dataLabel&&(b[A].dataLabel.getBBox().height||21),A++;for(A=2;A--;){var b=[],I=[],G=v[A],F=G.length,D;L(G,A-0.5);if(m>0){for(J=q-o-m;J<=q+o+m;J+=x)b.push(J);u=b.length;if(F>u){c=[].concat(G);c.sort(H);for(J=F;J--;)c[J].rank=J;for(J=F;J--;)G[J].rank>=u&&G.splice(J,1);F=G.length}for(J=0;J0){if(u=I.pop(),D=u.i,B=u.y,c>B&&b[D+1]!==null||ch-f&& (C[1]=t(s(E+u-h+f),C[1])),B-x/2<0?C[0]=t(s(-B+x/2),C[0]):B+x/2>d&&(C[2]=t(s(B+x/2-d),C[2]))}}if(sa(C)===0||this.verifyDataLabelOverflow(C))this.placeDataLabels(),r&&g&&n(this.points,function(b){i=b.connector;w=b.labelPos;if((y=b.dataLabel)&&y._pos)E=y.connX,B=y.connY,j=k?["M",E+(w[6]==="left"?5:-5),B,"C",E,B,2*w[2]-w[4],2*w[3]-w[5],w[2],w[3],"L",w[4],w[5]]:["M",E+(w[6]==="left"?5:-5),B,"L",w[2],w[3],"L",w[4],w[5]],i?(i.animate({d:j}),i.attr("visibility",z)):b.connector=i=a.chart.renderer.path(j).attr({"stroke-width":g, stroke:e.connectorColor||b.color||"#606060",visibility:z}).add(a.group);else if(i)b.connector=i.destroy()})}},verifyDataLabelOverflow:function(a){var b=this.center,c=this.options,d=c.center,e=c=c.minSize||80,f;d[0]!==null?e=t(b[2]-t(a[1],a[3]),c):(e=t(b[2]-a[1]-a[3],c),b[0]+=(a[3]-a[1])/2);d[1]!==null?e=t(C(e,b[2]-t(a[0],a[2])),c):(e=t(C(e,b[2]-a[0]-a[2]),c),b[1]+=(a[0]-a[2])/2);e=c[1]||n===i;)if(j=c.shift(),k=d.apply(0,l),k!==r&&(g.push(j),h.push(k)),l[0]=[],l[1]=[],l[2]=[],l[3]=[],n===i)break;if(n===i)break;if(o){j=this.cropStart+n;j=e&&e[j]||this.pointClass.prototype.applyOptions.apply({series:this},[f[j]]);var p;for(k=0;kg/i||j&&c.forced){e=!0;this.points=null;a=h.getExtremes();j=a.min;k=a.max;a=h.getGroupIntervalFactor&&h.getGroupIntervalFactor(j,k,d)||1;g=i*(k-j)/g*a;h=(h.getNonLinearTimeTicks||eb)(yb(g,c.units||bc),j,k,null,d,this.closestPointRange);f=U.groupData.apply(this,[d,f,h,c.approximation]);d=f[0];f=f[1];if(c.smoothed){a=d.length-1;for(d[a]=k;a--&&a>0;)d[a]+=g/2;d[0]=j}this.currentDataGrouping=h.info; if(b.pointRange===null)this.pointRange=h.info.totalRange;this.closestPointRange=h.info.totalRange;this.processedXData=d;this.processedYData=f}else this.currentDataGrouping=null,this.pointRange=m;this.hasGroupedData=e}};U.destroyGroupedData=function(){var a=this.groupedData;n(a||[],function(b,c){b&&(a[c]=b.destroy?b.destroy():null)});this.groupedData=null};U.generatePoints=function(){gc.apply(this);this.destroyGroupedData();this.groupedData=this.hasGroupedData?this.points:null};U.tooltipHeaderFormatter= function(a){var b=this.tooltipOptions,c=this.options.dataGrouping,d=b.xDateFormat,e,f=this.xAxis,g,h;if(f&&f.options.type==="datetime"&&c&&va(a.key)){g=this.currentDataGrouping;c=c.dateTimeLabelFormats;if(g)f=c[g.unitName],g.count===1?d=f[0]:(d=f[1],e=f[2]);else if(!d)for(h in I)if(I[h]>=f.closestPointRange){d=c[h][0];break}d=ya(d,a.key);e&&(d+=ya(e,a.key+g.totalRange-1));a=b.headerFormat.replace("{point.key}",d)}else a=ic.call(this,a);return a};U.destroy=function(){for(var a=this.groupedData||[], b=a.length;b--;)a[b]&&a[b].destroy();hc.apply(this)};xa(U,"setOptions",function(a,b){var c=a.call(this,b),d=this.type,e=this.chart.options.plotOptions,f=R[d].dataGrouping;if(ac[d])f||(f=v(jc,ac[d])),c.dataGrouping=v(f,e.series&&e.series.dataGrouping,e[d].dataGrouping,b.dataGrouping);if(this.chart.options._stock)this.requireSorting=!0;return c});R.ohlc=v(R.column,{lineWidth:1,tooltip:{pointFormat:'{series.name}
    Open: {point.open}
    High: {point.high}
    Low: {point.low}
    Close: {point.close}
    '}, states:{hover:{lineWidth:3}},threshold:null});Q=ea(P.column,{type:"ohlc",pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"high",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},upColorProp:"stroke",getAttribs:function(){P.column.prototype.getAttribs.apply(this,arguments);var a=this.options,b=a.states,c=a.upColor||this.color,a=v(this.pointAttr),d=this.upColorProp,e=this.points||[],f=e.length;a[""][d]=c;a.hover[d]=b.hover.upColor|| c;a.select[d]=b.select.upColor||c;for(d=0;d0?e[d-1].close"},threshold:null,y:-30});P.flags=ea(P.column,{type:"flags",sorted:!1,noSharedTooltip:!0,takeOrdinalPosition:!1,forceCrop:!0,init:Z.prototype.init,pointAttrToOptions:{fill:"fillColor",stroke:"color", "stroke-width":"lineWidth",r:"radius"},translate:function(){P.column.prototype.translate.apply(this);var a=this.chart,b=this.points,c=b.length-1,d,e,f=this.options.onSeries,f=(d=f&&a.get(f))&&d.options.step,g=d&&d.points,h=g&&g.length,i=this.xAxis,j=i.getExtremes(),k,m,l;if(d&&d.visible&&h){m=g[h-1].x;for(b.sort(function(a,b){return a.x-b.x});h--&&b[c];)if(d=b[c],k=g[h],k.x<=d.x&&k.plotY!==r){if(d.x<=m)d.plotY=k.plotY,k.x=j.min&&c.x<=j.max?c.plotY=i.lineTop-a.plotTop:c.shapeArgs={};if((e=b[d-1])&&e.plotX===c.plotX){if(e.stackIndex===r)e.stackIndex=0;c.stackIndex=e.stackIndex+1}})},drawPoints:function(){var a,b=this.points,c=this.chart.renderer,d,e,f=this.options,g=f.y,h,i,j,k,m,l=f.lineWidth%2/2,o;for(j=b.length;j--;)if(k=b[j],d=k.plotX+l,a=k.stackIndex,h=k.options.shape||f.shape,e=k.plotY,e!==r&&(e=k.plotY+g+l-(a!==r&&a*f.stackDistance)),i=a?r:k.plotX+l, o=a?r:k.plotY,m=k.graphic,e!==r)a=k.pointAttr[k.selected?"select":""],m?m.attr({x:d,y:e,r:a.r,anchorX:i,anchorY:o}):m=k.graphic=c.label(k.options.title||f.title||"A",d,e,h,i,o,f.useHTML).css(v(f.style,k.style)).attr(a).attr({align:h==="flag"?"left":"center",width:f.width,height:f.height}).add(this.group).shadow(f.shadow),i=m.box,a=i.getBBox(),k.shapeArgs=z(a,{x:d-(h==="flag"?0:i.attr("width")/2),y:e});else if(m)k.graphic=m.destroy()},drawTracker:function(){P.column.prototype.drawTracker.apply(this); ca&&n(this.points,function(a){a.graphic&&H(a.graphic.element,"mouseover",function(){a.graphic.toFront()})})},animate:qa});wb.flag=function(a,b,c,d,e){var f=e&&e.anchorX||a,e=e&&e.anchorY||b;return["M",f,e,"L",a,b+d,a,b,a+c,b,a+c,b+d,a,b+d,"M",f,e,"Z"]};n(["circle","square"],function(a){wb[a+"pin"]=function(b,c,d,e,f){var g=f&&f.anchorX,f=f&&f.anchorY,b=wb[a](b,c,d,e);g&&f&&b.push("M",g,c+e,"L",g,f);return b}});cb===hb&&n(["flag","circlepin","squarepin"],function(a){hb.prototype.symbols[a]=wb[a]}); Q=ib("linearGradient",{x1:0,y1:0,x2:0,y2:1},"stops",[[0,"#FFF"],[1,"#CCC"]]);F=[].concat(bc);F[4]=[fa,[1,2,3,4]];F[5]=[Ka,[1,2,3]];z(K,{navigator:{handles:{backgroundColor:"#FFF",borderColor:"#666"},height:40,margin:10,maskFill:"rgba(255, 255, 255, 0.75)",outlineColor:"#444",outlineWidth:1,series:{type:"areaspline",color:"#4572A7",compare:null,fillOpacity:0.4,dataGrouping:{approximation:"average",groupPixelWidth:2,smoothed:!0,units:F},dataLabels:{enabled:!1},id:"highcharts-navigator-series",lineColor:"#4572A7", lineWidth:1,marker:{enabled:!1},pointRange:0,shadow:!1},xAxis:{tickWidth:0,lineWidth:0,gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",x:3,y:-4}},yAxis:{gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:0.1,maxPadding:0.1,labels:{enabled:!1},title:{text:null},tickWidth:0}},scrollbar:{height:tb?20:14,barBackgroundColor:Q,barBorderRadius:2,barBorderWidth:1,barBorderColor:"#666",buttonArrowColor:"#666",buttonBackgroundColor:Q,buttonBorderColor:"#666",buttonBorderRadius:2,buttonBorderWidth:1, minWidth:6,rifleColor:"#666",trackBackgroundColor:ib("linearGradient",{x1:0,y1:0,x2:0,y2:1},"stops",[[0,"#EEE"],[1,"#FFF"]]),trackBorderColor:"#CCC",trackBorderWidth:1,liveRedraw:ca}});Gb.prototype={drawHandle:function(a,b){var c=this.chart,d=c.renderer,e=this.elementsToDestroy,f=this.handles,g=this.navigatorOptions.handles,g={fill:g.backgroundColor,stroke:g.borderColor,"stroke-width":1},h;this.rendered||(f[b]=d.g().css({cursor:"e-resize"}).attr({zIndex:4-b}).add(),h=d.rect(-4.5,0,9,16,3,1).attr(g).add(f[b]), e.push(h),h=d.path(["M",-1.5,4,"L",-1.5,12,"M",0.5,4,"L",0.5,12]).attr(g).add(f[b]),e.push(h));f[b][c.isResizing?"animate":"attr"]({translateX:this.scrollerLeft+this.scrollbarHeight+parseInt(a,10),translateY:this.top+this.height/2-8})},drawScrollbarButton:function(a){var b=this.chart.renderer,c=this.elementsToDestroy,d=this.scrollbarButtons,e=this.scrollbarHeight,f=this.scrollbarOptions,g;this.rendered||(d[a]=b.g().add(this.scrollbarGroup),g=b.rect(-0.5,-0.5,e+1,e+1,f.buttonBorderRadius,f.buttonBorderWidth).attr({stroke:f.buttonBorderColor, "stroke-width":f.buttonBorderWidth,fill:f.buttonBackgroundColor}).add(d[a]),c.push(g),g=b.path(["M",e/2+(a?-1:1),e/2-3,"L",e/2+(a?-1:1),e/2+3,e/2+(a?2:-2),e/2]).attr({fill:f.buttonArrowColor}).add(d[a]),c.push(g));a&&d[a].attr({translateX:this.scrollerWidth-e})},render:function(a,b,c,d){var e=this.chart,f=e.renderer,g,h,i,j,k=this.scrollbarGroup,m=this.navigatorGroup,l=this.scrollbar,m=this.xAxis,o=this.scrollbarTrack,n=this.scrollbarHeight,r=this.scrollbarEnabled,y=this.navigatorOptions,u=this.scrollbarOptions, w=u.minWidth,x=this.height,v=this.top,E=this.navigatorEnabled,B=y.outlineWidth,z=B/2,D=0,J=this.outlineHeight,H=u.barBorderRadius,G=u.barBorderWidth,F=v+z;if(!isNaN(a)){this.navigatorLeft=g=p(m.left,e.plotLeft+n);this.navigatorWidth=h=p(m.len,e.plotWidth-2*n);this.scrollerLeft=i=g-n;this.scrollerWidth=j=j=h+2*n;if(m.getExtremes){var I=e.xAxis[0].getExtremes(),L=I.dataMin===null,K=m.getExtremes(),M=C(I.dataMin,K.dataMin),I=t(I.dataMax,K.dataMax);!L&&(M!==K.min||I!==K.max)&&m.setExtremes(M,I,!0,!1)}c= p(c,m.translate(a));d=p(d,m.translate(b));this.zoomedMax=a=C(A(t(c,d)),h);this.zoomedMin=d=this.fixedWidth?a-this.fixedWidth:t(A(C(c,d)),0);this.range=c=a-d;this.fixedWidth=null;if(!this.rendered){if(E)this.navigatorGroup=m=f.g("navigator").attr({zIndex:3}).add(),this.leftShade=f.rect().attr({fill:y.maskFill}).add(m),this.rightShade=f.rect().attr({fill:y.maskFill}).add(m),this.outline=f.path().attr({"stroke-width":B,stroke:y.outlineColor}).add(m);if(r)this.scrollbarGroup=k=f.g("scrollbar").add(), l=u.trackBorderWidth,this.scrollbarTrack=o=f.rect().attr({y:-l%2/2,fill:u.trackBackgroundColor,stroke:u.trackBorderColor,"stroke-width":l,r:u.trackBorderRadius||0,height:n}).add(k),this.scrollbar=l=f.rect().attr({y:-G%2/2,height:n,fill:u.barBackgroundColor,stroke:u.barBorderColor,"stroke-width":G,r:H}).add(k),this.scrollbarRifles=f.path().attr({stroke:u.rifleColor,"stroke-width":1}).add(k)}e=e.isResizing?"animate":"attr";E&&(this.leftShade[e]({x:g,y:v,width:d,height:x}),this.rightShade[e]({x:g+a, y:v,width:h-a,height:x}),this.outline[e]({d:["M",i,F,"L",g+d+z,F,g+d+z,F+J-n,"M",g+a-z,F+J-n,"L",g+a-z,F,i+j,F]}),this.drawHandle(d+z,0),this.drawHandle(a+z,1));if(r)this.drawScrollbarButton(0),this.drawScrollbarButton(1),k[e]({translateX:i,translateY:s(F+x)}),o[e]({width:j}),g=n+d,h=c-G,h12?"visible":"hidden"})[e]({d:["M",w-3,n/4,"L",w-3,2*n/3,"M",w,n/4,"L",w,2*n/3,"M", w+3,n/4,"L",w+3,2*n/3]});this.scrollbarPad=D;this.rendered=!0}},addEvents:function(){var a=this.chart.container,b=this.mouseDownHandler,c=this.mouseMoveHandler,d=this.mouseUpHandler,e;e=[[a,"mousedown",b],[a,"mousemove",c],[document,"mouseup",d]];fb&&e.push([a,"touchstart",b],[a,"touchmove",c],[document,"touchend",d]);n(e,function(a){H.apply(null,a)});this._events=e},removeEvents:function(){n(this._events,function(a){W.apply(null,a)});this._events=r;this.navigatorEnabled&&this.baseSeries&&W(this.baseSeries, "updatedData",this.updatedDataHandler)},init:function(){var a=this,b=a.chart,c,d,e=a.scrollbarHeight,f=a.navigatorOptions,g=a.height,h=a.top,i,j,k,m=document.body.style,l,o=a.baseSeries,n;a.mouseDownHandler=function(d){var d=b.pointer.normalize(d),e=a.zoomedMin,f=a.zoomedMax,h=a.top,i=a.scrollbarHeight,k=a.scrollerLeft,o=a.scrollerWidth,n=a.navigatorLeft,p=a.navigatorWidth,q=a.scrollbarPad,r=a.range,u=d.chartX,t=d.chartY,d=b.xAxis[0],y=tb?10:7;if(t>h&&tn+e-q&&uk&&uk+o-i?e+C(10,r):up&&(f=p-r),f!==e)){a.fixedWidth=r;if(!d.ordinalPositions)d.fixedRange=d.max-d.min;e=c.translate(f,!0);d.setExtremes(e,d.fixedRange?e+d.fixedRange:c.translate(f+r,!0),!0,!1,{trigger:"navigator"})}};a.mouseMoveHandler= function(c){var d=a.scrollbarHeight,e=a.navigatorLeft,f=a.navigatorWidth,g=a.scrollerLeft,h=a.scrollerWidth,i=a.range;if(c.pageX!==0)c=b.pointer.normalize(c),c=c.chartX,cg+h-d&&(c=g+h-d),a.grabbedLeft?(k=!0,a.render(0,0,c-e,a.otherHandlePos)):a.grabbedRight?(k=!0,a.render(0,0,a.otherHandlePos,c-e)):a.grabbedCenter&&(k=!0,cf+j-i&&(c=f+j-i),a.render(0,0,c-j,c-j+i)),k&&a.scrollbarOptions.liveRedraw&&setTimeout(function(){a.mouseUpHandler(!1)},0)};a.mouseUpHandler=function(d){k&&b.xAxis[0].setExtremes(c.translate(a.zoomedMin, !0),c.translate(a.zoomedMax,!0),!0,!1,{trigger:"navigator"});if(d!==!1)a.grabbedLeft=a.grabbedRight=a.grabbedCenter=k=j=null,m.cursor=l||""};a.updatedDataHandler=function(){var c=o.xAxis,d=c.getExtremes(),e=d.min,f=d.max,g=d.dataMin,d=d.dataMax,h=f-e,j,k,l,m,p;j=i.xData;var r=!!c.setExtremes;k=f>=j[j.length-1];j=e<=g;if(!n)i.options.pointStart=o.xData[0],i.setData(o.options.data,!1),p=!0;j&&(m=g,l=m+h);k&&(l=d,j||(m=t(l-h,i.xData[0])));r&&(j||k)?c.setExtremes(m,l,!0,!1,{trigger:"updatedData"}):(p&& b.redraw(!1),a.render(t(e,g),C(f,d)))};var r=b.xAxis.length,y=b.yAxis.length;b.extraBottomMargin=a.outlineHeight+f.margin;if(a.navigatorEnabled){var u=o?o.options:{},w=u.data,s=f.series;n=s.data;a.xAxis=c=new Da(b,v({ordinal:o&&o.xAxis.options.ordinal},f.xAxis,{isX:!0,type:"datetime",index:r,height:g,offset:0,offsetLeft:e,offsetRight:-e,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1}));a.yAxis=d=new Da(b,v(f.yAxis,{alignTicks:!1,height:g,offset:0,index:y,zoomEnabled:!1}));r= v(u,s,{threshold:null,clip:!1,enableMouseTracking:!1,group:"nav",padXAxis:!1,xAxis:r,yAxis:y,name:"Navigator",showInLegend:!1,isInternal:!0,visible:!0});r.data=n||w;i=b.initSeries(r);if(o&&f.adaptToUpdatedData!==!1)H(o,"updatedData",a.updatedDataHandler),o.userOptions.events=z(o.userOptions.event,{updatedData:a.updatedDataHandler})}else a.xAxis=c={translate:function(a,c){var d=b.xAxis[0].getExtremes(),f=b.plotWidth-2*e,g=d.dataMin,d=d.dataMax-g;return c?a*d/f+g:f*(a-g)/d}};a.series=i;xa(b,"getMargins", function(b){var e=this.legend,f=e.options;b.call(this);a.top=h=a.navigatorOptions.top||this.chartHeight-a.height-a.scrollbarHeight-this.options.chart.spacingBottom-(f.verticalAlign==="bottom"&&f.enabled?e.legendHeight+p(f.margin,10):0);if(c&&d)c.options.top=d.options.top=h,c.setAxisSize(),d.setAxisSize()});a.addEvents()},destroy:function(){this.removeEvents();n([this.xAxis,this.yAxis,this.leftShade,this.rightShade,this.outline,this.scrollbarTrack,this.scrollbarRifles,this.scrollbarGroup,this.scrollbar], function(a){a&&a.destroy&&a.destroy()});this.xAxis=this.yAxis=this.leftShade=this.rightShade=this.outline=this.scrollbarTrack=this.scrollbarRifles=this.scrollbarGroup=this.scrollbar=null;n([this.scrollbarButtons,this.handles,this.elementsToDestroy],function(a){Aa(a)})}};Highcharts.Scroller=Gb;xa(Da.prototype,"zoom",function(a,b,c){var d=this.chart,e=d.options,f=e.chart.zoomType,g=e.navigator,e=e.rangeSelector,h;if(this.isXAxis&&(g&&g.enabled||e&&e.enabled))if(f==="x")d.resetZoomButton="blocked";else if(f=== "y")h=!1;else if(f==="xy")d=this.previousZoom,x(b)?this.previousZoom=[this.min,this.max]:d&&(b=d[0],c=d[1],delete this.previousZoom);return h!==r?h:a.call(this,b,c)});xa(Qa.prototype,"init",function(a,b,c){H(this,"beforeRender",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=new Gb(this)});a.call(this,b,c)});z(K,{rangeSelector:{buttonTheme:{width:28,height:16,padding:1,r:0,stroke:"#68A",zIndex:7},inputPosition:{align:"right"},labelStyle:{color:"#666"}}});K.lang= v(K.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});Hb.prototype={clickButton:function(a,b,c){var d=this,e=d.chart,f=d.buttons,g=e.xAxis[0],h=g&&g.getExtremes(),i=e.scroller&&e.scroller.xAxis,j=i&&i.getExtremes&&i.getExtremes(),i=j&&j.dataMin,j=j&&j.dataMax,k=h&&h.dataMin,m=h&&h.dataMax,l=(x(k)&&x(i)?C:p)(k,i),o=(x(m)&&x(j)?t:p)(m,j),q,h=g&&C(h.max,o),i=new Date(h),j=b.type,k=b.count,s,y,m={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(!(l=== null||o===null||a===d.selected)){if(m[j])s=m[j]*k,q=t(h-s,l);else if(j==="month")i.setMonth(i.getMonth()-k),q=t(i.getTime(),l),s=2592E6*k;else if(j==="ytd")if(g){if(o===r)l=Number.MAX_VALUE,o=Number.MIN_VALUE,n(e.series,function(a){a=a.xData;l=C(a[0],l);o=t(a[a.length-1],o)}),c=!1;h=new Date(o);y=h.getFullYear();q=y=t(l||0,Date.UTC(y,0,1));h=h.getTime();h=C(o||h,h)}else{H(e,"beforeRender",function(){d.clickButton(a,b)});return}else j==="year"?(i.setFullYear(i.getFullYear()-k),q=t(l,i.getTime()),s= 31536E6*k):j==="all"&&g&&(q=l,h=o);f[a]&&f[a].setState(2);g?g.setExtremes(q,h,p(c,1),0,{trigger:"rangeSelectorButton",rangeSelectorButton:b}):(c=e.options.xAxis,c[0]=v(c[0],{range:s,min:y}));d.selected=a}},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}],init:function(a){var b=this,c=a.options.rangeSelector,d=c.buttons||[].concat(b.defaultButtons),e=b.buttons= [],c=c.selected,f=b.blurInputs=function(){var a=b.minInput,c=b.maxInput;a&&a.blur();c&&c.blur()};b.chart=a;a.extraTopMargin=25;b.buttonOptions=d;H(a.container,"mousedown",f);H(a,"resize",f);c!==r&&d[c]&&this.clickButton(c,d[c],!1);H(a,"load",function(){H(a.xAxis[0],"afterSetExtremes",function(){if(this.fixedRange!==this.max-this.min)e[b.selected]&&!a.renderer.forExport&&e[b.selected].setState(0),b.selected=null;this.fixedRange=null})})},setInputValue:function(a,b){var c=this.chart.options.rangeSelector; if(b)this[a+"Input"].HCTime=b;this[a+"Input"].value=ya(c.inputEditDateFormat||"%Y-%m-%d",this[a+"Input"].HCTime);this[a+"DateBox"].attr({text:ya(c.inputDateFormat||"%b %e, %Y",this[a+"Input"].HCTime)})},drawInput:function(a){var b=this,c=b.chart,d=c.options.chart.style,e=c.renderer,f=c.options.rangeSelector,g=b.div,h=a==="min",i,j,k,m=this.inputGroup;this[a+"Label"]=j=e.label(K.lang[h?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).attr({padding:1}).css(v(d,f.labelStyle)).add(m);m.offset+= j.width+5;this[a+"DateBox"]=k=e.label("",m.offset).attr({padding:1,width:90,height:16,stroke:"silver","stroke-width":1}).css(v({textAlign:"center"},d,f.inputStyle)).on("click",function(){b[a+"Input"].focus()}).add(m);m.offset+=k.width+(h?10:0);this[a+"Input"]=i=aa("input",{name:a,className:"highcharts-range-selector",type:"text"},z({position:"absolute",border:"2px solid silver",top:"-9999em",textAlign:"center",fontSize:d.fontSize,fontFamily:d.fontFamily},f.inputStyle),g);i.onfocus=function(){M(this, {left:m.translateX+k.x+"px",top:m.translateY+"px",width:k.width-2+"px",height:k.height-2+"px"})};i.onblur=function(){M(this,{top:"-9999em"});b.setInputValue(a)};i.onchange=function(){var a=i.value,d=Date.parse(a),e=c.xAxis[0].getExtremes();isNaN(d)&&(d=a.split("-"),d=Date.UTC(A(d[0]),A(d[1])-1,A(d[2])));if(!isNaN(d)&&(K.global.useUTC||(d+=(new Date).getTimezoneOffset()*6E4),h&&d>=e.dataMin&&d<=b.maxInput.HCTime||!h&&d<=e.dataMax&&d>=b.minInput.HCTime))c.xAxis[0].setExtremes(h?d:e.min,h?e.max:d,r, r,{trigger:"rangeSelectorInput"})}},render:function(a,b){var c=this,d=c.chart,e=d.renderer,f=d.container,g=d.options,h=g.exporting&&d.options.navigation.buttonOptions,i=g.rangeSelector,j=c.buttons,k=K.lang,m=c.div,m=c.inputGroup,l=i.buttonTheme,o=i.inputEnabled!==!1,p=l&&l.states,r=d.plotLeft,t;if(!c.rendered&&(c.zoomText=e.text(k.rangeSelectorZoom,r,d.plotTop-10).css(i.labelStyle).add(),t=r+c.zoomText.getBBox().width+5,n(c.buttonOptions,function(a,b){j[b]=e.button(a.text,t,d.plotTop-25,function(){c.clickButton(b, a);c.isActive=!0},l,p&&p.hover,p&&p.select).css({textAlign:"center"}).add();t+=j[b].width+(i.buttonSpacing||0);c.selected===b&&j[b].setState(2)}),o))c.div=m=aa("div",null,{position:"relative",height:0,zIndex:1}),f.parentNode.insertBefore(m,f),c.inputGroup=m=e.g("input-group").add(),m.offset=0,c.drawInput("min"),c.drawInput("max");o&&(f=d.plotTop-35,m.align(z({y:f,width:m.offset,x:h&&f<(h.y||0)+h.height-g.chart.spacingTop?-40:0},i.inputPosition),!0,d.spacingBox),c.setInputValue("min",a),c.setInputValue("max", b));c.rendered=!0},destroy:function(){var a=this.minInput,b=this.maxInput,c=this.chart,d=this.blurInputs,e;W(c.container,"mousedown",d);W(c,"resize",d);Aa(this.buttons);if(a)a.onfocus=a.onblur=a.onchange=null;if(b)b.onfocus=b.onblur=b.onchange=null;for(e in this)this[e]&&e!=="chart"&&(this[e].destroy?this[e].destroy():this[e].nodeType&&Za(this[e])),this[e]=null}};xa(Qa.prototype,"init",function(a,b,c){H(this,"init",function(){if(this.options.rangeSelector.enabled)this.rangeSelector=new Hb(this)}); a.call(this,b,c)});Highcharts.RangeSelector=Hb;Qa.prototype.callbacks.push(function(a){function b(){f=a.xAxis[0].getExtremes();g.render(t(f.min,f.dataMin),C(f.max,f.dataMax))}function c(){f=a.xAxis[0].getExtremes();h.render(f.min,f.max)}function d(a){g.render(a.min,a.max)}function e(a){h.render(a.min,a.max)}var f,g=a.scroller,h=a.rangeSelector;g&&(H(a.xAxis[0],"afterSetExtremes",d),xa(a,"drawChartBox",function(a){var c=this.isDirtyBox;a.call(this);c&&b()}),b());h&&(H(a.xAxis[0],"afterSetExtremes", e),H(a,"resize",c),c());H(a,"destroy",function(){g&&W(a.xAxis[0],"afterSetExtremes",d);h&&(W(a,"resize",c),W(a.xAxis[0],"afterSetExtremes",e))})});Highcharts.StockChart=function(a,b){var c=a.series,d,e={marker:{enabled:!1,states:{hover:{radius:5}}},states:{hover:{lineWidth:2}}},f={shadow:!1,borderWidth:0};a.xAxis=Fa(ia(a.xAxis||{}),function(a){return v({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"},showLastLabel:!0},a,{type:"datetime",categories:null})});a.yAxis= Fa(ia(a.yAxis||{}),function(a){d=a.opposite;return v({labels:{align:d?"right":"left",x:d?-2:2,y:-2},showLastLabel:!1,title:{text:null}},a)});a.series=null;a=v({chart:{panning:!0,pinchType:"x"},navigator:{enabled:!0},scrollbar:{enabled:!0},rangeSelector:{enabled:!0},title:{text:null},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:e,spline:e,area:e,areaspline:e,arearange:e,areasplinerange:e,column:f,columnrange:f,candlestick:f,ohlc:f}},a,{_stock:!0,chart:{inverted:!1}});a.series= c;return new Qa(a,b)};xa(ob.prototype,"init",function(a,b,c){var d=c.chart.pinchType||"";a.call(this,b,c);this.pinchX=this.pinchHor=d.indexOf("x")!==-1;this.pinchY=this.pinchVert=d.indexOf("y")!==-1});var kc=U.init,lc=U.processData,mc=Ha.prototype.tooltipFormatter;U.init=function(){kc.apply(this,arguments);this.setCompare(this.options.compare)};U.setCompare=function(a){this.modifyValue=a==="value"||a==="percent"?function(b,c){var d=this.compareValue,b=a==="value"?b-d:b=100*(b/d)-100;if(c)c.change= b;return b}:null;if(this.chart.hasRendered)this.isDirty=!0};U.processData=function(){lc.apply(this,arguments);if(this.options.compare)for(var a=0,b=this.processedXData,c=this.processedYData,d=c.length,e=this.xAxis.getExtremes().min;a=e){this.compareValue=c[a];break}};Da.prototype.setCompare=function(a,b){this.isXAxis||(n(this.series,function(b){b.setCompare(a)}),p(b,!0)&&this.chart.redraw())};Ha.prototype.tooltipFormatter=function(a){a=a.replace("{point.change}", (this.change>0?"+":"")+Wa(this.change,this.series.tooltipOptions.changeDecimals||2));return mc.apply(this,[a])};(function(){var a=U.init,b=U.getSegments;U.init=function(){var b,d;a.apply(this,arguments);b=this.chart;(d=this.xAxis)&&d.options.ordinal&&H(this,"updatedData",function(){delete d.ordinalIndex});if(d&&d.options.ordinal&&!d.hasOrdinalExtension){d.hasOrdinalExtension=!0;d.beforeSetTickPositions=function(){var a,b=[],c=!1,e,j=this.getExtremes(),k=j.min,j=j.max,m;if(this.options.ordinal){n(this.series, function(c,d){if(c.visible!==!1&&c.takeOrdinalPosition!==!1&&(b=b.concat(c.processedXData),a=b.length,d&&a)){b.sort(function(a,b){return a-b});for(d=a-1;d--;)b[d]===b[d+1]&&b.splice(d,1)}});a=b.length;if(a>2){e=b[1]-b[0];for(m=a-1;m--&&!c;)b[m+1]-b[m]!==e&&(c=!0)}c?(this.ordinalPositions=b,c=d.val2lin(k,!0),e=d.val2lin(j,!0),this.ordinalSlope=j=(j-k)/(e-c),this.ordinalOffset=k-c*j):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=r}};d.val2lin=function(a,b){var c=this.ordinalPositions;if(c){var d= c.length,e,k;for(e=d;e--;)if(c[e]===a){k=e;break}for(e=d-1;e--;)if(a>c[e]||e===0){c=(a-c[e])/(c[e+1]-c[e]);k=e+c;break}return b?k:this.ordinalSlope*(k||0)+this.ordinalOffset}else return a};d.lin2val=function(a,b){var c=this.ordinalPositions;if(c){var d=this.ordinalSlope,e=this.ordinalOffset,k=c.length-1,m,l;if(b)a<0?a=c[0]:a>k?a=c[k]:(k=V(a),l=a-k);else for(;k--;)if(m=d*k+e,a>=m){d=d*(k+1)+e;l=(a-m)/(d-m);break}return l!==r&&c[k]!==r?c[k]+(l?l*(c[k+1]-c[k]):0):a}else return a};d.getExtendedPositions= function(){var a=d.series[0].currentDataGrouping,e=d.ordinalIndex,h=a?a.count+a.unitName:"raw",i=d.getExtremes(),j,k;if(!e)e=d.ordinalIndex={};if(!e[h])j={series:[],getExtremes:function(){return{min:i.dataMin,max:i.dataMax}},options:{ordinal:!0}},n(d.series,function(d){k={xAxis:j,xData:d.xData,chart:b,destroyGroupedData:qa};k.options={dataGrouping:a?{enabled:!0,forced:!0,approximation:"open",units:[[a.unitName,[a.count]]]}:{enabled:!1}};d.processData.apply(k);j.series.push(k)}),d.beforeSetTickPositions.apply(j), e[h]=j.ordinalPositions;return e[h]};d.getGroupIntervalFactor=function(a,b,c){for(var d=0,e=c.length,k=[];dc;j[n]k*5||w){if(j[n]>z){for(p=eb(a,j[l],j[n],e);p.length&&p[0]<=z;)p.shift();p.length&&(z=p[p.length-1]);v=v.concat(p)}l=n+1}if(w)break}a=p.info;if(m&&a.unitRange<=I[za]){n=v.length-1;for(l=1;lc?a-1: a;for(B=void 0;m--;)l=n[m],c=B-l,B&&c1)o&&n(o,function(a){a.setState()}), i<0?(o=r,r=d.ordinalPositions?d:r):o=d.ordinalPositions?d:r,s=r.ordinalPositions,k>s[s.length-1]&&s.push(k),o=p.apply(o,[u.apply(o,[m,!0])+i,!0]),i=p.apply(r,[u.apply(r,[l,!0])+i,!0]),o>C(j.dataMin,m)&&ia.xAxis.closestPointRange* e&&d.splice(g+1,0,b.splice(h+1,b.length-h))})}})();z(Highcharts,{Axis:Da,Chart:Qa,Color:ua,Legend:Fb,Pointer:ob,Point:Ha,Tick:ab,Tooltip:Eb,Renderer:cb,Series:Z,SVGElement:Ca,SVGRenderer:Ga,arrayMin:Na,arrayMax:sa,charts:Sa,dateFormat:ya,format:Xa,pathAnim:Jb,getOptions:function(){return K},hasBidiBug:cc,isTouchDevice:tb,numberFormat:Wa,seriesTypes:P,setOptions:function(a){K=v(K,a);Sb();return K},addEvent:H,removeEvent:W,createElement:aa,discardElement:Za,css:M,each:n,extend:z,map:Fa,merge:v,pick:p, splat:ia,extendClass:ea,pInt:A,wrap:xa,svg:ca,canvas:ha,vml:!ca&&!ha,product:"Highstock",version:"1.3.0"})})(); site_pro/images/0000755075506000000310000000000011734670506012106 5ustar namedsite_pro/images/layouts-img5.png0000644075506000000310000000027111715304166015146 0ustar namedPNG  IHDRtEXtSoftwareAdobe ImageReadyqe<[IDATxbLKK[`  G@u̙Yl?,jN@{C8Ԙ11Z0ji& ~GʾCY*"`lIENDB`site_pro/images/1page_img5-hover.png0000644075506000000310000002262711734670506015664 0ustar namedPNG  IHDRQQJ6 pHYs  gAMA|Q cHRMz%u0`:o_F% IDATxڔA @`A^Ž A'!l% O jOx"9;ОL#Kmp5 ,&@,z QPJ`C2PX&(@.ЁSq›7oYAQQ 0p>S4P A,+,H n27y5rd( 0E @TaP*^P 2  (DPA a&jX +3Ak rP@   T3>z, mBLԬ@" X3s>8%pe1`UJ$? > @wex\"r Pd*) `AObMv'l% t !0@YH;T0I@L8 Fh9i cVA 0PM *Ae NPJ5_ @PJvX* L ή\ jc#PE .  P*a_  R4"XWPYPe9PvPÇH h F3(2 m@9 ᠄p=;` ^= [x'yamW+$@Yr@ ) H h`@nEȽ474% G"%8hF``qAvk1.y @: t'2g4܋,}.Gm Q?,}TPߛ@^&Ѐwg,Px :z;Jhd g "1Ǐ Pb60Ek: cE gHCE4lǾWj;K@Q1xOHWKC2 Ƅ3MY G\l˫Ѕg2G%du NYuCsbDp5fAY PyV0sA).@Po T@YX`4P'%AEm`NѠT. 1*{Aƍ``^Ra G鍼WyŀBtg2h7/Nz/+K8|Yc4e͹Jv=ѕs;Y XVGa~ȴ~ PPvd. xGM(bA+h75 mk^ė>cr 5!Ƨ69(WtqE(KϠN@i s=x|պ#AYa 6y Ծ`JEyГجˊfbhln{B@ !0 API)D`9FUA bTyC9Ķ]DX@Av|TA-y qPdA \t @ ρےEH&ԀA?b;"@a @ՠB@1RAT^! P`'%A͊G@ATF-]PR!;z6b$5@F@Ą-kXYXx@֠*CI.`rw39 킵 @;hd$h|n2 @,>~37(5? L)`ARbkDakcop^ yPtED-L>;TJݠD N@+@@|LƠ>)Y *@ pPJ( ψ I'3S8(@@mRl0ԐIv'h\rT.hƌ3 2\S$IlT(`f+ >>"c{IciC?7wae04zFu;]H猔U!*n| [~wN %@,uw6baO5;ș ",BX d짯`jj2ri+Q#XEC u߸A?@M* h@`"VpQ@A@, }Uݿj=\,MJp K})V&< b&@a(E[28 @f#W`y \R2 [jA۪*7_ @,n+)-U (ۀ@ygϞ 5{9ۂG|MndFh֭[k@Eokۄap(v@]ЊWh eV@3 (>-,!fPTԀSnrRWr[a^2r0*>Ѐh/I{` 487iXQ~:ėR`#*@5`_~[Er=UBq{9azqIB(bAς8GLMXF3t箩ojZ߼5=͗G 羨A yc@rVU!rFY;YjG) @=l1,Ơ&ќGƽ苎 'xGbM) im؉[H = y4 Yj[8uQW.r4Cw$2ů{ns-@esdG{P j;Z_ꇥLX9MÂ"0rhP }[5+z X X-,P ƀ8 @ `a%h8yd)H.]{de+A#ԋ,@>te g, .C@@S"Vvwu'@@ PRd5 K CEkb@Sl16OիWjj娨( ԃ ςʪ*tpIZׯ31,X{22Lv!sh:} tʕ+j@$%&4sX  j@#2=PS<‹6? a.GG23 G~] z .nn gϞ9 J_‚a7 jt;89 ԲdX` U1SPy*AKԑp H#XTN,KA96 JE߀(` yT̤I#0VR#傉'ͬ-A..fhD TӃY}) @0@L+@p؂sP m?0 :V3޳$͝;e4*~`3@?O} T9;`-XT<#s$ڔJБ+  U` Xn=(w`IAA]6Šظ8&p)Ll sPS4Z yàGPzƍ=j)ZC@vjg$߿nʁPF,[G  ÇAmR`-[ jސU T, Jh՜)@KC8PF>zm HlQ`#GGp]Ԑ۔ݸm& ( 2m--].bjTA0Am7ww l9`rS 8nz$Y &>   9 qP/ TFv =)c`?Ǵ K;tq IԮ;!EuSj&cƪMd}xx}dn3t^ר.\Chl&^h@-@ AF-Z@V TvDGG{?xĜ3V!eC䬍 @e-Jm.N`Ă@ w{@mAZ hQ2Ռ,)XK Վ9@+`)г@kgިm `|X':9Dт}ԃG@LkT@) /`M0j˷Z׷bFQHlpB2-Vb3Լܱ "MNYUl㴱/^ּccZ}^l9}OEKHΞ*ŠQI,$y,,<ѼNPY a?߽3,O''wl0<,ƎيrC*6σxEJE֜djAQHQE#R!80;hج8pM'QЩl"0Pܘ`McG:.(waв[ ܳr%Ŷn"`{Xa&j PNfTPGZ4ZQ'\]y{1*pܷrmUN. @ue()&'x+}xXCzDAqAY! ݫ R > J RyߠKQ[bZ 8Y'(@M02A mM"KAڻ@ PMCvnakAOŃJ G5H5m뜱%Ip@S>`c!fiYŸ7o%\}}8ub(D6ž@ox93!`v a9d6%h! 0gaeJl j jyP 60F@@{mAf@4 8@)TA{ Իy 4ecPH V :d |P6`f&^ &|kq Mǔj~S< Ҁmm[ae /~m@2Lz` ~m;hTnh Phyhx%R-){Ae (z!7P J놂`gXǍVBGc>(Ha (%C΂vЀD{% a\byDbo ǘXxp u.F[L3oA>EJr7϶ߘeL7 )Əv&]+j,N-hFUХ >;H_[ɏXQ8Р,UP̃ x&0;> 8ͷ9`0C." B=ZV;hd)(AMP6u9 |Z=5aH7l8|P9 $ l L9; W`1A DJerd(Wf@QϠ4XCT3VJ< κ6f+]y\ (9i))QXv {1QGE,qEPeIP6Ebx PI* pV͆IENDB`site_pro/images/description-arrow.png0000644075506000000310000000031411714344356016264 0ustar namedPNG  IHDR5tEXtSoftwareAdobe ImageReadyqe<nIDATxbLKKc> 2 ~ `J E@́,9mlC  * d@n@Ā$ۀx=. ,#Py 0@ǁ8 UW#IENDB`site_pro/images/1page_img5.png0000644075506000000310000001507511734670464014545 0ustar namedPNG  IHDRQQJ6 pHYs  gAMA|Q cHRMz%u0`:o_FIDATxڔK 0 D YBB!Ȫ3,ځ%ی4nc*c9GZ [Ιfd5Ї9޵ߘc-'EC*@S1 DУ`Ai{Ͳid#C@| ^da (dH  p"P S#,I  b-y =GN k@hbOa~*]0HM ) )eh31*XJMelRz6*T݆7 s׶8_[PW -2fs06,` br< I $'a0Q@?HK0P ". .Z%2@[ z٣QC#0 [`0YpԌ&a %]Be,[2Xei&RU"2́%0d 7'MXG5I gC1=P@<+@h{$? -[ذ0,a9,5S)~#}bgXf d("ǁ̄hq]l>Tk 7_`\@ot?w5446Lk GgW@9ՠXAϦ 6\5H@`Yd&((ȠJV1 @,F9TgZk XA</k`ؠ{ "".40E$u ¥rӧ'%%at/^\޼yL߽{#u'??ojܹʕ+`i- Kp>6@Y"#a!()|QpWWJ*8p.\𿤤ԩS;w\kf?6-[f@Ds q-ȣ- XXLTxx8>|7naPJX"@@E;О:CNAvRW+4vȫWM_P 9NNNpRqI WPPa590eaP-O(̠ oS fpyfp<$+G @P `vg8u;tuubH!A5@YJdr&;R:Xc6nFD̙3 IPJP[< L3pKbM6Sl`<$$-A }#8"@ 7CzP11i$ɐS< k+ eX1 n}LsVp`=bصX3%4eDgc RJ16A9s wc QJFCMͪVpy x\#7M"Ú@:x`6@jAf\DJOOLZذks`DۊTccS r@< ,Sj@ j,g"d v%h1?~ AvS}ކN2(Y (R F0(3F0]bR (ԃh|mBPXÃ٠Ha`'ف # /_jPf@b4 PKaȆºYYY@y @K.D\X >5XLPܹ?Cid@ZZԢ  t:; (alT%v= f 6@5@`(@gqELljuP@vGa;R=`@ `*AsZ()j!Q8t&l0=#[Z ލɀWG8aU2 2]{~R># o93@Pmm6, #τ-O"uwwm#(k<e+ؠȮ^%\ ;@4 bV ⃥v2ȵ-3~# @7|4|rzXDmډl 6 N>| uA}@YLa } DXĶ$yClW -5AY9{`߿< @l$4,f `mNPsEn&h(m' VA^@(%Om9; ÷WL8"<u@o/77\!F5@z1hh5Ȱy%l9 Ф 8(a4 vj9;;eu 3C]:='.T EE>4 ⃲ |8̙3P_4 <=)Y`%2D .c.rLJШ (%F_@50hVFq X0L>] 9Дh(ڵ  NP*DBx9e v,*^AȮ X,7@'^m佞VT9 [zբɞemO#9o1^&q*V فjŀ-Wf֙/cx RA _bO_D`uvPO9ޓα@"$HLʌ= 1v(Y+c~ctuc?7DzxRвXJ"uXuA`۶mIz`aA>+񫪪<ؼ3(܇> @ uX Ԡ@> \ ^|AOO䜅"VЮo0KX#[ yA=ggei 1T"ׯ#(" ԴuArZZZX7BEl[B?6} m8c@kc,UDfL4Ov $Ca`KPЦ`#QӤ(1_KօCzF3ׄ[ f^Fj,֧v@5+W'@0@ԦX*)в5ac0Gp 0Ҹ*<9#!v}8z \؃FhM!l46!OFA@u6m 2} DD8 [y6@ak}[ %@.9Zy޽)PCTVɂ&@A6b3gd077wbMA(UH,sNpU.5۠PJjS 9EG>tXcJ 4++Pnh 3 5>2Ae mݺ=e qZXxJ KĈ,h9f3ɣGHVXx &O3'`Csθ@l΀y?@1!>jNq"&wRl5ra+B )y3 ! r/ Edx!}2<&l"%Cyg=EK"3@DY3d@1#\,F[} !PCAd)s υ@^<@jJDI!C[ D+ fXʃY-I^%gL9ȁqrԬxbFZ P,=PI堁YٗF:s0ϒyhb  (,ك K@lw$;pXq<`IbЪ,RmdF+@Q YA}8lN- 0LG,7a+au!uHIB$E`lƜ1rVC@zS#kl슂:!"{GbzUDZeg1h9G.`p ([OWĉwPZ! z3(zDւo^ًSїgۡkbЏ^%\lV;k0>-ԇ< +' Kεa sG'l'`&GS9Gc#1|'A ^ȧ,Fsb(>X+[}LZrcϒ%S"AI=t˱h5謭 Dy@`3B7#6il خAn"eHD fYz Zuw0@;C$@V$cq#_`E US% KjУH׋y@-F,1d=A   X[e!IENDB`site_pro/images/1page_img4-hover.png0000644075506000000310000002170311734670466015662 0ustar namedPNG  IHDRQQJ6 pHYs  gAMA|Q cHRMz%u0`:o_F#9IDATxڔA @4ny ;*=1u;S4P A,+,H n27y5rd(*j`BRR @ȁRͪ OTjRV!~h/_Ӡ,$R Xa+@Z ~`ڟ T=}JHYkA@ v@, W>}b Š2 {(y@l7\Xނ"T$jF9 1B UZPF'O89( @< 3b'O0| "VlW,׮^2@J@MհVf*"0VA@ h/)f|8IY< 60@" X3s(- m[O[e\G9ED(2.g¤6 }sN[VT?>HP؃{;N;X-@&.<d8=Ij,^IIx/ sS`$1IUkOU-|hnfl)A*#@I*P%ˆ"q,`A!|TBPĀ* P3\$ڨ>G_`%FFg>0&D.gs/|.0QP?@&b $l_=lYf`J4!]96E 0@1bЎI^(a '#9UW &^= BiiZ| ܲBEcx܁)؝d!OhȻT9$B=;!ֲǖcָQÜUOG'2S1QDT"  GʠjQM,.P̀ @EH 릁P*++Rg60'hP*Xl1n;E֍7PQQ0 #v@|?7uoۑ xYh56qtZ||y7/| 2s.f]Ew\Vʌj_yT!°ΏUٴ?x`na?+A?P_H} O"%$?*&9?4mkb+e+`Fl,)o6hzxFVzxE4}Kq{ Xź#AYa 6y}f8A)@e'Y T`9 h Z@^Py T\<1) AU`Vj P"@evP*AT݃j[PJ% Fc`l@qRR ȡ A=0Kρ U,l )#Є 75("AC+*5br߿ lR,eOA) D~(!%{!+`ռ0 vР0,b@$c4hw" G%.ag ,#=e+P%A(c D-*/YΖ}Y K<("`n 1<(amFCIGRM *AIRUlqgsl@Ry.Dy&hؼ ]~^ȏ劅 raVoL9EL h|OWhXPejrEX@1oXVR6j/OvJdXc*hebU$+ RꞔPaaa<@ (6_PZV!5a tX5afGY 6R 畡5Pvf~`bpf( uYC4Sعo%u2u ͔!|NdnQ|$rV.WԆ(eޒͬ$#B9EU+|.49Շ l$jWR`c6  yx=d #lX^W52ͨ&7.'NVLek eS(n1 G LT u>t40 *GA6 ց,O~4pz@G@'PRؠ#򒉄`b(Q}߀s(˃uacs j>h;HO>e ,[ @P3KW_kk*XYƐN%Jy = "H-nЀh 0 4 HR@ebuy @Y hdݺu /_@i&@Wjm`0)AEI5j}@,DwAA `eAkPA#< eP&$$?>)(}`P< 2 a -7t2@!9` fq* h^4P OAgXk&NdXji(*e #`]va P"TѠP.`A4J J&@ C (>!Aj,[c#01ǂ\f`s+ 89jA)?ؘ(xU\\$IzI$ )T)5@-eI~)ll@ :뱀XrT͛794j[ (%>A@&A.l$(Ձځ#e4l!r Rab yF  `?t ,eZ10(z@ ?Pv(t2܄aMCA a3yg |3/ؤ?lkbAË'yuĀ}Xb|<)Pt0 ݁Rw2񂺃 GʛcG2\8a9HrfE1( a)@  l',\&@- *A1T1ȤlcA]԰!.ZEy9xml ְKD}9DP@/6 &%*KAuxj/ g| h< eTW^~>8 A .]P HY>zX1Un@TL2 D G7@|  (Va3OHRPQJՠQXd>jhA& 2d#O=F3htf'uIEGe ڤ X@DD= ¤3PPy*ݻǰjJpC& 9hOrM X @Y|5aM"YJf@uh (SAP (T mV,bFM% 6-5ܿ.Zaԩ$g_x0ae+VHgm5@ePDm r/h.tTF*`  7{_;QZ" IA5j ّLVR, 7`}o?$tP*UP J44xAn\}|r!2R?P{Ma¶fVKwVS$ii=X_V!3a k搲h R%=."sP@@;y$L==$nCפm60V  U⨲@VR/r3wx%gr(Ѿ]p[sAj쟊ޫ#X@ DЂnP&9(x2DPYΠl.'As,8=*AmSN`A@s͠=7ae̠%.E 9 2uP5;z߁+APCΖ$x!t`A `kk >-`m%=oCA@ 2~ng@_Q0 aZfz-:gPۻm !rT>BeI)'5ʪ}")l4 5@M-(YJh4]H>Ǒ[ P @CeǠ6 maH4ȣ6z *"#(h} y>C^ ^g!)1iАhvh%(! \U60qcnl@vTmV0`MhrA[/R*`I::: *SAǦ# d&h A @!e<!ڬTԀwkaPb܅30<9@@hLW8gX~: ˘ EŁ|"G͆_L^T#72U>hn6u>O3"~rVһ$&(":YS#"qT;SwRjzYWA^xyu\C}aD⩐_!͹6>ZAmE2iNl4ue"ZbB* J^O?_S'XXFCD/ z b+e zu sA/s9]?t:vrl:(kz"C#Ҵg(?ϠLƒ-- ʩ E Q?<J-iJPST˃yQdPV!ʮl T*APb^CnC ^fi\( Ae44AРJ4Lbdd(Тu΁TۂTcDZ@e4l=c (`=S(,T:` Hy m5aM<  %gn@5K1"Qዜ(e 6φ0(Ti ǁ[<H/0ǟ(FЭyg%G-^h$cv5$ ?fb޳#Ho 킖W)ƒ@ lHIizST 2Ԡ{V@ zv +D r4NZJ Aa x0`3W@`KDt++Z>8T xЉFI$@[R ~P7˂q A@x(0@P%Psآ/l 2|`{Gf#_@[8Pm718r>4(ˀz8(e* @]ІLk6b䀃` m`G;F6}3"*AvP#4ޮ lB0:JD4+={(km. @dlO LrIP @@Ng^<LT HP*a!ktb6QJ Ϡ4XCT3Š cJ6:@󤁅#`CPrRRF? =b|YB㊠E"v (U0DW|IENDB`site_pro/images/404page.png0000644075506000000310000026270311734670356013775 0ustar namedPNG  IHDRnyq pHYs  gAMA|Q cHRMz%u0`:o_Fe9IDATxUjAJP| (x)\9h>^AŷhVsylMOWwltek5Ѧө-K VVmd2yKl~N8?y5I+:\.'{BQ95=ƞc`yb=GTNcSկcۭ5 Kkb*w]+J'j^\.[|p+5k/c\9>>ؘͯo< ՜蜵?rv|VjZp8Ca|gqva^g~pp2aX,[Rɴ3 ^.G!˧V7`kf`ނJ/&5^<yk&Pe{.}rn 5a,HC#kk5iL#xWjb4>=+aPI  )"{a ;C1zLOpez"'˲$yosÕʲ4}x!i#Ymp]{@l ` U ={Gjɫ;L`}:@ <+ Ș= gF̙ڀ8P pb{ĈS)P7{"ʀUW"Y|SWKv/;wuO*sR 'ጘZN*Rutci몶mEQy~\9 @P]uk\O@uq PP3GFdmzB?۹AH^,˳iﺮ84MGz m"`?L#gSo7UXP2(Ȅë)OoX}HDu]Ev8<{i12`q6~#gv2p h63FL/6a("Ps y?AnCԃ`@!;߼%Z^xΉ~OV>ۢj*Y7{kK)8y~ kg۶r+鵏 0 EYCWp` ؆|ėo3"REI~ WCA:ɣO4M<ϻZ8 0G˰r p\DFQg3guӏ`ᔐ3:>m0¸ru=\wobzKL = S=,pNP٭}=RJ[>g.(49')P%\T}U9ۡsc< 0F0r xX˫lF t6Sj)A4eYu]q]ۛ^mo7 @,)X0_>}uXWdYH@r|>s_p m h18J)G n*D^? zRصTJZ) ʠ$͌1ڇqf Km;F @Щ=AN"p028 [`*1y`ѿZg&g8NgkH%瑘2NCpK OYb/Gl@VB|qxnF]g\SYGt{'^^&SB^E C>7~XN!AYF<5=J!*Em* HztvBX$GS)mS / RQ3W7IQ\>^l^I/iXxݮ~sF' 0G4x ڃ ד1+*j$@C朏8o+;|C\|*'Aj+Wcuv茗WN?,?=O.)Gjb:089HIy X 䤀mgEs<ؒQOm1w%iz9JIWGy{v|rꀧ1^b~S?~l[K_NeW2ue~).Av17Z#;r 4gj ԑ- Ved3o;y]ؗe9_!4АY\l3ZUA61icWO -%Me*~QZwhTz/n8H)@X8ϑm+ QwT)WcfKػ6RMb- w0 ]ԸlXI ^}fw=o% "@ѼMK1J1j2wbYzxT[Le4!:MU:;XwFG;#;fږt֠yN/YW8^۶?NϺ ޕ0 1Wj2@zZ(Cdk#$,h)d!70`OvZ\N8- d4c!zC.t; gF\APjSUU;ٿޝM)4#!NNHȿ3iZNG'#Qp{;_ed/ɃO"⎟7rr)=;Rg*ϕ|S$WQi=k`ma 8\ Å(>Jiإ C-$o W9㣵61I 0 ~4_~>h1@Y8 Δ2Ԋ!!9FAvGXy@ 9*?C G1ޠlTvw5!$VwۤyT.%vr޾I)e2OKξ>"ӥ`ת2! XSK8N{ `QbmjC7P@TLH>A](e[2Uoz9'MkmC=[d8mVJ## x'&`ќ6l<͙I_ħ3B:y঺)Hy/]#_pHnt0I;XF$]4igE?tG Ё 14'ad<)BrL}W7[+IhNTT5{:sCTkKeFZs}|_.;a _B[eZh8|eb4W0-{F臙q&di!ĴQ&9޿>L9ߣa!ܛLm֚{7,k@69=By\\[ Gs~cvL =mnUbW*]\EQk 1L*$rSdeipA10[.sL+s]P֦"K&+ 5.BC}GbCTɲ>}=]yc7 l$eJo=pӡEYx LB7Y$?62HxhIVJU<&2"){:ɂu#6$1zHjؠ}n‡<+u*wG KX`*$AW =0ۯxY*?O0$Orl l}MD>JM~Jڥj&~9 zfuԑzzﴏA05筚{Uǀ L&{a@C&XNda# &wneN>LLkM3oڄvy/UV2_̆vL.JMy>9_z˗,ls4&d`¾K:-:8cl4|^f ؙt]8 XWucP/S%X/ c* <~s5 I00zv&zBu'y4ޚKVg0ǪIɬo:[&}q=Y "'$fdti.d]B8R=p"i0?Wc+Fo7|s=>Y"[\|?iM@٤{3@$[dT]^\פvKcV9EڣmbIXڽy-l$ i ]I[Vڗ6PK:OG%{g0 [G- IoKSh $7B!R/û=Iy*I*ϖ<ؘږJQMZ@kQc I P (JC2o ȑ~nQ.#J%@GB3~vpU@k,$⺲J$ w@`T2fز$2ф<uXvp 봤1zAoNV`*l (8;sߺ4']?ܢwhߚVn 9qcv;gtsZ3 覒%$1w '}7 {k6xUdz{ 2"S^9}zGvK ѱ;G䆁)#BSmP/-PEyYK8 ؟Ѱe߮bup"Ґ9X Nz7>w(0 _\A࡞kѵ852^Օ ڶS~)RdnB%eg6ЙP@sgC C I6dX;]iqb5<-kTO<;bz'Bf9k-yЍT׭\fb5ɯ0w2ws7A,m yu2+ekg@@؜aeV4.)$ c& #Wmri%G'.ZL:QYsO{ Z7]j'gxF|+.عcao?ne`)K]NU'^iM =iL=" D0U Kߘ { {&bSAG2 cU5G"zrĖX9*ߐšXRMCy%Y3 ^_>q.;ca冃R!;tKX%BrNbI o OAedG{ Ma:kNԘ91Q;_>l5; U zNm 5b?0׭Nbc zA:}ZJyq=iU* 4.ػwBb "4l7L2403\-'}[7vL!$C'0 8U AIBS>‡ G_m"z_02<Ղ';ܛDoў@@=ڮo۳!{0 Q+JpPZk dur& ,j& QUB:TTy$cH Ў% 1x1% 1~^ 1De y63=9P퇮bxeO;H(zC.,Uhk4 vEoY1Iʠa"nF|pIDk[ 8H@+ԙ jzNInA쩇^s-jܿfȫ=*eW!;\o_x0DSy6DaVj'=eWHVD('*gu/(]RKlNB ,~as] TÙ8?~U0X3ޒY_LwE4]w(0 JOG4MQZFS5>h-؇JYu+pЫ m {ja1 C M‰. >8W:Sqt,9@%ΰiڕ_=9wܵ ѬA_}7ߋ!{w Z(r"1m$(|oj*o&$dT=IܛgA *DDDۻc$]砽.fG~OA?Qba y7E_*yooεU3H?[DkZ1Ԭ1K3[e]͠1 t,RQ9[A"Pqq ov U$TV] 7憉z \H{_U@Հhj>=ûCF'1 ^>g0(׀܉Ɵ|ԄWP}T޻k,9q] QۘHr/6-?$($o(FI$$SCnD$U*+#|d(5 DćnS88L;46wYau| Cln2g:Ix \U:\5V^f[ޠ+CHWnAT|L,8HNv{@#BN;U `=Q$88D`}B> ,T}ܻƹ8.%+-90Ƅ[7R<B=QmB~RY!q>[UJaEz?P!C2{б` ]{ԋO=;%A Dlzc\B*@ 4!(:?X0Mk8 FS;Bz`!8@ uAXDs\٪`Zl^] I"_ QH BJ VEcFŐ1駨`YYER #78vd103H>5bQz I.) =3bhlț[0oC˗?]=IkxKdPѹ6ږ#.Gf #$Ek^JsV?pN׀%Bj l0!dƎc1m)\u)yF+} t CQ'Bbi#3cФf㟑c3Fa-7Htp.:i#?v;Uj8 ʠkM2e0tB!!pǞ8A{uբ "yka!@ #D_7<‡8Dv)L :*1׌Q0 FuЯvsGa|dz @1:$*]T~ zAӠà&haw ]: F(m"7/@!aܘUdxmsk63GؠGŀjQ0 hD.я&a}Q0@N s|63;dȍDXA"BFQ0 C'{Nbv}c!a0ux~oA2@\3 Jb{`Q0Th۳g k"– NhCpCŵiE)(`$ sq>:K}m8[FhCp, |_0zY zcyqQ0 3w/^k@ %.:`և#o6]0 52.*{R°`Q0h*t>0ef7X'{(\3>0?x{au(> FG9@а ۵q`2:"8 F(?X #5A >-mm8!0ql:k7htDp藊Ճ&;f` ~ PCtj@ Bp%)i"FVyۚo􃣑?3V ahrDpmג7#*!x9-8DL|:B@s̪vBef =tq3sC{X߶0lc:ǂ8K@#{r؁nJҤFRD~ܴO|}f~}(uK̊@K6T:Mp!Aw$ZD']BzA=|#[;B~v?`w8ށD &^a#k>A#8EcNewg8Rp Tgf)*WGs܈Co(7 Q0 M;+++'""߃ԁa*$R;D̍Flw#O37<@Z[D`hP`|y?M eee >!HӧF#H|ߗ80du|e;Nh4F9@>Gػca=K B([xʐp !/GmK+~>kB(HPVIb!CZk͇|u=R0 )$7$0Bԯi{1O1dP_~Ǿ_-cvEpkl!앣>M|e/jp  @;w-er (zEk,HmN5܌S`)C]H!2τuc~P1,-9] ͞:c>$\ PL>s\-o.Xw{ê0L&j%&|O#w/)0@T0 .]& ~.ciLZ Xiv|_xq𖆶JL Ri B'lgW Pw#@/&:kZD'; }\HgudM_MD/0臈р5 qa3s$*-RY5 A 4Z+*0A$hxP|ڿG ?n]Q(𛍇<jF,@Fma wЎmdx`-@<,!;lt:(~@qjA4(ρg`? ElK@yd> c jт0|hm Sw XF^?;|mh4*@V֠ Epj8^O볈Vy!U#ÇM^=?ë_Y@G0W3V3p;+,Pچ58@^ 6kt 4 [K ûAy^$b#%PŊ!#~y;#/':<AeaZQѵCh}G0tzFV azY 9*"Pj8AhAv)F+S{SIw{A [zx`uA!@Pdgfd?Ým 8n0(n@#^loP^F@ȍBH,ԃA#l 7ꐏAۦȍCM%r9V8m Z {n CA `e` `jYF  :b˹8Ny@Bt )w/Aͩm&0r ̤ٳ"<DSp1<ΪC0sSKnvĞL`tHwߓz2 "% QJ!Pd&M;r݋?o{X`BEpz[NޡU6G@Cۆ!rY axAk@#~у| 4 [*f7P4A#sndBȩQLe8X~/o#;n8`QuP 5`)Ga|F@S7W!7a;ya|"#LH,Pctl--*GC `U *r?ppq\A|сeQl,4d$Xh&,S3qdpG\BB*88m{iYV:J˞OSo8(n( |c[=(26ֈ!;;O] TC )++8D8XHvwRktufiTV}3(g9&jM*!N(r,Brwms ATzlHBHa~ZCA#Q |Hl|lFA !K7Ʈ D9S6+ü[uŐjcL XWuX'ay/R;L`в./!GgAdKriY\"[X`U |xDt ,)&6@S;Q47 nm'H KzwXFg :LPs~2T c󒦋@ʻwkkAwͳۜmroY03}HfPч-.i;*Wj 3FaT9QQAkLJpap?H :@~ XpdB.ieף`u&*%7,o j !FA5Q@Xvn#(ߍIy}/rٍ~>l!t>hyw M@##@@ :¡8" m耍8*&@rF!lݻwLi]6S 8jJsG>_gjà`o'(ɠ8{ >Qvj@@ (fu@h}( G.ϑ+|4bAlP;P{ m@ `ֈC V ỊhкNE{a8PE-p 4jaicFpnK;71g&F:?PcAwҍF){f^~MLm8@/X#4jCaWv0Ѡ"ckWփrg7;я erh8.Q@@ SDg#Cdf*@>@Fwk@4!UBs#Hs`wg®]>R|B (hэ38 ?_Pco),К >(^w/"PQ8*?§b #Pg @(P$;/ݰ*ݴ)ae=(o&K?! Z `q(Jq׺h "·i^m߾Fe&;7of#A2йPGCCI $%h=ALe~gCyg#,g]^C1Nf5{~ M;-I.6~PmW> > XP*ڮ*D=ƾfkcCy5E h!8/0)O\h hJ 0 *P%6zm)M(Ǯvlۙ# _cxn AGHr03p2 Gpu]6PkD^Go>_AA tmh z܀y+F96ц05 !>͋m313ȅ`c)`Ԙ5B^ 4j*05IV1*^GfCW@P؃ݕs ߾Z9B;0u.6iQqF'w5~|*k@$>B5 h`Ӿ7l'Gxd5gʎ2@@9{s; ]ăvk^A>h. ]=4j|`L?P|v-<5~ݿ]N@&ЛC8tIn}o hO;JA s(l=(nAGϗzYk]lG`!ӣ w+0 = w/Z!ڜMfK$!صUm>JHE DODDb"J# :3WFBͪ*^$C"Eq#q(x>3'],nv I󂅜 v+y_n%oa3XaW xʛTB]hs*iA=->OhfҵU(C\6(%-kMZCK7t20"y D SôZ'XW *8v:E+y, ŝ˓=U Sa~h,GɞOZǵ:@t){׎ g"i'A|Xӗ$^]AP DӉ8+VelfS LpIjNۏGyօrD~esfe|H]bmC5 =χ:|@>ۘ^貣FJf AAKlʴy;a%{(Ү}O^$2 `){g Ћgyb "pwO]֦iɣGR 62Ibt\NFUf$E S&i{]T :&bOUBũ[q_[t乭B:[@XX׸)Cu"uutyOx/#9{Iaz xB] &dd{h\n=hΦg)HpMiPwِ8Zd7%wyĘJ[q/sR>G.{g C8ڇ>(A"I'iNtG^$~W$$k%dC{롞YǘNށS(w^4ܼipga 8{3FGo!+xoL}gIra .g0]cG] wt2-?i$_Մ-uLQvt1v;a  C_Dli6C5I2=l=2yЌ9rķ\儧e@04<{)n6)ȯAC1čC(#]?zdHه]TdxQ }2Rwzc]ﶗ%)76m{YA*U/u/"ZJ t] L-}t5ÇՌҕ&`|[ZN§ _1$$UDgmu.i@"}CogRsYaȾ ~֏>`D,J%x cxN6k{t`/xu._2'J_{/IWH{=WI|l=mXKXB (VW^{>؁DM!I&NW'! YNwj 2]-k;ڪ J\Po*ـ&:5cN?xpɅ ,8e{tJ [ C1M!YmB?k@y}/ |)aL~:]A`חr1^8S|> 1 PZQqxwleܧί\q:1;e7tAN;@Is[s/iVyl~ܢth-6 bs"__m[#'naĂC4(+B-]&/K.?-sM>T[ހ>d"crtp 0T'W}( X@ī5K׵ a;=a%2pר'*Jx8}r(<1xnxtZ4%iN3C"-w9Dn#= d{8@ "%{1;FX"'p?:|-~'ZؗFg1Pv;cAjPgO$T}Sa-?&Wf k ŋ6æ U?mH/P'&꘹dkb*[~K^w(@ *XXo CxK`\}ap%Œ_g%ɟ?+8wz>{H ~S0籵U #ZHkTypwPgKk jsAlyo/r6f&#=zdǫ$ckd8ZB'0 j#66M`9PZ~Ήŗg|:w*0E889 n=PYX_r<+ 8dSU4IAGLZwo%/*0SF }܆M/s@`"%:P,şꁯc8yQ(q ^`LZH%as5T Iq[Wo2DҶb@9 }rSvA :PT¦ @hd$*@!`)`/9X1"x4^,O<(AF5֕g >lZ𼧒:Co0]:(ӁDs*0 ԱL3<  jFY#úkN1 iG( a0h q:@4";#}sӿ!a?X`xA @ Rnzޠ+|, 2q@1o&%h0_}Pv F{JXL*m,B UVi[[mւٹyX>!8-Bӗ`)ye<.Uav{ɮ #S~s\Q@mm6=zr DAQDTEn.[q |MP4A%v웝DPHvyמx(!+jHd[ [viEi+ p*a/>Hе`_<#dU}+@/sn y#PNg,dg2}EE<;^pqEcR }E?YPoccGCyPMg-Ţ}޽A-ëy@^ً! xX 3@9mHaUbaX4`:0|qx%n̘e?$Iu/GΰbiI@9kgn?dhT`3%yGˆm[Z eNYφw_\)_!@>{t mA Id' o=Gu7G}o*{wB! yOą|ȀOY(Fꢈ1qN3#qAD<LP/A a8}   f)NTTE[qcPUo [6!X| ɮn0~㚗o`rIr:q+`sIH,%Ŷv AB [/0HJS "2\^n6lm ITp)7DǧuX=PqMHVAt/(VQOv83;S;9]$Fv$t,lumY.h2'lfHg`#WdӁo,czۄ#=Sی`KaT}6;ca cWCy 'G}M-ܜ,'?\<2OBG.. Y_ JOk _E*40{Dk|uiyJv} oL P=+ 2į@+~ \XH߭H|x ,3B"qB&&OPÅ?8`Razv7 i@35b Ác9= -"@g==f`?4V$#')ANkz<6^!{{=6ì:ak {"FĹ9x`qASKNTݒ"р1>yG!<sTf:!@aCe&W22lCLEB!De8N<sH }(C|%>ۜ)>;U|!%Tl0YEVH`}w]>ȱeI ` @ XQ1"8X<ܹLTCUC@= $WG:#!͇"k{}[T<1 ?Q"n(n.%w&ִrp$2sӈ*@0^;oonI.ND`{YVvs{!gv2_6GkI #>5%05#}D4 :&JJJ`@B@ s3kzQ0 Fp:z#Qäae? C` qa_  W1e>H-iI{{xẔWZ[Xw(0 !~`6U'Br4a/ꆔSG~ P83Yo0͓1UT)"?Vrn[ofȮ= ;c@5PaU](/c{N*n$^Q}`J(cU VTDdȦ&~= w =qhCp45ܐ c{ȍB`^[kdvA Eh#pQ@/Cn "G`uh!8{lev#7GZna hP4Z8hzQ0Pez}m!\9@עRcEL/Ԏ A5|x CR7ueiE3ƭ3fNg'0hM5[86t#&^`%%hTt6 Q0 F(H|Sȣ~̡`xm G-c#1lAmn׏Q0 nCĶ<,^ F#@@vz@69@D@?]6 uKZЮP m--XZ[ï$B{ k׮1ܹ*F Aڀhj3{6%0,( kBf 燆04kyCA4:pwsck]gCc#5k(N_W/_IZ$5) (NHt:m0 %oV:WY<:[3^7 ChCpzCo5Oj}( at=u쏿1gS?̻b3J蹼n/iH?mٕh.nINhE QzTxB蝀SAR: ?;:\?WF0r)i8 w퉋 dO"OcmV9,FΝ]f?!lƨ2?.{g <`J$ dv\^kv/gD wq-Cyyx2wDa.F݂o1䛤F2]`@%E@>F~OB,{|O,m/-L1kY y!Aو=$X0u|TEVY`daw "ltsuĦ[57ff [-^0ȹ$ffRpo'<8dױW69V C?*@YRl$@#ezc҈"! 6p ߠ }##PFdA bwbSKq>pj rz>;FA @;A6#^b%3C(: FqC#7pM']<Ǐ1Fz<€^vVX( z(Fb0)e |VG hҮ^ZFPwO V !%Hٱ?=atFQ.cA~ F2$zYNۃM+4mz ԀC4;aXD[Kg=|ׯ8G~`;Id@.Wtic swOa r0F@ Tb0 HH Rkg@lPc($G4 ΑBDn# A-d t\z%,dbcoxo Dx$FD6W ӛZܩzZ[L1^5 MҧRM;Azg -&iF : B~h"89thY3 ‹~S{5|r F0Syphז|ygk!a'wOCVy=£TJ^{G2ݓًsſ.)ݣur=6}(864:~;BخC2@G^ Yn5 @ǏZԀD_ >g}tL J~bf燧؈4h`G WƠ*`|H]O(@Xg 40Mlih W^1طCY/Xy[ffg#P{PelX*l#{ctZ2 q8s]J.k{QPFҩ?gK DnW/a i+dۓ[9'?*)cvA,{g0q]^d~BK҂hobI}%1wF#F ͪeض%VeCI @ ˈfRCYq-ۨ(#VV,ҷvUF^e3aBz !'ܨ<^psUxm V틺ݜs||G>cǔ{} dݼ5@EӶj ]K&A 98 7rr7Yˍ,䛤d|Ftʹ݀A/_@srCnH;آ9{a'<촴= >edy$ $(+'X$ i[`"al5,,!cTXv[^kMa>ГtHԀ~ Zy8E0tLpi麮¹i©>Rp0lt-22wHq_[=3,KE| ްv^0MԎ ^KtM{n[ÿ/W;A ^.XqK{zIOQoR{&/FlӍe6hX Wp#kr{+- 9(sяW:0 [#Q~SΙE ?uu gT)T`7+|s+?T0!4!7NP &iXڶ5"-{l'sck>%Icfc{=K#z1c=8@bs?}VKi }<K @JšC 'B/#R±b3N~=#c/сx;p'̘|g)OٽQm 9\.  {@EPC@ ˻$? )ut@HNeόUc#ݬjkO=~xIQr$F}|`k1ߊC 'M 0`{Kn4_``7ր IF_{ɜ1Rst-4/-{PKaw_+H􀛰4U¥wB'c:s;{+s1SXSy 5j7h>mG/@|jg@y>͵RN/pϾV]%~ }/HL؋51Qɿc# OKc73{~U^w6 0l= - :V^)ÇDtwlI)]R_Cg@Qk݁[c逽(nga1lι5s8SpZwd6]tRD'q4de R{ű&;NŒ)w2D;an$b KW{{&x1:q3]WWVX!R7kmOQXkפ`^Ra C`IP N>'5|w5bf0q#}_""EJ s !P8 ?;9gaz Q=ps=xƦ9a3SOKF0/⑱8Z/NW؀n+ ZF+VcGػa@)47w\ݖ5Y;q ߝ#&YN"UoZdU{IXzPbtG W}g@uJ{AdjŏLHְH{@OL}D1GWq>l<a;Xa-)e Jsέiu\s"jp4j>(CŰ.(Q PԢ^3|J\ԽLxHTʷ>JHE |,,8A*z{ /cVg8pc&{ QZ8BwE ,mo'-ەX3+vpZFmLďJd !8raŝU7)#x?j`97;KÎ527/Z̯_D#xWxwa`@` RA x\0eYrlK z-=fqL~K:&+}}kL8!1Ax  V짦:.R]Ȇ B""]+Q>w&.M$ ;jLTs<;ԏz[mC\⪯"qo'{ .d@A7cɯmksªT&XJC\kލ BgP_0ڪf֋X{F`q=HDbc W,!MPIJ^E揾CP_|]oj;GNJOc.ػc ?2.%6ӺܡȺB& &҄3 s )q?4'9%h5HiZYW+}8ESzp ( ğq"~S9eCǦ,8BVQ ϸ21EޅC`BŅP\3QYhLqE>ɞbg7L%*8.z*l_;&gSQK޿) T8&6d,ne'K޺8@Me%a~¾b6cƍeػ;CKiQ"$&;M|OuS'9AR cm@UmUtܳto>i[^:T zvf*KqWz>{u檒L=gtud'SXzw>x 0@~X>l E0>⎓M2Q~O v` `=V#)|TRkFDܑFuتg@,k؈Mv;G YoᝋGU |$-8+'\|PQC%@ ?d"o$n j%MkZEpڋ: B-:gJy0éEn#Xr ;A7ZCr=5_=mgm7 39@->q&BLY ?M" @ͼ 6sƍœԊuM@ 3RR=ʃ-~vnܗ/ܛ@F +TYTƝg~enS*Hmյ='+8o~,b PW^w(0 H6 SZY?xmBg(\fBR)n;*HL}mlG%l.~i|(1t}VςgWU~*8!3ZZڝ0)4q"δ~C a HrٽJԦ}#9,\|7:G71g aqn#"r1V(Vi8\NlKDX>5 _Gbatqi%Uxȭ"T_/I\sqPr{<j(1 0 ApB,5/ulU@Pv~!`ɞJ7ZCL%BKf3%_bH%GR%2ZGMH,t%7C~g\xhKr iyv  6sA/4O:JKʁdʿ~~`xac7a=.aJvTVq(gBp|@"Ҥۣ54Vgp;waJyd@[ :f1Q$&Z?P2yr>O*Q^k2xeCC  VšZA֧쬢/u^]It]>J(/@rD<*||#z`ժQIR%c 1 Dz/YfӠDTqƻ+=yuyg x6"?|/nra+mIg`DmoPm{; sȌ6)ۊoחJz2gc'˳5yw^ۜtOyD=`qa ,҅9S@fG^- FAcl]AԚuձ@Ui4 4S @Xdj0r 9,1 1X=:s+|9F[6옞M$M #އO`o] CPؤSIceJJMMx'ob/e"3>U _dqHZ@8b̍`Agw6O CoKZLoM}sM#0wxRPZA-nt]Yfw.AB؄+uH?yzn 3*L16;W| |㩅,B*| s u6 R‚җΔ@) /Up[xK *b!wc;q 0(ކ i.ScC/GDVWÿ]0;7\LM|J]k7tF^.%s#~h}tx8QmƇQ:!Ƞ1u/=-*h)Dko/P cFWrH؁#{g OdđU&'Blwg4 Ms+{_MH|#^k댫V *4󂉭z0$1:d_x2X|ph]`4eu"xi#sܻ$HYP'yUFq;Xa=!P\Exi !!*ycW~9 R #q|~H9# ! /& i\sY )GT^v9m䃲'!.ZE-Xi.7Y,::6bΦ !d7v7.S*78L _U'At>F ]+}c@1!.\'~( +!էKS"R%u{6/204HgƊcR \E/^)#(6p|*&}Ȫ0s)V[= Oe<]A 02ڮ<Ґ8IN=~. z ̔$)1Ơ F*@'E0M>1"4&̙ xd8wC?oܙg B0ҁf'I)W w%{w QP V\YI&"st^D"0ɷRQkPH2"V3f΁J]9$2@ĽG]&rgjM۝ٵ~Q,rx>yĭRA/Ep}<w)0EIJy)\ m3 ߉MW캍ѾgφUcy |p59ψdލ0nQ))>,]b@{k?`﬷S;c֎+{RB.%l_0(nRF]w(1 @aHbU{䟼D#o{o GYQ|1lҮ:IU,=Pc/m(6A,q}o0!0sybq=KTGP%Qa[>&'Ŵ8'e-pB _#-s;H z[[ ʅm@(4I7 S$9'yj!_Q?`OWI.eh.-ﻖf ޝ?6P|J72 @v|/ZS=$2]Dk͕? ў*U`^Va _Y\(K)(pa.*53[[};\ӻu+ <Ծ"79`(Z& |JEFGn̟W<3!QU.#9_G9kȷ<ޟ3wCq%辘?:l g+Ʊ.;V0o-C)8dj MwM2@* L@>g OKf#}X1Q3O1JwC@"dׂ?Fzscg .Ww8^ce8xac*<{)c^^mC&~.ػaw)OB*ɦ]HG'igwҿ pM;ruHһ`c8zlaI""`$U^Iك=xPd =2#j1 hD)^ l458f:Bc/9) ,/vվv޽@-Da $ bl<a9= \|U0$xpl3CEi.{'$:ug#;"-c煍F&;!H<ר`pLvu_z_.!Vk l>G 7;Xa!D^Dvؑ%m7M'>d4C8LH8*dN1s_[1./a?˞@}hIL'3!N9̐4QE͸9Ԏ?4(mҳr7qI@' a;Dטּ`^Ra 1KJ\*ڌL/%_VYkLUԥ <*cx8WE|H89AnEDžij=4to&f i_k^Q [\g-kV粏:K(8;Xa-(E4ٰAh3 t?<\LdDQWZQEHr Q@4|ĺº~ Q`督!!qOR>*L9iEpD&;=O.T6]%{ ZPBw+3PB6c>zCIE~aԢ^"Zy`lQ%iC7DpZ瀽ixlrRDRO 1, Ugw?P|wtLcq;ש;׉"I y.U܃G 2e*1j\"x9 ro tM FIa紶jf@H$P##b4\>A\ȽC wNg&t}x^ }U?.D9(v#{w0Q.o1.f@\ ֟:`4ޮ=[@q# BPK;|i#qAbbaXntVf6iV ?(فܢjh(09 QaXdIi2̭!^~?N]`Z i@t} a8|XŨ0g6wH$Bi I19q}@5}%}luј}9B-,ػ!x\di"XMjUoky7V87,` RBU10R p9n:cQ8Z~'2)1Dz,~TldiAAk0."{xkaԿs}&ND[ T?l( *6TVVTyZ܅s~MmBS'P =xwހ`JϾ/)l/ HljJ ;Jaz[#a %еMmG>l0֝؁]D!]"I z^Nq6.Z'*?(wǯ==y_w.ػ rEЅzuaNAcMfjiK=P8/lV!jl+8=v44ŹG=BGC*i|o]X<?Lct\A>2@.;8` VA; dT] g>e]o&AO"~w6Z[UU˵U zE&KG._HZ&!Vw@SOav8i/ ػcb%wC1K.EU/p# _ 'y xsc*Xd2twZV U?쏣1dy筐x j;.n*'Wyv.hɪwsGao]@v)C֐N#͚~it>3{s@ 88bK*RvdmgO \-x%WCSwzf8ݱ 0Ck9Ã:EɅ.ېئB̩$zwT6pKx"wUxqjNTkʥEz`yS?89XJyl4n܋SMYʫuI`O҇N/ Q vJH"zBC3psT]ı=E/k_W3HKr(SECAwAPU.0_;{Aн@`f><([uo c0g8&#‹hY/sjg}GކWdYh0J("%77CڤQxj=\,b*a$VW 0X^8*z8 ¸ %'OC|Qw08*${M L)[Z@V<j6SBqp͟k^~ 縳ԛh9ĭMH-L}yG[%30<$P3aO39&6)(BK@u"O3$]LAtPyBt_?b " y%4\@Dmc}gXj!LJfXٍ{[,9c`!Hؒ[Iz׹v9p0]T uv@8!õ0TMC&]q7my9@\p]! 9XCR@kA;Q2:m? F,a4rGv|QS h;"-COkEF @=Pc4e~(`@ŐFCoD"OhQr~xyчy'v `VQ0 ցuzָu( F# 6r^P`q8(# `5˿@" D2hCpkѧ-vц(` ?wwЯC.au.Q0|@696F.53?rABsG(`ЦGo$d3| hCpPE݋; `F"rWqQ0 Fio| 8lu:c~ FևOS ئ 0MɁң`Q0 5ؐ}?"SFGц(F^~ z@fc[#8`36C?$C`76sGH_c%A@ ֌\: F(`p5u[B у'޹Ptt0Nⴀ Qdgtg/?#8GvMt|}:z/E'C-S1OX{ SiLRX̀ԇ8L7aLl|BӾɃkޥʀ#'"Aۤ{*&sA妆#{W!G8zڌIq2D:"n. D0^0|yD O)چ,!WVcdN&c.raRSHGA94xN̝9$>^ >{ykO㩎#tCpqZo܃8w`緃d2"+GHڎ [@eoYG>,jtsUGյA,dZkn@Bw2|` vaꝯ =JXb lenhf}F{Vɝ2&5eJkĀR\1VٝPO:}^KC#/DwV$7d嫤'Is=H V5qCFң4(sĐiд-&O y? J&6Q6>f?` Ra _{ ,lWՋ(ilqA'fޖ{1 і:bC,zjj%%XY Qem,Tw_- 2Xr5 J&>)Cv~;}٠8[:czT ܭ/r5_mj,!~jjٶ,m/3ѿ 4:to.;aל,Yq+IPؿ ^4܈locd"^[xC:Й]0iuژ4ج\HQmmMRu=_!e;Rs ۔vbPp^@h06Cj#HR`JZ>3gՔo9;G'!TKG!#v]mkO^6'+ sQ}wJ7G`u'$ݫfP?Hϳy|ܜyiph:#W'f-bS/4f1VayƼp2k{9/}L;[{{csP10B\[O`}13^v6<'2M,JLKȗĹGUTLW!vT~V\Hs_,5uiuPvي4\ط#{g )Rt:PV`J}I l"VbcPk<13Mb3mq u;lfᚋEqOM ( QCmrS r{H{ ~k{`^V _ ጸ\(z@چQLGkmеHK-ke)om않p Ȇә]*~B#%rXgbRuv \4qόbfkҷe?mOH<{ vWG IɻI}zR1vMX" EPͽ9vG au0 ;&זB.V,GZ$+@Fshk;1ǙoWhd1//3(r]b9cy\.iItNص'+-r̗t뱘\(GXzcwWqsr{ P5ҍWxc ,P-XKd =ZkC;obڹ :!14ͬ3m^3Tu^jd{;#{g0j4k@ϭBbkAleKLV2p24)9a3 Mmc% S ŀƆtO֖f.0G`SWHNx* Tʳl%fIՆiCe/qr-ObFS'2"2@~BT@^\`;.dlkd&4߮koJ~x1x{>Kvau&(g6S}&̼L@q@3+PI+m×f| ix)tv}ebI#: 51 :5F\3(%_b¸"8JK8mW/[;]F)`Ju2^ 4bz*Ͷ1!FO)SG$mNfAoBVk_h4f+h{ֿlY '{ @J]?;$Q ʛįI[2Dݒ5Gƃʟ|ޣH7'<ö$fLl#6;1aZ4w$.yfsB}7w$SY5VN28"`؝,DP4^7䏄M4n-fOwƐЅ( ۹2xϾXK@5b@NwDG ڨ~|h“˭jJeklov5橀ꊯٜyzs^DcQƻYy(@qđm(<3 S|b"X5AIsKc,\[ѝ{Ydc W`\#fOZM0%oʊb0 kP5R&s_`uC`uȺs`o )Ɖ/y#$f62 \5b f2[ $͙w1krlYSZ~s,k0fGgj}N6ek#Xv&cjR=X#=מ= n*sϦ̔n)M@<ߛXMs1;s]m2@مLuy  0e֪ԡ N~,q^/q5'2NʳqlBR)%2$> A|%S5$<6{.n yw~RJ"N BNN*H.c3sso)*W](NhϳIE5tդqKiO*$ď"δ3^$pKkN䛴RM Ϻ#m/G\aYkE G6kx,R[18_%+?F+^s[ͯRhr~._]^#%z1C [JjRAο!֏%ؓ8t;pV-'rZDk4!(d(T984>̾!Itm}$w 5ڴH"nFT 3'etCD;MuHk_ٜ\OFg9;:RbL$;x@0s#dY h$qut❴-kKe%!B: &4ڔPM/:Zqp$#ϴM2FyZֵ|kΠv-kFZ=s nDkTK@EkZ]qݜ]`s5!d8'tRMGGG7;}nQT9kцr51g}K9Z_-N-{g1 ҕKyQ,qr9h@9޻=[#- '@3TP '`sGMh^tzڐwvWe癬uR/"ٚ4EK*B{Wb]I`%[inD2g%R~Ȗ۰><2|c:f|mm$sllҴ"`ezL$dIPRi'Z$ъL=ΐN*3?}}3c,5<<9'{g0vu(,ű]BIUr{ww>ǘ㐺 rUVT/ᔛQps8_e"proUZE쨃]iLbH|"%Y{N&4 N- fzDԳYL/NW1U qa) C^)<ʾsyolebb)-GSΒ| tرx=/NL{ b M\ΦvY^wRJwJ)so=8?0{b-{g0 ^{)xiE7%B0A]ٝ7i=&zMR]}2n ph9|b*)$2HLO0--DSxAY9*${rT3(KNl&*x'sD-&$9T$ѱI.ɫQF;dU%q=E:OIXBw=k5S#N&vtuziFI* Ol.B%"i'ۑSBEcBk 7 ڣ ;nj]1 0 c/qSDSKpj|wn s~|64d{Zkm62KggcXh4#6|TU2ÚI5ރcpdSAa17lPybqFy#YL~lg&J]I*'NZg+jŀz"8] 9 ɨj+IW1fJf"uv K)cj4hpI;SL6w-{׮! ["~I}n`af쮸C{IN??ei\m+8};(o} 4(1X,Tp*--DT]G h`Yq8v)H;n9HTr46.9&%eWeb xs{ Q5`qZkc_lx9NػB /zWZVXXIJV1Όy9{?r q$;W7k^>`sxJX4$*q@+jDM\[@IpLsbX:U +Cp9'KnaM<| V.n̉N/w)A6thBʑfHQ+&?O56]^>N c?KqK ŧˏ$nV?? cAǯ ,{ .Sw6 0UPRh!R Ax.۸c*a n`>JÈX6"d QRXʚh$l`;Lc7p |"6U QtTkMk@E3{vތFXK|_0@0ޜΏ)qU%d+XJ9#^^h!8ǏaTHag?;=QW}bH'3CC3gU]=-7=Nlê)l63UE\+;A}34{{vrZx~ _+7r e'&ҥd|>?6{ӮƶI4} *9ӥNZʿX aI7c^B_sH /9a6rfIy ԡ?7wA\&,9t`f)]x?wz~KI޲ٙٛGp Cm& ؆EaN+-qoXOFƴڞ)<`.0 ̔8tAB^GNt76 y(}2v9p)bki]|h&<TUqmW~hUR z[UiRBFGnAMӍ&:`sgc\A7"'Ϥ1ʟy݊k'vTEdf44Nɰ>˚!k y*JUR'./x8fQ<8wemO1~3[е{n4|n,2yrE'M8QK9p=3`3(yHxZT`R&|Kwhw9# dI6h!z|HlQ.QW._.̉tg!=1,36?K<]6"Nh^u(Kzp'_hM>2ol7v,qD?5 ȟR`X "f4˜3 ja-9ؚrz`5XQ2rsfݲe|+7;/tSs}L"7*!rǧ%*Uuųԇx}+mCn@t/lgU_5  y`!i} he! vD-RBF,ߐ)繷;?B<l\p BQigl;uE9輸N* |$oA`rU"H8 \*{5rQ04;z\6:Tye`xO2>:DŽDht:vVU< +"3aƧOMGt @VmL_hY =: ?)jɢRpZƑq8qLta<=*ɪl;χZft4Aʊ҇lӿ'NvBRղOBlp8uJ<л=H<_,ms?~ǿg ?dD]Wz1x1s WA}v;/ߑt~LB \.\.[L&ibWb˜,`VBp?NWn-C*Ǝdd2a6/?ЈL Th^/U>u6?W;RB'-^+<.klz@b?kMkIsPbxQ³bԍ+۳o[]xj7M)1NR0v;^Ej>zSCGy \j^$uhxȱ+3 @;z%XZ_A%ې 8`0䏾nWSg>>Sl'rYLǯv[h Щ~0ss6j*2G?~ߺְ^|<ɜd+nig2>I~ uIAgCK-ї]mGXCm x,{垅9x<ݶ+rvQ-x<.=Ⱦu(u|ѹSJh?`6GAHj.lMf ޹&Eax܉+@6aiuMz6J*2Eq=< &ÈF|` N ~{k4yiJNlyVa22Ёk, >e}ԯ_=|>l6+evfL,1[p  +xQA%Z,5;"Jkr Ѭط}~A1dfЀk{"z>_&rzdtJ͎BLf/'90Nkly@ sK̴eK:)|~7=0EJ 8<]?{-ʒNu^<;r|:Ђ-QK'je {Yf x^K6u6+=; 9L#J *Ӷ@})QIP^.gt Ͱ ;'ʞAVzvE hd8fRY~=ʜ_VOh@U4di@ [>'FlkG[ABaͤςAyl@ct x:a+I[Km $ Fz7>BnQ +6>!Ͷ+X!kF } LpN<6(*9 xPQ< 9\1t zX~ky Hr5t[{ 2,\+:-ΪUג{ߟ8oz89gLv6nZxYX岆7cwM9ǡ8y5l 8oDB3Y'qmzzʘ':Â5Q,mVNèyX / yW \6 vFXwZ; IJȏ/]C߱]cSXNsv131:1(}.:zLXmmcRǕ5U&m_ ;ͱn"d(>o(0>eRƜQi[ɅE c8Z(bLgx~XH @Weۂ1B ԸǹH6ct:&;E >, >S_d89 J sJyP_X}VŒZ4;mM2\J(8X['3 n{m?bC ]PN@gCΓe\6c.!wy2s7W;}%gO誘1آucIrC|_qept!P@ͰyR! f\&KRߦiBC&c$6nReVYtלoWM<[h?|z:>ATVIsL}m^yz ޽a92<I}!Z܂lF҈:pdy7 L'&'??LЛ)"A?~|b[mdfAcm6;PD;c/˟37#n_h06@,hilfdun%Mͯ¡v84F?ZI>sw8`k=pk0"0i9h0{>3GH0m7 4 @yK@ZdX5RTeASʤF/sNC - Xc^P)SѴ;]@6̭ bȤteĞOap'stZuĴi_?.sh||~^ei3-Qw|,͔-D.Ҟߗe 4@ֱ |e,өV[\\@oOdqA_VA=\ע+yRN=R/M@ 0/|- &cuњ9uk̋෈BGae(9Q9,ܜJGap #D}7w3PT`i8Cq;7k::O!".؋eYyُ1ZOY" 87s#nՌo%P(f鲬7 `  Tf * . Oy hH7 q~ypV!:tgIqC J_&^eMh:z5Q1ž2f's޶){]3c'. 5h9N=X(XTqwQA]1](`ê||%LZ*u]>#k()f-"SNTДŎH,3g4̂7+yvYwź"8[rҘj<#`ڱ[2yUVgF>z /ڮ~uaxah^ݙ񓲔FJZ-_ e<qߧܻ< dAL'85yww7AX& "!D j"xb-3Uݮuh"Z& ףpO*YHu,mɰtTРR3O{!-Σwx؀GƖpx(+JɻTMl_!OyB <߹GU22b"3~3J؏WU%pFl$j(%Q*/ u@ϼ2\BFӞA?j;[C 2#MdP'p]*OsZeL˼S۫p rcXP{xxPv+a|@v7o@p1'n{wǧ,NJY0Fŝ[ES h@L5P,g2.Oa,L KTdBw 4ǧ?m1 ճ`'W†Lct*M0ˋKc؀E-t oS11+^уtG}!ў"={|S}u/k6n< b%&=.)BЙ<5,U\@v/g6QL5YUx4d-c/H]d2t0w-(6TkU8-tU2bU;@^_} -Ē /P[\:_E1>Mʈ'\:軭͵N^ ;2IP_{ZzZֆ'wԏY;?Bq!yw@ao].@Y|nq efꮿ"hÆ*7C;b iEP_ho{=V֩&._xZA0kMk`Vc+U.5Z' j*\dV09J#9 C5-YbՅahXi'<8I}K8{n͙ 9 Y+DLaٱJEx}j, \]GhÈ'.2+Rt(0\ff1g=WKktY LF 5Ҏ:Y0"n1>T. ˜XhYhY*qk.&K`&h.bT%z{O(Blt0-ʰ % m7:E\k}C3)& mܪ"V֥ײA>#'B[Om\.W7΂{ d.yޙA k c&៉'v(Bboa@}۶xc '}* w W?Ȼc' Â{?K-?xaBH`ݛrOOMOwL3/+`At$ pVҝѷr.z_~яGΫuD-:vԴ]yD\98UaDr[siI="t*R'p4 eb)"arU(y3کP~??WAx^0Я Ⱥ ^ nBz환dIArLvF1Ʉqv-y ]L`Ix,uyypdD(VAjEqMd&}Y璽!64ۊZ{؊y|UTt'z Yv+qnᏐ ps?#->$DmrbVmFf,4.RL3i9Gҳ}A況sV8HBf"h|.V+ b>^`߇idfn0 B wj!7ץb) Z &b3"Q.)7lG&>?m]R 9EJ`mϗX6/?S"B۔Sd8|7gfŅ9v ׫|`vsd0>"~a$WO%#SG °88sKq |`HhaWU GP)d1{z_k1V*(} <=LGjPX=QYFrv2̅ 1-J>+I)ؚlwzDɄ̬cSVZr ~`lW˨J"](F#Á AP#fݹs8zf#7Pz/5φ$zOTC M&:TA۶{ r 6cNS6UC@kp:&.1'0ͱ= pBkmUSfceasɁ1Wr5f[({s$*JA1fQ֤9q0_0F*É[x_o7ap9 t|7u\-:7%< }*T$uZdBe7M\0:k1SB/zϺ+M#]V6\tꗕx8i7bz~z믗rOD>vsz+ ߕ䝏w/m@ek:@ór\ vd0,rGp i10y<ܽn L?mu.bYQ ե0Ǻliv s㎰fB{_k1+͍;V wkٜvkq܏YS6=/3@-Kv~Ɓ%Uޕք:, 04vZpx~:rydA_k_gȻ Ϟ&{1#FܟrI@a$3QS]/jzQws .09I Me"~E; v^_^{uElES":sZ@ 3s߁f Fܠ+{ Rߓ9E;4HW$|Žx8Y/݇ Q[iI̸Ofr}&wf:kWYЪ;'FFY1W)$:'ǟt]KۖY׳kXlżZ9}Y Nʳc[ju k}+ 1L\9{Qߥ, ?\la)B\*j3{;æk,LVf[``{5cvEfmc3ZW(BϪOǽ%//3+wTD~6Fejsh3bl0 l*7IzU=7rf0Μ[ք(hQP:0m$ mV;*]߸:P$u1Q_t$O{}(M/׺sx};/ۀZ_w7) A[eJs3,0O E#@PtOwU5cܼT 1 ř<px>7{B_ 6#)_F(Ec Jeȧ `q_cΖ5%5=H+/R:oFP0Gyc&̜A\E1XzX]d`y *8;t:=r|c]fNS8{Z\$sr(GkNKN/XsQv{GQ蜧 [&L[AG!US5ڲK1?+ "S9BV)hTY3us-x'/y7EhMft/*@q^O1+AG$^j\y!cOHIƳ&F &x5~TGCu?=ѤЍ!.Of v~e7}#=lt:t3h=L(pg\.w﷙r2s@UlN6;֚l,E8_DUk"<@3R{UGt {{<|JLGQj"5|^/7Cr'BQ/> nN 0 c0cE|Q Hl\ ~MbX<f@0B1MZc5'mN6 kr68/-7L69M&^| WJ=`>ff l8 [ҕUx>V@{oG >6!b]u _é_?k/ &y>{GA;,ɷ] h̲Ys#mecvp,?(Ӛ#5^Y{Y bIg7+A&Y).9N%>YfVUiւª֍.ĻotY&,,3pE[ڰoEo.̱g,h1?y,7eGXi><)QƇDL}Rv=И% gh+w k]"iiCJ@Dg^ohP{sg,)<#~զD!泔L/̀}K"=SQ7]gęIQ VJ~k^{kYd4g{?ӔJ>펌Ĵt_w;w F`[I5Ò>':!Ppgܙw̿Q H-~xx<_.nS8KiP #pP@1>zF=mJ>RI[`NUNӳ$~… (cȚ'"ll8PGV!ݷm;-rٟun(_0ĺVLa7j]gו FCRz"Tj% S57B͸{v ևS Q-PL8lRR˅gF*4|sFs̴~s{* \{3-Q~D /pJU|f=8eT&}( tB+\SU],C;A0^*s@AqKT|ͳPQP:X5X\wK~5̇Dxp&ë́;xϚ 牣 dMt]|/3&rb 3࿙BXVHvַTpO{nTr\+,=&\ӫڳ@ (k29kUy4fxYVL^?ܴ !zE+'Y{z %4s幞3 P'f/. _K?hOZT]7n h +umL δ5Z N ~U` "OYt ~OIb?lG%WvΌʰp ١nZg;v8 [_F3BKyxW4P16򩈝͝fez.X*C|Ê-o!eSqw(Q/RDXtmdw=(ւ?U$@(|f.Vn%:6dx2\ԁ綖)4k&7- TOSe0Klr*R&J7qs͸%<ƅ8%&!)nt6u0Iŗ\h;GϡJ{*H_ĺlܹ}Y-eE%w6Xxr;<"x@ !"|g?T+*nƟ=)NB$u԰j w%MD)ob k41GUAq(q6ʒە#!؍ [C6D%V\kHw/:'rV0sz=׶h;,_ÌLL1yOzX-kmĜ9z'q\ =Cm[C@.x-fL &BÜ|s xsF2͘NJIPJJs.; #F*$4If  {,Ԃ,.[WY^%7 voFţxߞu-;"B4Hm?w7MAdzsr x=Ev`_* Hb{oz _d[^ ˩˳b'v)vY2glSb;|6 Ć |%ۯ[h(.FaՄ# lfUɖfh3ƍ' bo**HZh76=mFl)8wǹX 1`^\P>d4R7{-'S=@@öp"E繷E( X#r<6^,?!I nǸw[3?___ENpmR<~³uLI%[sRpso[D%xf!0m~N #,!ۣvܴcc)jA:H<_u!:XpHNȱ&2إvXuuܻ">=3McLgHv-xQ]Wm]gdUw6ok:6N˭- 7<ќkrεW4d&WuYr>|_+^~=i&9oAb":s*X>I1Ρiw. AE! t {p TC MK3 hא>^~:۶^1m[j&ƂA[͙uh`zh.^j2WtKb8ig1.МfZTj >a~ RSk< {z_5*eyk0[yB-g"L<> @1Em[auBuaApܰ0PVZXp\Lf#1TWn ?NpCâ<XU j'$@( )UTb+dZq/\}uSٵ,v+'4?p3ka٧$q}^|^*et*M,qb-(nc Ĥ%xyyW&bteiL0IVMBys4x<:^+48^ghX`X\ũ$wuy>>C X{:5RHV0,8g{Sa0zi$5+t_<7=~^+_^ (%YI}}&jB86 S ^qJ%mؒ#вuDtf+{ j95\ѿ%ŲFeDGmF!,L+Y<("]yQl6>Ic)Թ,Ap\C$mSы$C(+Ed$F߂` A: YS:4V\qC1i)m#32-+8L\92_QUuN2J:kpIoS@:fX^Y.m "=8u@$Ӥ3*"+  822 *,w7# JCSX(z}vÁo7xՍA 93UCq*)6:sYoz׃{t-<@W_y 7H%99GY|8gr&"q8M-Ivϵke>Ϡ vFrq۶u` 4>&)cdo ֥![|^e*w Ai#DTȕF%M8~H/Z8f)23ٗL?bvy۶i>m Cik(xJNV)ұl#K1YО5 rǑhxq;bQ0xV,|T$>]4T`r$Ӟ2~ ܮu]H&7`V8q%߷n=jxNH\6efd,҇=ƤE9*kDWӮZxbebY#0o-҈yr-[r|vߣ%x̚spWɹjذuaLsmVHjE[-ҁs;CWr]'Ǹ Ya1*kɸVfvm2W#Xnr0Qcg:ՒQ8qrpYO=rŸ#;)-*踭,63sZшʯ:\U"+tԁCRʌJ[Q &{I%mq`0y<'ttM@b>\N@_5%{gw0D )F} !4bUka샰({Mr̙ߤ_/D0)\K;{QEZ2)b8J* Fh2oB Q)F @dg=Z=⌢糦I\Fcڞ0dא1ڪ@aiۥm\BbpA*a5L ` .18S9ɗhX@cҦ$ޫ:/TS9>FR#]YlsW* QouĿ|5z-xΓJ51{*4dzDp3ҖJ^1YD?kχ>3 e%vfYkl DA/# 90Ǟ!_&j:þ߽\tg`01>W]m98\)/q0>1xg4(<듗syNȬX0\>'|ּEpa ^@׋ՕzlKKFɌAW鯇M@D= ,_wOB . %YnN\q7Dթu]_el$ r!n7NjOkx&)dE;l>}$!o h HA~2RIh[HR 88- F'$8h/B:nr59kdb$۰u¹;D0 C&'s.@:+ɦR'B*(puzIc}_bFD.eGUPMD׳,0"#u6x++tGj !^ 6`;lh+Qyׄ`klG5,IRbAQVħ=Wlg'͋ClëV.; ;O y# r>Qۿs_;sv<`ul߶;Ir!|zuo)ʡ=FYnMY*桲mۮ*hU$LE9-)q>[t8Ťz >G(\7eԂS5"ݏ?/2S).鲹f'y7m*DY_`\rb(v"uX1҉,iT$!k>?5|ޅ q?mޅr ]nA.#Ri@<eYP|BF$$ yF#ɸl<χ1@\PUm4TF~Id#QzE1gQgb'4~%ZD#?TxM=~ܺ0 9?H<2 _T[: W3E;%qO{ť;JDylo >'ځg-ҁ)ڌpӥs k#Iqۇk]L\UmYWgc"+r{q<}r1=Ut2u8o`,p*b3jv>'pD\A\;_2AG8k9.=u )ppI#[?k֘Bik$%:_[Q'AVo5^N~k&M|kxo'BAD nfp~m^y@L3Ûw @D>} ~|@8ڛl ZC=fY^ (m mڡD8|I~ $nJP?~F@d6s lҧMaϔ;Ha xb B9{ 5F {^Ќf3|]AW@߻dpb~⣟qɓXNaYm@/ԙC*&yDZʾ}=P`▾@d 5dkŠG/ c5;dk=-i}\{qu='UGڛcnhK!:3މL~| GLXB`2= /%L,3LiCN:]|-Z^ 7z}=lob /?|t.{g QM|aDGQD?|OIF=ҤdAa8X>u]_aD(]i:EXxfE㖡[;QB)I%N¹(ZWۛ`t&]MEI~IFAM➂N"w<([tg}M򹢼,)-z;S+>ɝ+J]lɳŲHͩM^;@$xlR Xe066ZD,ǁ,$Zjk\tq:Iz=]Y=rj:CN;!dE"Ú/1gr9k|Rq!o>֮21~IBDRCGuݢCϫjr/$4 ;}S^>|~^Iz5X Z~3`R@*7% W. @9,%\oa u8㱄sM3wޏnu!7C`H]PPdSAC qV10,ؔ cqFl΂!;qYynhx:YtQNލ@D%yJ[M'2y=\w TKE6vBwC[!L>6/,D<:$s4=6  4c|{exw9j=EO'4Ѷ+}=y凵C?Y3d cb{<ܮjɔ xyC&1le1|wX 1x2 &d]2Y ԇϝ7s=Ə(BKOb1ꙝ^*!Sy9{cȣIk=P#sʦƕ.JxU#9ާ0\_B뺮yot;]g?w PMizHRᰇy'W'I e7D~s]lveZ$0 ma\5m E2Ӊxfʃn69螦fIA0L>1nHRG#Gf˟eܶ<Ƹh%spxd30%+y>mUi{>G28S^H@'7\L&Z 2 ?/H&fV0S\:!wM|NZgZ,8SCي. 筟^+itH;deGD892 o*#E)B$.c K1==SSkc6ϛF^ڥiN7^cΈ25 S}u]鳊8gq qb ;.PgmNHOqTHƞ??cc뺞mR^u/rKo@!ygl0Pč=?/9/Em˲\'ךHc Sd읗y`ZИdUNFDl^jL.fN1 F TgY(njk9n^ӤLB*Fa OyV,|0^,X\{,ܝ~NPL;+e6#Yɟmv0N= \`MhĪ g#NVmW~OMCpp4͙8WzI9)0kY]Ff9ޏ$~ `'G9S'A (5v軦%!zH@g><|~ÖF He dގ·_@_J+m@ D4>t) US_XNlIh+s_Ax:mꜩ΅LM 4‚ @Cx1<.K8`@h'M^^{kW=noiX$T[ yԜ=UNS0Ii0p3m{o3U#fެSUL)y8oمΩ|:b,Hz BbҖg O 0$R8be{ĈM1Lym:UBtsE.AdٱtȲ蔶aRp1p9.5Jhiƻ+Pzwd0#U9mS^I K#N/N<029|n} JO#w7 CAEh qC!T@ 9F anC(-[äx^yP_]tA#~.6,+ =xjJ%dcucK[o6\Fs1i,@wwZ9 w:_,aOAb,J8c0~ƮI- 2ZYm\LPkծХ!W5.Yn(Yd Ŕ4%JuI4!T/r/穮Z :V,h KwfzS9\ ]66%soEAdy)CWYj;.41=uM$kZe\daEH{g>W*ZlXaXeIb䘱i>C+qj(y:No|>&'MLg* C1T|3NG`1tj #ˡOi:߈}^v;2c2]bUJLIl=muIKiFm 2Y$С(˕)|g=P|6{F'Ae~>Ea_ic9ʹOo ]jZvM^პ ht-qMd116b",r%O7}lza#$u'+`_S]* Ɨ> X]mɶ gcKF rjeb*es<<3sln{ozɣ5F,k ̹uH},CG{@}߶(,'po)wgp0Q%=pRq%!F<"_3;Sha'u۶\rn#&]JKuHL=lkʼ0Uڟ`֫V& 'T3L+` lI Azb6x󞄔aƙϡobM+يN5 k@aB܀i',ia{ ~G >OZ҈P`i4MwZ0Kgbt>9׆eB1-&غU?X~йasc6y)sy345'/9q~/L>5(3M hA*p\Ņ;(Y qķvv?dػ~-}ܔFҁMJ qƺۀ< "Z1Vſ6`j&ఁM:ƌ4v`8eꙌ(O-@e:_v2yXˉ;I*yl#P` d}uhw 'ce#ba!k:s vxqFic ԂOV9q]E]@@l2%4RPe"yL],dZi g%kZFKh%;5,mL.)Pi6_ vEfK7ոSu }>>G}}62gm^w C1%pt=suh-6#Y㙯_Z.o .^kǟmSyȃ`pf^Ksh;7(aM,)7Y].kU=l K13THFGȣaO:qPȽ#ଟ-@d.'7t@9Hw4Qnz_75tIfv$b']F1/NM>Gԋ0$^Er@}lw}ڍ:퓔fY'T *%4`*͑jfsUjJ>ʜdA&AmWl(_J h*ut M9gg> 5f;R9>z`fN|W"%YYv9|y{:Mvw۝=^=J 'yg0`mFvmXK4ՌVgHbӫk"}HL~w(BيՄb I0GD2@tƺ]yJ?dҩҥ9n%.ZVHHDr|KL(V"Ok/Lunzc)_R$w9oq2bRVkVS]m/K4W$ Qف2&g+&#O-)5b3{j^>t v =8j-ά@֦^ Ƥ]`o&E0"9,,j,JTui(0ei3K}EDY ]Nc ˲su] ~>R *3;TA)8%#H}ӷ?_\#뼃\[nf6Hʠu F"Meߨ<[5jrWKVk8j0*,hmd7NV 8k59vim룼FQ)2Q Z~F'=?;C^?'D׶,ڀy JKb )dgmouΤ 'h<7zucY_4As ^-mY-2= :cf=ypuKgjO>h Rs1`weY .@!wgp0Q!xH֐ZBN6b f1UB??3a' _mxjD6Ŏ"O}PSH&& iQn,#jHǕs/ VIL7F$dxk˫bY Vv9k٬c4 +fHmc0Zzv|d#M~D"ٸ6zxɄtm~'&$si瓌ʫDIIbNquWhyZ2jpdN}=L+/y04$V ~u< L\BZg1С!5? XHVnAW)88FUj]1_g#ӥ.ь?Χ.ܳor:o(fi-\%t7.pwƸ P -9Mz%OTe@K)˖rs51Flu](~e$NFS0#g&9~ a仉Nh&\Wstror--{3ZIތی&=UYYL\ ۶qU/>gX| @٤ CAXz\uyB7I:0|L &&yyo~? 6\` us}d<3i"ɍ)LT Z +{Vk-SJEe@-Cإ MZ$0c3[A@lK=f`߼]o8V 7y7r9{ _.%^:{᦭0)>0mN%mlr4\ҖIk8YQ]ƤM Vp*u?vm:qVLH(].ߩKqa𒃤`T^so[6PI3{4,o^Ë j)& <8?ȃ87,l+3Ŷ2^# $w|)D}!Bt ZFi\IrDGX +Z]Jn| x Z"2L7gJH&Fnψ1l|-ɱ R.ԄqM37YȠ㮠׾ ޛ6GqM'1CYhyoS˴?K>\߸_VOEe$7,rX#gG\_1r1Gu'm5ui Jb֓lL7Ylno4MeV&z:y~].y_b%ug PA7ȕrAnpe=SvSVHǍ^ QPz}ߥ ܚ;ij oyTe'J.Ki5)36FrwEP<ɊM \cw^83 i91pqdI߯<P&P7'K3d}``nY؊i9hge Ef v&+IFj08uٶE2[*+Ntߜ}( u.@mXn 5ɖpdP3^s 09k^4?HJ8:۶ݦiM=0bԓR\)J4 9w ZrU龌EݗzQ;~P&KR{B56z3>)w(Jd7'~ZzǚGkU=LUz}p8 uBc־y-ts{D5prM5. 1:$ "[A(:*U&Vq]Z厪#ɤM]bU= DeI|R |+iR`7OT^-16SǑ/,#p|"88iԝ @D;4cSzr5e,7Q4&D#<)5om8k] Kٵ@ ֤[4IuN k`CS?4 ?xg`:H#E[ D]#~K/buC X[ꪪS g]7H铎N@ Ufd`Wn 8}Vz#[,5[\UUcc]פ֎8yi5gT& Xaw<|6Z+Fq9I8B,vWڀU1k7 E*btP|0}s'1_% `ˣ'!Dh_ݒ.ّl+:J4(In@{+!5V#X !tl?Y zr^gr ?=&hznI%nUf+y遂k%?Ah\PXw]XBbվ֯O9T%BhUϖ#L3n*w䗐oJ\**9%7d;Y'ġS^;֑yG/pݶ< ǾE>.ȋ~y  CA RQDJ<>YӰ#΄ @@q;<_?o;| {!F䓷nJއޗ8 #1-ҙ)8ViйW&xRbx#RWҩZ[rd&Or|UHKC&Tm{o#=5t(r d'#04 Y2k1UON?p H(FܻvFN~$fie-4-1Ё3^47fRrp*|*x#;${H&bA}~si#r+:NID2Kׄ[?뺶}ߟ!%sg@Qŭli<4s0]B ~ψ ]4ׯ$ksmn;wދuڹJ0%V}} ա#Ds ?;!/EIβ2$o`όui'$[L`6M1(ށXQݚՃ:R|(]>3vX4c=K^v0FQH\yW̻L *$hgJr  CkEQ:@'fٲ4ӯ>J^ZKXlϗ#oh C)n1! ɕ4[EW򭦼@%?(=/iH~\&>y,{s;{G݋P>6O=9E 4HBR6N5~UV=#z\.rN4ʼ&^[(HNy7=KLb"m8Q:ß#$,_ Ѻ2{G\A 4o}^5SZ4@sfU֍3LkfЉQߖ|LR]赪lOzec&tc2hqqfHl='r)>V#Qq 򜮁Ϫҏ.a5 52kb)tPzLVXҌ,mti!P}QnBv(*A]슺dQ 7<'s@<;H&U(q|7]O%:55;f_sbe\k4,a^gJ#A{{mw, рzϤB'yl-P&մUP*grhn,j #q$*lWm-;zuYDd~=N#b z! B݇[H) Dx6]{%4Sw7 r3R09s}y߮^^ 'a[w V9%UɸlNa^WY>6! %qTXIzVlHk;Wp@YNґAU4Ir,̙ͬ<1asNry4Xh.A;{+ɵܼfY#z#iSw.{6ӟel{=b'TLR"4U-^Moŗ6{``L xѯF%>n ,Habക6]4 ,6 +">l.k2|%5޷m:qO׷[n0 ^z~ mZ*G6b[-"W|G1y_#ph UF&{ƒKwҿ,AloP9Y&s1,$@+=_C2-CRZm%LjLZ^R0" Nq)sle 8jJg7T,-kD[."5gVRg: ok['^9L*$5_P*T-O.Yb?Md5EmK(+y*66wȧfh']&rNmUc4|gdAnd.wԔfsKԢ-Z8y4x~c?9yvݻua'tگA B1C|[xbxiF7"Tv&M3nܮU Sא/ ׂQ v^}QW>:鶤}ge q:K5:A*Bd@4z+hhdUe&FN i::Q^Ӧe^Uļ$pCd'*i@w\ҕV8$ʄOYi{2MxiKU#H]lR,ʘӒwk,ŃlVq'KJIp"ȽG-Kcx]דLrussJEA}#yɧ~7 +ߵ׏R$b *˞cN-=|xwɰ jҕJRl]{Jf.uܠS/xǶE3,"mj@D&d@"HΛz~Sp7 lu# &yZӌ?x/,s !Vw:6NR(Z49umz}fr, 9\;ar7.ASO>~j02RD5?ѫmm!#j[iLIӫxAֳNZIߐyie'5IUj [Sك1bؐ>Dv/2ϖɖꫭspTu|3UyC`L1jYA,eo:w*YqRk"3!{ #a1wu7d)$3}{{(H;=˸Z ڢ<Oϗ6PݙI o*CO2GӚ  <ͽ{eZ&&0=T%xNrLdg_Qlqħ}5ٰGW"@`:vn7 B1 RGa VgQFJeY'~GG{yg7bDt SJx&cpHA8~[Ŧ!f3nUK XJk!*]\J--&1 |Ѭ4l!+BC]g7V΢eC)u@Չ,~ 5ߟ̡3nSM5Fx˱u)fef}e?X^NA_~G5;ڧm4󩺢5'@S 'L+v"DhZjռRg۞M"[ yo5LzYa 2v2`w>vF+C1 !}p) >l nM>qoV_RۘM+7d yiȷW&f hլvnL,HZk&O-Ј,r m%N7xRǖHPJiQ&PZYyR3 LdUD{bjk)Lu|[#7ɬB{V4D)3uuFOt6SYDu@z6Т}ds1z5i k:+ ִP9JHlIMLF*jd*]:nUݠ1D-N6l6_ʫ o)C\ {HD`Pl==B%+OZcZ_vF C1 ]8>B i[Ǻdbi 9L Mr?T>,Ȱ{`˴]q 2 64Q%VcQxMP@L Jʤ֦ι>\#& lf2H]ҠƌA^KLwm3v!+;p3-ޚp }QNaUƤ;Cv|6ﭣL ȩWbKk/HMkI`50fa0똍d&8c|TQ Gt{T >XH& p_fc2gtc -}`tFS@IӞ'ٍ?>|@R_XB;EenO`a2s*tnq} xhkx[[+tnuMIE.P2Dm5=\&b0 A%{syͬ) ^K*> i*2iI_ZT"3 ɘxK> f1Q L>DK&UxL%frɀL93qGfBksΌ0]ùf&e] 3XFt02lZW˞uړOjcܽh-C,1k=:6fI`u6LM%0"|dS_X׉_-ig C Z'dIbJtV }?} Lx"FŇuXC'2>ϱ]cT޽IDӁ =5pT!^)id35=q #y:Q{jLɝIu&׎0 .:]Y !TU nԙ"'>w"Osi"x*Aa3fVed;U*JsJ4K|RZkzXuؼ0sGMO@BI/$DB>'s >AdCYE=gO+޶m1]뺎}yͧjx}[, \F?fnIS(A:_pMVqӊJ[0.K8PߘֻBqw M9 (Jq]k2^\/]1Rw\;PI?N㜲 SKʵ|[ d5K=9{?' d::_'CF=~|ɠiյЮ_aiS*juturq4t,f7OsϪs֝?eO:{1^N΢KH1EwӉĤZq<χYJ:s~I v&ɉ+#wZ&Vpyd3dDb+:[C[-a()Zfpi@9rg> qolٖwH{2q~ RcМq;ƫR:ьiM)5~ 0%u`ne6曱iirFVKI`^tݬ8mFaTZid}65MRzhst&of [sɬ9J#SN2cv=&%߹m]1YqӎlvQe~F3uEo8vnN1kX[^4]-h;ֺymMc|ỳ5䳜=e)7jjv08w˽$v-%[U<;bV_Eeә-˴I\&`J\I@g\g mAOzka&_q"n"f*=IA"D)>dTe%,qG!Jߟoy_֠6Ҋ;g0W481;zwɡ cf fFӳCtwBɿaOυ,qĸQ6,ДL ֆR!, 7ұ/㹖&IEVP"BK&ɥbzݨMԟ:6f2o\Md#CU̻%9WR.=Y4ǶdI.>MoЃ,,o'xӨ)':\&uoUM%+e疃PQnR1!㙪 O8~pMy{n,2V18Jͽ)!.r La(PGhB{$Pm<ϥ|<_P]Ȓ^ͩ$6SN+@bz18R'9tT!'R5LOػ.1֦<+fҹU #@zu=iswhL@Lb#A8+Z߯pDp>rO$UK(SE|p?xrh~8ImJ} 8 #!֤yGԽs9ʋt98z*QbX&JhfQ;b:tkDe5r?~Pj9>73ŶiL2Gx8CۄonC(a97`d=h0&,Mm'y6$` aʋ> Kcǘ،{㎈{?3i!"M siMKkh^l6]e.*tiՒ[,K/- /tB(hRw͉pǙp:Fw ڨ5̔2 xgN=QӘM]EBU_)`IȘ7Io LKnJ[Qy j8긐2bQ4i)ysӒh+{g7ZS0,S `(h*UcBku ˓Dm pĤzz,N?:&n pC?DE=ZsX$drw^[aD Yb ipp,bAG’5|cQ)jZ?zߛ=Tk=~=`  S}}Kc/|zk&<5tbiDSwIe ҉J`,9ǘ?7Pz̃c^QD8BN)l:-B}2zAhuF֙R륎SyXIipb@.(* b{ Цw7pKbSY'뀤VJ:AW̓Vt(ֺ"JOS:=xpاF'XxSurNP(5Λ^wQbSk$NK)`}t*e^'%qZ&G1}.YP)׉&K>uΓ뺮y;2Jn[i xl36qu8; 0 2B ActW°*hOOUu ylFN\"?\Rí ݑl˲9޴ӕBP *2|v&iuJb>H^Jk?@H1uE5O9(‘OB1*bN>.$PP(XJpOϻO\IX껣#z>گТDs#9\WB+E}ŋPrӹtX]59]W^UtXno$Cr\5t-JѦ툪Ql5*M&*^kNscֲ;=rB~d7Ss@Z$kIv6ul:䠫]Ny9?ok߇3x{LKoA}Fz'eW1 cX0Ox,+$2wD1vO ?Id $w;(< m_?)@ 57 pI_WN>>Z&lj#Խk}0j{JD21)&a~`%--H˲hA,۰׳ $ Fh,cc8ZLm{#LVNtmLoc }rvV`rkĚȉQRף>exJϙ }Y_כ &T k #߄g9z2'^h1Y!) GlI&o6/B<2sm^ 4q`Q:ߍf-@`Kn|MeGL}?\ $:A {۶Ͻ<\.w. N1B)Zs.꼤̟*Vz?:?(hYe+^E-4m!ˋv~zu<ϗeYi{߻p-IX?{;%=`~O(hIrG(XHSC@ 6W%;;y\jO`L>\4Yd:sv,UzEN}?mx^iqaAt0i( g\F*n'nB ~T*z>:zu[9U-&#Tj,OJ G+pgccplrq^}hA.Fq"g$5煬*S*I.4w Z%a;xz'gW,1ΉMGۺKgc0@ ~_GKr%gdS-51JS) y5~JqlxKm #4C.ǥRA;ɱUT2]l'vO))8lOuA9I-dzs۶u]_y~9۲,_G%]`)sx>eulHc@~n~ ZVb[Z0lobGT3$x8ػّFjnJz+3rfం<>JB|\ge-vwiؙ="ڼ0IԀU]0. %^qn=wr;U3cсsZTKTeN{<Ŗ*˻.?eR(R)W9McZǽzW@|}\ӽuSrL V  c!g\`q s0aaes)ډAܸVqW(nV@4NF oV4:gf%L~Tv})aU:ž+\)l+Qɱ^­sG(c;Y,yx8,x<χeY^-4M9]\?1OkaV!XY D`Zv` QpjʼnV@o͆"!!sïaW՞`U@ $C3jϘI93TU7fJxvc/pu,FjA8[l"30qcbeNJMYh"64<֜ ᅉTcRvI:Wyi|d. A `3u_yYɖgJ1:0S+Sn>;<ㅾG>#=wbgWMَۘjf{WK_9 >/Y lPij!&aha^gzX+ֹ\Zj vz^gk_^+yX[}A:>1L=neYͿn'@_ysG@B%^vMu/$V"Pj4-{W o T1u'BH(Mp5Vr1JaU;<w sô`{8 zK¡tFjMswdÁ1=+VXB^pݩ<{0o&9,Bf|doPi+AZw[ϫI`MyFJ큯0j:qlSiH _!p^F)fHP5@f8u cS0$ Hs@"=ETVF6jl K,Y2]/Ҭ;i 襙FXqۅ07 账U o}l򍑼4FKXNn lW>w*0L?ک`iKdV%JqC~@+ |e ,/Յ#-Oo\Ն^x$GMjJu >`\rB ̃[0VtkL1}DZYӷJ4f_FC@j`jVB+Kڢ: @DoE\sGoskq>IMC)hJ%"SيT\Q}5ǮCޟ!f>PdIg A],,'Ir C!j䏰f9HJX^PJ%XY"i FGF(`S_ĜRA+`tPIENDB`site_pro/images/bg-slider-banner.png0000644075506000000310000000017111734375044015725 0ustar namedPNG  IHDR 2ϽtEXtSoftwareAdobe ImageReadyqe<IDATxbH0:  !P"8IENDB`site_pro/images/layouts-img4.png0000644075506000000310000000023511715304032015135 0ustar namedPNG  IHDRTVtEXtSoftwareAdobe ImageReadyqe<?IDATxbLKK΀7gΜN8bq&QG 5|D~MM8@H@$nIENDB`site_pro/images/6page_img5.jpg0000644075506000000310000006611211734670460014540 0ustar namedJFIFHH ExifMM*bj(1r2iHHAdobe Photoshop 7.02012:03:28 12:14:406(& HHJFIFHH Adobe_CMAdobed            6"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?Y9޵v -?bp~ _yP }mݻ;N-s {}:ݺm%,^,x.u4? #s<}ߝW}16 sK]oy;7nK0ҏwڤscXD;^A49c[2tHmL\ɮaoKS79^CAIwY4[[_,$o<{L~JY:fK`4D8kPsݲ4ӗo/H0u'l{~o؜0) {-l{?i){}a\|w}4s$84Qu%~}KvM
    k}?k.ûTSh}&ީo2ULziXiw,w5$4;ג?AcZw燻n[QBL?b~ul*wԮu>CF;?WJ[eovgaᶬDV͗Z]co=o9zJlͧX/ :^RkE_ qLuOKKniɰH̆'mBLLj-n~ߥ?$ߧc\ְv4I&FZ l?K:N`sI}7o=ǫ༺-oc {,vH^lUW=3Ĉ,vIw5v/T3op3^<nel~K?Sns[Nlkw9%'휋߱FINx^;{i ݹ~st4 Z ce%.l.qɈfi LWNi ˟!:%}Fuѻ)oۗ[1epklªtn{mG}u49V{Z@\C)jalmlA}:[,ݺk߽4WcS^62*2eiWZ}K uܟ56]m#ݴ?9?SWx6M i*hE[+cXѩ \:<|fƱ 5w[Y+ڲ\+mkV8~sSk27lRSG}?–MwkrUVYMM,eA WW~_z;p9?YVk?E>nKqh4i빎E Zk Annsvl3o\ױ-gǸƭlSJ@\*k,{`ퟝv% F[Zݣcڴ[][ #Pbu?kEr @ 0.w7wS\cZ`湃aw󛟻&zI6KX Hi&6w8Dz6wq%2eeۜt.#`~eU$cw"Cess{0j{S豈EmA?L?j5l.5Z;+S  "vCg@ԟH^nb$$MA W#]v}5Jl7q0|$7z.}~j/Ө=篛IONiVgo021 #H]>毛IOUI$ߴKF~hJƏP9Wͩ$ -h 7l:鹟Cޤ ChɃcA%J$!WKIt{C?]z` d}(}5rI)NPhotoshop 3.08BIM%8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMI6 6page_img56nullboundsObjcRct1Top longLeftlongBtomlongRghtlong6slicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlong6urlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM 6Q JFIFHH Adobe_CMAdobed            6"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?Y9޵v -?bp~ _yP }mݻ;N-s {}:ݺm%,^,x.u4? #s<}ߝW}16 sK]oy;7nK0ҏwڤscXD;^A49c[2tHmL\ɮaoKS79^CAIwY4[[_,$o<{L~JY:fK`4D8kPsݲ4ӗo/H0u'l{~o؜0) {-l{?i){}a\|w}4s$84Qu%~}KvMk}?k.ûTSh}&ީo2ULziXiw,w5$4;ג?AcZw燻n[QBL?b~ul*wԮu>CF;?WJ[eovgaᶬDV͗Z]co=o9zJlͧX/ :^RkE_ qLuOKKniɰH̆'mBLLj-n~ߥ?$ߧc\ְv4I&FZ l?K:N`sI}7o=ǫ༺-oc {,vH^lUW=3Ĉ,vIw5v/T3op3^<nel~K?Sns[Nlkw9%'휋߱FINx^;{i ݹ~st4 Z ce%.l.qɈfi LWNi ˟!:%}Fuѻ)oۗ[1epklªtn{mG}u49V{Z@\C)jalmlA}:[,ݺk߽4WcS^62*2eiWZ}K uܟ56]m#ݴ?9?SWx6M i*hE[+cXѩ \:<|fƱ 5w[Y+ڲ\+mkV8~sSk27lRSG}?–MwkrUVYMM,eA WW~_z;p9?YVk?E>nKqh4i빎E Zk Annsvl3o\ױ-gǸƭlSJ@\*k,{`ퟝv% F[Zݣcڴ[][ #Pbu?kEr @ 0.w7wS\cZ`湃aw󛟻&zI6KX Hi&6w8Dz6wq%2eeۜt.#`~eU$cw"Cess{0j{S豈EmA?L?j5l.5Z;+S  "vCg@ԟH^nb$$MA W#]v}5Jl7q0|$7z.}~j/Ө=篛IONiVgo021 #H]>毛IOUI$ߴKF~hJƏP9Wͩ$ -h 7l:鹟Cޤ ChɃcA%J$!WKIt{C?]z` d}(}5rI)8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:1a9db673-78b6-11e1-9a9d-a708dcdabd1d Adobed@       6'  !1AQa"2qB3Rb#4r$5sƒt6CD%EF ?Z*"$m1lջ:!4.M+a(ςqF٠!vE2. PrQpz*ildX,~,]`]@-PB(:%$ X n7/#n[(EgIhC`񷦁.>3ٓhXJ `tBYkҮdQn׷U!2LT>VXh?SnZK4@$:몳*zt W[j*'ԓ7<+^_) m,g[S>6JgfgOZTH#$kr=It6KҨX<4! ّ73cN&`Y6VǚR>^&f3294m:IK+;L} mzNAb^]-)r77qt*P5hLzwX@=oZ9Q"qڹ;3vp0G,#&bdP:\Q0bh}@l|X9tJ\F72'Vqyh+qViLq1T=r@΂Cf3 $ 6ayOBƋՙeQN;HOc.pdeOL/@I-eVW SfkDGw `ܞ'7#,XXq!P:Kg+zcM5NJh&(d$m,@Pשb-# ܏.էV쭇)`&} -$;C h.)t:|}Z;tbzv%4^"#B@*3AoYTCb|*ԫ Rl!p= ֹ4Ta icYbGE:"^ڍv8BCzE!θ"%l%C:'!69i:/AdpE(rt^gHFuA[{pXYKY0<!@OCw#pQ4F_̬!Lb?G5F;$Fi@6z8Zģs+:`gPnZʁqS" wF3iӠ\}n`:,p$dBt`Gu@7YyYKRQa=`Nu P @]e:diy(zV; fAR*3M,QĔn(ϺN:'8kZR3 d.=4@-!&G3V.#Ɓn?Yª0" 7Ǹ dz@n];+wp|[!>bO{A~ոiD'aQ2ݔg@59kF'A0ڹ鍲(aД=E4%bFH$ZbV{waj^݅iV0#Ϟ>7:C| ːАs߿M؆wƙ2HrM!AAp0Q;J\OQA㤳792m(\UO==$1CNĞcG'@MN;$$h G_4֌z,rы׻!R 9ʇ*sg}Xj!BrKONUee # b; %fa9(4skЎ)~fS\#amN.QԞ eGQcNűFڲ!,F b(T0Fy|>"\y]ѧNkᨏՙcd{{'@ߔP٧(O *;Hǎ.3$L+"&K{3@pSU ,4dG\ `Z<}zōeNn+ѠY6|fq8{U{t?omSx^yN#K1h3,0U:6z&N&;Ej176idDjLJϋt;z:Zm| ~GyìУȅYJ\gv4{h:,jV+Ht )rɹQљG!u-Yr1U]gFfӢA)5c(rd^.F= 20+znD 33#l0'àW R F5[ft}m"!\XX98:Aܼ$omU9@ALt ~jLd4 T,U3"`8۶b ɂ3ԍ$򵕼=7&Аcc 58|X2GV`/炍vOrtQ /<7+5S$@g&*ڒff2pYy]ǿC@ԯQ@%AEDfIМs]|tȮ7hCKRRդ s>:lۯMK.Y)>,݇M ~e ֔>y[d !|!ǘObz&a*UAN!7إijQEthIޞnB[<ޙ+f:P2p0S)yYXA.3n@A:QEܞ #qTʢ$bd'4嶽w!4EIiAo^#+\ld|@jTWJ]˕wǐh*Zg2K4$3ct.;gzhA#a>\H*X(F@BHpaM=yN66nA(ӿo4qHP\8`hŭegbhfܑ3g!|+t#*{=(C5 ݧ81㠰84YvfJ+20&L*î͠J"жmz3@A; AVUʳłTS'JH] rS u {NtYi,ȤT{A'%Wz^IeyծTm޲m*ChAh5誽U)Iv)22~d|}E9#c .s5WڠGYb{';ԫӚOZLN=|tHʘ0[ P1:g^J2.YqvO!ehْL"9?ӠxUs. dt n^2` G7h괱FG)I Om޼7fk= ia+:>_@֢@nMM(ڀ/!$]GǠzש=4w t>-g;I撰e"9;F S.nJ-5T ceD#VOBO@GR@DC1'@o'y3=Br1TƗo؂|x.X::towh(Ҏ+.7qx  ܷ i$'V*@#[rB':,m['#G6:ż!SM@=F_hHAw:=ZeXhxƈkkEl2nd#AkԅV>@h3rրd\Z= We:z5WͱnPzC=]U@  ^&׸XЫz{Arn[+gUYШ`|U ;W ;`cziEJ])\T+W`Xve$ݍ@i&-AϽ,L2e+U'b":HΈpP@owt WUuv堧g4 M͌\w>>_@O,0_[. .g?O||s j*cٷq:?+~'Y%E%O^@}:s_JpQQ#o^e0(ݽ}||G /O?1=9LgX%۶]ֈE W,ߴ,ZCdWs Ԁ;v~M1NѴ:`p%xD02s<'`Z~>P]fVҸQІX1BQKC#@*PяddJ.Fqjfʖ=gCm?n;OXF•%ˀcy4iOOfpI qe+T/R ms; oNr؜Lrs' 5jx\H.1H4or %a)8PDZc? 1,@3AfOL:3h^&xd>B4e^"*Fd$F$ ~NB1ϻzIlcz=_鼒E<e$VG{t:v9=9Hu,@a؏@gRŸyDqfR.VhLpϮ*b0Y,Osr֧^ -ӡ' E$+&.F N4 /UzG^~̹ ;aznIVB;T{㮂QKt"*X?PtvA=>W&IDBACMp뛐/1|EYvԝ?# N=]-EGb>]^~biC?.js]lS3XIrYӧM_οMe vx|_v ٚz,0 îK'=2HK|x=H,5A?E+1W '8'A ?oџ/~''sC78b@wW|/u_@Ѓ9C8ZecUxsocӠQ}9F(CR`B> rE f_P9y^{A%NUʼnlʎHV>l:e 5i1X@^cjFj;bDn2HGGz8%yTgn:w΁ _y$N03Ḅґ~{WN+{Ysɀ!TPBlc>Z00o>9 sFaE&ARZsSnr}$箃#~,YXqBUjX TMקMP~d}#ͺMx)!f ϳA\I[LE~aNpF4prq Y99Ig: ?>ES<-2nh`OognCO/=IB}A eg|sOof?wA?_\_} >O86WlǠO^q!jש Lgg$GmP?wA^|b#?YS{sJ\H6Z'\eݠiR۷ԽU%ElʭUWb>xoX6$4{D(8'~n@PQR7E?=yŘd7 ٌ7m)_7vjLxV*֕ie*Ǖ sU=t+q/=XEGUS S#zz-/m_O n,S:LDL: ֹSf !kX u{R.ZVI=#N;ꏧ+̷&z#N#X''IFLJwtpT+q NexYCr3t~HpA7#[}=WW+K )CfZX=_}: ~ZFbx $rʇIa",4[9(y1^t~ˏHcyݿ)&j5|} 4ug&"aO;ٽn?03qI Fwxh 梱c~  R0M$D;Y{t\is"~rS2q BIR6 w}5TrG$pDT nۯt X nHZ Ӡ^;P V ew{h-X$S!}ԍFXu;On)%(e ^WHᗱsgKJkJpO} xmC8A$ q4Y |ع",vc:$^$KZA܌gP3ut N6,0P ʊ_*G|렟㨧/S z/z)^(X! ddwtbkFi C(88>2rE1"zyXII 0GʔӏӅ\ǐh!nF8J,5͆ :AZ)zd)TGa"[6 ̯S$[6-$w,ЙGa 8XOQbrk+|#=tܾMAc,ŏˠKV+"~i2ѐ;NJ,1=^4xԯso_|?^)R124Z{ b6Y⍋EJԮ$yb<NLHMiJ\:=?ˠ҂xTyY}f<2,F2(=@l?n4y:2TQw|0t(qh+oj"ԃfHìEOs.MalƢإ8"y !#aQԐ|YҢK cu^ͷƂţcichz'uKo4dRɪqP3u |t)юܱ_XdV1Zteq}*ލu bArB&_JQpâ*24q6BP>de3׺;Xӄ t]rw"9YxSsYH㠯-M"K RșFSh Xʟ v,zdACmȴ2p:Wk f;.U֑=>^St4Xy(4ZSvY1*.@#{tGbX$F{4ݘ1ZAXGsh]ljۼt lBցzuh eZ~2X)}%>f'>T9)AfG$ 0߫@PV! 8OarFlծwNJ"\"aR*z#0&9㕃T23R(e5$ |zh+!FhPHWw%ef:m֚\m 4P4cr-,uaOVܠFN{ vXYy5k |^ttܪ T*AaI\mb:N;g: ܍ꉙTKfln50wHcnppAvGYb|4DlA&8fUI ftx[0Źv+)\ؓhCZ%Nt'@SrUJr,FBL'EA9cѴS &ve9>,0ŽU71V7E:ek*⵬aԀ{VaF#!-A1Dq h}58\\%MF,hgpٝ 8mXf&OR )G`xt,+E.0h>r7EZdRK53FOmݲ|=9`·A-8h$*;yANqXB 3 4 zl*:Dl WxAQyWӵ2r%F=٠]F7`A<R/E% k1l,|:n^a%Ȃ^mwAu:8J\,P۩$ʙhgTZ_]&TaPu 7J?VH%3$ᲸqZXj@cN2O|t7׎z3C*[3$ 5KIF_c^9W$랙۠׫ef$]O٠X$3xe#A'EV0 *zk0X^<4='F-]y$&Q#(#\gj:8hcfSXOr}1Qfւ"W0Iz~7(h4K$nJ XI 5gسn@#w堿OVFh3_>e{h,X7-gH (',~'N<-KZDo?S:Uc9}_PC{QՄZK.*'٠V|_R(QF\FX~ LW{)Q+"SK `ݍI^ #(#8'yFP{E&Ř~qd_LXt!sZTtۜĒp; c+D ӳ:0 Tc>\`إbA,IG=:B:k>/Q$3KzBSwI=mɫ4@1sW7)Wf/X@b㾂[N?҅ 22@'A pR2@@KPp|F-xfҪK+qXmӍPqIgETs1FGaX# 2=Ct,7RWU'/2;~SKHvv{*ܟ-o[أ0Yi&;$oa}80uW!{:4T@PIө=\I,,i:/ftqlXRҽ3TJP7:O/-Ag۠bVW>wx:<0%#2 \}㎫**e8;t/R *fgOteI; tWkONڣ?ZIYR@u:AF"b?Sh`Ǹ0:h>Zw׎h% c 1!7bKUњb)2?{zS3ޕB[bE'ʹyB>>aѤ{g@$[{?A-z3=lFmu@5veNnK{kk b*N@WA•.J;SoJT&1N΁Y+q@cI$ACAv6x!`1 *ǧl Dȼ" ˁpvȾ]|hF:QiYGpN:|JލGFXdx/rҸ=^F'@hXl5 3æAm#:rԎ]Kf(cpޘ8-tX[/#Ր9op"yx :*24 NE>Nz~oW$Pfy,Q>4j[4FXeBe33M~~gAJF=:3%[h*'mv<{Ȍ/ !%@xxkƆk$x#NFˑQט7T㌟ 4q8K.<  U tV9֬NeɎ1 7.@3 # ]VW=g#|8ԖvX JRfyXH#7PB'4WD,ǰ fͻu]=&0qz|g=~F$LI"0 F+ $&&+gXuW)+­xh(Rʼnzr!YlwE)=I8/AYaXbI>=4 mzF\ d@5&֊V6`vO@ofZZ $ zh#|Ck'@dwkr:]q)Szd+uߑ = 0އ?A#$!fTT'2s `͉1X pvust &jP34{vcjS%VdwAr6 =E;4&ʲo\3öN-J؍㬊`=/IA?m}Ie =7o?x u/ ?}f쟍 Q$?ݠ??~,|Ath3\o1>|w?iWx:?_oNwƯOA'_瓿ogAI4xħ'a_hw'F?|K@e?nt_Ksite_pro/images/quote-ul.gif0000644075506000000310000000031311721245562014341 0ustar namedGIF89a!,xJJ4?6(7  :!1Eieq3nUo7kuo4sYbcFiCK;site_pro/images/5page_img4.jpg0000644075506000000310000011416511734670400014532 0ustar namedJFIFHH)ExifMM*bj(1r2iHHAdobe Photoshop 7.02012:03:28 12:13:52(&HHJFIFHH Adobe_CMAdobed            Z"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?ssse^֌c8z۳^GgM6t.u?hǡ?s Ҋc36IM]mf-=z>t.wI׍)CzO=5ؖ80O^QWa*2wnZjT>Ց5?O] u{ NQ}ab/?hǭNwiEOMY_OȻ>X>Ӻ>OF/0;+/7%v5OljD\ڮ Ȳ9w\F}\Y%ef5@X5ޏV[k⎆ `C.3av]ok:?MV:9'+7Փm!m/z23:;Xxko \e[1mӑ;mZG]f3',wQCmզUMvQjc0Y}}1 -.xY5̫ ظV6,jZiyOKBFfn4RGu-U[mw2O1ңS?9ܭVvʸsc?U2ϩ䲢YT a.mO yI?m˕۰zvhǰ\[e1mwsE#`zq z.hF5$6"AIڬ{X#ol\OB^&]B,O:;qn]W1w2M4tahfcmc'ungwOuyxƼr]e׳t>2~\Ymmm熆hv{6@GYN>VeO6_u/2ݎ/^ֲK'ŷӤ}[cf ( g#{ض:WV)Y4w:T3 WFb?2 }{>+kW15mhx':SĽŹph)d}b"ߑ͛KZȁ^1;guՔQt{cm N[;=Tr1pq xts \ Y=3l곉e5htVZ@@䍁' wS8w:^mi虜`gfH*Kk&Q{- o>ߓX]a5 fMݸz1~RLD{kV E_A9uw}r.Xdt>Y/7ckl;]r?d`}m7TT кoK#cZZ#z7[ ݱzvWZhc ǥ1$kkDьv~ McYd7cqOne=48dѺ5wM8?5Ye‹? zwԇ4/\۽WzޯNEX▽6#,6}t"adKRn:.[S <{?kߤTezU,xkű7?wCKYЍv k{si\*Y:'qES/-*nGRa<~ʚ[ C=[\΋H'lۘsRΫkE |d4qXm*p{[/.@!3L]ttkzwz띊ʬuEǀ`}{,ۛoS}KS$'s{S_4 >MElOOXe|zqu%kwlR%"r\ u{}kMCN]vŝa\{wڎs1^=5Z 4ok=W>>5LvQ?-zs3Z`9<`^} *}]LƊ-%k779g"/A>[dOv׋IUK}ݹV^f@5Qwk6M"A 浚ߥQmUƁͮ[c\oa`o&!O{\?h#qI>tPX"C+!S,¶0CcjwQ{ /}}6GEOn7-ަ^OQ<}l~@ѭhp}zL{w؁hAݏsKwUϫ}bx+|$~FYY۪v̊?_]?=$ LcFdZ̷jGyf X/٬8pK@[W#{Du:VX no;wUxrdتў\nz/HZrYGOn۵s?.4cc5lq@nՌ\vaU].;G!`}~ꌧʏz;HW/ }C֜CY^n6]AʢK˚n۽/Eבf;aic]_!z |^dUج;uS-2;LLs wG;+O~ߥ OXZHk\=OogN|QS[F'sܨwJjsx#UP.Qϔ/X;'.N}ľѩc_қlp%n5o}\wo}Bc#/h}5?Y Rw'O*Mq?'`=P]eT6ec=$;s7{mV7ԧmzGO 6.gCK}Kznokx}͞y.^c6qEGB`7]ylyβ:\u4:h8G.=PO##?KG_MtumPskXǦL2j|K]woj&WPhotoshop 3.08BIM%8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMI 5page_img4nullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM ZJFIFHH Adobe_CMAdobed            Z"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?ssse^֌c8z۳^GgM6t.u?hǡ?s Ҋc36IM]mf-=z>t.wI׍)CzO=5ؖ80O^QWa*2wnZjT>Ց5?O] u{ NQ}ab/?hǭNwiEOMY_OȻ>X>Ӻ>OF/0;+/7%v5OljD\ڮ Ȳ9w\F}\Y%ef5@X5ޏV[k⎆ `C.3av]ok:?MV:9'+7Փm!m/z23:;Xxko \e[1mӑ;mZG]f3',wQCmզUMvQjc0Y}}1 -.xY5̫ ظV6,jZiyOKBFfn4RGu-U[mw2O1ңS?9ܭVvʸsc?U2ϩ䲢YT a.mO yI?m˕۰zvhǰ\[e1mwsE#`zq z.hF5$6"AIڬ{X#ol\OB^&]B,O:;qn]W1w2M4tahfcmc'ungwOuyxƼr]e׳t>2~\Ymmm熆hv{6@GYN>VeO6_u/2ݎ/^ֲK'ŷӤ}[cf ( g#{ض:WV)Y4w:T3 WFb?2 }{>+kW15mhx':SĽŹph)d}b"ߑ͛KZȁ^1;guՔQt{cm N[;=Tr1pq xts \ Y=3l곉e5htVZ@@䍁' wS8w:^mi虜`gfH*Kk&Q{- o>ߓX]a5 fMݸz1~RLD{kV E_A9uw}r.Xdt>Y/7ckl;]r?d`}m7TT кoK#cZZ#z7[ ݱzvWZhc ǥ1$kkDьv~ McYd7cqOne=48dѺ5wM8?5Ye‹? zwԇ4/\۽WzޯNEX▽6#,6}t"adKRn:.[S <{?kߤTezU,xkű7?wCKYЍv k{si\*Y:'qES/-*nGRa<~ʚ[ C=[\΋H'lۘsRΫkE |d4qXm*p{[/.@!3L]ttkzwz띊ʬuEǀ`}{,ۛoS}KS$'s{S_4 >MElOOXe|zqu%kwlR%"r\ u{}kMCN]vŝa\{wڎs1^=5Z 4ok=W>>5LvQ?-zs3Z`9<`^} *}]LƊ-%k779g"/A>[dOv׋IUK}ݹV^f@5Qwk6M"A 浚ߥQmUƁͮ[c\oa`o&!O{\?h#qI>tPX"C+!S,¶0CcjwQ{ /}}6GEOn7-ަ^OQ<}l~@ѭhp}zL{w؁hAݏsKwUϫ}bx+|$~FYY۪v̊?_]?=$ LcFdZ̷jGyf X/٬8pK@[W#{Du:VX no;wUxrdتў\nz/HZrYGOn۵s?.4cc5lq@nՌ\vaU].;G!`}~ꌧʏz;HW/ }C֜CY^n6]AʢK˚n۽/Eבf;aic]_!z |^dUج;uS-2;LLs wG;+O~ߥ OXZHk\=OogN|QS[F'sܨwJjsx#UP.Qϔ/X;'.N}ľѩc_қlp%n5o}\wo}Bc#/h}5?Y Rw'O*Mq?'`=P]eT6ec=$;s7{mV7ԧmzGO 6.gCK}Kznokx}͞y.^c6qEGB`7]ylyβ:\u4:h8G.=PO##?KG_MtumPskXǦL2j|K]woj&W8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:243ef5f5-78b6-11e1-9a9d-a708dcdabd1d Adobed@       #  !1AQ"a2qB#3Rb47r$5CSD6ᒢcs%u'åfGTdE&(!1AQa"2qB#C3bRƒ ?y:{W<˕nCg0[71*"]H*(1- 6RyeAkLKH&x=K|75(dU;91UC԰?=yB$l 2 ?p!Y忨^Bu؊U7 4=I?RFtGARw+359 1!=oS=Hp{hQwdr9y//Q=DJyk27 $"rc}D0_-T1,nX&uf.zƟ٧oW}U=c2!KL?! w Q*5ЍCp>=<x[9w W';5rMRtcmNp8r}sNr`rmyYGK2̲]Φ [!fWH.OL-KCUOT-N[PqU(*Jvr:!mqq=.ܑs0vOͱSj!};i\/'7(L7YÆVrtUxPר\Eq]]bKcT@qC_'6N>zp;̖mwy s!<L~(Gu~KCɹ\'!p9YvX/sQvH9$7KL+%GL2אG5| 9Yɕ@k<ߐ TPS=y{7_JRgv5Ѧfh_PDp8h]+A&-Uɉ?|m7;DXw~_j變cQyKHm<!!=fEUzW NYS"ct T YحH$#S? q=q[Gi)Z`-|d(=8uQ[)Ij**; y<4s`aU#_N7emv<榭BTA\)3anZAo=AbthaG"e^=0Ree0i!W۷L-K$:ΈZJ# t pKR)AyM"BbVQ٣ #jx,=:ΠW4B5XȓPQž>^rGpg yUY#o ,O/o$:#lƂub,4] mȷ[GS,S{V|Sjڧw,22^6RAB3[@U4(kP ʽqu- %&fr+(TݭGQ*2̩58ڻka!F1`Er4&5Y)A[,H6Fr<~ @?{3:M+Ӧ*0ަEO21|Tvw(ֶ3[v W<OB$;vu{F!kۃ*ޡ#!$q :P YiYciNk^9֞2BH*-OEهBLH)$ %D4x@iO;oejM1ݳJǮl:HZxV&2Lk4蕆+nӵrY16bȒ r) ZF#-L8,c̒6b{ k6 6,Ө KiɡZPX^۫}$ri Zt $Up=ɬR&Y15eX T kr?C7w ]DfK0^ʭ44N:{nh.9N>K )<(c@RT{KcMblmۇs=)$R.U`uAC\-(n'h\JI*Ƚ2?4M5pI=ȮЀW+]A>M𛕕ՍWpDdOϋZw*=ʜ`%x-1ծ{iu]cA?ˍRpmir$x_󃎽\9Cw,N`0V\qU{jzSǛ[>Y?̳͞&ܓ{ܝk֍w)Ԍp` 0@($: t a,*];N!hh7Uyz¸k+C2 5 Vʴzkf@ԟXha7r{+8~JLAO$<z0ܯ>NbGa VQqF;9`1 5lHʼn KZ[Phi^ԅdX Es:ӷ ՜ I=hXC+ vį>Vxvii([y&I"PH48KO>å=g6>mw*Ѡ\W>czEôKn [`ՉӸ'Q6p}&]=3¿ukܙWxk^ Qۤ-T*w)>f2ڡ/Zh*C.ًRF;-ʹ%Y)Bα$\^M87ݢTńzMֿ)=AhmivSRq抃7;/u-􍼢3 D 1\VnkƐQnXP˕XlZB7fI,/uƜzLB)4Q4yE5魱;%O(+ZeC/#8dsn>n_[ʔ=DAi]RUz5y#8G;[e+Z~itX yKh`n!b?OUq4-;i#ڶ.wk "Fu4Cֽ⟋[vy{p>-:$tĐ˸h1e¬<,t亚R/nҾ=gw>Wnb۸H-<7 $UKġE$\p_;7=;t;A&Ehe-n mPMo{?J,&*Pevv`{[KimSJ!BL +)Oxu9_ Pۥ^i[؈647I.N C<mHR+ YEx,bRݙ~G m@m5E}QRAXv%X#JT0d/ku֧i݂ KT: LuSgLX yٷ-k!ܮe%rΪgB M䫆B-q}-x[dK;Yp$uȃ٦uG:nuQmvJ RB$=ɹ$jnIng$qVGU$.}*зDn{>$FD*@cJ*W.RtpmI4V[q=HzI 0A5 mj#QVcN1}Q]7 =igRosXnYBV:+Ue)7|ubB|‘TSWP {FkU{KeWMq*xIˡu⦄KD֙QJ=͓ZBS޻(a`|V+p|'vv 6n[%>EͨcZJ !INc!jwv]QʯޮQ o/M+߻ߴ0MH70Oq,f s/O%86)7R(Ikd4*ifMqHҧ(A#IWݬJRLɉ#ެN7;,G,c^&ԇ\GʩٲZ螸$, ߨ^Ym;vu"yZ]tTR2.f%3z]eݷ;7qFb af5kf/-#p.e"bY'rP1bVV>ӇJ܅'s>'}&ΛM.V'4ѭ0^5mew{'}4WrT4dvҀ($@(+nNTQ%5 ͐wHFJҊ<.;A0ȌwbVtyCD2\23@*]I^>L[z8 faIOu;4\p%d{GPL|Ye+{9,Y|s-~oY<+v+x5#i S&aq̸}r3穆t1NmV+$LޏI>"-kxA4itpz9}M2uR7oz udhZ9MJ.K1PZ*.xkVjF/QJ~OJǸ%ڝzJ};qɒw'ZjA'qƞ{p4PB̀ qM1yn,V!Wq,$e<' DSs-GdR沫CY&9JTS>&q0rVn/ee*5eVʹ[잺~jZ v@Iʛ|InVKX@cK59{RcN2Gms-$DKf9'>?-gCcdey\Zډ^)#Ҩ"y<`Ξ'He({"+I]YmK=Mǐ\D[mo.1klzG\vqU̜\ vtd8DGk$9H=9cxNڷ5j޴V2ZG QI%xٖvxu|Of ՏoR!s*Gh7rZ-/F}޳nwֻ4mFԋ.^juhEU͝B,-AFVnӟRg766 a# ໺*ż#R*(zs}>}}{"!0?i%2NЈi̒pmhk ࿼~Yz} {mx>f22yWk_ Eez˱I.Kvm$ܴU4_{_I#o".A,644ޯ#{UKWW,6"+DOwNAwwqz;=4Aa} TjZ;+ Ř%a/xG斜KK ٮ$Pk_'A=-$[.,8{9o=6Ȇ?|4Q)Į}a#Ŧ>r_S.eڤd*. ^ZPDU͚QwVTܮv,æs.yr n CqqGy1Uفkmw+}w&A4hajXtGO}&^5WLr/Kmٶ_cg}Gca nnu*`nME[ n}9^Y_ދK=-!o>Eo/u_"04[AjKN&>bȾ>vRYW>zvl,ݷ~ o6+KieT𤫩S!ńrؖ!qꯩcu[k\])$L V~<< SvQޙ[_F8-^kAu= Y^R{?(j]>2/-܋70Bto:qSZЊa+0ym˹9{O!6EA=r2[DԧWg3$Z|WO_fQRGk; U.tp?̤eridZ]Hk. /~]JvHe -:]d fHl${knA}YW}T2ZZ$z$GB cd.̳dۇ8 I(|bjsEĊRO5dтK}*^ӷwM1>L.5pR1YޑzȽ%-6[I/AԌe:&\[s]zyyF"v%2ýr*w0|twV+ĺ1CNP%mooYpu.já"2]6VUn3n$g3.PA忛م]4ͱh@-W|ۛF yNao2TBsNϿį^+H*~62msfݧy3IsZ?`ŕ%-!!oֻBݥqU6U}&}S7fܓ Hw{\Mxc[x!QbBʁ{=ײ2X ̭ ( DϷ e2q)ubvM1WKK >:SPr[ͨf F4t}NM![fXϼo C cI@j]MO0x8/;m[\p̄.، agR {E{5{bRڜCzT.Ĝ-H ' EKf(dCZW& ʚ܇V?Xڄ)"FCZe |.>.3XO~;&L^滔R3= (2ϳ'@ &ta"[bwN9{4&JҒ!Hz&973qw7pI8+l̩EȱΘz$CD1`;}S缇m's݅GmP%SOV9[0f30"dŸTȭF-"G[qU{H#I=h ݋]G i"Al/o ]H+PI1ehmEj#=(J4av̪KLwϨ"~'Omq{QTsrGAٖ l^;QoYѵwѳcEgTřUY8ެosEK/{YXHd"=12`.,=C0D, KxqMhOHMw*\oq:#ji(&u-띶!}RitZy)R;8%JI.kձGD(ơE:l$Uӑ _%l.{ؐnMBq=ZwӰ[h~4/ GSN֧y=; oVYAP/$0j\bR~찍]W iF֧x=;wW-#.80B7aQN= KO6o\qBdT1""m0zz׏뎤T$dH>~cۇN.FĂz!ꍺ$شƀydh*_*"%A&dgROeDix= V~zr|;#D*ŪΔ27w_BTlzgߍf.D2 $qi1l ,Jc.|-{p-wloln-WO4M3t F_5@^Uk lqS F+v~Vt4y8gө5B(\ȴ"=B9#ӴgjXL7=nq۶FWh =6ZD$khvM>mT-zC/{iU%}rgݻMI=rdOOtj7 gGX+ Ft€;{r=W뻟h;D临4idrUiZX2>5V։xÑz7k`]( H[GDOE8<7 &wց$L5Muȴ4 .^7_w`˗"! [5K:0W/ꎽN0flW/mŎ=b9V6u0m2FVz'Lv)eA|k+Aw`I2)B:#6+;`rJi}Fڢ÷K*.GWZˠ[ut3A|sR2{ze[ x~_^~%^߁y߻dֶ2pT`p~.# 7'B՛2׏Eg0 u,bZCf|J[>VXIZmz`\aQ{g$ȾdiLR{M2 sc~]E葴p;V:`idJ;@!0-sif̢6AQROM,KK 9O d5RA`K$(UHHO0I6"BcN*h=bݯ/ Uh)L^3 iA}k텵%-ֲӨ{ՠB^i᷌;qƃ[BH 6 *cQz~\6=E>9jA:=v[.%׸||eDOud42 @.s^=|n R97u ,rmԣ,͗xVC9Fp+41ɋ'W4$=QϝuV C*ˁ2Z]2N 3,r(c}20yߨ^)).[6E㭱DŭAY5Tπ܌mviy7K 1C Ef j*28^+xh;:H߸嶯V֟Gg/ިyKkc%zH}2Mu[IIV*вOR:F0e)wZZGi$d)LTXڏNysdTrA邷x8Y$đmi-o5ۧR[yhLRKCl!3Dw[)7KXl6y ۷nۥUmefcV芩o$L*aIͿE#ar}qآr,/i&E_2)K̮7!HneB"ٶċuEsg)ɧhCZpwm~$t^JvFIRwc5"%~:O{G$~ݏlz%[YsqQIm\8fSt$imM2KCq-, ܃p39 iBjURh{yӁr}KX֒<6&͸lLnZt{qm$yRFB'DЦ2eur+)s6 dH¸!g;IW%ݑU I$1}rpI{VlK@I ? 6D iEP״d0=I\mJZT\¯u"P *5ЕZǭuRK!a5 3% iGx[۽#.r H+ȷXK>!%4Z3}?-OqYm'SGVW[pərG$r"]Em~?k|bN⺈ ]H+Ckc-`4SGz].¿t?}gq &y}ZW_'2]\O%S[~ҭy)@~ŁxLRNYn ?S )xvzpMr:ݎHe˨6dTWH[~3a`i}^Ğ쿌fdHXHu.R Ix gBr?dժ굥 :M= _Ž jw:g@?"ZO7>#M^q?P~*maymrƍڜ~ <~#'oy]oQ/O(@5Gʹ Or' Wp`n&ahE֡XqbBH};[u;i;P{Z |7mGzrKylYmFA\v~76gcvK 1<ƾB{:'Ó3_ey2^>?GޗLCFtI#S=:u?5<PmY^:Rh 22:E)SɍUm.6*+N fqL'ɢ$٢M'\/1S8O_lG5+0Gk#E$$.tTD+2l=^'B (_bdqd2զM,AѤJRi=ع$+ViZҕG{O͞M.5݂}qvۈv!݈,j"ҽ`Y*?(d%ة_!Y) )P>Ѵp- VMˬ!r:UvFhgyζ-Qy=)Hv¼[Q/w7ota9}H-?Qnm 놫pIuu+q&rK#r}>Du4S&gj4D} %_4dU,c^N%q^C=WH1Ga]'5Wv:<d4wcYAZn)|@C `B);}x+lg5'ˈjbrsH  ˒]C=m,ezc}.|9O_\zWVmK^Z 5F% ytbFg-YW .)&^G%4CLdnKV@S2x[{8Tm7]N4U?E[8&L|GƒUgIe&IdnjĞqnN/$O2qѻ^q."^;A5+6-%k~m=sXݲe=+m kGu]3G~#Oo-sOsn4gU* Sa{! ]UXsGxc4 tݕ5LGdk4<7q q'Ja^G2zz4̤ # B\J0ieid?JBX\ !<"aHJ8{G_ψ$Ov+)e.!WӨt:qOGk-$sOn#MKy\wew s!mwo8Ѩ6sUZhPʽGW&>_t;̗~dVUsS7+cO51|qA2qJ)lC}m[]y@Q]+:j{#>lĦ̶ \F3=WMa\g+4?ᶶ(^$)=.S\.T0ҍ][F--B;*eB<dzf٩$k{US+B=l-.\dB!6 Fd.KcVCn@u'\~D\f2>5Ƕ[A]ClnSDzSENxEծ^Qmrtx8,kdv†*̓lY @ d\W5 01p$tT:bu +Q>|2 h>U'FQrw˯EI(a[3ꍓT%t &7Zf41 f:N" Jsԝ) Eo9AVb+ف%+Vbݼlrmqnw;^ujAmZ` .E?ʽᆪ-)-) MQmܱY0W/$f͙fLz,jkƫClM>mkarBGoPWslm(ʏ<%!rrQ *Z8M{NH;4UpPO3.ϗ;1ZoݶC-XhU]?K 6&\r廣\i>ȓ݊1S-ݭ'^X;Xv؊9A3>FEp z!'YSoJa;K;ިHzOq͖Cy)Զ3[v CZP xΞjAn7QA쀣<QA :(NF0@~cLxof"S"\W~q~c''h >?0ihdmr.W1v5- )SCpE:՞ E PZPTH7i lPX؞@"Ԓ~|@Ony~lB!&r8;P=8(rb|#GEN$FZ !H)\#7Ӟ=5]5\B2 0oh'Gb<+B^[,=>ڢ/ޙv572 1|M;95Z݆V|Goӓw*d5c@E_4u0Xo,VWH($ _qƞó]FKx0D1光Flii9G,d[ eq~!ƥe>_f3v4⬚>zYnlXmۜ !ǵԘd}jܑɾ7KC,;)誵PsWRr{"N] fݠymg,`֟1',5^Sι okaZ5*$j/=a^5?bn`~'j'a?%Y9T 71|ˆThjNTN@|P5'Cm-W?]z|ѫ{'g_SS/ojƅ+~b?g}'я/ ӯop} w?__?=}ˉ'mqiG}{;oޭ7wOp}קσ'?ߴ|/h_x{1=O Ot"bOr_{^::&'B]>'N_~5Os7݉'Ch_to^{q'Kۯg c$_{gc_~#=b[~? }@Q_o;a^^O/=Վwo:Mo hwaWab~8Koz'N5~k% ;~rݟ/4P}'tWXsf~oN[׹?ew#S٫~C:m߲wou?Gٌ~gV}ov>Tz~_opAm~_=site_pro/images/5page_img3.jpg0000644075506000000310000007615011734670400014532 0ustar namedJFIFHHfExifMM*bj(1r2iHHAdobe Photoshop 7.02012:03:28 12:13:52(&8HHJFIFHH Adobe_CMAdobed            G"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?k>^gJ6K2~V#Ь\v:Ƕ5oGY΀k;nC >  KB h^7ޅ WYhw|{qȬ}AX\O?l-zp >]x3o.c}mvEs]ߚ@x'xv_wg"I̎X5LX. kz~WGw;q]y*aCx(:gekzg$tk64 3㻳4 7cKKyp]Ih?][>:&Yt;  o޹}kA cYOGo#`znB} nb9UEzV~c[kk1ؗPܬk}Oon =VJn21:\27͗ZOX檻./WiݘkucEACL7c+Ϊpqmt_vs[^Ey~O+a.-4*{Vk6nOպrD}&?ಷųG.n1j8ƱmLޣS6qys3~`j_USx+6ng{b(:5<잟]a,ǂ/ŧӴ~1k{ܭ\c+גv͛f`}'l?wzp2h7F5UzCz.wU|kʎ7n߱ 2_~]eZ=[VUʸuL?J*vʬULo1ۋD5Fz:?Zx0>} ~=m{(/Q g!<1߇6q>0Xz}=ͿbgaSԫ@Ƽ}kfIzXsT8Vʝc^[?%{?Ey 5ysee>=6>ȱ66]mtyB]1}S!cc% \Txu_9#`p޷CoYuC=fhR͠i,e1֯uՔΧauV؃R0M0-^oZu}U!ckߦ姚\g,x}^q>G@Bz5~v-}=?WSīӵԶ=k}rpNB0{20*?k!Y8@^/}oA/_a g7ں~2c1=BgEM=!2çuqClu[z4>\ݯNEft|>Eov0;}}*v:zeg[տ\#X% ?GRp͵dVZO1#\Ơ_ Yyar1T6E~NK^eE99uuq߽7S\ztm۝GVf)ko!\KZw59\Co/,$$\#OGO3d#%QO~_USW9C( (Wf\KooPʳbߋ?C^b~o􊽥nπVrHc_/_^gJ6K2~V#Ь\v:Ƕ5oGY΀k;nC >  KB h^7ޅ WYhw|{qȬ}AX\O?l-zp >]x3o.c}mvEs]ߚ@x'xv_wg"I̎X5LX. kz~WGw;q]y*aCx(:gekzg$tk64 3㻳4 7cKKyp]Ih?][>:&Yt;  o޹}kA cYOGo#`znB} nb9UEzV~c[kk1ؗPܬk}Oon =VJn21:\27͗ZOX檻./WiݘkucEACL7c+Ϊpqmt_vs[^Ey~O+a.-4*{Vk6nOպrD}&?ಷųG.n1j8ƱmLޣS6qys3~`j_USx+6ng{b(:5<잟]a,ǂ/ŧӴ~1k{ܭ\c+גv͛f`}'l?wzp2h7F5UzCz.wU|kʎ7n߱ 2_~]eZ=[VUʸuL?J*vʬULo1ۋD5Fz:?Zx0>} ~=m{(/Q g!<1߇6q>0Xz}=ͿbgaSԫ@Ƽ}kfIzXsT8Vʝc^[?%{?Ey 5ysee>=6>ȱ66]mtyB]1}S!cc% \Txu_9#`p޷CoYuC=fhR͠i,e1֯uՔΧauV؃R0M0-^oZu}U!ckߦ姚\g,x}^q>G@Bz5~v-}=?WSīӵԶ=k}rpNB0{20*?k!Y8@^/}oA/_a g7ں~2c1=BgEM=!2çuqClu[z4>\ݯNEft|>Eov0;}}*v:zeg[տ\#X% ?GRp͵dVZO1#\Ơ_ Yyar1T6E~NK^eE99uuq߽7S\ztm۝GVf)ko!\KZw59\Co/,$$\#OGO3d#%QO~_USW9C( (Wf\KooPʳbߋ?C^b~o􊽥nπVrHc_/_ adobe:docid:photoshop:243ef5f4-78b6-11e1-9a9d-a708dcdabd1d Adobed@       # !1AQ"aq2B#R3brтC$Ss4!1AQ"aq2BRbr3# ?f2yW6>8ĞI6Zټv*Q5> 4 N[S,4>+hmhs#b*tXPS,(PyDya-BmXTK8*v ,d_9:PWkHfmҨaEx7sl3wTxCP+xqep̠5Rnbi%!nA+adXv'2EubKaoUlydh"J_mp܅U7 gHjP>ri6jKHGW%XgMWJf>cUz]ƈB{E EHB +V 4%JZkOnXVuXGH$G |1)4~|L!dc^#*-1ɐg  U Q|:'X?/SO%+̠ɨ!`EIn`-tYs߉Gt{04OŒV?wA%/H Tay@2nVƒXp94m.s*.? .rk":p`62^DJ< 98+8\NB4:x/D-`yE8F{<$/?ϩl鉿Ƹ3ƥ#ǵ:H)GS'QٷwPNplEI6[n fq Xg&Bю@z( x1B;Yfvch9pr#-#?\Q\#!—QZ)R|O  C*Y ^+xӞscیaȁUэu8HXAn:xW?v,Lȶd`3Wqg^( 1YO aR*9b@9 _mZ-n,O8d`^8!`sˍ=ePqE ehBȧ*C3cC+oy>RuҡHl)iAdUpfp: =OѣKsCJyISH-o0>XP٥jh8T8-#ZK9=eP!EѥJiuGT5mٕ@NΜi[Nn$s"r59RT %BUM J49д|^ڨ $C$Q#.WH#7: "FpyW#dU mkY(kZU/C+k fT kb* #>솸/KP"`XT 0rVF}{_U\{pv-tZyJ@sH\Wɝ uhԅ_w/rynyܮ||0 Ԓ[ [NЂ4Χ\G yԬAH!RzU7OwG9eS mbFc$0w~i-/q ŕLEo޽;n.Ja/Zuc9̺8g:-W \\]\F#N1ȕ1 n;Zg2ʉAW ipY@1 >i[ =ˁ#q עYw5,@Y4 Ȏ3mY/4P_G F~K\?3ƃ Z#v*ToE4ˍp l֮ 9~8MDE$WSljöR -$r9iv組/!<)N ~m(*1ś̜^&W*2`HOүݪ0 KH3>l[.w`VT>Tf*C~걚I<<#W%$I$'[off@YdzL38 ?=#9!ou0 U8-j*ˈ<j=m"dE^-OHrҭ.-^lu[EfQzS*1(?mudgЕ!*P0V{؊*4QEϟL:)qH3R>&a$c4HٻՙQby[[ rpp G[0T 4<0=QA '40!CXI `ubX cka;L;G4L$D%*„s`2OXmGvgx܈{8,Bend~p5/q.>:mzb> QG!aӃ>e`KT)!Uy{p܅GgtdA0 |C* I !oj̋SҏaM+ eA<$^:nvs sFA<b7lCx+jÉ!kyh $I##2xWㆩ]b\qJ4iKep$miSM_Ze:c[m B#&26W*RٗlTuagtmZdU=ZWG$ѹ~(IvD5L)$(̫v*רuP"Ŏ #덁.3A+աɀlt۶r\dq"׷1Jf:B đ~Mc7}Y=[ETs)e C8Zmvia{$gkpJڭ$scfomN: t"DfX+Þ# LKi3T@LA{O/ OV/v{]P+De{BEa]$ >ն02@Ru+,сbݷ?vA}=+@%T) ~9NZ͹Fa n-1OG0IƧTو#C6h-5t4Ҽ8`m$PaJ \IᆑUd :G|a{3HzeUL c4`:"TO<2+ Ap{WJ"V&Te1O2]hiAHއX$gƞ2*0٩%B~UܰU cXAH8{ώ/.#Dq )'!W)\4p( uj;dUfx 3'džJ,)L R6Oӄ1VW]P{ K E*Wv$v;ǧQyd:% R9KE!*V:_IRi%6R[X5͔KJ$09j?v nicG2yI1EgMVR$ ,FΕ#!Hb->ٺkH UI梞cz eLUN'ȗs=Kтdm]i fDs9|ٙ-Ƭhh([ۗ>.ݶn 1L#OwmJ R?<zx+O{V SL^RA?gy{O)4zMs@e˻* @κ]mBeK=#qV̰"6+e,T$NC+;CӮߛZ0s/w=2[*SMDZyhq&Ak՚( ,Ԏ4q$;薐ڲjbftGj +9ヤ4lThE8S B{h UB;P S?pwou:Mo`d>,w2BZ ”I#P;jK8DjfpHaS( hԂ) Br҅R+#,4HŔ4 `t4܏HIG%s8itHnzf *jo.(TtLQ@ͬ*#JDvC+ iybӦXRCP='H*CcU2?֕U6ٔp[u"&Ca}:~W}-o{YFJ(VhZӨ'۬Է7:Dr&B;5dlzG2E*-² x<[dO߭/enaPmUdyCY!EkL "$lw@@bEɕ!pZI B;%x`ETmBJBď!iw \m!wL4P< vM q3^%%zj#"k[iU'Dly`2^m$[u]=B(~l@%GݿyOc%xnQUDvLA4y.kxuF:gC-6mSfLNntvͻlLlxki+%|'}߾zlkI1"3\{h b Z$2jI*hfc `n.itz-zȇּ uXĎĆ4Cp$b))УEogoaTR?5wbjA4 Nn +MaE8(r;s7k#Qq*MpqmߥrOg6Dvtp^Hu̮7襃O;kuٜEGgWmVHfMME* ֱ"sӭC s8 fʃV][נm,.iBA5T@.<@jPpgfKy@xI׋.lbK4&@ G7vfn׽wgvHxgVv5K*N|xT!J\ =]2ۍũRTeⵦ L}[\l[6Q-H &{b5K͜1x j(\FVͶ<]H̫kyGPiW[Ck kE ťz$Tf'1PZK|cm77:Mp+ qn{s=ٳ=JQA.ycM\E>E݇a[iTY~w}܉0& ЭAA$΄Y7-߾7Pd[^R5DDQL=:LKZ"0m#lv3bŊŴlmEɲ6ۗ d6&V?p"uQQ(i(@0@ɸ7w2DᡞhC⬤C'7}?]yߛŊ@Y,抨MmT; ՊlȻvdFƳg9W r0In"YaZjr/`O,'WTF%5G@+  ̶,m̉iJ׆TfK-Ɇmݔ0DKƒw} /w{ۙX*}.I-.0h8F ۈCqrrWGGB^hHۻRpShm164K~hQ&P3LhI9yVhM$RiZL, ?2{2M#f'IX2$EX IUO P!0y{@wnq6cpq,I gػ+nٹ`7jұ IN!]&Ŭtk^90zP=%0 ^+뇡6h-ž$ 8d6 c"0B?7 IUcZ$cr'>KzC@@Qw=Z J5% HŽ.Rp(jf>wsȊW_`ߖ+y.MڨKd58U^g!Wg IyzXs÷ɴ 7ra]A [ٖ\*s04fɮ..S=뼷3gc$s͍Rd2&x 4{+̄I=p夈%*[Ơ8w6,֖S\[֙V?~0:W@Mv6p$lWbٷp0XNw}a CR/̪/]| 6P>T:G/B4E}E=\m>5+m0"h?.xK7 -ݖԅ="Ϟ-Ѝ׫Xݞ sEw>z%SB~֜[I1}vSKm**e{*0AWm՗mۍvV2y3iH'Ѱo{-4?d4ˏ^,o"ޱ}9=i>Fl;7XTubIoJ X>~[5]?/Qyٙpemʠ,^̂;kZKcpM2qF  I[}cpo-.`njr9RufU Dݜa}vNRûk$o4ykQCh0кpl- ݻAJ4~Z&bukp=܋:իE\p 6]4"` T]'*ᐖ?Ӱoʑ scycw-d6ВH,4A6K9>ڮ6pr6,"8$4vݽ7qw=:ٵ8P#xa\?kִVKVt{]t^tonwwÅƶMy޻v7-k:HƜp>}nb}]6f ,3'݈.o#,sRMB/qy jIC&(1\n9P8EN:X"Gc$=WLԪG ϴ@w3z7coZ6nx)B@8] I>m+u tT\q!s@Y)  q,/kK6/o2%ރ- 脽vLk q75jiBE)OW佭G:66FTlR귩(hޤwx,7 V輁ag0<_}%)f#9 z/;o_&;WNߣ~.;6kpW~>{N;;oԿ2ʍN>i[ŕij]_j%[ۧΥ麲a;+[;3Ms|,9SS~vF-OiuŴM C"+$яTm($w۸LരKO7PTt;V]{D+#0625N.LD#5E{tj9iBϲ`Y2(8(,,&^wNH)ՅQ$-&7rݶ[e-YA$ LSB2"93ӂNݽwKq_n V:IYxPکo.uܻ_ln=bdκuH'j/KqR$G_Xg?ԭv]eVĜks\m鶹VV#IYɫ8 kČ%KK#OHQaiw+*9Q2ǩض~5ߧ6.",4E9ee}^eedQ)@3J1Uxf08ٿĮ;W!od^;;k_X~ԅI*G# T`6P#,nU&W0:Eu#m`vD1US bIUzJ՘=_X=[ԟN,#=ܱHY-5#(]\2]FizNX#30gժG<ԘgW }gչR~kPAa 岖 iZJ'Lx?6NZ=RǟkFA$9#kGV+S@hq~4_'lF}Wdnyr,-[5-7ˇ?2w~~˓t|oযd}YnW;VzKq!+cW nժ~T"LT+6NH:@Q2f5Ot/g ұGt @ƕ@-i51 2XfLA 9z;Q$L)y5p-<[C4J"+K#dV0D>HϽwpw-Yf@#6AZl:!p/'vGlAV1/iczjKżlzڭ35&]7_lM[kj:XS@s<)HKONU:'lgGukBVSA_ߍ4~[pJPʌ}YH9TeLNB|ʼnV-Uzơ#(\dW,5jCU]ٽvMG]䕆dӉ8ewfǷvUN jk>;;Wo K0/qcRR13v0kK+:cK]^֯jzq!,b7b؏u. C}Iqv4Uຝ|fV1_qYIn;t[Lsku;8,eܒlAq;Ecx)=R2J4^u ZYE4dj;3Z$+>UyFes@Mp=;AWY~[-}[@JfKj0]ͽy Qf.gPY WbZb/={wx [Zͷ%܏Q$=m"2hUf\fӕ/AڣEѷJ k5ʴdʳ#vmp&k)qk;x<׫c췲۷񶀛KoEmEbI Gz&<sqkqUBg1l,c~8Pj q! K+hlXgDq)4ۅ`+Gpldc*1;mSBwtB{:-R,-x7?0qRvzێutI!?m${w$Zg 5#|\n_d\L7[o'Hbh 1ʸWFw)6 +}Im[u92 t:#jf5CPԿK~`RVjVWn9|4סǏӉ%/NOZX ߻b!U1ZLEk =FȎx̑mVգ1mY2/bܺiA+>"[U Ǥzٛ[{!׏ yoԷN\}[G;Sri-eZq>W9yr=_#wrw}yEQoO#s  ]N4^kaZL3pcMzUt>kn#cE-/L֌M^5sǗR>ZUl]\mQ]I{_olӬ++]JHfbT-򏙱LXqݪz| pvOӍyamэZ]&Sۗ_;([jn巰o|'NPh)ReWw*ƪЏ:P'Kx8ck$qb(l{m]ؒy2S|0ܗ6;};ȗ_-B Ryk"@ 8MC~"#0q|q9>iڮQ䵞?Q99q~+7ע~_=emj.紶kJY[<ʅ1OlT\>GӹdvWW]ݾ]w :ǦyTPzZrʇl|v׫LxM?$G1Z_[PjW_Q>׿nY28O/=5W[dvWpұnfdP`m~\|ܕ/oͼY ?|۷d )t#QeiǪ[XwŌQ(tHauu(x+٥{oW?S4rJ/{mz갪}, K[Yl6x褮A{4:Lu ? B1Î=V> Qj58͕c#4AXC=0ӹ{E>Rxл ^=l,ifgϒh++PD g:>5z8CxrQ}ᑁW,+sgj<̢c)$@.i<~7v;iՂH9W7񫻋OFugO/5kQtwvr\]?J2X@|v.Nڴ1oŲɁ5f"Oc F=&m[k yEy0io_o{.EhH8 cɽ㟿E,R/8K² A]/^+y.9znj˰8qȎdw,'do4?E;P?eqwWc{]SN489>o7 | DC+~zqdp_b+x⌞I\~7;?Y}ձjz4y}e}ULtz$b?7TJ{!ks12旇qn1_#p=)AʵR xS a.x Ca^5F^|qVMދqlsite_pro/images/ul_list1_marker.png0000644075506000000310000000026511714626646015720 0ustar namedPNG  IHDRHgAMA7tEXtSoftwareAdobe ImageReadyqe<GIDATxbdc``XM,@+D2&Hfb@s/Q DAq @PugVIENDB`site_pro/images/2page_img12.png0000644075506000000310000000753111734670424014616 0ustar namedPNG  IHDR::J( pHYs  gAMA|Q cHRMz%u0`:o_FIDATxڬOA 0JSv=׽*KeAHDD,u5nD71Z#nuN֚R:zrӏ?pB) C AQa@]'Z>7FRVE o}w+2Gbf)y~5e0 ?d?X R qs@J sA4)@_{pAc]!(5K  dq-@O,3)`ġY(gx< Ji 9B@vXr(,T@l %U \9@WD@&P/ D=ڃϬPٰy07b&@`HaI7A >P P<aXy GA|-O0 r dA0?3 YX KRR8 #2f> 0{AJAʅ$ XѠrd@1b d,4ŁJ2#,@4,@0G¤@MΧ% KX@̰yV8P5PXa HdO+`%/r!G%B >Q[`@1X)2PM#VY H%8m'hYX bjc|?FJ \ʂhPB VxߠnZVK:He d(R 0 N+ȑhaӀ/O"'YR%@ȅ)7P#@n^ f!H(xR a A؄P[A 0 $ih2>,@m]XX\ GAX -- !!=zk0f;v0{kl;@ PT P#:X򿹹˗hѢrrrp@ CnY&Px@@!#uh}D)<ի_?yjx k#cn<r1։xF/`Wm9dee/_ΠQ0qimժU ǎcPRRwrrb8~8çO0e <-78i灜L{"RTTÇ1sʕ`1yΝ@͌sv`'UX#@7C f89(8|!!!Ο?7o``ٳ$64@~c ڂ^BFMdO<K.c2p;@{npl`,0o k |VbYd` >|@)1Dž?Tprrc @{XUUO’/@1@GBo"W# G ]Pڸq#E(Iӧr/߾}{y=?t'O_t)ў6h̓Ƚ{X#ȡbb8_QQp>g@1*t@fb={Vp~`c#$|\ @{)pdOJRdKak4999(䨴4<]G߰",,Sd'Hmqq1F"jp5!4d2EZn֒$ f_~<`y@U'鲲ׯj vݠ@*'r!YtoܸA0aE]#""#N@U6O܏\[@<3dQXX@FU`#Yp*0? -@1Bk}W~*B=߿3 1HN`l3ׅ "@kd4g1'@]/`sr1H<^kÂo>4ȍ `Gn"ٳ ŰF!:Q`57Ё P r@0;U Ayx-3 1`  @1}*L1bo޼T-$0X0<~بG@i~9/--|>PV>900ϢH| #Z<6233uo}'$$RԪU7f@ Tgݻ(Um X? °z PRXގ%KJJ?s s Z?/l (@u&H/0O6۷o00 7bDd6 P2@RY\M8?///ʨ(@m]PuЛ lmm nF:::PFn{07J146tڵ˖-7-ŸK=GAz;0I6%jD֫@o455c/(0(j@o޼1X>bM o\}JXc3JӧOEEEpqXW 2V< ăo`3$ #"Fo9a]4gA?q7gx1 &&lm ˗/nd"ǍC)C/rOAnc PX.hm6plϞ=/CJ)$LPG 4tlOKK Z!@ںu8xDo<@H 6'E_ nAP *ma؂Q@"@7i`j!Ƚ ،1kzz70tr\]] z*wj/Yp;X_I[@Pؼ @1M ZbyJ֠iM( Vat`K@4HT#Ѓwd(yh;$(8aY& YHDŽ%gm0zJªhyl#B&#,#+oxf- (lT)C"dbNJ(̇-ŁM:ް ^/Il4 G y mMDd0ǐW7dO!/%׳Hٕd߄ML#gbeVX)kh`^y}y[;_w> yYR̝L@M0(b f&X!{$w4n쀭e7X(ظ l 1h|ăCbKUP@.GjLȣiȫ@h H91YkY䔸Hݳ@!0VqV`e@%ؖy%4@:(`cd6@1a[yóV!/KG^Jbȃ ́y&lQ%,9K|12;C@}]>e>U_)E32({Cw?;4*QIXx!fA$@ IENDB`site_pro/images/bg-nav.png0000644075506000000310000000016711734376760013777 0ustar namedPNG  IHDRvtEXtSoftwareAdobe ImageReadyqe<IDATxb|xzĀ $@"ܭpIENDB`site_pro/images/constr_icon3.png0000644075506000000310000000153011723543120015203 0ustar namedPNG  IHDRZtEXtSoftwareAdobe ImageReadyqe<IDATxlNjQ{ ޢQCl Q lH!C3Ԃ`4F/p1'gggRݾbVCQ>YFT\R53 ###n[r\V3h4zuuff3( Jו%2 БYoo/T*%IEMp퍛e\rё 1Ξ-͠ʽf'^\F_s8P"IjVrzj\jl6+**!=ʃQe)T^nB3o2q]9ȢuffR3~9Ѫ0-!a% [dhfuuu}},链S\e!p,An1 Grf=Q3m3굵BpzzJyA  H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FIDATxڌJ`|Xc[{ 6:x#:v*֎QppikR O/`^xp~=AN՛WA WRUOcD=@G o0Cu~+vZJ}G50 0)<+ [`%L%p@ ҎE!sR=iIn{׏#_4qc`IENDB`site_pro/images/quotes2.png0000644075506000000310000000035311714621126014207 0ustar namedPNG  IHDR KtEXtSoftwareAdobe ImageReadyqe<IDATxڜ1 P xBLn,€FD*hFRʓ霋Zk!1F%P! 6Jz &=@RިznX  ?ֶ^{(Gʕk:-rIENDB`site_pro/images/portfolio-2col+capt.png0000644075506000000310000000027611716543506016415 0ustar namedPNG  IHDR5~tEXtSoftwareAdobe ImageReadyqe<`IDATxbLKK@\9s6N&"2#ZȂD&Zi`m0LBJ+0.CIENDB`site_pro/images/6page_img6.jpg0000644075506000000310000006764411734670456014561 0ustar namedJFIFHH 9ExifMM*bj(1r2iHHAdobe Photoshop 7.02012:03:28 12:14:386(& HHJFIFHH Adobe_CMAdobed            6"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?GֱŌh i7F";[uMP,:>kc[H4uv9%,l < :o?},RlbKt[h׺'i&avww;vQlN-"7]{>6db]cm`ÏHs\= f h3wA .&;JR?m^ Λ͎H=%0k6Eיq'4#%uHiMHT^m$7o4a@[Om{?Cy';G$80cDLh 3"^8Kvzo.>$ߦ {a/w>_:_Gu5cZx B$ݵi RRϾklaԒykL\ڿGV:& Xh< >;^zGe*nH2?S -1&$ǡݣ H7k?.ɐpAu{b 4.=?I)L4'saK[U?YuJ6cm!sEcn=Zb]I$bWR>M-̭Եn4}ǧo u5;~}avO:*W\ou2ڟYnkmLo6þtӏ~>Ve@aK_?IUdYFnKz5_l*u獹}_o[~iM0sfoEL Ү{ {۸ޒ^vUH?o?$犇H%mON9 aqD50, ch-i$A{I?~ꇧʂ D/ Qm3c4pIo7յX"i)1Il ?I $PpP}8UG:-?E1v;p/l|)qqC\[" > ?F)4s7NOuaD׼z%4 kcRR\.In7SqeePAhG& ~|[?5M1Ng?1%,QCl@ ?w[ȮcP5f܂ hM䔸ceD[w}wP"8iJp }&84k?ӛM5㖎wt}$b̩wiP,K7_UL (ѿx;0 :9%?Ɂ4IdG[Qaw6[nW $Z]ѯ?Gn4o7RK~nb$>MA vݞJiP Lm毘IO/?K 5 m۟`I%?PkmWX:kc[H4uv9%,l < :o?},RlbKt[h׺'i&avww;vQlN-"7]{>6db]cm`ÏHs\= f h3wA .&;JR?m^ Λ͎H=%0k6Eיq'4#%uHiMHT^m$7o4a@[Om{?Cy';G$80cDLh 3"^8Kvzo.>$ߦ {a/w>_:_Gu5cZx B$ݵi RRϾklaԒykL\ڿGV:& Xh< >;^zGe*nH2?S -1&$ǡݣ H7k?.ɐpAu{b 4.=?I)L4'saK[U?YuJ6cm!sEcn=Zb]I$bWR>M-̭Եn4}ǧo u5;~}avO:*W\ou2ڟYnkmLo6þtӏ~>Ve@aK_?IUdYFnKz5_l*u獹}_o[~iM0sfoEL Ү{ {۸ޒ^vUH?o?$犇H%mON9 aqD50, ch-i$A{I?~ꇧʂ D/ Qm3c4pIo7յX"i)1Il ?I $PpP}8UG:-?E1v;p/l|)qqC\[" > ?F)4s7NOuaD׼z%4 kcRR\.In7SqeePAhG& ~|[?5M1Ng?1%,QCl@ ?w[ȮcP5f܂ hM䔸ceD[w}wP"8iJp }&84k?ӛM5㖎wt}$b̩wiP,K7_UL (ѿx;0 :9%?Ɂ4IdG[Qaw6[nW $Z]ѯ?Gn4o7RK~nb$>MA vݞJiP Lm毘IO/?K 5 m۟`I%?PkmWX: adobe:docid:photoshop:1a9db674-78b6-11e1-9a9d-a708dcdabd1d Adobed@       6'  !1AQa"2qB3Rb#4r$5st6 CScD%E ?5f*HZߧv$x@Lr9fxZicVg8#wQi.ѫH$ @wqgqe掼^?VuRcnoUm+%֞Yb#,>{Hz<| u9-QhX:e^d@v 1: ܝɮ5w,MȞ6 ]>ui-K|}.>2v ACZ ¨`hmFȣh*+,=UAvך{@$a|«1!T:+P@ I :O nXk\g!f3Asm>V^N͆b~3v{jJA%#]2z)ZlLw#aa24E#g2 K&*+w~(A34a98@h*\ u>[f;wM V Ȭ>Bvf\{4kZnCE bdeEDF&7든³$Fαu?ugfAf̓m*yٮPB t -j'xMUB0yV-U5X,zgڷ=ăl z%'0YV)y;@4ڹ;kԄ}'t-%9=Px%$:8"ԓ4e8a=`PX'\^ v1;xU^G$+,{`ǻO֋Xh8V %&C #.7+x8!o}̧!n!W0goFp4\,|RWN6wwdPád=ƂO`E&JYHFWzuBjh~ Q!$1 0V0#^:tωEܣR+`Yr:{H,iV{'@%nyLc] 1S;JA'鞚% e\ $z{??JBcWēc]&/ADv"$G|HRJrgF2W)VUʶs -ZS!XlbI'A2RXeXulEub|Ph/؃5xĊOe A0:RWbI X4qձFʼ}v<<1y /#KP&'16k4-w  8MvT4dOS`̜wQb)E@&ܨ##:(}=7!tY IWII/gn'j4}RK7Dg88Qu:9?[be͝F=GSGY bfN2Y2sۡ ؑ+A%lQ)g=OAr0HvjK]z08gh&N/ۖċ.bHAWSv#BrOAdy[`?o b-2|:Tڊi(4B9$|uLyt~@Zx뫳hy?iPV*d[&P*ArSI`-UIi8۠RjP+F,2KmB{TX㉬^37cߧ^XP[VyXVi0H$n9 4k#FE !Q 8=tNМ: s3٫,dO,<g 1h+{U6vF??: mF'S׫ <=t˒X${ޔ(Tb|74qlELݐIZ N`>{`wd ɝvdFz {mPKN]lBE ,XnC܃ӧ.!4Emh䉻Fú?{ \Fb/[yMnJ9?t|揍Œg"mwE*s6jHIuU&bN:tyQxh)˨O -A$qA+QP2)zt:uSb <Ӣt䟎9fFȝX.v Rcql0c![1"d408t]H}Xbek M'9`3<4inKɬQڋ^9U`IA_3pѐݮu*Yސ\x{] "1 K q=OpH@1Pxuf? 1t)2F 펙頹bzi}8FrPެDN vK2Oc~5KrWy~"lZ@Y{eWq4`b:'D9I 2^&3@pC 8=,K lw4h@ 9A$o*X.O:-rۯyzDbIXzh/q;EZKNfjht ZZk-hInæW'^V7P)Ze}I}ߴG=0@yVvX`R`2pM#?XmznQEd2ޞor8lXޙTZUʳAc)6> @P2p0rt9 '+ $C6X'%$u,#,FOv'h9Ux!<,1n?٠+T 1#eQWJɱ̅|77|ys&F'Y6:8ʄr||^ZrSX rX79hq$pVIZo{ "o,5ۀ{ OH=\h3ޭCn} q-K#@DS* 70>>: KҌlFN$u9c [[ qvHނE0 8=F# Wѵ<*6n͟٠Rڼ|+%,v 7<\b- îIsŴ2;RSǤ$ c?@rT@0@5n--)i0I09OA$\ R$6D4,ӢMY (Xc+¸e'@/#nJOZlO!d%A dd7-VSG)Y~FWrX|4ZҌ]v͒NOSu01Vٝ&|A#cZ%H,)=7m$h"ɘuOqmld?٠9mFێ4J\I  ^;JHr'䡦 GT {'@~]/ {5%hwh)9DEO?V:"TDDʺ: 2r)4"ue+m_L\~ЛaS".p%[8ac 183Y&{HWk$? ۠ HoS(E7;Hd b~=_*ƞQ$&ʗT46 gq\8;?+X:4 =z5iH@ |Y,.FvFrgAÛ%ieHeZ3=bwzd;}AkD@8;Qz-Ka|ᘥ |5~V lVedYe/+ (^ݴ}%=iҬn*-r4 fI-Hӓz$s0QsnꕅXswA=qroB3J/Riv .?[5MpN@?q\d|$c  5z0"x^hM* nӠڀỲYd~%s?dIn$EA4զw>@}LFؚ\estF.:4TwwqgŶ*K7iּ]HdPP2z9=@¤1=.MŃ=@^S(M0Ixg@D\y(A[q*®G ?0x[ G醨|6ly@躭~za%Ԭbo4;o͏ Ҟ2O)4 y}!K :PS_~HK{O6OCp* K]E0"͉6;{/~C~y}+bFn?fQY>>JaH'۠ПRI\oMoKKLI2Ɉd#XU+O߭Ը9N7G*+ _ogտP. "byec; AٿF4IXPUZt*ı cvO_a 㘣Y"/XpS4H&6"܎q*14pK?: SQ>IH$ѕҕq2mX+ߔ^C\ۣ$OA %k@G:nϢߖ.g͏JrQy@%7;(tPMscƸ$.zQz̲.\\W2#_40z5lg;$CfN4TP 0 Y9*կ#I]kVxQȾ7Q6;/Rnimrb1*"# #ezԫ́9=EF^0=(1#UNYrJڼ>%aف @JƠ4zGv:ygc֒o㝰B&PrlSOh#9}/⢉RD(s]5WbF. V)IkhbY721ܞ_A+_KRI.lvsu^:'ZSa߯;J苙Q0C@=$ƕY'!w A=}נ֎H`Hu2c~r?'JIbytVZhUd! Ǧ۠Qؐ| A1՝6cFhFWqSQY8^y~{m`?N7s:W WmdEhPHܻh:"\o_RBks\/?RȺ 2oAmJߘ.+9c@7)IGȨ;aH+уڸzSmO6E5V1gh$l,#Ag_˚p-YQYde{e[ h(_X~TַzC*^ ,]jco@Z5U$frN?*X/xZ|[ƀI(=q$Fr[?*k=䒅sG9'?{m7R4]kr5+EƄcn|O .CH ffĬvf]hܒI4NխA (c`CPw{^ IaN ȊP8Ƃ֫V(ʱ  ՠ{+̉'MOR#Sާwt8y%If,Ѻ}AQI~ s#,]: tl݊#+SvBF0Þ"Xm`Os:yZkRA=r̽:`A^ zI~]7W@#i023u2liQ+G~ot<4֠`z. V݅*3NO':*^k)EqI{vuf&#۩=pA@}glbN4ecpIb+=s堠g))dݱ!zǮʩu,?Xk;B,@>-JI61!^z ܦ%I5*Ęu#==!Cm('۠I?#&'r;qZa~TPz?1%X.=?Ksh5W//E K9)9JQ d.~.ABߘ~nm{d&;$$?G}}_l_J}yCײ1ZıE&)QyuAq_ҟ/ֻWV1?!fXHk!_!Y}tJq^^-Ê7QJ c6h2ߕ_~kK7,Xm&XYQh0̒ʶzӌa'F#@IkyL~NBV:䡑9>yZ韯xK_O4lƕZ`LͻMLSDG}!iqv)6m#X`7CmWAgoyyycy=549-ɷO۠3[qFi k34Q̄"cI-=Ƃn#q{pUұ$_QضucA}vшf#bqh)r_V &1% 1#M-,s1Up,r;=|/ 8RIRF1`f/lʁq׫,UQ]9mh=˕7ݠV#J%55cf{t2mX`a h%eG;^] *ʲؙ2.ͬ >An#Nԛ2 ā yKOJAPċ#+3 ,,ʬ*mlxl"QKRTepffWXxeZZdsAj"fkc2ycsMxi$H2{4K܅tf#I#K`uSh?oa,oHapxcaFm ܐG3AXL8nwn}-k9bxBw՜u_Wr2Y"EbZ'up# ?ha*Q7p?殡=JucU*qoi^&LV#*s(WZѳ:&v @ϐb:мB00NF-JAvXRy9946 qF$gR8*v񶢹2,"F#evIgmzx(~! "цe/X+9sA; u7Yd?c ^?vQ1!-6r:x}9֢Q {JBR&pHV R-Fґ${m: Z7ފK㿏aV)E%tmU*ȭ"|i2s]1ib Fh3@Nis<rgjVdc?FޤNB,=W'r`C(qd(i!Gƅ =ۦA?fs^֍+ ɐ;1Г Z)J@iLx`D.0T I䋏ZKױ naLn+ =4 2{֩JjK2HP*OW^xCRz|4wh2,r,$pp4ZnW4ѵٛXY4\N lhJiNqצv? \RJMՒ9.j"/v]\[AzxIf.tl=brop2]鯩2qyvSyjZ$\.';wusY-3)b694|RWz/儁soB~7"$4Q#w\Fe\=^hR^6*MF?|>8A$ !GcV#\Lkmtܽ;Z")MJ@+\:Q`Ua0; $vuE|U=Ch'81#nOK- 8ly^#d 8'?nK9V%nO[ 6;;g@^漐WBC< rG_wiAF 0s7S9 y`WxFiZv8ݕ!#)hT%DrUDAFzOwobnayyrkŪ|[pOBBk Vj\x$,O7[܋}1?NV[R+2Dcmrn^c'_V.C3Cb6Aˠ Sy(Duzۻ-x֞V13e}vXWJDR$s̑4VN@DbT7A=s: +rs9B)4 dT oY}GpI a$*gz nPoYAJ~VDRx.3ھxhW&30\+;d$ u gƀ[ҥor5`A郠kF,QL"#2A' #,EǗ]<쭨n 6Q 3nZ 4ؔK^{נJyLQ3m+m1p;tdD"s1 *01c㠻FW&Xd1H-aXu'Z଀,Q!Fz-A*DҤrN=Y~4jq7$^ ‰1Xg"#rשBUF  I'(XC,S2nudY܁n: rSUU#rb $ۣ)qh4X\nצ*^Ƕ8pQAvn>æJҧӡVGFLؙ`I0^u>: 96be]ԑ>ʭ;Ыc]x G"<$D$=T«$2pXgלx;<OJm*9xbdD&hia/|N J ̛r p<=%>Z]aGު9$*c K0xVV\I7uzNt؊Xj]2p<)_p# zgGAςmID<] G@`UQu[~*h+gbq h 2Y0*%hW ?ha!Iw|S<|'YC科q|fIBTC3bͽw)φỮFSFt+h$a:1 3A{Q(uf?@gc~Yݤ|q@w~h4nGf1&"}{M/= 3մaʗI# t [jEJ ēxz (օS"8cqNv JgD pN# Ɓxİ6]NAO w"Ǽ[@5K3F*>U1'(W?^xt\ @G+E_}xe,Op(=I-BӴ<~[!G`|+Վ`ج4.9qRke ѓ:Ym`=xؘWPo gb@]t#4rVoA؞ EcovoN+z+V ^1'>>Ӡ=J㬪AJ̅ mq H5I_nB&S)%`vAR*2I$]O٠hc0muF+U0I=eGDD)Ui6Lѳ7qlw$7feJ/gMN1卒9U:8=)U]TAÑa7Igjƻx0ʼ#_}ߋ;݃uR-4xJ̲;WWg_8Hˌ7]CǩlE\'N8Mr ,evDN:hR1KҞkmĀ24.YJUe"G *-4Ro m>lF\gu*q/i)5Ҭk,eB>1;1fY+Ѯ>">C̝# O"=3ƝFF4 C @c՘X'}{r* s+I$i#l@\g~.ŨE2ɿEʨQL81OǡZ% <+*dUXF$ ^9C6~G Q=I`/~=1nEfW)ejs8qr1ӵY[ȋ颪@Є׭v>4,Jʑ!ά a =8 h$;S!UTd7eP;|K\/cs#muˎ:}2MjP3׏,{*NNS{o9d '+AvUJdQ:fWo}*JC>IbINtZRgtY ,QN_2&r.WlԍߵAF"@}-xD3NʷQцv:8nGh5,#[\yXN|hHl ;Wa \%81ƾ郆o3~mgOYq;/ TdjrqRCNzu3h&W$0;f(rq ]j,Lfb4?.VF̳OS1̠`N ^>Nwx9w GRE2FAq]^h-_hHU6Q ; b؋?u'@;Ko9#\H@YFFA9c7WoO}]o|wzh?N>%zяbN^+e_6l?ݠbDX 3}7tV@@#=:*HD ds!2@]q!,LN\YAW ϳ@]~2V(-|l1 0#_*F0Ed΀bYi*"Gn#$?Nz1K) /1Vȑrq~OR) JG\q'L 9JkW[$x.R}~FIT(#Hm@B|Jqc!5K@h"⮵1XK.^fŚ"eҜvZKS12F4ڵcaceKHGl.qi5Ɋj)3NļI$~+<։q ;vZ *Efދzh[wp|3ح՝㥈$R zԁk!L\9=UT2OUcm֠\@|; fOJD3‹2ZVg]KC1=I8AU`Xb[ԟA|{ Mz&l ( u? c>jS1EOө`$lP]|W$JnTz~DCF$16N٠&+y}m6Ն*v1Tާ= @n?tuؽ[!&?N#Aiݒ5Bp!KWIV$xlRfS" Guf(X֋]CǷnv>z *ufHWqT8oBzm:|&Ϫuw>%GHȔ0,ۍ$X," ~W;-&C*|p8̉H²#/ ּR,2@@,#d>Bll6:d*`ʆR6Y%j#U\637 F^:N[IrJ&BI~_z:+ fRvC'6M׬\)׃~#+ը_[Ezp=ӑSbJ&xNȧh{ZRjb):YIڑ`>N[Mg$F2-XD|aIENDB`site_pro/images/1page_img2.png0000644075506000000310000001346011734670500014525 0ustar namedPNG  IHDRQQJ6 pHYs  gAMA|Q cHRMz%u0`:o_FIDATxڔK 0 D YBB!Ȫ3,ځ%ی4nc*c9GZ [Ιfd5Ї9޵ߘc-'EC*@S1 DУ`Ai{Ͳid#C@| ^da (dH  p"P S#,I  b-y =GN k@hbOa~*]0HM ) )eh31*XJMelRz6*T݆7 s׶8_[PW -2fs06,` br< I $'a0Q@?HK0P ". .Z%2@[ z٣QC#0 [`0YpԌ&a %]Be,[2Xei&RU"2́%0d 7'MXG5I gC1=P@<+@h{$? -[ذ0,a9,5S)~#F<+A4P#mTsYH+w͐l9 =ID7hٗa2{@fY4{N-Ȼ |ٹ=maF'Z)]:rO`0 ő4tP6+%U!< ,9_"g!]Qh}zv4S( pZӀ健9|Y3-0FH @'O0X:]A`# 0<,ĝ`R#frֳuIGSSW-[Z٧wB F^NY GjT ~~~ `s>| ""ѣG ?d'vvv777X-.ӧOjjj._!0|[[[5k0DDDPZbgv&@Y"#a!(k s ^x/\˗/`>xK.1H`6Hػw/֔X,ZkK9'BG܂<5H D;UZZ`*7 ,a`ʆoF&_WWv{aBvQ+ڂ 䬢O,!1@n0X`޹s,~}>Q0ttt8pׯ׃+-- ,d*'˄P W$@1&7%`e!r-LlǏ` *߄ٔa ?~޽7'@yVPP(9°xbx- *@vjW|AA(æMLMM 3õkHكuEM@~=H '^nc+eQd>Ãf av#]A @L2 킍`7#46AIII'Am?\}rG444`PWWS(`ex-Czz:ڵk)Y!wua}yP & ,kXCUFm<0 bJԑ\@WWaԩ ߿>PX3DpѠ a֬YTkq@1x#3@9@ ef(5j\X QSS:`䎮r<h A˗/rssMPj>@ͫ7o$6 FK*KA gP3ɞ&533QpS X43߿u pǎ7A]IP/ - yU2L`692Hr(b@!Pd> LX GnJXTHJGC g99YZ&MA^<]E`1HII130ر*l$h)3"rXLR< 倛I ;}bp% XP[I ưo>') D!b!CoA/xəDG pԜa` \I*P===?NRS9!OB3%²zr0rEn Ç`f+ZP @PfX$" 6J"R"@0Xz 26MU10=F3f h$ֵemPV*Aj &|xٟĖBGl2 T taG@^e<2x.( ANPܜ%Af())><K0Y &T #@FCՍ\hPW6kF^`hh @@8"(e r ܊ @4 XB$:Rw e XJ`8|0ɓ'ξ.~~~!‰w*f a8zwb Vº mllCY&L$E,EAmW^A`cTX @䍜␳/#%A! Cn`wttۆAAA$XNB^/ :5@3lCrCj9< P A, ѳ/)eH[merv¶E8ͰuAl-RMukp @*"$Xk@NY0@5A#AZP*)r{Rx6D el#\;k>‘{ -2:R=-Lj А;QzPx"2@ +=Nh r&G`245w`-'OdԲ9 @L@DQr`T+޽{\"@XCɩw59 q f.Q/@1A1jK L(0AK@]-x!K-3Ffȕ rJVdž\#/CJ@1AX'uubLP"ÐhfO"n䕻ilnM9iwɾrPPeWXIDZ΀< kw`XFo T Z8^@LH.#5q5W`51h"\`mmMVSمm] A,@w!G xx#R6t>0-)%*"@5#j;Ĉ)`jڜ%"-e*MH`#DitD'sH*t6@-L&!OR>X\K<hFk3v`1 /#-a9 7V#|8q"xh6zB e}0 baR69 4<ᆼ KY "sڋkڰ-zG^ !j+I I6*lcXA@ Y>PC )9 y y\Ó:<DI8x#g\" aIy*y H_zȴAv9d!!'%"$65>e91=L@3H0ENPŠMj $O`;'9=NNM\#mVah! (C@4@i>HcBw#"l:b 0)N 8a$rcȟl@4CaaČu`iZ jRFNyHm&gs'r Ԡf<"5;"Č,+XX+E聉}y "ZCv/r:NѰDl_r4bF r'eR$h5zڸ+rmȫvx }H$@"lF\@bDiS,4F^0V"ojň̇mD> <` [# FJBZ&)cc50挑rg}yPD@nDМ{rȽQ b"7$b+ !{ (G [G` Akm@& ^ cNFnj0q3C+5Jjg@[b2ه}@W dÁҠsr<`ȧ#=b9:}T۔/g3ƑOu3Y x}nX,'3q)i l~-l ۱gs)@RFXb 4YW<["g]]'otGCOmՁ@]-&D>ː| C1dRcF]Ot2\ /  Fb+8FG @3XƠfI풃%(Ғ@5%%f V'Aar@8lIENDB`site_pro/images/icons/0000755075506000000310000000000011734665234013223 5ustar namedsite_pro/images/icons/icons-light.png0000644075506000000310000013337611715033060016147 0ustar namedPNG  IHDR4HFbKGD X pHYsHHFk>IDATxyMϽw $,m!B}u2l:,aZܱH%vRZTR!Kd,Ìw8ν3q={>9;0a„ o)^? cǎ;vlה)SLO{oB~%7nܸqy;vx'xb`?bѣGf;a{ '|'׬ B.p8'N|E}̟q_-[l26{iӦM6U%6sΝ;wϷm۶m۶YנA Ɛ!C pw J^Ѣv ʛS{w߻ry.}d+kW_:ׂ; rLƯ ލcwcxqW';11ϟ?Ѱ̘/~0xrp… VYԧ~eo>巟[aޟ;{݆mغ\؆gffbo}}Ȑ`?WA>Cc?hQK C .\pY~~8tT^Buzl1lv܍Ϧed~"^GyG&Kdddddb?SSSSSS/:uԩSL9_ڟJk|qq-r(8nG=&&nȂC|<ݼk/W~?퐔tmnHØ>}[`1xw튽 *TP^;;OKKKKK{{AJry͛~2f̘1c*…M6mڴÇ[\rʕa8pubo6|hQ{<ѣ~"ХQ@Wt4+a=|t4Oc##"8~\\Ӄ|y w܁=8>1AcK_.XzիW9T|Ɵҥ *TP={0px^g^|1ؿ3@>]s5\sMXX|qݻw~{{G v;XAƠA Pdɒ%K:uG=z4!a|?qĉ'f_01g7|ÇwZhѢE~~OOOOOOUCZ)--}{ռ9Z:ӧOsΝ;wygyg)7uD~8yO={ٳ #66666v$$5 $R-'m Wo֬Yfn8ƾ}׷ҥK.]XoڄK~o\@y$NHF1bĈ7ި\rʕ[0 =Μ9s̙p38rȑ#GAS׭Ti֬Yfj&/}@e˖-[iײcݻfR_ C?=zѣ=>>|]BQ 0/T΀\qmo!\8w,X`o~4+Xow}w^VZjݐ'??p$of5@8c{/䊍FDŽ {뛑#G9rԨƍ7nx83̄g7o޼yx}>ϱ13gΜ9h=W` {[f3"E)R_c7+k;L4iҤI117~ԯ=裏>>CcaOMDM{cy.]YvH|΂%@D?zٳgϫzgv?֬ҪT|nW˗/_~$<| q*(py}zꩧj׮]vmhҤI&MB7'ܶW͚5k֬i  nL~ P kK.]t\jժU,:}*zի8,86ٳgϞ}g}65qwy7|7ܢ7z-[lٲ ca6i'"GABNt{DDDDD|+VX1, %8mn jT~+/jӧO>} cɒ%K, eB6T c_<x{=*.gc*p=X@g%ïꪫ*![o[=;.-g_{??}{\P88|8(U&N9O?f`|fZmѢE-""z뭷zk2Lw|Md~8 Lݻ_yW^yә>(vwbbbbbbUaƿȑXXV~XdoOpp_:B*!/&kd K??47W^yW^$@N,} v @BWpi7w;QCוWӃ ޫўuܹsΑ[؎"0+O?+<DEA?ijБ"!ɨQFUW\qWq-r-W]u֭[^wXޙy˗/tx7xχJ)7W\3f̘~@?yn'7nx֭[wZvDk 'y<ѪǏ?nK.]a;vرcʶf!s۔x^dD_\}W_}9u)JFmgîp>_:c!BU_Xvꄽ8o5qoق-_7m{6jD uG}iӂСC:sf͛7o>p`Æ 6lvc;>ؿ̳mۖ*UTR?Ӊw~~;Em~'H_ǒ%n*g\rʕ90~0wbakO@˜ yrwtE>*ZW^zp$"r:Qٖ g` ۴x<C`Ud$zkqNgiS_v@~ O>@fb"6eȐ!C 1+Sn63^{^@sΝ;:i..MD?>Ĵ[9v<߼}Rlow|hHԧO u>[CDFRNʚM5k͛ [nݺu=\^zU 7*#g߻P!ȱLЙ|gd$`РC=CIIX'`W4gtp<|}~(G跗Nvvɿ+55555>NumL437@[ oo؁_)5jԨQF֎ޡ EJL oܪv  3g>r$._8|m|OUSY9{=ejA@޺QARP{`dzok;wy&T | :e)P$틄1fuСC瑐'"+* 4By^ ϧKu#P_:T,@fׯ_~=3411h_UYO s攬}8:^BG2eʔ)S&hyOtdAN>c U@R}@S }_Us V,_cǎ;v zsFFb?B?_!}wywãq0pca-@pd *9kqE 8ꅅ}w}]rZjժ4k^zs:\{{9too^!nb&qu뮻2a28|stJ*Uf8MPoA0ٳgϞӧgW?7ʾ0x~w}w ;s*_YV溴ED0__1)W auPɊ_j+V !{ddbŊ+F$Hڴ0.u4\Hc?/G8}n󚄄?hĉ'N0 lC_CywڴiӦM|~+ !p3:믿 y|_~alٲe˖- h} eFN=cQW82뛯ꫯ2 G?lkkuno=2zTP!2dmz^~~;8?^8.>" t~o(3ƍn3sO˕>C;cA 43vnC nx(9 >19Y!P  )s ]Z7Ta%J(Qy #2 2<_'ap@ `;{Gy ;i~׮]v|W_} 'f`9|[8g 4^|_|lGPPҏv-8WZ/tM7ti{^xs[nݺu~/Xk|P=qcnwCAW 4:+ku`eᮒWOLicu9'@߻ ,`xa\PGGCL/tx>}0d\c`HbŊ+VPc Hf :t:l߿ݺ۷o߾}dd*UTrMT|GʵjժU EBz:_Df^fuaKAj1}֭P`틣;oۆ̆Eb7y8|[^=Ԡq 7p nwN fe__A``?o`rts0#aTM|JHÊ+VdU<~9 0`/ ~z{>P ]짷G5A?cؾ} 6o=̙3gΜ90?u**e 7̺N` ]YN[PP!쥧c=hjrPA$!{\OVrzpl]-)_Ceײ[e^11hG21Y=c'gzo|>yu}tӫ ֽ͛qfݺN:u)2B *T`RBx8SSty+Q"e*Ube+fϞ={l/U~_~{… .4σ- .8_pwG,YJh*Qfۏr&ZQJq˕+W\9 t_Q CI?OE :s~{QZjժ[&\FhϜ9s O8GqԬXo8LL.Wn6~nz\!1رcǎ1 RoF&,2s~pDD"E)A!sݻwDHRt2p6_wu]wۍ | }`^ӻw޽{'&"qѐ!Kgp^× Ч|G~z{(WרQFfeNP2?vرc uO*c?C sSN:u?k| h{`e?unHI9y2%0:x!sk\S5ט *j4q?Cnlڔr0__y`?6\q~0P!M7lMgEa}pL:uԩkWW?BLYvڵk>.Wn p}.$~dHGw^~C aEsN*qqqqtS/fj MБ jK`!5l?g϶3L`V&Aؔ߃vY]P!$̄#0 D/ 9䵶r'N`ۼ9D!ìXW\'Б.ImˋvB7=ΊeO9 + XVOxo_~/Ƞba߿3@mӮ{||a@ߪOQ8۰ktƁZ0J*;"Uz:*WҥK.]O`9Si/fSQ˯Vn"NJ?O?d?S_ <疟ǿ+W\M<3G >9WYU0h~ rC a<O<񄙠WZjժ, 3~ڵk׮]k>/9N'COJvY3}A?;럇~x#G9rSb?wN?{>}CcYI3SRk!u]?[ڵk׮]УG=zX_Oߙ@m'T0 i}_nn;4iҤIshw_]WA0AP_&~y̘3@ ܦ\A91e~Xi_8]1ӡ`b˅._+. K/!誫EZ/8~(x@.#U=O7Taԧڵoģ`ow88YdLqiu֭[nƌ]vy Z/8#Fbbbbby+ L +\.eV@zX }>QnDT&%X_B9qIj!?BeQr&ffA!] )>Ksf͚5kܕwd 0WTŶ d`(;81ݻw^kKcW! qN`4?_~MALuֵKK,s~;vQ70x[L9_@"7GS!ig Vp<ҧїVn11X?˅:?Svs<+oŻZNG[!}@JWY(u֭[nQQW]uUW]t2r,"d9^ÿ,5 w.#ȑv^v a[c l꣏>裏PB DŽ7o޼yi/dj_JW0޸\xΈOu?VO>ٶO #22""2ҔO={~q8uS ]{i:Bk7~Cxŋ7G=zԬ\ LOC0o,{<ۙ蝉 ʕ+W\9ΝٳW눌D) >\  ̿j"!K9g{su0/%'#qĉ@"5m<}>C'Q!S3({"R/BC VAV?Gt;;;w>vرc"#9`\502:_ZxJ*Ud>F5jȜoqĉ'N|У|ʾ}ۗs1O*x駟~!ec#23 [1#ؿ?yp0ݸdh0`^{^{-t3K*UT)3 ~j<LL9MUXɧV0Blw_]XnԨQF23f̘1#~իWw^{{zիW`2A_Пsܹs52oKd%&fɒ%K,TCYP.?t kn ,TB70kN3l[U@ud73CN @"kFSE*_̊9E/@`k& [f\s4Q3(fMA/u{*Q :tСKbpW.\=/s_!BnvGƍ7n}tAv=?}2zƥ;AaCVs"SE-{ZDz#yXW5Ё0J(pBF}~+ +.S.9~W^z4hѢE!Y! q!{<B~gbuԩ<;vرcGX8 2dȐ!(j*7?Fh+ywy9E {ٯ_~R{ݻwuSX'"?x|'쮏0g]/ӧO(8")tҥK"E)R?EbȠ# fF[V5Pyhl> ,X7`d ׻lٲe˖Vd0D[55"B뮻00h5j@ص+/wҠLT4%J(QDwq8^fbÇ>|5 08{`958]*5_ĉ~^;Tr7Աߑ@'{[ή_*#qv|/Tߛp)믿`:D'|'XsTPiߏu̵"P~߾:8X9a8w/χuAf& u+0T7s Fbӧa/V4WQσ9bH<ϛPdߣBvDomv쟫1B 0ץ}0l6mʖ-[l*HGa8a֌ R]?u*Ùh;"SOR-ZV6q<º 4g&c8Y穁uiK@ xoTϙ_<ۿbv8>-wZVLyɔ'=-ПCV3 +1 M:ڟ1DCG?zz&0MJLJ>dgb7e KLg؃Ə'*_ȅX{s2|aӦѿv8O*]<O|>9.Z}ȴi~@<DŊ꿬 1{hPӦQ;i9. ˓ػ˜` r>bQ7VS;[U&?tСC ?{PɲecJH0/R|]tϪU~źx8sñfy^o^A  ,׾t8x]$Ra/`B=; ٩X=We˖-[ pF֭[n=\yJ&(UGT_oCv3lذaÆ_GC/ơЏe70+o>>>>I\; ]*5Յz)0sJ躢Cj0j# |(X tmRG]p^C y~+ԭ]kāCY`r@ɒ|^;^ 0PTxoҼ~~nQ iϫ -2.uel32;"#^aʌ<T%'^@KpE=KTr<q}C}aM9bѢE-2 V4`##Ww*jB*j ?D:rץ}0TyQQN 331=~4z4ߥ A'w}w_TTlllll s>c#yy?) `b9<:`D}4ϑS8E=Cv}n5k֬Yw1\pL$끴 0&G%w:gv8P#5ЧY]tDa (:.]/&~駟~jXg}gv'O8íU{&9>g_0"_~ dXle v}Ah76_~_~1wyw1חtV꠿̛=ۺ}ЁliӦM6MCT$bɓ&'ohٲ`?]_@\Gn͚5k֬a]vڵfEsuOz:@GXzQPrqAEBr:sw=U<ؿ7:e:Wᰟz<pg%Y 8CCZlٲeKSc-\(D9uJu+lIIIIIIq[_cX\?rH;u&M4ib&cB܂/]D??\]X }:p>'4D xtڇu?]^.T'@9A2 ,GF I?}=^P1믿믷G3lf>23y`?gǭ*[U( DP jXn3dՑ*ׯ_~wo޽{ߡ6].T~_tҥKw+9|*4d;vرcK/KT~ǏŪ}{x`m}T5Qb5yB 8mcu8 0Q0.Z+T*o?O ECp<:VÑo}u]^O 4hРA>9į+;N 9}_)3v^yM6mڴ1K;awƍ7n̄~~py}PG5 @6 ې+32V\rJV62ۍ0pb@8뻎ļs|<*+Ĕ,YdɒfFks~ ቉̾/z?CcǎHPn!C^|_|q`TiS\rʹ\M6@ض-(&ҡiӦM65\eftXAQ0  3pgSRRRRRƏǺ g0tvW뾡; XFݻwnsΝ;w):U~Wf;"  @p| ۶m۶ma>럻sڵk׮];-W˔A׊aq:q 2TWCqX؍7x79D`ԯzL a+zSU YZыC39Ϲuu1Kg @`頝꨿)󹵂ʷ\/p~ti7# Om؀u…T;͛7oA z 㠍`tǃCNx8q]Ϸu֭[=<ϑϹݗH !P2-ZhQ3D*? AB=s?yz#+Z*VĶA(۰aÆ ̊ӴWp~XU4׵a`@4 .l/Yxam*TXB>Sؼy͛`}CE 7 *1u]wuיќ9s̙c)3۷o߾}~+VXboN$>yI=<_fH1t(#&Vd 4_ງ ?Wu? awq0+޽Ǚ@r]zzyR wp{&2cb1Nyv &LQL#noV\0X1<۷o߾X8OW_V7f>Urv 5N޹GFa'Irz}o^?s>~`-x']b}ƄVg` 6j]6n RR'x'w`ʸqƍ8>#>ޭX)ꫯLAm a@c}}23?vVZ2WՏ%$$$$$_,BGu?[(3Qf$zkKP Q}ڷPZ.:9Šj&^mQvڵkG}q(2XؚT9UVZ~] H |*^/hU`} ؗ UhCJ *=]/BGu*7]rzceyf&+Ձn3ez<j;8t jr|*nU֭]5ڴ;2|`μϏ?C5נR盎\/ _* __TH5ke}u~eǣ]D`u:{th"3#> N`y1\1Fh%HVZjY%;#s׋ +:0QoWVXWӡTKPc:{Pʕ:GnCEFCUy a}}, >Cgя͊0dAzdSZL2eʘW:"*1}0Cp.YOSSP@;dDyG߿};ͮi@)O IVv` :+BV,ܹsΝ@'bӉG@@[&~C5L"aGݏ׺8PF%rkk|J*UT)s+G5߭zn<_}.E #~*X/W =ӉN'T@XT&Sˣ"o:xpƌ3f`&}~T D7>裏 #og!Yz'>@OtyTC&A;3A|N+ Ef=PP, +WRbqmH$v2Fy 5P*6a.Y­íPQo_-] .@ÆBl[ڑ}׌@e]~zQ *9j0QLujғuYlٲeZs\t|}U!S-Z=sFgBpd$- Aƅ Hl_~)gdX áwp8=U+-[縜=\h_>5 gS8DW4V's~0Lͭz_]7㶹!v v(p}C?ƥ>`΄yVPs%yVիW^=!} ?tSaU>3@uPQ񂀈0db}U|/1ߛ? LT)r׋|v3GEr$hPOKb%wQ5pG 0z!W5m !* i Sk>nOJ̫㺴+| u_9Ę~|<*5f`l2& /ŠN-{Ԯ˗+3Df8| 4g`9 008:v09}:x1ЯqG۷}"* ˅ ׅ;vرc;<pjpyTq ei۷ AK H/x$^$\>lMr)+ r :q~O~+ S/AG|L,@!L(KVx~̡C:d+VP>z2=}F ra<1s>?0PN:uF˗/ϭ˅޿hQgX٧SCGZVbb@ ~џi8002T/hZ9.Qhk94hЀǜOsñ~̄0`"#YdӧOs=vj**͛D+?k.nVzwr؟b-8z\/[ FwܹsN3L32+VVP9 G@=_(g!l/?_HĀ85\qC:rk]ևVx=ٳG=BGǾn׮3;h;/7c)SfĈ#Fh~ӧO7 nYqdO3& χOk}c??*յn=?90v $Vڵ H0dc:  8wAfBbe<C&t9OQ?fw?'T.Z;MÇ>0-Zh"x~a=PPԻZ+3IrWx1 ל;z^ݺu֭[d$9ց ,g8۶EK M bvb" ``9+Ru:#"jW&7JJn7(h|~~cB nT@utUh`9>?~=1s̙3g0.17>ڇrk?|/:uԩS'@NsSdw=]/bU8J} BIT*:q=BeY뮻̉dС:\PV:ifb!`u8ʀhán%Ǒ6< U"|n(33Yf͚53%}L\׮`?8_J"̙P ǃ.0ምGgݴiӦMԊC\hRp-6Y :vs=OvQAN0/[6<41wP'>HL`͚`?_@m[͛7o`2Su9nܸqY cƌ3f ?ׂDh*,i8y^tWc]EP  W= gѣGQQp@2r%}>_|_gmT*SLx ?7 [>+SqfD@pN&M4i$BC_@ouy}jq}퀃4(8ըmУ93#˔AMW ^/3v{z ~0xq$ΞVrIIx㑨 &pY z.>1xy&P~c9z[b"" 6lذaCN0@۪|8># N8&%t\/.rNj/y3ec=X*NPV[nݺuO;VZjUs}KBF{Z\7## ga=,32zX Ff~~;(/Ю3`\:s0+c}Ȩ!#~{Zjժe3믿jt2dȐ!CL;*;ZhѢE ?}M!իW^ݔu^*[< Y; Vé;Yr`?~긮)?cn'J^lO513A|@7T :sNnXU.WK!ǭt,cD}tk=FD2x0"#9sAE/3녂XAӤ !HKøߟds8Yqs=X/kv:NFOm"7u__0X@^+?~[Ll;\1Z頫lAE3 f믯Yz׶my{9vQGҥ9 G8H(lx{=Сl@T^"9k׆~>2)n8u exB޲/ck-@[8-V\d q&0HsxSSm^au|D9LNOC;*?RB{ 92/ӾqqѣGrd^UH_כ[߱Ћy kXPoOVAx.sK@PL=DQh]_pχDWeb<;t(ϥ;J9xF.*VR|fAbs> FV~ZYP`9*2cR@y. S\|<3],/o{p.\pB_7Ӧ!`#!!d h@!YW UXy Łm?:^@G1LFKs粢9*ed!A 5[׈b3dWuQ@aYSGBsQcWٵk׮]22x`?nQ+[ܩS$g3n:oN/jqF,yv8ֻv!cGz[׻w޽{GEu ѐ;iyq0OWw1Ԁs#KҐaSGXed hP$vt3`?V럶mᄏm[s̙={Μ4pҤ2$} 3P @2 W#p!Дr )3МTc<>]&!j匼oC^cur2}˖Aor1Ѓ^o?8h0OO05k3"P M@ 8\wRÎQbŊ+:/`P!=#8л}f2$f8Z @|$MOulٲx5];XN!DBVP.c&Bvv _ݼ/``/a=e׋b?U?cĈ#F\rbal׿~#OmO~)=C=dLFb<{'&&gLgyl=zBBAk0D;6 m6¡C:B)^p]Wa$5ĉ'N`;9J0͛p`fSu8!hQ|_suʞ> f7ChAiz4jGc:2~f@5]B 8N/1h G NVC浌 }\}4T2;y%P뿊*\rʕco :ӉJzN'`03 ;t@^ .~ߛSjzW \.j9T0w9c=t.#ԔOuyf 's@O!P=.cǔ)SLyZbXO6mڴiÆaܙ33YAeư̜HTŀ k22PaT2v`?O^C9s̙C{=_sÇ{<)X> *=u+l`?+h8!x^ye͚5k֬QQaN:utw!#]'4O`z$rܹsΝyfƌ3f0ϣ 5BAKoy1 @N ,'UU۷o߾}4.[Ͻ^V?ѣG=i JпI<@OKЯ C|DD^6ׯ_>X_8DhNNvO%\ >}h} n9Aye㩩? ؿ7~ﱐ ~ 笽T+>y͛k`9iXn@ve!OSp +3Q: UPqp8p\9sTؿW_ ׸c+Qx$7iԨQFZ^֭[nݺ?ߙQ +q^ɒ˅rC&ۇONԧ]Tg]pW5j`Jlc˖k-y>Cz橧9t(e˂.}a?| (3KV,:iӦM6 tB<6s]Oº|\=X_$ڵ}۷i8>ݽ;11111Q w =ؿ[2cX + x<7nܸq%z뭷Z0Woߟ_;o>dĉ'NlЀO>O>oj %Kb?z4ؿG_PI9{sT-qc챝X)ns1 zǃvnEn7; 1-uș^*ߣ`v3+TK}D![;<                                                                                                                                                                                                                                                                                                                     l8vرcǶm^馬g}%˖M2eʔ)6/ƍ7n;lkokl7mz'xMC+VXbB%$dtѢ=zc`μfɒ%K,)Q"sت}ӧ_ &L0Nc۽{uJl߱#pII>^vLJ`}*Uqϟ__mr2w`CNx }}vϿ{7ŋ=WFOw;񉤦brȩv` {qqr` ]~ϟ222222:vBbbbbbχoRS8>=gNWt{̟4zGEyv[v]p8g>kyk׬o|>Ñ}iVl1N?NcrA9Zt4Og=m[vy`?1bĈ3f͚5k BnٳgϞ={'cK{<'Obk>˗/_~PL4iҤIOCUr\t:NgW+Rc=\puPn1fX\Y`h^dI_?yJȡG'/]ʥ߿a>*xx#33333fMla߾ßzꩧz~,]DOտLcB7f 䏡C9i_`TڥLc:O?aK~AAA >aV=zѥKco&M4idzիW펌p8Ν;>-0믿Lߵk׮֭.\p“pp8x~a ~?" :tqP :tӧO?~իchX\@^pB +b@}̙3gp}g~5.\pBٳgϞMOǺ9n 6""o]}4ϛW`)^<<<<<裏g]goq3χ@#V]!|\|Aa>} G-:`zS߿0?56mڴi&{@  7|7 =khJ*UT)A|~aڵk׮]QbŊ+>ٯ}tVZjUFh]v9v5jԨQڴm!s|x睓'Op>?sj:];lKz6aK޽??۷o߾}ѢE-Z 㱱7G1lD I+Gaoݺ 6lذD lM._ݺ=]"7^z8qĉ;ϑ_p3|ÇwZhѢE~}vժAZsΝ;w.>Ο KL|Ç!??d{<ŋcL|pr!ĉNj$* t?Dž Cg i21.[׫W^zpòe˖-[7~ _ٵSAy~>׃>w5\s5aaٻw޽{{{9 }J^%CL G_<;ُ?޼y͛بQFy<穷ҥK.)Se#">\XOa8(v??9י;rر~.AAA .6ѣh8kk(A1 3B"# r:+TPbp8 疑#G9k ӡx񫯾ꫯvjԨQF0"]++t;vر 8dd|g}YZӧO>͌du-[Μ9s̙{ysΝ;wԄnݺu0* ȖƐ!C _3f̘q ,{:ѱ0RRRRRR H"E1ZjժU0;0^_}2\wOuGݻ=q:ؙ_>/*CbP_3 mۖ(QD~+VXbNv:s %stwW\qٿLE .]t%* Y9ӿxgϞ={~]~`|67GÀj` q{ݻ7ͳg]vڵ+ nvÀv3Pgӏ/[;3 BK 0ǸTUW]uUW\VJ2eʔ)ֱcǎ;:/^x1+w1>wy~( H<QQp4 W xwG`… ,z:PÇ>|W hF]c8H`C|o?ܖ/_|ٯw/~+: t8IӠA7@o3v,։+ ^.z¸f}7cݓwCGr:(+i8?'`a :xjԀ |8X Pnݺuz<|'|2`>?q""""""b8_q[@s7ޠA x<|>>ysiSgqrzxXzw8ZVr5)IkP xc zk'>?3Sq^&[?n+ &eM,g;0^m }o[oQVPB .gqqޞ=4M?<OP!a>   -՝;x7xcuḽtvFX]:uԩSO\wTү2СCrAcaX :ʨg9DwuKX`r;P2"…D<3<óh8q裏>ppu+*Wy'7nܸqЏ c۶m۶mc{*b 7ɯvS|c=c8m}>?>T c֬YfGAǿ3ݗQu` ::u%aK} jnWXb =z#+2,]}9*UTR%:tM7ty]3_QQGގk\u 2À#VZ* n:B~p80>3PaCd5\}8nk^<˼^T.bT:s: _nzݨwWDB;O(Ĥ+VZj߫]vڵ 7|7qq|"#7iA? x.T;pGSt_A GbD~kx_\\\\\a P/⋘T>:tΝ;wB$o߾}v85`eZ'lp|۷/V8l6Tدs}U<Ի='bܽjud{pH=@ }۷7-[lٲpau̚ouBc\uh@%kyxlz`u]wuי~k[^0tAo_ЂҺ5> 8k8qĉfWy|5k֬Yt`V&b`]<]j'$p +2Ɔ 6l!֭<XCG(:t`u^g`N8Oo*w_ހ(P@ *J^_5~vC:`;+m: rw}w_ds=s-X 4W owywinEs8ff!﯏@ዙFzq{^H"E8 8y)))))) p=k M)|`d ׿9ʗ^ӦB`y*͛7o޼9 ة{@|xd$Ɵ 0GBp!*[׫W^z~EïհaÆ FGw}ƍnϟ?~p=~ ] z44loo5רQFJwwZu]@¶X<ʮ9?q-u{kBخ]mc@l>*e?~wq}D|i(719`"O݀^f5k֬Y3!M6mڴ1f…??NKC`s% u{ёgϞż\?> H^ꫯ000w޽{-ЫW^z-\0n7EKs$_b`9J.m&gf͚5k0P0`&_˅ĒH40>Zk@~?vV+_x1cƌ3hQ$ 't>uA};vTPhZ5oG=zh&HT  $LDL1k@!]y ƛbB8Bݗ[ 3U;uVnLb}݀\HY:~34 <w.;}-ܚĀH4QanUh`}}o;ya  ' 0Yv};or-rKWW0_qشiӦAAb*8 1[ }Ⱟ{y,Pbg7zKX ֢E-Zx<֭[na@.AtttttAM`&*n=zv;  ?SSSSSSkՂ pPЧ:R@ٳr3QzpU+S}"nZjժU4Q Hݻw޽۷o߾}T~/3t$ s@@^%\/( ӧP&8odpT.W.(6|}Cn8p h7`?oNa??Ȼ"3C`?gsa[vڵk {5LWwT5jԨQ# :p*V[XaЮ / /Xp˅Qt4y 0Wǣ??4܆ѤI&M;ިy X'~GXn@tMp42+ӱy[nݺuaba)SL2aa;vرӹxŋӀ_9 111111N'7nܸqpțb9GFXbŊ""`t+p7vo2ABpHXJUE-ZyT!W\ʗ/_it y_R~=z1~_JA];QK=!>7T{ ti8D]l͛7o޼yTݸߢԷҥЋ{/`O w؟OBEO3pxfݼ{% `/7 0\@S33syֻgx2UW!ч!?M̱}۷EV6ITTbŊ+iA/?~?E+6IDAT 3ժA};s&bb$6?G!c޼yc! 诫UYχիu PB ʗ8k T4t۶`*Ѡ|f :˂~rUd ˙8婧~駟~=IJbB.5|۶m۶m3pV6((ǪSN:u [f͚5k.\/{Es.*W^ZX?GFiGmڴiӦMَra:eȴJ:urZjժU a:nP}OJ*UT ˪?Cc޽{[NnݺuFG3QA^hɒ%K,0 ϑSAk*3a0 CU a]vڵn]fR; 6 pv/ øn@#A3(޼^ eW M.|Pٹ{ ]C?t4圧H wyw1UVZ5}u |pGƋÒB8! 4|Z'N8q)'Pļxt@1cƌ3ڷ]tҥK*.RGqd}'| ΞE?*T?K ܘC+|hp`DgtٳgϞ=~1V…hra,1Ӊ|1k-\WߟP逄d%c㬩 `裏># 96{b']Ν1 Jg=&|11h0p C_&`X86|G/t?V;AkW']K\MSիW^m~3 C믿c3ʷPTCw_00fΜ9sL1DHd> K +Ro8χ)8&[WԵ§Wvu! `y>Wx9@烂 O>}쉈8w:dʏ 섾|pa3X[B=כxB?zX'!Qgtׯ_ݹsΝ;gd aA$U^u_~_ƃ>Vg;X']w*NtHo!;;r=1f= z&fr|^!ytgV/{iޅ L;qVYC0>#\,<\=:e}+a>z5Y ~uiiX¬ sL ˿??&nРA Ly U;ܾ}ۇaaʗLy?P Nݻwݶ-~  {2 믑`vXi"Ml_'NÆqW^yUA&#`?pN h.L **ƛooI Sy}d3+ƃJ T[{I;v@P\=ygy0*UTR%V"4EPXN石QbŊ+9B@ *W\rVC<X/j. *ZYJ5P2kFE=>Ypߦ&kxvv^zꕒR^z|g}ү¤HX{ǎ;v(È^balڴiӦMfyʕ+WefBqJ BUEΟ@~ſ#Vjt*ϊ4`A.2[;wF‚_ s K駟~_ÀEÛMZ{!\7DcpG{YgUe%!^\Gq>ʤ!0efbt`7gúSx7xhnV4GٳOQrOĄʂW\yjXw}wf`9 ĜzСCN9 d V°*q:A+vxO-7]3>$16< Tc*Oe||fM6kDDƅ l$=f+c4lؠAÆ֡ sTJI|p !}GWJ^1ڃǹ#[31g.O󱿕toꟙ NՏ|7|s30+СILUPB Wпv>7=V8{8 P{11jeii; yr}n@rSoqK*UT)&7Z}5jԨ_m7u{쀼Z*O :|o4vnݠ'<Ϲ2dȐ!C'D>}|烞K%^zI?\O>}1tK~v!ĉxQ$̍D٣/!qy??̄,5vɓa`?ˈnCao{ nTv)?xoosF ?d5>¿`ƌm۶m6"vt$H۳{z^ V_Y?j!+SWu rB? C]0~;iNU?qРA Yw2+>1# uU )>ƍk޼y͙Cy^o>w2;|Pp,:H0m6lذaCs̀tR;   lpLNFtӦ0E6- 33} v0wnii!q8r( cW_}W Ā ľY@`(Z핐:u 0`Ø7o޼yNQN5k֬1b-BXjPJ^T1Q TqtCU`rrʕ+W1#1pTQVBa{1a#s:!%V8pN{gϞ={\~˗/ױgeoT43t@=O\fJtp˪ =0{0QQ̹COTx7x0,,lݺu֭[j`} p2UysΝ;wnvxA S9.!ס7OUb c]qZ 7GFTĸr*`ݣEJ\l޼y鸮~8~w2iئSlٲe˖̄޽KB'/V8ѧ*ȸ\\"#:,Ta'# ?:RCV@Qvt@ }D)QQQQQQc v\Or=@}CK>33fbN3 )dz}30oݺ~~;oE"RÁuχ c߾}31gߧz8KQ++s-ZhѢf * 1toT"u\~yhׯ_~P'PZ (/[&biq|!L@̄)?W)soD3ZQhy ?~ n`ayHlK=z葒~m 4,LDjB }> ky({-22ԌgnǍ7n8sH`?`wWf d 0GHh2L|pc lѢt;~_ 9+l Ǣ "Jy S3b3# qoǎ`? jBnݺu0f͚5k,V4aÆ 60P镕~߿`?b+Ca+VXbA*94= Zh`B?+tkVV}th!ߛYUGJ#V:ENnڵk׮] 0RA&9 >*`EVe6tyGysX؂GFb]п?{nA*V>׽^j n>}rTkC*|XR=;׭K,h C;GX8Zdf~_uz:`}`?oڧV-Nq%K,Y>te3f O]H\t 뮻+<pQ978dX7|7H6y2 ,^斁 7vŀ+?fx<sj0tqZpz ʟc}=VoP7;w.5ur'OB/))ժUV~>es.~rʕ+gow_] X tqZ}xbbbbbb.[`u$Y\b~˫Vp=VttSsСCXQE$'îP8V'L\֕}tQ){;n&|n49񽢝 / /00髭P]`[QߙLy4*rN} ,kZu {BVj*]"19s~~L,X`gŊqLЈDy\.T*?}*]d]8d%7}xlW]wK.]t@q "{>T|y$y$8`ruQOV0WxvCw0͙mތO?@{{H3~<^*5eV~=#vs0^Ob\Ϩx+Cb{w<_׮UVZjXہr(0ʯ$g0À^LDD`?;r)~ ,WD:fmx x*&_}PXXץk;w+Z7ԡ\zr8(W&R)(Cs|Fɰ0 CQ}v<9} b܈0?Tަ&T.RH"Er <AA`8@2i2:88o=2w4 /0L#UڤI~ ضle˖-[10`F1Š hf P`.NHɓ'Ol::V@ 1c6,Y1RԜןIC<LΞehT(8 (#+c|1of!5`LWN5jԨQ1:3f̘1bz¿#B5VQ TvڵkW1A:"YW\%K,Y$qy6DFұ-GeQ-;;"#W*\|.8;uԩS/…g}g2݋ʕz֭[n~X}wŊ+Vv31兎;v4|]!,ZԼy͛CNx( o@3пRn }店zߧi;Yf͚5ÇC~[$3 &e%g;X؆駟~駆ݹ_h" 7>b`v}G97Ӟh`姜tOUˉ[7v4s] w?C{ݻw$e-ؖ)UJJ_ϷoGBk>UMpC*v9{}qCAS;ۍ@"'6mڴi|1C?ot"s4>u߿BLk??|駟~g!ߒ 9) {qxjxku<Ѐt݀bcAtat!:@([lٲeM[qv`?=x@e5JLLLLL)GP8nܸqƙx Fl'Kaa7nܸq 庶KO*}CqիW6Zf]_yX< ٙ338om[˷lmތaT 1]=#MxF; C$2;wܹs o_AA{g@{)TN63/nQqy<^/I.rpX ;`0Sh㡡G? ꫯiiޅ h;z뭷z+e8$$ٳgϞ O>䓆1zѣG 4hРa 째@1uȱcǎ;V( (N'$iӦM61@tA3ӱ$3 s juP'킀,sK`3 T\dEg e~oFϫ!J݆a Ƽ3jt\_Am_$fx JpXá;vرcMh CN`ˬUrg`qu lBu]vڵ G}GkthDMC4*{ԩSNzsȨ|̢Epa ?yfM8dfb4'F G0&b`ZH3AKykPq;@p0nO?x⥦?X?:0Znݺuk})Lg8PQ:&1שTRJ  o#+)SL23^=]F)'?a|X#r.WX*[bѣnj>> dZjժUȓ>*v|kxĊ0q%nVUA&:Uyj"TR=QQ0VZj*ڵk׮]OUs˖-[li~y*PPeVDC VL ymX͛#A cτ_pĂ > n ?]FEEEEEu ;ݬh =ϟG/X>n~wɫ ag7_LK}i&^~ꩧz`?L8qĉ>߆ 6lLDLh+8E-EէV\rʆ;èRJ*U؝{o` L/ Z>-k??:u pXW =Cf=>/_|aa=zѣGX?-Z?qc[qvR[(u'9zBsc}h&*|HĘAAA(8f۱cǎ;1bȑ#vn2&MxOsal_~i _qW0;[[.ۼ %Q8\Cu:t8`h Hff.\p…=+=9XiP5dȐ!CԨA%@tc.ڵ2~|ƍ7n0 ThM P\ڵ~@ (]ׯW~}X]6Z!֭~KT1߯9D-&yLB6Vac+`|s=VVv mHR. Nf% :t!UnݺufCv}tCuegns{Oy89c[hѢE-lAX`p `<@𝙉 pЯ 1x< >ƥ=y2r:*j]r&ᖕR0뭮m5?11*Fɒ%K,<4:G3p0*T(_B(UtR !fNa9rȑ#FZ|BP wbWvv9rȑiӦMfץ 络oa1s>zڼJ*UT)S# mTd#6y Gǃyp1+VX´W~D2.K/Kf@/Ahչs|7|Cر~Μ"'|>V~ 0;p?+Lo߾}M+qW1>?L~;*^14+uNÆ 6lhntYmru /]񞤧32`dWg̚x1- ~xqrcDn>!WD %A=xج Ma~0A*)[n{x,ºy$Z~{vS;0~;+>a~N#̚(!HӼ9b+Ph_Ὰ޵VutYGþ5a0R7a&lӧO>} ~ja3j96u5ss @qLq׮}vJIQ$ z5.N~=YH3GDUt$` cn#wWTXBŊ~ĉK0OճgϞ={FEq@75 <6{6L <"[ ׯ_<>́B  T*V0VX\9RR #2X"E #""<2 bI(F>^+Eƺgc۳~#AhQRRRRRRB ?PtfFJ!IZydT5 i.2ع\tOkf'O7 8o~~; 7Ο@~駟~tg!~@q\Κ5hРA9=Vz/^xqLFZ~/;U1 V.օCrQe=@/ HC-[lٲ'xxH4}L Ɖӧa<0bOٳgϞ=.@` ѬY]}: ` Êޜ΄L|F1bXjժU UV+Wƙq$~e 1111fa7߬~?T/}$b avN.?: #2<3<3{68DF2*O"u1ro`Tfb/::(g@Oc\9apߛ0aܹsΝ<ráeރ-֭[nݰ0 gCnxMDN:@nxp̀P/'quru}V{x~G%w: |j+}= yo 欜Dbu]x. UX\14s@_pV/8_]\n9sS$$m۶m۶^ޜܹ믿^Ԅ ~^AAA ~gd8P<Fttllqȉv=  7om[y*ؚqlavdN߰!ϓS ΌPH&$@!g7jԨQFqo"86;;>Lqq\ ÈG08^\0 EAz:*~@zgΜ9sLwmkoTd?;~Mnj8EEa1Jp… f`I'99999ٺ jFq8ۅ`ARo_ A"+JKꫯꫧЅ *0ӵavmv[O8 ;=nB <֯.9s|}[4,2|OnuxfMŋ/ ]gҠG;QNA ,'pD,Ujĉ'Nt8 Oef"Zz:ډIخ^L$|+TbkST<$̿*VDqo8gp!2Isĺ 3P))/Wqy 0u|3{6w݅J-Z0Q4=Ob̚5k֬Y<=u`N7o޼ybbt ,/PS @iPqvl7{ٳgGGc|uklYٕPڸ[vA#CObbbbbb|a`?   ^ӧo^{MMMM=s0WW-&N:uiB%$dt"T4[ VPhAvدS;wbxޝ;wܹR V#_5 9uPz(׺ybV01۷n]lYYe͚`^wV })[~~A`kPπ.pg8 - ߢ /ի1ɭ@z07cG?udm л8fXa' E'zN;?96߻Q~׷!`rr.!'`>g}׫UVZ5kӧOD ofes$l06mڴi0J,YdTT9NEϞ={i]ͮbYEB'PSt5@ܻ7ؿ'S=kHӯ/######M!55555xq|_ԝ {0.Ĩƙ] VG"s36A{]@bʕ+W\>vرc\.$^6]vڵk3@]Gľ#K/)گ|yXpqAAA1b9gIENDB`site_pro/images/icons/twitter_bird_2.png0000644075506000000310000000074611717036366016662 0ustar namedPNG  IHDR((mIDATX1hAS:\RXhiJ,,- NJ,*E b'XB P((gvp/D=W̿ofgr|F w$ۘ^7C|b)6pjGf6q0d=1x)crr)ZIE{}46%r[X*GE naW,&Ė20*گfȥxͬ-NקĴǹ}'F["r355\ŦXa܂ux܂+x/ m7-WfKxVCZL]qvgqWgb8«~mbzruʒ;M%lBlG0dN2TV󸀳oJdutttt'H3tIENDB`site_pro/images/icons/play_video.png0000644075506000000310000000077211724234236016063 0ustar namedPNG  IHDR00WIDAThM1?gDPI(7 DA4@ wPA@ JaOy3x/#"gcCg$?vL9M=L.g~ʁ|qxÄ++6,A.13H~$cӸ1LCۡ hmLۧ\u8ITHi->R)j!1hdfݙݹl2&-IpeΙ;w.ԃ?_>J"=\ιUs887_-ӓ(+j. [J[BRKéԆwS +VS"SM W0MBU1 1H%< H Mb45 R`ɕ2$*keN#V]g2 iX"Ԭb䱊6mL/teaKTLz=n`fvƘӓtﲷ7Ů-~N=]f܊qOvnezygTkvJح9s$ƻ)uIg@'=;*ܭY6uL3`7n/4 R^ځMݶMˀ =P_[BBJ6:c5b֦1pT=tr[UK6'B RHnhN-1ڿ7BE~ܫ^lK\TUZj͜s/ n@6MlBYpL{%Ne|g5J REU\ҕGW|Ϳ EmJ lRMrȋt&'4-=9W< mFGANfFO׆0t5d HmK2Dži Rp̒ m}-YQ6ό[,I/&y&x3 HY?T$O!fo/5yE@ո~H!tOjȇNB A}ϸ0M/:oq#LɱZR&\U(NԷw~\x: ưe<da̓TJ9zc\6*@#&W6QX֊,@FԠKBʸpt-"㾆ý g׼z/_N~j/qcDЄ.|qw~)R ڳ+JhfW3 'Yy4vm'9{UAHؘQѐk1YCtnCDߍK!UGRJF 1?dOyqyC/#sbБo75JlEm0ssPP_C$o롺pzϧws;t@-8X/88[#k42Q?ϟ|v@t 3a!\ѣ60 qr,{ r/? eYǛZs{w7zOw":m9ZP?8uNvڑYoK|' 7wQGrpO7Ӽ z@GFM]{9K\ r}:XoAiqn̽',FcLͥ5@t ycyz:YeBg>1(NIڭbyP$z5 8u&@F_(t!n @AlDJ)^~xChfܽs\.go4?|LU.L6;ֵѻg 3e'#hM4>G'GZ Pl ֤C@ F :t]DZ2 3`?f9Bc̖z< Hl]߀l"= DiBjjzh88$Zk&Fm1ffnN]d@\.)xcXXxdiw^>:!(P@'_IENDB`site_pro/images/icons/medium/reddit.png0000644075506000000310000000320211706150500016441 0ustar namedPNG  IHDR szzsBIT|d pHYs  ~tEXtCreation Time6/24/09ktEXtSoftwareAdobe Fireworks CS4ӠIDATXL_q':fj[n"M0[3qG몋EkYDiGq[Ź֤d.f323~I@z|q)t{~ޟ_"t^VD }ʖ5&T}EVYMja¨/ćã+8$4ސ&g V6x86>7'a?| 0dvGЈCnNaC,ZK>L ,$hn1G9@D ><~W^j[ o~KYlu8a&Z C2fѩw/yyr p^# x(g-1t^;U뱙fQ\䡊e(UnÒ9zr]G^`?./g-!=#ٗbH,ADk8pv- f&#}mَ hn ":g >훺tb^w-kbI[zAiuy}aS,ψl(I,iVY)Y^!O8,g}kJ;1g Pq TK8"R|;Vur {v5tG$Fk6 ¡ .=@͗sxIv_UFˏy$dh{3W\.TWWKAAtt'ϗ5kֈIψmπ%IHguuuϢ; (d``Z6oތjoH*ؽXM 0nyRy/_Jfd#G"TVUyb% Udn˟&ΝK&y7:FV\ɺ ر1}n1Ϳx ':Rf {Z6K@['B>5-=anBy 654{O@]mwrɤYbňNIo۾onz<%ᡍ[i8ͭ/V2::L"#7ovS#v)UCv;?9[WdB8t^aN<0ͯ-k8 'nm=KRUl'O=Iot^SlUqrp~458pY+;uJ)jo &;%UZs, X =>G8~/: QoeN1 zA'?9^4:(k7 )z 14(kXv;T&SQf<3g~H{x=xFmZ Q@0H[Q*{ CA_ۡ-U0p+~ʐDf ?ivxIENDB`site_pro/images/icons/medium/technorati.png0000644075506000000310000000310311706150522017332 0ustar namedPNG  IHDR szzsBIT|d pHYs  ~tEXtCreation Time6/24/09ktEXtSoftwareAdobe Fireworks CS4ӠIDATX[l眝&덽 *% P*y*TTQѤ\JU/$@4!n €[(X`4qC>uq\sKG3o~#o_x8G;?(m\k'[amVh2#=/Ϫnu20iFɖ҂Q,LNV(5op@J<Ųed2F*!LRw'>KՍ??%%[l#;^"w9 M(JDP1%&*YjlyU@`@knO< \ҌZή W5 Պ✣!L&u&5]N<‡߼Ao^:OMi2-YPx>We6mH$,RU3ml:?y%/|WXڷy6ɉu3r'3xC)bqߕ8+&Zbk$΢)ALīJ꫼7<~۹R&%zs{yoE:;'@le^>Hk~ǚ"(5|m:Ӵ )9> =c{J?GczIc,Kgg`֝R @[޻9u+A̋d0""[B! ~tZKkC~R08+ZVI3ß"!^o%7,(uh|XloBEF.DS=0x'!<ֵHRING UxڧY<sJBKp8{. ozvg92tR gL:Śt']z2S/DWc@|-*Ǔ=N4snEΒ&ظ\չÓ(%:+9eE#+xCHs9֦6Mr7傻řBpL%hMU!gϡ]bBTGCO=Pι`S sb9zOot_mj,j>XT oY5u^U?$_ @{b87HKx4Agp rp լY`NzVv߱Z=;}ifՀ6aNϷ/ >͜1` "zrRJny w0-Zoq{^X2@"S1˅-R plNpCy !2@$I}t\ b@;q .uu$k(p4~@! ̛n&gc5 za2-!9.j;9gIENDB`site_pro/images/icons/medium/Thumbs.db0000644075506000000310000007400011730433520016240 0ustar namedࡱ>   . )!1"#$%&'(*7+,-/02345689:Root Entry ~K1Catalog2 JFIF``C     C   ``" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Ϗ-=06t}Bʵ2V|NL|KpG@|q J(Dd+B@N:gǃDg֬/Yo,ݖ;;MҭœceZTiIbgv&j1~HL?L<{Igqf%mjQ۷ 拜|:ZfyTF_\..I_Vz_4'OiG4'Oi^`?hQ1EyO dU̍R)"! PF_G7fWO"VguMhOϴ4?.O |K|Y,QI,"IeeeWIp6A 1lxi '?HHMXds2s5~ X:@2 +q^8ZR2ʓ]Kt+񑗱Oer]6Qjd[ 9-__~͏xZ"-/P` Tty_R>k!xҗ? ^յ#h}Jkhn( q sǢ|&׀<_O_4?l`|c%>f$ Wο4/x\Sxg\6W&F\mp]8 ||Zu8uo:T QXcOus?HEz엮Y>9>/ 3Fэy~js/-g! $A*+_B̡nP(V'+jrF1YEgvD6cj!H<+=z~ٟö }[+9^5%g >\r?kxo%>-KM{S洬Sf%|Tdza4^"m_N^E }u.݌B8ggR86tO+lI%Ch~!XE,ug{y$2y2@k#42> L)5>6kU>r^;ueqo b\]1qO|I//U&Krk$"4r0t;G8 z-eUZw$lɣ|devWl?+ Po,u2DO1 u<A z>xI<5}!Ei0m1- Bz _F:j/bRJIuxFG%յ˘Т~U;3`,=^׋ME|'-LyVp#g5|1AwwvE=B+9 ҪIG<חKlNqs_AJCN'7~]>k5hц]UN'j_SlS~>#]^-mֱs9He"a]H'H}qxXTԭ?a#xnlLkTbXSh^8;f`!e?1 BFӣ' j c%[~'4m -OL}R %LҸb2W^7!S#;;K|?|C+U𾙡{3um"` 99Ǵx\xM^%}ZlpYˌcsԡ[r_'u:m扦BXcŵI|_k?w[DOkr!3]rg\nofkxme0e 4*p7@c'<_>"?@ռ1?x*\֬tCAYY#-(,R0f>У6Lk2;>FAG8{?|=O{Cָe{5(cL9hD@s aqSco5]OS٫%S.n5x>rG,+mjm|$yֱX؟ ^x'x`RI.kٗᆣ[tҼ%Zì{%+#30#h@g⏆)u5t')!D%g,Kܯb&fzIk_7js}+ShRkiTB=#ߓ_Kkꚍ6iys = Qo1ԆDs2M{ܭƯSV׶L+,~UWV>)A]']iK`ݪF ,Jsmx 桹7bKPP;OmhGpX9[%.'q_K«FT? 9Yngr?F&oe*rjUہOӴVއ$|eƺ֙Dt"ѬlF@">+\U8 9>𙦿 {$e"?&©ٴ|,?n*m?KymV,1eϡڱyf+2Rm.+҅/eM%o8sx,6@rFMsz߄t?vڭմXrO4L01`}oYӵQiJT.h*d|$ ^ #%C^FKU:/rlDFqW9,_Ori?dM^Rյms4^!iZDzrvDn8"TvC8Wz?Uc? aM9){* U<g/]ͅePm  !"#$%&'()*,-./0123456789:;<=>@ABCDEFGHIJKLMNOPQRSTUWXYZ[\]^_`abcdefghijkmnopqrstuvwxyz{|}```Ì}{A42CD7B6-E9B9-4D02-B7A6-288B71AD28BA}&  JFIF``C     C    " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Ǿ4O1]޽HW$kyj}Dq 4#>OfkJHZ! 1~ ~u;F>]:t ݃~QN쑓}꧇Jݾ}5~O*Ve*k.muEv"iz%LV2\g&'V.d*@qM(@?P+˾".c_^֞M@%@eo< u|ɨ&r5'>\,eGA4vs[q/ Q$M&M^:Cd]$n 26 _R\pˆ;AFnfv|oĐUMe.dG fRF'+>xX*ux0_PH&Têrvz8٧0xXLjCI8f{GTF:t[YxSxD1(ra*QNzrqC-;N`8Pjʯk> q43,1^ ҖMO{у*F 3Cp3Nr鿒ZyY\ W9k]ە? )JFIF``C     C   354+5?6V^ " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?/἖[#h Uʀ:gk;,_hr]5wWV%'4A$rj_>]`֯q W1#`p|(~͚WtɲMs g08`Hl3nn[hz:T֚zߒ}>~ѿ>?Sś͖dHcq^#g-|:!W^6t6:;mgWىh#' <⩼Q7,ybgTc Lgq+TT=+тr_tSi>eeH,4|Zn./G0N+l{ aF8kZf ].QK䄪b̤1Jqe^"߄'Eyok:;? Y׭Y;s4mgbhTOKn[_GyP%ôd[-ece $}Ѵ_&fm༴EH!?6$}Uլh<#qcrk#j֏kZ.N;$3`ʠ)#OJ0ѯ,UGRJײZvC \Ew8'tO JFIF``C     C    " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?߉.ԼY?Z}Qi֐φD +DUI%&j~ EgGrщTE@ rOLוuΎn,3[$=$g# O "T7Ou<2]+( b۷O'(PۖcJ+|\)߻p<,/&:~"xxYHk-HF,+O H VDŽ-:μPK Ō0vB97Ҵ[|ofYhZ&Fl)N310"循w'꘬Ju'-9ϳ9}C{$Dȯr?ۛݟi4)[ dO3Z.MF/Q㹆 y\Ipr+ο~6Ѓu/?KMQmUnns=Jy}Ѵ{uy.aI'G,NerX '}Vvn{Ecq<R#2,MC3]fS0_|C-3YvqWsB o6nc> >%.aus%Ib̤;+Id!"og!,lo"-kg\K#qCwVyޱm.{ט|_>+K.nY-e ˥tY! a5F|vhNϥuEϲ:_ |R%GAk m;MJ kL# pB6^ ?UӦ+)[#YTeu\d2ʿ㏉Zn?x Ot˨tIɚ#agUU.C:m0HSf=:,2~e Zm}mvoҗ3_|U񽿂<[ݤ[X]I"[ y6GLAO-B]?.m?h.$HRTH8Ax]u]+Sguިq);у8F>_Njt.ImF qiKu5xW/7]\Q舠U=z(?^wߎzxQ5%dWώu]@mOWZ_joFUUc=xi(Œ[$#ܪ5x;᧍>!$Ŵd\$pAF22+$VøC㧆tBM[]Z9#$4bfF 8E}f o4U]?΀fCqAi[`=+(\׆Gh|T|As#y ^Ϻ~z8cTyRv_k;QT9ݽ?5ɨ$~-H`z|T5P[ Zq96nFF\9Va^S⇋gӴ92U0iZM:r228_ď5 R]S4q]Tr^#|P"ZxSxMJk&&IH +xSk[^L3\0U.E*8P@C$zzu[p->^ W+)mLm."Ubn,P kUС[I[U{Y[z8UV} JFIF``C     C    " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?/἖[#h Uʀ:giEߔ _wNcu .m-H H' ~bcLi>*#&ERA4$Dr0##> cqYc({&'8a11oۦ\,S$xl巖4>8ϔVp0a|Ki>摤^K`Ee;DGi8 ?LO ,u]n(c5xmbN$,$ $2 ԥMT72,*Xg;lWWW_ٯ+cχu5mQ9 Iq&\=A$qד*4/ q 'm kE9?ruƑi-tF{.#]2N=*й~p&xZ5Zu[]|~u_-bkVs_g<_셠Em׈, n[EGRzJ_>xkF5j6I4&#t٭?/\sRcG5O^E֗qXsĒLU0eP'pNZTGcx50tUw*TeEevݖn AJFIF``C     C    " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?,kM 5-+ IÍNin"v|opWx#'XxW ?ڛE͌ $&Fv_b+xWY_Ǩ;]fu3&puNQqzI6_z2ӌ,ҒZ4f_i+F<9!v@bAmq&^ mǖ| ;0 0  %ⶹ"k}F{HU󜼑LBIg+ƫ?I=!bo5~S!\m p:bGCb$R\.jrۛO7 9-ܹjF~^||J拔l6fMΉb0YJ^ҍ+Q+]+lcskype.png(@Ծpicasa.png,+linkedin.png(Ureddit.png"ܖaim.png.fdelicious.png,MTȾfacebook.png( !flickr.png( google.png" g۾rss.png JFIF``C     C    " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz at fJc[c.9K $g]NI??1m@+Sfѭ,fwM0#v%(<0p.cXJS*EӜR\m(| iWӍ]{$w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? ⧌oOks(Zkʡ p2qԒOZNby G~U'g_'`:ڼ$d{$d5׃-}N_8[˥V/b $\SB9/e~ |ξ.+7yT$Dic c'"~1}-u{ WGp B+SxrޕQ7*2>쪧rr|{?ď l]u@p< ƽ7N^<LyTlb|Kį ֯L=}$Khv ŚyEè=0+0~>;?uF}Jԯ%Xg)!iF#F'IC\w(?$^e+}KZ&އFifUC *\fMt:{Ah}GJ< JPʿ|4į֬GL%?/2Wcz_3Ny|iƶ: womjW o/(/ C Nl<g5ZNK9SH1PxZl6M)SmY~;[/eS^ye-T7 S⍏M_RH٣.Gʒ9dflq><~⧈O h=VQI" y\+8vl'#ȯ?^B ,}>.iJ5[=ڿS0:;ss+f7;ZtM´;<\+ț#ʪ|K񯆮~)|𯆵h4 KO HuŲ(1Y8\@@+|FO0KI#u;6 pr+?g/?Aƹ?wf5qv !6)>~vF$t$ Fʲ{J2U}dSmv^K ̓qX~ws?xW@]xIGiVUDO_?v}s;?^:~/cX~։_;u 8bv.as P|mijP\mi51x lJFIF``C     C    " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?u&Viq+2(`@&{>ܜZ}&'ZP[qRG-f-Q`kKÞ׮|K5֛6eoqēJŶ0`+OAV8IkE(w 95)6֮ %ڱleupon.png0technorati.png*׾twitter.pngsite_pro/images/icons/medium/twitter.png0000644075506000000310000000210111706150412016667 0ustar namedPNG  IHDR szzsBIT|d pHYs  ~tEXtCreation Time6/24/09ktEXtSoftwareAdobe Fireworks CS4ӠIDATXk\U?otI_b$ilIV ҅B]Y. ֝+*lJ"fb0I81d2ybfLgޝty|9~#"8+W΄ )sT(?~؃7֜k+zf F4^*1l*͟QD[Yz>;ىl Jsrnl*ŏ]:cE!VD"Pb:pÑ.~M_w*iCIk -{FIm.P&9*}@5>G Dhs4ƺO>'w7L{ʀZ`\@ǭ^- ft1M3v=mpi^[g3sx,&%m&$p˫dj>Fi@ t3ei]Z T-=֡ݒ=1TvPGQ-E E?Z^nZڎ᭵?=;@ tbv%jqx}< Z8nm[< DU*Zl&͉ƙL 7]G6J|ɽlb[ҁ'&|X?@9 .gfxRr5bVjiqg1PjV;a P; $iBIENDB`site_pro/images/icons/medium/skype.png0000644075506000000310000000317311706150446016341 0ustar namedPNG  IHDR szzsBIT|d pHYs  ~tEXtCreation Time6/24/09ktEXtSoftwareAdobe Fireworks CS4ӠIDATX[lgsokuFQK!J "E"򄄐Oy)PP >PƘ&vر^}<2{IHGs;ޫ^OH{oJH`ѱܗIo 4oݬ\ OI.H XFqLW|L5;\fIM4<,l[N)SSYiC77QjDGQ%_{s9Ne\T4_DcE"1Kj *D(X(yy:vRuNbfeob6{SO'"H +.#ɱQ&FC:wU޾ʱ_ P  a%dĴlҖM2dvkUѿ)ô^ IycʽBk!MˤȤ3T=ƹùD@CWʣY>bZ_pDv02=H!@N 6qm9H?8!f4XYft0/ T!SB׻ wqx+bB32BZ!RjV@Wm_҃V ElxO5b~J%Tђ#PxOD閣8Gsqrx\?i!5kܭSG؟ )GOXvWciv@w|1 |*krr'p8KUɥE_ߪRK4qNRBwЊ+,֙s%5ųVx@&n@gX)W|<$-pJ(y `ωf˂E?1An]Rjl؆Ʃ!s&Q3Lo_ݮ ꄅ-$e zqyyKvK e8e X0o~S@|kd =lŤUQh*lA7Ѷ] s!`9y$IL[Yba'[Ao .bWsEb1$ ܼ{vEA%vkp!d9a- fFIR?:v`#,xax+執$@ HMr*L&ڔAQ_N~=q.k-H{/0tz}Dbk9-oPCx)9EӴ.L>bgiz+oPCxkmu?kǖmjy꼜+}4a+,Ϛa\2:S':ظ.1}B5$׳|ѷ@4>Ro AeM+ 9k#V  ɫ8=a `sRA3JgeBА \eۆ9p!JG$on`tvv;b nz

    lxχ@drVQrJJJ?~>@D"b~){ժUs2|YB"[x,v@lc xB3uB=5 %C![LM g`YM碌:XwY"{}OIݽ, !&8H|d N4-0+!mRbzza<".Ԁ,(aȲu6+84998u\Ep]z84"OȲ=u;KSk"0y㜹}3kb^'7U#1n.s哶r!;O~<|!wc@B%|p峇ch,<.W>'Yv'p(7 Ͽ 񷷷d8?V,²_=p. AbR"^VWe:Pz栾= IRDVQ(JH@j,ٱ1t]gx=>HJ4988~+\wACXcyʱ|-ζAx%LYµ[0гmK  Z]\S๩@B7={@tĻ!2͸m?t j3wj֘@[$-Qx$m EłD#RTך@fatW.Qx (u7("[IT@ZcY*7KyXc1]Rf~@]q]f~[)cҙc`xk-樊g"pb)Շ]= 4@I%*L 2P_-OS ~یX*IENDB`site_pro/images/icons/medium/rss.png0000644075506000000310000000263211706150420016004 0ustar namedPNG  IHDR szzsBIT|d pHYs  ~tEXtCreation Time6/24/09ktEXtSoftwareAdobe Fireworks CS4ӠIDATX{lUwfv>vKcHL Q4!aBG 1QL@ ? bD DD)Q nK[vݝֶ '9;{ν;]B&%OHI[`B!W̫rjUR{bߞo'jCBKFfoeH&E\m;fL>ZO3\k=z 47I@02 ҅p 4 /Kqz*02fiR+iLy|s@?qy D} IQ΄:8>tHێPR ^M c;@KFtgelr ꄴθkBIօ\Q@QA(6WK)_e"6h_c,7 9d9_o>(GL Ӑv9s͢O;F$ǀ{bjG:Àڊ^=m߅Gdbra+!\lz{t@$ d A\?PTF^lQ<)Fyd@ xxQmGPlo!Cd"B{K;#Jz`X (*8;pT0wg|$N!b]Htd FoCE抻%X5z]^;k/{6c2 B;k#:-L | Rr}8" r4XV!N}v])*rAzœVĩ}rXIg`֝vؕTT+4) j}0 p d@Kii5(qAsbw֡? A0$@Z8[.G?r7gBp5 ?ؤu.H mũDWrIENDB`site_pro/images/icons/medium/stumbleupon.png0000644075506000000310000000246111706150460017556 0ustar namedPNG  IHDR szzsBIT|d pHYs  ~tEXtCreation Time6/24/09ktEXtSoftwareAdobe Fireworks CS4ӠIDATXKlE3Y?8Nb;M&RVB @*rKIBV"=!BB \+J" F*iBM^{yO43;~3c 9q NЉ:kQ`|Oc.soMzcy 4M.nLloG.'֎E`@躎=0hmcrRleѐ %ei4MEFlHmwcdR4U$II:p7@*$ $ 8Pq4:$aUH 7yvtoԏayaI.3 g: N҅L߿o&fF]G\.(ݖP((YәC'>c'7;}2|;VE])$ t=N;5\waK9h?1w+GT7 fufg+qn:ko+Ϟ@e\Q Vm032\;ѩU`jl r-/-p[H{k1ARCr.%q#icpվ9gPQVfqڻ.#<> #$%$/+$ԿǀRIśKc.9>U'r6~Tn8yO6t-AbP^zd$9oxj ?ѱF74$9!H )VsdibzzLڻ]>>0!s}^P9c BN R|5R~mds;{ y)|= w *h48HdV^:ݾLW@]wP/wo#uDT+,R@2`̼߮@eLw UP*` ;[&(8!0S32 B*/ @& Cӆ!ZW6*M~ @}r0bc lIENDB`site_pro/images/icons/medium/aim.png0000644075506000000310000000327611706150506015755 0ustar namedPNG  IHDR szzsBIT|d pHYs  ~tEXtCreation Time6/24/09ktEXtSoftwareAdobe Fireworks CS4ӠIDATX{PT]@tY@ %.bmbM1&8M؎3NکS'5rcSPIq$e)7*Wq\s VXfLߙwoy}{VaL~XXk/ 4mZstMgڅiD/BH(Z}%f/C]pUE,w,{+ߙ@v\(S }_P"4߃uFhɼN5Q sl!Hu Efxh6τYL]M 9u3g$4LlC"0YH0*6%H_R^Ijr{% H)`v!oVDq $ gvެ䝷VOWR"MspÛ;zKp$w^rrN'$!o?fP5mܺjh6%o!>\JA HKɶ+x9w'N]"wC„7XyAPuݯK'R\RJoo/RU)sfSSH0 s'j04an1).)nndK;(=~wo769@UU5%eY };P9޵rٸ)ק\~P{ƔއK''Xŋh:b1<:Vkscǐ]g[^F(*--0k ElȘ0ƌob &9ew-Ak뉿 җ#/si=Hփ1܊~3FTyS|pQSt] |Z~<c/+)>i]D-رc,[NJÑ}FíIk:1/7r#olɯ{o R(’z$4(6av.{Dr<Ǣx[c+;<<*=JE GA7NBrch [Q%([mG;0>Lğ0{x&}&bkZ""arp\3 1b{I:4yi`(ss($H[(oc~՝_t#1Vc(xa%@| ιɷ IENDB`site_pro/images/icons/vimeo.png0000644075506000000310000000114511706150752015042 0ustar namedPNG  IHDRasBIT|d pHYs  ~tEXtSoftwareAdobe Fireworks CS4ӠtEXtCreation Time12/12/08ZIDAT81oPvh*JPj V/ vҥ@baC$:0f@)l@@բ&*NرQ'@vW^_ee9\I2sٵ| i$ o*^-,KHb"~H$'2ىAIlUy|kqJ7 >P^ݭU~юٸNIX|x< d?)^mlߩ=6w\Hؾ‚&9$ [h*Ц)#MY, &*ӡ ڜq7&@ZUZQQ&N$Q g\Ķ/ qPT^l:_s1t9IENDB`site_pro/images/icons/big/0000755075506000000310000000000011734665232013762 5ustar namedsite_pro/images/icons/big/furl.png0000644075506000000310000000757211706151312015437 0ustar namedPNG  IHDR22?AIDATh͚yp՝?ukf43˶>dm66!؀1, !Ie@KJjC*,8氹q%Uds@Rvf}ؖ%#:,i$fo螞lUu=ݯGUv~?e)ޡʙ3gVxww D>W⓰-H_hѤ7xm۶yժhAY,$ ?:00~*_/_W^}m8B>؈t_{s.&oYټqlڸQihhK/hI'MԐ 7$ß}_}ѷb:AnR^.+cM>XU]=Ϟ?vZngKmmm FG} $yqW]}txGx.Ln3]Χb F fz~릛*pyfc?>K/}"Ҹ{6(+hzP/N5R9aƸc#!8==\/x'e'eZÖxx/84 `#W{A7*\:[[ QF+ JiH$tĤ .Kc-7m8("<}~D1ÛozM7=H$&*% ~B/WAGm[zAjlBd'̹E2"kƍ9ŏd"DWgy//VJ19zR^ c!^3'֕̈s9gm]m{:O3 RyoN0:re_w .7!F}V(!Bm=zs.uRːldӅl W~" 廝Rض]WWWw_h̙7lC( AUodf+m_7F8%V%baN1 `{׽Aj25$BJ)RV,;~bwǷbE9('/=yϴ*>3`1nG Fvq$*ƋOJGڮLVN;.KMRK*$K7nܿ `h" +XdRYNطw/q] c11s$4!Ϸٳɟ]Nx)*bUW_/ܲ*u#/- ^@-ԕ~eJ#۷!HRCGG+'e̩ٙ̈.\xgU?x,_/o?Jei=ʽv.Di8aY*:3eЖ&Q i|N*kcœAx βFԜ}2;׮Y'emg656{رW#.?> =@*Y_"}3T1.OКgɻЗ,USO$'$V3O8) f0FLOo]=|ԩSܶ=(%%bdRxZ[ϛޝ _@k+k#^IT2:Teʲ1ӳE_8Mr!gM2-dDe=hPJ":l:"""N>BVA b n^z?Kk4P1Ԇ5d\ǝ4iҤ̖ yZٳ4H51W<$֘)c"j(oY!iCʆdwR@[Zg2? 꼗 sw u:gU=Wmmn8c-!]IP=:#"(팀 AnΖE @ٶe{"bQ٥LU$>O^D[J~q:|ol|>7A)%ky"[ HϢjv!1VQr ر"=j APX?K*U mnfGp3#ah(Դ}|Y`RZH4Ãb *Yۺɿ&L i0͈y6\2%kEURjԄbf֭ [VjoWأC<äǿME?%gb_$) c⢜Gm;vd],"9K`@\$kYG c'#x. HPQ "rM---Y yǎ\ww:A=@kQ|?F}t惭S(] *TdF1ٿ9W$䚶708h ؅5BdX` t jg׻^ p*A` \.-DҲˆYt|~hC+Pve`RS$VT$= =vz$s-ܖޔ؟gJJDbN^w>k ^{koߋ)Ό20<2 *! m[4})=\vMFDhooѥQ<0 /,wKP.WP(a|۳T {ƹ/Q0-)hڶ!}<tNaB*{q]In%K~#"38+}vK؂oSySwW6p3u{ 7ҥV1ŷb5|*|x3[O{/=V&rL1֧zެUk8?͛6H/\!Z-M?xWc ,9Nc]w18キ˖.ۉi"( 8 :&YzdvWD@%`W66 /݁nn3CY;QGC뛾y}=Eт~QU`XL:]uR ?}0PzȟHy'Bm(;Ԝ#gW_V _M hpw1XUi8f1smb{~f DLPct0[M !p6bM˟^zz> 'ZV?lۮӵ\6!v#E Pq3:4<81Kks}:"ukbƌ*YEQ0;ރuqkԈ~ U[yKo|93L7> -1V__?j3v}}eUs8+]1"NR;/sRU8C[p7Ӹٻ)D)YHj:tԸMzk[z-ks*Hbcjk3/Y2פ)bJ)o-24u"}]^b V QP5 O"1Ƅ|__vՖO|;}ocDA32p9'hgUbmĹviK1@>ڵk~#nڼysx'qTLD%-2eJ4#Ռ9:]U59fY: nvhhhO___SgGǖm۶5>榦,'OMFVW≄L|18O@yD+~"> z;qIENDB`site_pro/images/icons/big/delicious.png0000644075506000000310000000642211706151266016450 0ustar namedPNG  IHDR22? IDAThZ{pTU}$tHHɋD 0˂tfJ(C82nnlMȢ#ʌ:5cEKkgFD X!19ǽtB'NWu{nwLؐ8i(~:H+//fxzH!XD*%4D dk(u0@EL*He+<JTMZXXfÆ ?9|8hYM:|=@(/qú_4aRHF iJ@@@(^SZS55)MA& 1'ȣԘ*9 qkl(aC4~ B(3-XXnUeOJ|&J3[oݲu>oc4JRAW9!"DՑRe.X| y̙ ԡ@(2!Bq:$Ashޞ 8\@&bM^q߲G.YcplD[W\<4R2B`8Fɤ9v(  1 QWwmwkAyt nHpee,-߾i 7tn B&a8羚 !4m'R 6r|-= ;B,n ʋ?)*!lRH)a6`[BK\l q 3fgf%T(8jf SŐ_b> i~ ϫ"QMS0苘27k1`10푇esw}PW[rӒТ@,2ۡ1"voy2 tG]v%Ā ###͓Rk p;>sGmCmjY@]y N#V\".810`"o/8b:馌e;4\0 \>s=po+p8möSS4MqxF#MMM! `3[QPXhmmMɦBJRH.| Rh}]M1h"ڹ 4^0 G嵮NE!sQ6XڱE74}*k.1ፙ,+%>P @0syj֑ > /,*\ZZ &92e6 !;:߾nCG={vY ?|1ض 0&//mmm8q8l[{H lذxu BH_7oc Dl7$ ́QҴh*Joyػw/.^!q 9a 22K/=~O섖 ߝ;w 2~I.O|AOA~r,!@@a<#s w:::Fyuضm4]G,0Me HƲ0){TMoɧޑ@xTJWgx֥K*Z0 %%SZΟ`\-j{:f3ݻwV\<Ȕ)W%s͛Xv--[)S"H}J)֯[稖Sg$F__}ڷ~;;;{JNo]{Ϟ=A׻:L;0Յh4Yf!֦pz. !R @Gq ?=< <9s|o42;;{*EtgY_r1R !a:t^}SO$iuq8$%O>.-++3NSU1ض0.wuv~qW~'O>9%[ܼ<5W5]0`Oh0ۂ۰h%-5!z:Q8Iԕ.`IENDB`site_pro/images/icons/big/reddit.png0000644075506000000310000001131411706151300015724 0ustar namedPNG  IHDR22?IDATh͚yxT?{ΜdBB" X7 VjmW[m > GZ+-la IȄdLf;3 +>$sμ}#8Eю7Ou¯(Gq%saKԿTͯAKOZ{7ܹk֬Ӽ{9S<~h%5WaÆ_hljlT6nT6n/o\2~;srrFߏD"ܱ`0RD"̟}* Nn\췧v݆a !,vrǃFӵs?}vl޽M---I K-Yõ>oaR(h'PYYiY(ReYHMn|9sWNh P]dI̫~177gd2Ass3(B @u:;qxrJz Y+xn7~ر\2}~׮ n}WϚU~AMX̑r,8Wz}FGe5T@Ӵ,kM``ʷ.hƹ睗Ct]g).'ⴴصk|!#Gd„  @N0M ˲P²iL&tpOW^.<dDW jbxw-˶T"䣏>fܸ=̔  ??Ϙ1cxDTVVpՕWRR22I&qÆ %_?ٿ}xmQ]@XN@ؿP_N+2I3֭[4&>b8O?-[ŨRM '2QB9e`|R)*}۶6L)R (^ũҀ826K&Sqzb=BtvuQ\\L<ǥB`)Ֆ]=׎w·t}u,C)R&5/oOc0/Ѥ&im vZ6mݻ9DH&( )..fi#_;#OCu2񸣉:@^~^V^JziU[IBx^ eƍ֭_O0d\| 6<7fʤ}mv6l믽N]Ĵ QXPHgW'{;M"$+PR)@׵\]tD#%C bçRE ƍ8q"-n$i'y{zzرc'o/ͷb)|ǴBhRp9eY+z"HX=Tb16d*_W%'%"k򗿼͌_T!FK$i.nGb޼ylS5wYi Xb/I"T @d;Mq {hY(k֬+aɒMK/7ޠq<-K^e 2Ⱦ4@w<^xyLGuXx h?$cqL<(H~WRR \.SF)++믿s=G>J^^0"U)v݃d]L`\kSfҥzRRVVJqq1:S,64v( %fT*'C+ӲZMCC6}C=˥ztF~r7Nsɽz !P(>\Φ?djjj7o?˶m[ihϐ*P 2?4ݻwGzzJ)r4 '0bpJ^|%}=yy}WvzYN1NB[]7^Jd+~y?f#כoO޽{# ֞ݻcpxRv{pF&v !3٤CuՄ RCH\'e6)@Hn+vh:Vs'#e0 <KA)Uʲ@^^0-e˔yA% e2yC+(k=rUo˱=β,J0ٳgcpXoA)+wUR1&AE~c7ݞꂂBB--YU(<9b=T!xo^uB|yvIst߶u!t7ioRxvT )/RDbߒϭRV:*}#J)<@ OPRLbgz}H9"7rv[;y%x,n,6~|TVT0cƌ> RZBvN=LQ@%b鷺|>?GGH%S(nqƍCfMrOy'8| ]ױ,h&}]v.}OjiEMM\wuaΝ'+y<U#$H6>?ͬ#>?3vB)f֭vG,[ӧOqqqz#{o6ۀѳ\NNhvI0B#|f֮]m8ڊx^\.eFqTS[[Kmm-v|tCK/–E@x']'Iɜͽsrr !޽c>#uuvqppX,O~0LptTW0(F{tᬧzj@d{8!9~ݺX5z 3D5QPXatG"bvr P̠A ,)ۛCP2\TTTR^^D;eutSnz'w1D~E*0-}[o4-SPPkhw}bzsP4EH),i O\;뚅p8_*e̎eחW|4p` p Bj~"Rvr;:@&D/N]]]{^u/DfXFр=vQ(BDT*) p:KwF}go+Y}nډO'}}@gRgсna3Θ^Я8ـ#yg3]{uClMMMUH;T[?ںUuѷZ-74ڀK q:7sss?{~tz[8̾}{ rZܺz_CX NiАo4X uB DJeYD#ض"y]Han8cĈGUT4 dw pZts.|}xG4CkB`it yM)()1x˯>vlZ{@'c  V830JXCYI%><"m! ''SZ6i͙ZcHƏ0@dü z.\`0X&u]h'A|>­a4`6BBf+ O8q⬙_wWU}Z+<+k} !<"H 'XCvӲ}>5b[6ef$-# ֽ{/=iӧG6mXr`lѢϚ2DNp,²,C>Ӵ: izuW]Y6vY ۶mklMʀHz*/~`0LI4Kglfu}޲,L$ al,3$2eض=hW_zeW5ͺ:1RgS˧XJiy)J )@vҟel/2K!ci#Fk-t˖-mt}҄r]xA~~K>'D2Hw˲9---[ t|u%җ;~ܸq]6gNN={)w1oW+?1 #T̶L"e p*Ÿ}d“I!0 3θd/Ç

    qM7օ% 4]VfTz ukwrD^Mr]h"l fr:WpBvrpL{ *=nS &pQZV-͏κhD K<<hMk:nRH)ͻ߽ C-Hŕ- _h_6sE"[=1ABX6~?ѿ몯;|ѣDžC {]"H:9:)PZ#PY ilw߽BX/@|:~*D C@l2*w vg^ /MhPXzd׮3zIiN/2¦\kR)ܩ[A{j2xFJ[s8E 0L[>@&}~3ju%'M#89 89>!@28m^߿t!tVTzH?4G-4_ަ}v{Ps~9 E |~\E_% X#9Ρ'?D^y--{&_qI+4 >..XDka!`qb%AC0{",^==~cVrg 51_4m$}rΛIޥWѸqB04R4LPdtXDk1d({uhݲ_:Ҿc Cr`D6T`QPHX}cOdZP ѺO\MVQ*xt,JӋghou ĭSV>C=Rp8LII w^s_j^}U;vUoI}}=ӧOg~jkkq"ִ]oh̢$W8ts#q(^cH؇ɻ z/y1Du5-od9?\"{#UUUU+X[q&MrC%VI[$B޽Ƣ̟?J\離L2ܵqơ?D(铁@ ΘqK+ȂnFFrhsnM;}3&P#@ia5_n]}ڵ޽{hZkyǬgӟ>LÑ#n Sw_Fya۫5j<֯_ϐ!C(**bߏ1t)Bkhwzh=7q+ƍ6o]w($RHaPZZ_yX,FYY+_[I(bԩ,yש&0Ѹ,YhK-iHĒurrahtdwz0T~AVy^&cl;ʭYjҥZk|Cyy9@-[6ybΝ&:q{c̜9D<G`NH'䱒p -5Ɨhx5@@A)͑#{Wۣ^Jg :J!j_nFo̘1˲:)M}D]?OAAa HO=d~u^֖ew*woxָRxFtEO2:&MVYJ餤3ݺwDzLR+^'jpl%. giĢexZЬOLZ|>5P腻}c掷$+P(o߾\x$˲aba3DJ!ad*٫.0) )/'??)erݪZzSO>uuөD{ݖxiF$6"m$B^]u,"CNN!@)y88t477^y ,)Ƕ>BFGi e9 YF)omm]_߹_ƫP8Gȼ4&ݳ8O<37Ma'LޤF)S&J|.=p'vyW744ioa6HRsƘ1}ItB˶vdVδVJyx<~1t쯛6mgݱs?ӱI, aÆ~탇1{Ѩܼm6 y^1dݻ}}a?|n.@Y\l>Ǒj:o8WJ$g*. ]9YKe:H`锼_T蓵:W[|LXIENDB`site_pro/images/icons/big/yahoo.png0000644075506000000310000001054011706151230015572 0ustar namedPNG  IHDR22?'IDATh͚{tս?{rsH@@ /Q@@TrokWk>Ru-D>bom-{A@y, AB s]Ys/}iH,[v-޺<''gJq4=Q ]Τd$RJF|guQ @t@As?y^}説=ߣkh(݉4?k^%4v,RH)QRYLiDm۶}~=x< )bR9,OZuBmݟ8IغGnhM&B Ê uMRJHa9by]kCuFЄe{ H# ;q}]kz ;}ᄋ&~mYaʊ`2hsUW[dcpx_!G(@l4,0-{0{DiYpK'N8횩SUG 2fĈ9칯'B-Tκuα] `䛿#ktHPʎ)>+suOhHzﯖ,3uڴ4M MTͿ t.Fn ТQNlFɓe !͖xohѐg̘Y:x[6onWV(//]sMӽ;wP%`IRt7e8?/.&TZrvؠc͓*1rܹs >Z^^)d?bz^tU po%#qr:"btn@4u4NvΗǍ7sY5՞иm܈axAL\)[>}\=yO];wF)R WVUXXx+Ɏ/#Q_gŎ=7/?CI=UuV#%F)*ʖ b!“.ԩCpP!z0B5W6 dg*ԤG]}ϒTԣ@+-- {/:Hש5+|f5qr4QI)L Hq+ 'Auٰ@ӿoL%IF"$IlRʴ}N^R@UU#, @ 0}^T2mʾf8"B'wx@ROs{H5hoCnʊδMLta6ua6¬d . 0=6+ 4M+ブTw ]Q:_XrZٵK@rO>Y\NI[MeH@>}nIdS=9֠ht?wyۺէ'54׹,I*)awP w?;hnfJhnWN6VJJ&:rC iƤ[>qeEѐVdkKmc$n8C 1^W|v #IٰtOO>߾A)%×eFZ6G%YЖY5UGUĢk$J)d2{Ͷ!^WoX dY}8:x2'T0?J)"kx )[:dYjdRJPJ!|nѓǨ_?E T=o kR1bcȿoM^/ɖy$ Ym f5sf'ZUGRR۷7cu^Sg0QSs0:;2'L!RRx y J)djFM͡J)Q=KR 6Z8l) k`GEu+ǖ/Ra r]HVI) B{Όj)0<y M[dFJ]Zbie[fL9be[i5{zQ7E$s=g]gvVy7I#>b1Ogaam߶vujq NQ@ד c+JJw`UD1yɛ|% 8l Ɔw)>?"9|p}YW[ommݭ"8lA3"wg$kv~[t(DH{uuqJx͡RJ]݃2R`r{͚:kL[~3 wf"d" }\uÇ7K {Uv&#ʔ~m>Ÿi%\e)1SR1d% ω_$QyFxEId2y^ NM?LcCJ)%%|k" ,Mf]M2a9IY^wz_q%aQJ{6 n7׮}03 P^YponxMϼJ< Li?k;7;qd{{&#Q|a[o ՓZ8e˖ @ϧk,A2SH7ШQh~?Ohi$iߵ#¡E?'VSMAsm;>bCM"ir䩧O#6# d$^ꉇ~>oPɂҼ};_Un/@P 3i:2,R6CH`67mut98a%%dK/H$`f gw1vܗVji߷\X͌}%c]x}T2m<`_{QHSw_WdjՇQ{3  ..w vs{\z1>}ci.X]W5sQܜ{Ք)yA9#2CgygtQ>wB}>@]rLӌ&5-}fu]MMM'  Ai~rs}@@H㲵5ؔRXu2г}n jvI7mǾ6} IENDB`site_pro/images/icons/big/technorati.png0000644075506000000310000001066611706151240016625 0ustar namedPNG  IHDR22?}IDATh͚{tU՝?{s}&$$@) "B(ZSZԵƑ:3qj>jF;j}6PO In7}qνIpf99ggoCΝX$*i‘?) ZQ3 Ń0 \xqŻs۸qË߻P`,[eW_=a۶mwb>磣GO뫿)D<+?)~b{ԶVһwһwnvW_ٳJ}߸q|N:~xZ!իg|D"g !Pfxy->i)NΥW8J)V(T<_v5؀Kfh?3]|PJJIK#c$01oYvtV!B[cKK˖~_jٴqc̶mG#u@$ 5\l~ڎ<{͘R"!š2VάӖ R"@H@ @b|K\2ZJi]ZkGhH&&;*oX!c{P*ǹxJ |m9@B`H# g<{5-^ZڽkWB>+ 6_@QXTTtɗ-h4wn3~jմK.|DJIO+賻L)`Ѓt+}>Ҁ#" yP&4͒Q%_bɗgNvFΝ;{\ i dIII?=hL) ^ KW1^g$֧8HѭN=I xɻnX5|l^zYeiiu|,A yy+kG UI_KybGS8>3#FR7z`8]f0R5iҥKm۶K'MY #?l?PBʾƔ@g>#@g -?p a ܄ c?9}.[8P_ܜ6(b.+>0rj sͤ"`Di{R'MUAci |A&v|K)a7ua^R~?kf¯^L 2H{1pVhr(JPZ S&aҙ<@5QZ"v'"n„p+Db7bC Yp׻R$T)i )2ĉkkkLDXΝu%@ # x)$p}*ENhIZj̠$(ENo%A+#GK ! '8NŸhmmm䜹sK4h8ҳo<s hGٮ6i=zZ;<9ZhR#|   GC|> 0)9N M@dz4JhxpN즰( Wr{;;J Fg;љsDŽ]R>vܘ # T ܇zB v"ck̑W!Z8ݔŰA3$d` +ɌE9=87“3aZtll%P33a1*Vi٤r%m,4SQ<ޑ:6SdJ)(),l-pZak'J9ٔ;UxdvjgH)Lgј{i6Ȍ%@,\Fkdu}=u?f>0Eq_0#,gz' >3d\qbP;.-&@솆fBCq`4ii%YX3 Th &pgaJ 2pFΥw?b8ڻ wQk$c“ʟMIp<J,& )%NPFcNMkjll5fެSH+{@| |(l1$lk}˻Y^u (L4\MYx*L3M}r/h 'S+ڎ¢<\֚DqjjlLb[1rJVvہl>*;e%Lh4ʛ)mg!0 Ֆ<=7}6(N$X@wWMM ZDC}:-1="R 7V"U[i7hEȈ ̍׆Bdew4#$IGZ):uB[fMM*wAI]5ZӾLEG9]MY.id68py]. =h6Gg @y( L~;~%*!{w,=(#{[񲣭DvvakAIp,wVߋ%-ҩ'x;olYV"_>}Rfm6\h ŁBm-2ӽL+}ޱ)>s yU8Jٻv˯xnK [`oۺТK Iiwḳ4>reyIx@)땜s%֮G-wV gBiM[[}Gۻ8ě|tSS?ƌgth 8rPZd%J !Bó5 i-껹d>Jiz{{?Xy+Դ /DM`ӧ~iFVF'0yDt d:7ze7n|9߸`\~g/mnc20[lҚuSN"bјK( 3t48FxC ?'ۓn%ꋢV]5<@br!`> .+/0!I'C{?Z+ .|RRk*rb.oX(pÏ_=rpOf(hժY.pe^^dBrRgl>8ѸC B` <_p)O9#gSOҩ׭+kz$?3HFE}/VWW_˛#قt$;%;sAFX e qo힟߾;ov)-O ):5zM7M5k⢢>W&rorRO={Ϟ=ڝ?O)925&NoR\\<97|p'L{z_~5s' 2<(@J)͑FY# , uR-);W6l\ -dtJ0[tv)/_uIENDB`site_pro/images/icons/big/Thumbs.db0000644075506000000310000007600011730433520015523 0ustar namedࡱ>   <". !#3$%&'()*+,-/012456789:;Root Entry@~ S1Catalog<2; JFIF``C     C   ``" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Ϗ-=06t}Bʵ2V|NL|KpGY@8щMPH*+B@uAKXBTrI#5֖$a'+m.WO0ef}:gCH"Ŀ[?TRa?WCIŔ7w)yPF"+c?"[j۰S̶WqY,>j8l)W;'ȜsxO Z=w*{4L hGLCev4Оi?i]z8L}?›-$N +pwMFnOZ$:IM3IM3#WsdqV~oM8"B*@$r}tBE8*ѳ1{L*8hOϴ4?.hOϴ4?. ZupVRyOqb c? 1{L'YОi?i]tX5XD*2ʯ .>m@b >o+ \\h Yzn8k bz[e1*[OKUIBi7er}Hm+?>X5[htyy]J㺮Fr@]!/#b?#i_"~Է f>MƄ,S?"مLKI:Kyd3LʕQRkO;5ZEWRM4eGJ~ 1ko?JԭЎ%vG5'#[Ֆq]܈ʉbM mPASq.2MIn#set*kT} jv[l)yH88ܚ-G2ρHAc޴&/m8\`~m_=FJMBO\oDC $g(˝ rXk0-ZK Fih ى'^CH+ q8^ |Si_z$’4qyBFP|2:o>/&DdeF#P] *&Hl+tIFj9y:2GjDsoWU "+JXMCM mQc ee8!1^ŭHd񷃉JC?ҢwaU&>|Xա%k_,~U#fi$'r0k-)Pՠ+Z ?5 qsos$y>PkţjPagdת>-OjI4OiO/oỹbmws-qֽk{ƚV7Zjak&0Pc\c_MfS\jV!F47j׈ӕ>z [~#2qϸeb U%%Itž_PZnbO\YO$k7ohdk  B}쓩ꚥXiy8UPI>ճbѴY"b ½+aSV|$n|9)+&dō$Fe3(̅68+Ad?U&Va|=;XUB`wW驩#RFq#Ϳg$!ګ%α\$dǗVxIˑX3B _ n3RWo t}cxHPnEdSѰ9GxGL/ORm2cwYyS^e!֧_io/$2]\x*;]B8&s݌`1vj=;Q閒Zie@BDB{$n8ߺ:*S3K]vEC >-ijͨ\\]̊u}u9]B‚l׷X_EGA\m'4FʻU3'5? MVHk?*%_GPN kڻh?,W@=Yg rbﵹVf)F}xl6@;VЕ6@#HDC|~ Iwl0kBngnkk }\'z!j?i]PY}F/ [s&ڮ o+G|%ߍ?g4x>-i+oz /ŬuZPZ Qw],y~uêc+!m}G%~К K%6kdh7+eXqҽx庉שc]ĴpJH1LFia$6}8 +^!=K?ss |?V"IPgY~?~!ϋ|Qj) 2IdH ( Y$۴ |-{X5+޹H&BwOZG --_z$tdlFԁs_B]HTO<FZZJ2JwѴgx[-nXMGPXua=߈>/OZ _WYo-+.da)x>=R{xhZ<:1b8ܠ z&ߴ..l$.̎1۴$0'9P5_ ZLM5 㪾0z־cMƌIo]u$˷_7爮dýJ9z% &3¿r͹Yԑ''Wka w*wH|9WX $0VFA׳HX)J+{ԍJ'i׾*]chiYdy|҄N1K^.ji?m\hUKUՓ Fksᾭ}{kwمWSKyd˒=ȣA O_bSw36y?(8|t?v`ͮ==%ufY*SN?~/=-Cld>Az~?%auxGQW05)  !"$%&'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxz{|}~ ```"d}{A42CD7B6-E9B9-4D02-B7A6-288B71AD28BA}& ſ /JFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?R$($mk_t="3wG敿us'ڦ}3~յb#IҭV,pH_zƻN+2XigxU77V>3ࠬ'Y'•8Fe?M> պ/y>W6lG}3F˕@'$0 ׺i"P%N7 ? M;cT5?icUUݓ6Fx |2ῌ^&>ܝcHTA"s,:˄؏kMk=?wC\KbQ@Ki>H!5apߊ'ic?_ λyi>7=Èn5;shO6r/L͎M}i<ß zİKY'1Y}IJ&V[<Fn8MNRN <>iWzv]jSY: " |Fa1^[|W_eh#,|ʼ遜r09_k^ ~l~i׌r„~qђvOc,]|yk%Pg%e'4F㋎i_k3J旽 A&-VZ_?~\1k)̷p^TEP9ȭ_ٟ/4kYI,[3|^dO5g{rk;Yڦxsb}(?Pϕ%p 5^yg:g x'~O̗z(rb}؎@~?~E 5$_">^[`⾥MXa\({k{Z~yQ ƒ`'}]of(l(XU;_l6F2"T ( ( %JFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdef3#14 @5\26y!ghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?R$($;Vywybh?ҏ]U&{:ԓ;;ԿhjԏbF-b/,~3 =Uˢ]ߒ8=N NA:k+yp0lvJܵsU=_Ipo5ܠ"Fʲ4ϊxZh$CK'TSFs܎:d~[|jG ~ʌ= yOŏ:ĭ7ڝX`\=A |mVT,3j?'&x^-֗r4;(bU#B?ӽ?Ƃ {l6wqR*t~ ?,Z=zeCYWsK[_HZ'gbk';O6%wYŞ>]Ru}|toOI5 P _(=|/ד+; tuŽ>(ɧ\t}ϧl>Ϲf(>(XU;_l6F2"T ( ( JFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?R$($E"qry&>?ynE]Yx!Q彊Iqes"ַcf26UOy0:톃LՎGo3h\3 r ^aZj>u20X"eNAXʊ`bATdSp0!_ kEι\X*w\owncFdrW2F#eaC\'>[phMce8/Oq@[ KkK]+SaoGbjUkvl 2>p#F~3GyRjPj3x8Lϩk>8׬md 0)mF3+ݙuMC֥vMZ ?V^Νr幆^eud~t6O[A|742kw"`Ar h$+ipB%d5'~CȓgXMXa\({hQL(%Smc))e@(( &JFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?R$($%_?tYu]cT8UCӫ` Bz7utëPz<ܐ;wſƟO4v,bb<*^n{9v],tn[xB~/t߉n.m,&T1 VF_EÞx+ٴYk( 'x~T|O|LO[Tc =]Y Tcʋ*wJxX7cS ,<5gZ{Ep:W."Cq_?ƻ-;Va[LQ@Cc>J!sufi~pOP]p9}"g>QKG.?L}"2EFXlxoO4n-݆o2 Ts7oZk`ψ59YEϿ̇isO7$6xi!bmx? AmяMnΝZen:T -k4oۯnhу5իE)WR?kOVk^no-Ҥ"C!` g# Ҿ}jNL^&XuVSyTd 9GSb~"x[Uk$2!98 Ԓ5C+ z߳>2h\Ӿرd].IG' dWo' XW|j'o :$%bRtbx<{W+ikzK/m;P[$Fż` z/&k:}~Xx䶙GU\7V&.:u?3$c6(?Я+UkZb={1Df'qgbp$Կ؛wO|Z Y.@?uorIb9U&;8V@ȏgז8l,!mW :\bh|=_~zE(\(%Smc))e@(( JFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?R$(${^MxH"d/\IyF@Uu?SAp>lpɟk?c"|]/ҾK_Y_xS[/H6)8Qo#*qҀ:K;RYMz/4yeI}OስeN0Gڽ66apO 4QEQEG,I*6hHO*PQEQE QJFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz7]8 b901  w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?R$($t]d[b8 tSF/'{-Ynn|S:N>m&iA溍#VZI&Y#xga=wSkkdf3~eiWxO"+7 ZM{.t0 sIW 8 =VFNG/P㞹%}Zt0J`hc]7em?丟5`}^Mwn>־GyZ1^)9꺟@lտ<jo<K+ ˁղH O=~}x:Ś4Ps="MiCk58~>]|Ocn,~  8W?0~&h6$ݯ; S|t𹣲u7}V;n}?4-Bvڑ#G3$FcWזwK:],?B Fm gDX ʖpt5ݱ_-r?XpjQ;Żۖڧ_wiְÖEc)V;+u9cP*+ SGW=~!|0Cч>M1hkqr=eFGPK1{PfkZUjPJN2]VƵXnhE<17>j8*d@zP3Z?>x_֒"ZC=J:Fxp2 tJbm 7 pI*b*{Zrv4EeN/u??>jU'"+z*|g޽{CT?Sj, !XXC۬0u=5)1VaWb9˼nݵ,E(9bITEiEDP(&(( VJFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?R$($15t=>?Y/V?@~xZ=/n.HtAI?W% @ >CxII(jt~_=3R|~>_jZkK9Uv](Ipx$0ӵzΑ+-eP$p/x"լs[#rN؀}"UmF dEb{2Al|3maګXf!&Dz[Ep:W."Cq_?ƻ-;Va[L3˔QE|c[?i_=E\D> r⾭d|J2E'IVz%9fѷ_Bpǧ_7j$.>FF#S'?oڿ~moFҴKӧ\5]M<*a䃁z> h7`hO٠:@,#S I8_GǝK񞳣+Z_.xh³3޽-9vE'KgҒۢx1PQ{7<Ni#M3WmͱC1;]!w6:lO +٬( f#|$럲%#xLV6R-?yy.wVѡ:QrWNNEpSQizi{o~Zj>u20X"eNAXʊu9_u6b/) r7c]O~!ѵh 7P6 Syչ#YQ2.GF}QR&L3v[=GfU)TݚC_GRT*2ۧ~Ӷǿ <[q^fIZ@D 2G'95E/Ej ]Ir˜.űg&;-.!H=Yg⻛[WJZ'ghqKܰ2ÇUkc/uwr앓GF]O0M#HO:_7/4/Yn/{J}FI> _ 4wP zI?^O{:m GSܟS_[ü8}kNt|?d3X}K{rt]uվQ_~~`QEG,I*6hHO*PQEQE JFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?R$($;?Yh:{^EXhD^J_x@.dl3ՇdA޾+_%MbK$9X*<5[k2G5$HؚNF&8l& _73hJޞDWn"yejֺ"KiAwQ_Rxe(>oE%,Qh dtt¾}|e?IK{ܔF G-<=+k2V֙x+gI  ~5 4-o>,QLʷBB\u,:D89q$kK~|RQ~>}U}|[m-B O|Kw>ɡ21x Oq<KQ|A6Z_ye%3گV?{6+=G悼sP|;Y$c-?y٦»'(;?u}5=j :ITQZ'mӡZ#Y(YXAN_⟃-_>b/) r>W׵DnB[j C#c8޿D$eFGPg'vEDɊhۈ w#$ S%^>_gtc!Bĺ_ɭ>1z?]=$͐; t~|}?xL ^fp|==1zևdbuYߣC 0?^+;MOq:槦ZŞLN@?~k_+VnQKk=]O  *M+޽['m[⍖c &m4mN?gO2WG |jL}ȳ2I'ҥU7;ŎK9P zi?^O{:m GSܟS_yX8f՗iss [ܮSm}umY+ (#$NWxf QH(j( (? JFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz      !"#$%&'(*+,-./123456789:;<=>?@ABCDEFGHIJKw!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?R$($):Oyu=[RIP7-!iՏIXOBu=J_'M77,:uc;z=g7i`b צ[?^;{ɟ=fˢR[/Zd4l> :PWedaȠskشYk( 'x~sxP>ޜIn"8܇Ӡ j(|yeh 5uױ{+<02<~+)^2-m*-WxN"+7*QvrIj^窧 xm:P)?I?9ZA=ks"+bH3=0qA2xw~>5o 8&X.WՆqa7- }[B@ }kq8\XX5+ۧkY c%(J2 F.2ۭ5?f߉(]wR*G)mߵG'Y/,4&[ieI,B`r1ݽ+SB_ |2滧\!t7E!mg tiuo_oE&3Ogn|FwiFJKF r_'yߚ~Zj>u20X"eNAXʊ?E(xHXEmlv'ھ㏆/<Z 6L"A"@deFGP{Wᯋ@,Y6P0KRzoG' k :0̏3GZ%NI/K?kc҆<6.X<{y\cMAޣqqK }KE.:!O s^'t?=~Xh䶕GU\7VVWSt=>?3C$ɏeؠB\ul:-bd-5ߊ/,h+}&Irq0'H8c_1𗙪].P?w{O 5ˈ$]WZBڊcc^O^q}3aan¸Q'bta,S|Z~W,ETQEG,I*6hHO*PQEQE JFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz 11 21 0w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?R$($7oXxsM{t8Dd>X3NJ,1VaaՀ=ILB娯ONu*+Ҽiwb5iڵewW{(>O[.=7Mkjl_Pⷃl0mR`Ehi3h:1GPOPW̿50x%,cXfUvO˿_kg<ݷZ-|kMe3$18>Z:5*ܱȠ #rL]寈*^9r+ÅvᏐ|~PgkS+kenHfUV8%7vO˦Wx=9g|MYèXژ W+e]g$UЮ. m$Y<`r1ݫ/^('cҵkp-6)b G\?b:mk㑾E& 3Ny/}N^&#+.yAsr뽴C,.e>4/5u_G|Xda"E+?i|jseԠZU09Q#_guk1=c hBBȠ "#YQ29k-oN7kM Ԟ[8&Q^}|q*tݧo>?5ሢx[5{~}{wxEl4QE|!EPrĒފ a1QEMEPEPyahoo.png0Eɿtechnorati.png(ܿreddit.png,:gfacebook.png.4ֿdelicious.png(Hflickr.png$furl.png" ݤrss.png2 &Ͽstumbleupon.png* ]twitter.png* !youtube.png JFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?R$($d 2[hnC9D_Ek>)ܻ:/`(Oj6q nFCH5"P%N7 ? 4ԭX=wSkkdf3~eh(JޞDWn"yejֺ"KiAwQ@(㵋pe^+#~|4GM R;an@3Sye(ǖi|='SZ*4\뗓.oX3bĜk9R+_P[ D*NSc_%|^?ŝ.D[t&mgoc;[[04GMN03Vw>+k55[zw7WSYjFWq}xi?v^ xRH#}_<nX%N|~i9C)Z)*5*Fsӊr6IZsDu{H$,5-qZ)n8>vxN5 YxOqyiͨi k? v [J6NGJF֓þ/)tk7V1 1d"9b* 8^2H֠Ğt4mA"yZDW H^Fl8&*F1nKgiomV6yaZժBmEڌ[m$SZ#Y(YXA?9 񷄵s63iXڲ!Bߓ*fu=sÖ6mpONz9ʒ5C+ zAߴ)1!>x֫ux[G՚g (K.<X>A4oᗆqn\?YW^xb+فCUWwr6X?%ti)CTet~=~fphK{XRHP=ï,IO=) }f`V6apO&we((%Smc))e@((?<=oM2Ջ'U%~ɑWmuZ/ÝAjlYkߩFUpBSUS^RLg'm27(J~ώ^8.N~,xtVInk_Out/k>[m{{$c7b[2 ub%b0mTmӜRJIܢV0TjAJQ}fsite_pro/images/icons/big/twitter.png0000644075506000000310000001070211706151174016164 0ustar namedPNG  IHDR22?IDATh͚{tTս?{3Lf& $_RPbޢVz[^z{ծRVZUmzkU > H I;<ٿ9g2 hkLvfo'lְ'نCJΝ(#]]]F(.o|K-Ǘ^q/o/;N~,k bW~sn]]]{!yww9UfZUׯkG&mg^~]~vy{֦g~KN=uu_?O>3fR 5xh[/ngveX˶+9 ?257 4]sڻJ+ܞ^S/]94t/C|iX ``1TjosWny@Jf@F,@GYJiד;ZXߘ"+ XZc#3¢4R Zi'_⪫5m6mrUjo  (SV^yÑHdR7헛9r4Zkea6qS'ϕBi:Nt¤]KD`'t ߸֩_']ݬLN@k=F<0P8L瀋d:B,mEKc,Ze˒"~c>.!@b{VYd2@)ŋ{z pHpB[p=mLJjQ 3.I&N[p,]*whp?Ά:VPo~R5Ϳa?gBkVڋtA6~mY}G_# "@m\z[6ons>j]fܥ^#us5қu&`)EҠ@E4b%O-g[uuq~ܗRdt6̐!Ħtv1mMB$^?i޼y\lYiÞ={s܆ W_sM-J>  2xa/KFWŞ^z+-9fX0:Σ *T o;@",Ay ²d,yE_9rcH|z'NٛGxpߐlS0(RIY9w$;@S-=Di{/-=>  u*@8j#ǘS+bXv>ow=?porZlJClޡ77Cg_ﮘzȑM2Ν￟$F'Pc-0JyRJ oҦ,y̘5ry]{n?GӓspUBIrjEN4iRrۀ^rZ[I~+_R@R=yhƈ',Rt䄎y?it,p %|1J7F([R-urK4kkkD;G Lc0aۓr\O qIqaфr畢x2V/M86@yEyRċhWc_z F] Q2"3g5dקTސ3BIH#Fq`@Bw:']m[1[K[6D4ټg+)E@}+pOBAE/򮡡-/7w .d"W3. 4455k-Ӹwox+VC뺸{qyfBVP+R(ӲV bQp=[ob≸N<ENT +ň!{n`C⋝-ϊSFrJ?s@'xtr+agɐCV{0:!LGDhkk/ԩ hk!_1q:nh2?B㸸o>`w6l%<!OCV,A)H4a?y8kL!x1EKX_<q;g2ڵ---O%Yh—{|cDԙ#QK+N_#j-S?k1\yj {U@[kS[8\$ lJ5xrû-trc /׷w gLⒺ+JhFF-K,jJ-6Nrb ikg\b F:2#bkukoz[rHRQpOݫ^'Ȱ۟~v*:=Ωe8{V5e0h_j;tqÏ7x?Jm͓89uI\8۷>cӧWWO5jZ+~_;d ٻI3+'U2%#! B@ j0FOy?_x ^AwށD"u9vhԌ$'֖a[ s }$xcw,AP̆1,X{,_1@c>vӣ?{ttAꫝy''jvQ,?y, {ז:&QЇI%0p [.gMᯝœ e#wU 2`ڲG gϞDOHBjq(aǾ.znHdRg%5emlyLJ#o9ޙ4hahT \WW7'j]]ݗ-*WJɹr~ܴ{p GaNob$W^3ꈄ_SރtrO|d ƿf³>D"D) avtڛ(SF9mHΞ[I¶Ko Wq~-ڇRFQG']Yf}1H,QJVY:rs"00{r}}M;ӯ^hkkr|GHL+Κ=;yÍ7^hѲZuv.#"7tw߲eo~;vW?s$hE )SoISMYUY5#HLc-K\Me澾w~llhhH-2 G(/GQ dLWwW-gq o逢áO[cIENDB`site_pro/images/icons/big/flickr.png0000644075506000000310000000700111706151220015722 0ustar namedPNG  IHDR22? IDATh͚ypםǿuOOϡ!\`/p% Ml*@vqٻ$[[`8 Ǯ [Jvq!^ .c@Z,bHst3b}U]}N󾿫"!xk^;GT_(yB?1 pp5+({֮tg~f(?/T~[׵S,;JgǏώo\z_0F Ñ~5 ,@ py>L @s(rܹsm @*f\ ?c~ggϞ$Iσ H%`AEPRRZ|ժ;Vv홳ݽ9 0e`=?B8 !s8EEh3c,HۿeA$`ITDkt {LB(y 'HSИS1J(RԩU[n̙.~SUU#F|5 T7Q޹k~~B((%& 1r- XTu*JN8k`@̘'y˖,`+S}MՐL&u< r(poY690.jسbŊ [m{1,݉F8B$$F$PRv9JHEq睼//^T)}{߫zP0 $ $IH H;V^[RGFFG?7 s۶ͻEJiiY}_C}.e!E]8o į( /4)ZXȕ$BIC F!%D^vҀg8"HT[]S}]w1uVgL|?ۺuKR3A48wBpn$!%D/E_Ώji63gzzR(%i O,6( 6PAE"@(  d%xk֬]8sO1d6nA+ii ajC(g.]~YC@GnmX+W.\{'Gu8 [>Dn WƩ(䀌@0t* TMC+^*tܸq/-nyhss_"('WV>lT>YŽ.ed!bd$x|ހsWc\P1~?Ur:cƌ`824@o aH7VlfG+MRmB?ioZ8{RYv˲;+UUUKC1I_S> ?9=}|: qpUC F&jGw %2hm)`uf5Iwtww'uuvfb1)xb`yVٿx0Z fи'.(N x4 !['WćuwueLp3g:cYP?^BG|l[^稯c$~s_~9Epl9ßD$6;gˈ]qQݻv5+JۭlUع*b™oI >E{@[fbRռ) hz=V'tx\qL#6 @t"FA$+=3sXx?l8C4SЛ` r "%кE29qY{zm߫:{U?ͩH$g+++Յ rbNQ!q87 oODž ; E?qYҽdһAo/x=3J6tQp]);_yG,]fT~;7W;(%}Y@Z8Dccs*SO8{g/ԖcǾhk`0x`B5c =we ӗh4g6{: F+V\ISvqs4}ɏ 9'O'67ح_Aٙ.*|mזo5~lBT:>֛o͛f'tcM \M o(v:v x7zme9HR>׍̈́9vhs4Ν;2F>Fᙿzsz`wڼWx9Wj[T]]]=?,BX˭Taw?v%Mӆ{zz^~d; (zWÌxI )dcLK)3ѣگ^=yԩdQ@PH<}7͘9qf$i 0hf}h[{{{뫻ёn5J)'L(H~YdXl8 \Pc*fOѮ x5Ft7V J{f֧IENDB`site_pro/images/icons/big/facebook.png0000644075506000000310000000757611706151162016247 0ustar namedPNG  IHDR22?EIDATh͚ytՕƿzQw%Y2nolI8ؖ[0^l380a$!8, {BpȀYHy--dju?%9yW6%X?b˶ I]ș;wnsB! /jLU|Z7߼}˽q)F 檫߿P(c|44OmpuWdB8|={l B8[=ݯ`c#?K;T߼7P~̙379΀h݊kٕ1. EU /Xzo~Hg籞 G|޲u96n|-B@݂0Nš(f K&1({ࣆmvۻ Dd;" ?Ē뮿'JJ#qx}_; R ! 'zC5E|\Ht9KN-k]U5ڐitiYSs\" pwp<0֧A,. &Ri/ۓ);663.g4 Ċ[oY] N6ڇDRO/FEdafE8'd"=g׮[gˆ0 ب+W9 JkAQhj=B59JWWW_ hOo&l) /xKqq Bq?tӳo5P#qb@ e HQq^|%,],V_Ww<h_6)Y;o2‹..qpqnCӵ@0 QLA/'ýRJ턀@ p}¹s&@ER @ ?|~B)%?g4:aκHoS< X3+&:R%S ) # t\~k+N޽V< 8c,Pk? 1b WUᇷ}+]b}xrfU͘qWD{tCf3!@xmyyO6-0lL()%pN7"CQx=HT@,wBt[v:o[kkǓeY 6\~?U%j|$~ qե1kzy^@Uz`bp*m $~ŗ\~U#'N8iW׈4bA|`ʾ(R>hlM@vp0̖qF'߭?E'aQyu "  4p{ E:h(F?E"9#2SC( ǏjzEMM1U ~] MAh:A #؀IyekƆA42 Lk !8\LN 0 а4_K/HFǧ!&lظ):l["C~"Jj)b%(u-݊ BNHpAQ]RA#/]4@dqqqi=? &%739m랍Et8 0PۏHjfKOXb ]}%eS,G6-1,86cgW˧Դ+KLM<6<^h0lj73JRU*Pf#BJ$vv3ʩcK)j+3FF4ɈbP L&!r+${k+ !8 l-HB2i@(:eq!MlfJv}ojC%ߘKM)C14H$5h4*b)aS1 (3!HFZ I!EtOF mWno5CR xi`j)#H'TqD8P fPsss4) jvQ64JR HfQ\^g=)qc)3 J'4k=:<kcf(/"9YOY,װdXdv$=1Q6̌x|3 yB20ȗ4 cEk8." M ltt7&ƄB/;;:9ڶ4)-(1*4s 0i2312!32=K#Xve@QIKq _]55udcJ߻w? n/X;:zzz^`fTbUY0V.^V[fbZ$f*h+*PQZ"F7BΝ4:@p8hMdqwxR "+h1|KQ5.P<я>DHSOH8Mv-v>ȑCFDwSU2nb 4N_?֒#5{:ӓrH9AD'ٮ]G`@@R0aBˡ*2(kFG_oyb*,B1@V hXj"9|j&OE.hzzMoBjeo<S%DR7BXZV;p:w^\"PMl.(̔{Z>ܳ0sZkB<ٞ,2GhP}$,9g**JJk-D"}w6 bQ_#8Ϛ0ЎkfϞ]_nR!0R`8!Tx #TPw#ǥB/6Hpӡ_y_aI|W_jfpϞ3M7Ω^h]UXJ1.TlYf&"=L&N쩯{G;xС0'"*l +**|7tcyeUլ¢NsHM$#H---Mz- 3O_$ 0H)zք ΂|)t* DXh0_|YLd%16=SjczE\IENDB`site_pro/images/icons/big/rss.png0000644075506000000310000001032211706151142015262 0ustar namedPNG  IHDR22?IDATh͚{pUս?k}9I~+`"@PkAw*^wڹXF[*j[boj W !$!q8?>J{kfY{g=~},= ?ak⒒P,3D@A|f1oxߨy߼Ȃ2?g-,q[lV,ۗH$ܣGmdm_}oIATlذaY,۝L&%SOo럗ݻvʮ:ٺeKK7f]|( @9!/w1^y@0TJAtj5_{spJcVYY\3+2~cіAQB?|˖BB4OL 4t%xOS>w% ``1x[g =CwzKo"JkD8]YWl?`Zi G >7|mTSsUjo  (^%K> )q#M^ZKG{=JhPZB)1c,>:K@p˗"RJHxĺ;Tm ]GHH)ëQRpq3\paTD磌K*?擂){Μ9Zh4:C)Ez$^$7 M۰W, 1WmuQ4ysVw~VP_҈#PJ);_\L84u}oQ4n>ȀB0ZY5 ̞ue͵==ߪpVF+VT];oޣZV/܈9R`}_S(rm Ӿ1YP~)mە?gTUMm۹s|@Y,Е6K8HY*Sk|3H$d nv2xяUcdc b#ⷽ{qu7lX.Wvя.m,;gst* WQLD<%æQZ1<o;>88ڵOY$9|?rCbWqO=ٶ@kXC @ D'&~2Nq$OdM+ AudiӮn677p+P oy>eYu' 񰟉Iأ.Q <)mbǏGDChm{|9 eG_`ќN;vMMi%TIC=zMJk[Cw dxT߃=|&::<vBg40E bMK`$w%GȬYVkfϾ.:9emGwׯe@.*C 5Rʆxz{St7A '2ZV( D@ x\$\0FLWw#_t:4ɓ& 믕V[$c|}~UnCC/ ㉂n#Ŝj#qHd0x0*T :8)L1+3%oV'L ã#[-`vA3E7b J!NX6Lp.̡Wp7`O !/#"PYER-$1&} co9P? qnj3&/ڊ C Y)Sy`rEkw$A$n{=m?+$*S nN~ё"1.?<,iy"ݓ ute*n#F)XSv@f**:{uj%p M#4oE_؀5bvՊm'%pP D:p}1~L7F= eˢAI@/ N/b\{m\T$B=D,DK7䯝>m[--"`R1e & }ޠ 7Hb"h*5|zX5.Adº?1z w# ; lB: mX,W#.dWRޅ{d3ߕ8ocwtf?/H:1kPcQ)> f ŏ "T\|; E Fȕ >V@eq1m;Mj;ѓoB\`JAʩ(^ߵ25:"3۷G+6q:81< Yox⦣ɛuҼ-&پJn|& \qq܎߽ҳ@2 sǎ/RZZzV"-# _ veaS[+&4@=祧#:} yad(~Ⴅ1ݷ6{{ek HJ5^r饋,z䅸#'ہ\RG fFܽ둎#?n>ٳZֈV;}7 v8w#Bv@ ?@T'},xQګLUZkA!;LJv䵕~ ~ 1UW}9 ZwΖ;< D"_%b4fABO)ĩ ?fَ:|ad,DGO<# WӇ6gajD(Կtv1TYf w|"p O#F8y2_+kk۔/ >JK[ί: R碆MEJ'"Kp9 H@X t bSNzg?sPAi0Nowθb۶+uhEȱH\\}i>gƊ(}%dDbcuWQu-͛Dxsʔ)BXUTԴEa#.'K>ҡ[0HQު'W{O!.ȑ#<Q̶ّXQ}UW=PZZ2K)D)pzyfȁMp$OIE)@w1L V|7zx͞?+H7|@2?iSD)3g.,P~u xi>?cD*j:ޱaڗOv޽[8pV@2%olK1&NTQ^q^Ii`0xeu㽽=== '߿'OPCCC'O  AZkm<8ؿ, 5@o2ibT[k[o6-g LW:B0[Y}׵4&GIENDB`site_pro/images/icons/big/stumbleupon.png0000644075506000000310000001067311706151252017043 0ustar namedPNG  IHDR22?IDATh͚{tս?{ϜGNNNB I@BЈTD"*]^WZmWEH{+JVk $byf̜Gku[3gOffvٌCoI *+3uww+ Zi 4 +'o oTW7}r f3n){А}U߷O߷na@_ › k"D":3g=x@{w7^zi ~Ƿh4hTyB_u:{o^uuum{ݵܺu܋.o?! f߾j`pX3;0=ea"n,F) ع}r;5 T] АO\vm=dTH)9̗o_""x x=&gO2'|!RHy&N,[n8۲,[-sH@͛/|^5k6W #0L K&_RBJ+&_0O]b)惵a-A4 ڵSyV__5u!Jא.c1؎P5n&B !02gϻxM+V iOPԇ3 tUW]UByBo~0x+%ǐG}^umLϝFa(I1d\J e/?%K#GN>sƒ`:,~ݻf̘B }.PxĔCgqb8F`F) Vp8Cu/<# !ƈׯZl#R@G/x>ҍ 푆{RbJc`85{3~Ya"!NL,**,伪 8oIoPYTT'ʚ'}l\n<bʼnLx jqs4KvR$ ;kY1uĉ;wNhWpA ߕj61!F*6@\xcդDDo0PDinir2/)n@ if2fTLv_?.33޽{]> $mܸ6;;bfݟ629OfHLi 7UxMC/ ̚5kŊ+3mjkkt(ļmժ>U}޻S# <Hrt^ZklA}Q^82AOec&5< 9tI!0 3-zk/^o;u{--qxHk@$K/|/!M{y[f'88-_5W]Z9TsǬwkkk7{_;}tKiūl7=܎_M $r봛dhTh' jő_D#yU,.[.b|VQZ!Nvܶ GAYhUo_C>;x| N8{v Ù W/\5eKPZ h|Q( 0XUq VǗ'ysp?yO-iqAk ˊ7to?=CRXZ1[mJ1h8w7OCfocjEN8|veta;^p$w:IUTGkM$nsHϦb0*dj%OypSR(`M?V i-B+Bp V?RnAgϜ>bJRUJ%6׷}`hxdORbb[c+cg{]*^xb 2,u[}{׮6H Bo/ GNuvq$rT1} ̻m;CXaڝ"anQ.=imvsO.²Nz=fblT__6dݷ]z'eز#]=Άac[`|5g-5ὔjgQ 4X}'}} Ij%)j=C_pYs&OZb+\zJM%sTz '(6d˭WS66Rʪ[wڵ;HzWwϞ˯Y>.\8.'䂱lKң^"&;~JLU@8 pǸ|tvv>/yup n:;Zb;b\ey9l?H\)نi5 5zb]ɵUSPJ388{kjڅ+mԶ njj ge~# LS0}|U%Ekd(רҽ2J#.^6}f *'S_|ɧDa=.ƭ^jfѤ1\;{GOs;@Mt):#1܄Y4o_AՄ #nDn%ٽWkv̜9_sf0aLS#JSR,1f|V{_7_FNcn^Oz M ---}z+)-YcFH?wp oÏ@CNȾTib,8|9G&'J\uq="SMwPo"_N5t(&^yEMa:PgKM=,R^ k#Ưѩ*Vcت!)HRz%њ-jr+c]IENDB`site_pro/images/icons/delicious.png0000644075506000000310000000061711706150770015706 0ustar namedPNG  IHDRasBIT|d pHYs  ~tEXtSoftwareAdobe Fireworks CS4ӠtEXtCreation Time12/12/08ZIDAT8͓PEKm%_-ďxΖK]bs`;3H\m[ͧ k$)4%D䩭|f0IDATxlu؇SD&!hDL-قg#Y(^[# $pσ0l\#Ɗ Ōg0dqBV"x QgBɒ EM 6zhcVWٷN|>Lw߾}ν9U111ww;;&;F#c9?:;{VY|NUwfzGOkR{Ѩq`~46ҷH |Ss+sNhϝNӷ!ܱZcKr.l8#9IC.>ĝ\p'ehkh]g_\:>vf)'=)/`#*+q69SKkqtT[4I3BTѷ˪)ᣱM`P8.)q帼8`ۗmN&yuuT606ݵ-G#^6)2C>zt4ٱOzCM>YzC=\9d[k+;;ն;VAW;Vø͘m*q~Ii{fiphe\NyV&}r|cuݟqwg/1?/b[rpRYr~g`b%NIqgNl  Qȱdmi2;VlWc?sr鯿[ro95Sf&gdEGGarYTMhz !dեf q:%K/d-iOFy}er\AQ4ƴcrn<*?ꚣ#mK3_s M kL~_?c|CSasC)|%m6mR'We굛,L 1Sh2!*]z/11L};\ jShncl0_ɏ/ύ6fwטǏ1WWg2lm՟{}m濸EOhdŅ1{77<Z:K >_^֗+c^{-v a?7Fk1O֨\Snzݝ1Hٙ11oU``U9=5#kp.w=Zvh``}qscF:8M_61/^k1;g!s*B/٘n~;0.4%-6U~Q~jlywSe6tu6sSQǞ.vzsccmxИ?8}ѳg5++`8'u|ccH>ZtCc>MAAȆpгBm}677b͗i3uc4h2ۿm]pۀ;h/(k#jkS/۫qơn}L}foキzAZEjm-goFN.?м?>c>9cl.{e߁U$~]Uc^zx=o5m777;;Vyq@fcþ3A3{S*2˿:ݍ {M4ģ#l<|h_Qi8sR@SV7ln\ .K12)oW~:Rc9B4%fm*k>6h:Q80S]Ôu~1V x۽ϟ[;x?novf@OLk֯7,I8ou2I2`h!db~,3ߖVMJm-M< 3k RϞCAua0(|ܻm%{hɓ7p7uK&?yR{[EoRKXBO-/k[7o?nA| o`؅Ѕoy{[Nx GGxhꀒي4}0d->ׯ}9:p7%@W$e䬛bOp?``O ;U]lx]?, 8S^}kG=w<6wSJ_^~HA!+TĜ ۭ5[b{~Ķ#Z/L8(lum?S2,糳n<+썍1uѿU˝:JY?&*9^Lv._XL,*]21$5 ]˘fZ,le1E]ɓzruǟj>vv'Bc1};n?<,rr C. E ^J}C}˜c~臌C?e~V,2hȚs--[+mvwO/ [v./EV [[6Ko~]OUd5jrmƆ"X|7|9o%ѣ>L,ks^k۞:827>!{m[mm-e?,?nѨ7x#/1ڸneRsk8?o4=hP."pk:,N=ǘO~n?8=g{;myΕˎM۲Eeۏ[#vՆ驮47{{5鼱ce~1_f)$]8BB7v6wuHS~]Ӻ衑Gre&?yb`|4lr?@}N2>}km qU3ivÇƼ11]-bqUn?:qt`7a /t_?.50d7$'O8xagl]sD qCcv1;)/V1{4IOhذC^E_s{[\⧭ʻ=KbK'hH?}]675R,qPRo!gόW^+b:u?$/*?,CʹEH߇FE}~'O1&^oq?<1W/l|Ph]5ߪRq'|7[VmoGh񙛂m8 /Įtj= {^#{d(ebeܤu\jH˺\#bm}Y\6H]@_q‹V i>XյWb~pJ1k֘ khWݱ؝_Rk/`}*s#4!ŊXǏmY e, 5ۣ,`Ii@dш#m77uoW۲++d/.reҁ ٩iӲR}SI}F`; +tf:hgХM {_Ťjkm~+4R7ڲ%u}_7p'q9H@_T1&jOvk|w=ߓ.i0Bm$m}gU|1?QcӦܗm!7l~[.. 7W,+OMf^\=+RmRϝIU<#bsXŐzZ݄dڤ ;8Jv3-kVf@5n8WCB|I'fjޘ~Rf98(ދ ێ>~lK-VuUr|1_E/ꁛ8P?r:Tinº)D4Zm_|y4}v&l߹QY,+g}kPZ*[lYC6=P7qI}~c#x;;iuж[HKNw?1{*e7B*lm"ZM&_]f՘"\$oMZﲻ[eݭR5/I'o[{sO&L`?lƟIl>`>f/,._=_7Oic^}غTø* ׆l#dBM0C@S577@&bOHx܀tb4IޫvhpvF}U!Vպ?Qn)g=ܕD]Wqe`ۗ5 OqǤ,eozdPvp0?@'ۏɳg~9>NJCk4 hW _?-f0אrez4s<#o{{|v߼A<|hXmj8B)mq 3~dbws{_%/ȽݝwQb۝z|u֖-~yիFtny]bueCOU>D)MJh2_äǫ?ݯ?a#׭ 5%XPE@~*v4ZRZ}9Ӵk7\4k~՘UZƛŤM on-?au& k~}mn _x`~|s)ϟ\|p*2 M ֕6(K hdF#RR[[uLEMmfr{ MaȕceP0yP[mZ.Օ}(_(wكyk+7c7FV&_jkwSM?V5}CV_l;@MuYf3!g _H-~@ S=-sW7*F&ZU$%#Hw;dq _qzjۋc>VJr:yw7m`5~{"OSJAM?_}mߚƘ nn[oO+{,c⠑Њo6{z׿nW7߰ȏqnI!L%CYӾVC^-> ܏ stZ0ggg?Xf.ёuHefo\^{i߿{;TϦI^Q>%MzI`^_^ΗsƪI}teirC&|37(K/c )&|d'?i&'?iկƗ7=]KI4ɝZ_.0}Y8bhdպgapW!W]sL&E(:A 0{zp0?t,\QW_B11vrGvM>uǶ?}{MTH1V-_.jM*c2ߦHLޘn6L&}۟խO~.P7}va{;~6/oȡ\~n7|6 _Xc"c6GmlrkOBSPf߇Hh脪gByn^_nUW%Ldf)onlT{c^NEj7M*XB~m=8XFIj}|]*RKUS&r}Eq5IB{ǃ)R7~æ#2b@16K_\H3SU̻:H77[Rڤ]*7bӟ-6W7.'Oy4zY7c?٬X7)~`U^\=/9iw1Y*[nlXQKY\Uʶ+c4ig[b;uP/~20lZGb%}ۯ)ځS3Ab~&n_c+y5[_G~*~[}cljɟ|򿴾.?n`=/nnڐ菆_{c'~q0! ;T>,[[E3Luoe8Ʀ89(=<,A*Pr.O9N&_5 1Mڤ;BK9BHƸk71oa=hچJ_X,uݯ[ܩp 8>>6s0ߘ eG7 |o7^>{Hee{~GӲaÇv<;xD&ੂ-Ke,3ek+UP`Ƶ1Ϟ<)hT>&"Ǭn)n`2tͺ7&M0K@' { ߘտj87?)Ih9ؾqxq߻B !>U?Oy.bM/okkwҗo|۷uk_yQ(ámSBCZrue۔QҖ}m$3Wo'4~$4`1H/)ڦHvi:Ц;8z)40k{LiRI6)gt)d[&EZr)g=Bۮ;4%f։ed>l۽R44.v`0z<^(F:f}ږXƧ.!{)j;B]{<ڠhdɤY= So4]OS&M_]NN{pX_Bdm8m͘[S u[T2s\P]ridt=R2E- k?sj}W[hۇNuksҗK.Un*?I\{m}`iN![|rh"6=~M18ew2)~[_P i^CW9"3.onڧܸbLg/^S;3tsЌ9#J =3iȕ+򷷋ww׶e X%Ŋ Wc,rg#]obrY Eq1/\ [b8ef)SPg on~{+uA a9mo۱~J1qry/>-䓕[[ֆBvÇ{r^ lmgoݍmaߧݯ>׵cg6fWmqc*X-dZFc2^2;9*憲vfUܬgm߷;}͸Q/OOiߘ|ݵ%^/xnIm66W՘Kn};ڮ)g5lکfʹn=(nQ+do)պ蔳otF,ȯ[ɒj5H]::JjHfU 鴝( ᰿2V]|YqZŠlUE uv&ٙKgtkFpWȊP䞓jduZ-4|{k*&wU^=٥jGf쯦>*{{L-ZXMvV ҖJeϩ;Y>C:+;;fى#hOw\2~vrO6_T&u$P֊X#}q{,ȃԲOގe\]Y<)W}]滫ԣoVlʨ83V݈*W9unqs7Y/ "YQ%93wbF*f[{Vvvl6Ɩ66kk>Vdj=ڇؘʌqwxR.!./o[0ھLmӇh;2f~ԔTb{ﹾU?NeߍƼY˼ ,A~*V=Օ1^w訙*/~+í[W[~13ՕUuu4!ۯ-m@R*eb20ۊkNr7gU,>j4,fZ5 ].V#h{WᓿWIU׌k͘w_}oG1?]|׏}̎%67WĚ3ARZ0Wsf3}2갾Qk=|X8566vWW֘"i}5ZgC|( S@16`{8=b4uvsksCv`0*mٳ.SE_O >yRjݵ $Hˍ8߁}h?,cɓf|c3hb{m+ 5tA0_Uuө|PON|3#m?t@/+/@=+J97{8fpQ﮺\tFX0)&|4C&ߠo,>?3G#{f`i2oY-eg"N+F04\_&{ՅNVqdR弹Y{}#sggY`LxG !bL^[~jrrķ!}| -[ _ 6מa}¤b۾.ſhW~Řob Xqb4꿻#v)svm@( YN!>S!k(z,Ou663oom?Fj}hK."zO sge"X"?cڅqܴ׹ruU2TdfÇvnO榅>>_հ6+:2 ?^QK:Lb-2_]ͯ-ǹ8\67UGRwԲnrZqV,Z ./ʥl<u`1!GF[[vܡaC_+lm^s:>։lw }.@jww~kx)r@ѻYw%jݞl1ŖK)Co&TjB{ͦhG)󻲷glmHN&ƾ]H*mϏ-mU~(zSkc#se'e{3{Y./ vJ2z/2/ݾhW2zcۅ& gǷma:W27KzrW&YE)cnocۍ*ˑ碉>y{;ض"sTk; o[}zw&4})q3$wBffq Pjx\4g0(lO V3ƼNb2]Fn=mm6[gb 8ͷrfX=_C Ѣ.9]>''Vٿx0oL>Nww6SO{ ɩMyjm֗;;h~|3./ӷ/9>G %A1T?IShaY`~pv>?GYI~u|d}h>b0X,?.z ]Η>ԃ# O&,z8&V4pya{O_NX?H8s@=wwG.FƌRK1ҾȘc991ܘl^̾rbD,bsskeg'\_vvRKVɉ1Aj)#wCٿYw<ޞ~`g LO4cEq:ins\6=bk'4fIOv}rlC}L&ݝ4}w j\iGmPh~Xh2 Fڪ;:14``B_[tѢ1ƫ9Cs^^Ne8m_&]~]!ejI␲K?涗鳸&kFʣapb7k[[7ވ/kT-,vk 6on?i8؁l`1m@:./ۗ!mf3=8 rbiSoak+燂eBlt6i[=G ?>Y{{2a0hftMeɤIrD6PFOY/k tjph˖i|׎lw|nKXP|SkiU8h/Nz펹EBspδNGFz#>242}5n!c~llX}s]++ŕ"YjICV:nJЗ]ۧT+bߡԦn{ߧ-0cL1I`~y)ihԇnk09l?YҷeLibW–|{XG]v+mRLRm[S<)ƤmۦVMKt%CWum\u mvgӀe\d5鹔ԮNiʔ;_[([v%U7Vh86^ T>ѼAbjS i߈ MTUF-Uu䯏Ç2%);11Mv92*)U)mW vs(k}Q~U?вUPᡉSj*r |?Q[@ȯs@WZRvb}ȗsRsnm)70iY#aa .c^\ꨌ[Sg;>c>9cqyL[w4v=ڣj} 커7nX?MPn7 nddwK;V9ʶo2^Ž_ ]O ⩪#Ӳ>Yʓ{eZ.w(4M])2d}&8hܫX&/ 1vwjmg m:k$4ӧI0_Vf|A>}Ym_=yeߗg?/C \S}Sp0)>EC(l a{YuTenE !//Z"ϥ,Q}08됀hT^m֖1tѷonڿ}_C ?Typ+*MeR&6Kfaħz*~w]E;ؒrh]J5#~`,4M&Jꜻ;k܇CC@nUV7m?}R٩^MSld%w6ee8,9)3M)A0L=aJhȿ,&c-"4}? }Uy@oO)c;lKc)ǰ75y˞>6=}jK>l7m'UM Q(49?Pm$јܫbqD]]kA1"׆^VE"_oMMmANkk&@Y 4f4e|9>][mSak.Ai sje/;y970^./}T|֩~78YU哉mBwd@4%I?8Xt>n ޸e+ xl>N2`;;~@?S˗ipP糌 )˓_h@MIyrLߗU7}S\bfYVI/˧O޵rWtI۔ZvrS@ECv;)ll=/1)}}]K)nlNCu 9MA0?e"/sdÿfc].ޓ-qJ9f0_l_E|1 ƌuA6c`~R2c\w=/.q2ȼ 5U_kBu) BcTʹ+m Ŕɥ j-ϥO~UH[Vܿ{K^Օl{,++&_P,w r9tԜjO$/uNO#w`~Y?O^^m\t`|ԫeNN_I9>4A&[=(phZ?IulBNqѨܑ$e)ֽo;2t[@1,.~_Ѵ~jR6.+;C2&p 6m`mVAW@k3Mw]@(o*+~ok>qt~_c@?I2źM#Lgۗ4ŀeՖMt~, vEvU䗱SnommbĚh'߮n_Ga1i][r%Զjo|M聲=e_uG@RV`n sS7mȐ;ŊU BbԛmP~Կ1}ZhPViƴ[Y%zUG@H ~`YNp#hTٙ}}tT `2$ o\q'K n )'P\.NYn /On*/M/fm{೟ACEϕUhfeAmVԔ[,wm,wU* e'aİ]M [C *?aȗ¦p`~#}Sm}_Oܩ(7Y?Ak<}P? ?6{NwmL^ ]>*~+)~)?}j[S}n̏=ermoirϛ<禦A/MV5L66t~`^?FZ ~CMՐT1 ]Hݘy}} ޝLX_Np'} P [UW71߈Y|*[.UZtn)WK&oW9w=W ˴9ǽ'1 ehR6."x<}Klڬm6{+ .C^Immrsv1 nrh uzl61-: Ǣ϶c,wyr(.>A5!uLڰظlu﫾c 3]*l_F۞T9j[S}n(l5oCTN mWWa+|#\\;OR 776ژSY{{ḳGwm}E`P {xlk{Lvvlaߘ_rڞE\s=3׊Qǘ:̿ns tƪpmG޶_j]9x^"usӘ7ޘlk+M}0fޖ l߹ )-L,?Zr*l_cT1vc#QQg)ɤhsd|~{[b ΏaՕGn蚫µ^y*lnoߣe9=w>ݵ{!BƆ^3wk {N{jѹdhTwy؞gY19>޳c^2O c-}ɤw^\}8>^LEu_YÔEq%/^:|`~cv o*?|٫1r:_deݵR rxc֛O}jQiLyʝ-]gջe%rJW-{-j,DVoVS1o8I{?.zsW]^ƟE.{ -fYj8[wEQt]M=׵K)<.mlUMӺɓbl_Ec~گtWbZ۝:0DT6.+U寔bZ_d̉{u׶re+b>9~ZŊ[.Y @e}}]=|cb}+ѧj#+LdZ5!ɡue*SFuۖvֲsrbY?6vhdr,'O]a\oL}ڌn\"Gqw m00emChRp'Vqmo~ ڦl2ƘO]@?f0ˌT Y-ڀ VJ\y_,Cq7Be)eWrt7`0oėwyptvEhTVߘyRXOS߽"x't?@/2tt%e4Uڧ2Ύi;0eĘ~6gӤ[&_F!̷|Kȏ}1yecsҗ5|}ߌAճh?5^eC2&"1ؼ]1휃n4Nŀ~yMl{)pp^qrCzcr.pހ`̕x]hJ]CK[)mvS)H깶 Kh 70pvVnd1ۂORfX`~4M))]nĭ}LI*ĔJLMOΟ6mIUb#'ܶ.@/CWϟsk}/9ڥ~Jb}qcXR[F`߶M]#ٷ~hsi~yb].2Se26Z8]o RBcߞMHA\=ΔumߏEhEE1D X[pW 2S -%$GY@?}u;uXF޾Vz~tJhހ8CWhB^nSjO`M ^漺,:@uGJ= u6ٛ)4Yi6)H_{]~J|Y uRLXM?'j$-C}:Cl@R| ?N6k0?:9MH|p`dךN5:*9۔-{= 6-P2?@1i=gf..]6$w}b?^26}M|c Mt̏#W_~Xz{s(#ehmpS-vl6?h ek}/vU~_M_ ~{3cj=Z:ޏMtƄ~@_M`Y7&}uy&mR=46N~ŮvN d_˜ 7Зg65t `8о[u't)Wc8dUbZ&Krr,Wi}i@&`MQ\BOVݴYrUK"?vy˵ͪCuLw8'/[+aMqD>ȏRNi@_[qi7͠X+8rec3V2{Z#eiקep2&k-Oc/@4ѝuqLg_RfX~ Ɣ%ur6ѳne1_c?U-m嫩p{L1.,~>&6m˛Ɓo{5h^?өQ]@|LU)C6 I)+>)*;B?6ͳт[/Dy/@Pf+^^Zʋ<`9˨ k-7.U |ct @0?\}رqMP@_+~{"n9>khtZK=Se"6V{u}ukY/u|cǒoױIr"ϣ? XBگT+e -qyYPs'&h[5up5fb8 g~bn1SEՌ#e@)H Se 4 wRϦ/RɱͪB=  uG BՖ$rLUڅ2ܸT1-oL~鶗wwzSIk̏#ײbq6nqYH{&n[CSV-[/um7icqİ+BuJYRڣ٘pߘʹg4Y/+b9oCeױ*깖nڔۻ m418F5$t *e]w[wp-wv{ԇDʲ673OvwgUmp͘}Vq a2Zf -3Ji_vflo1+}O-e2uZVͷ8% ;6LDTM<{7''h̏#2GjmNvȥ~vۇ5nX:?]L ɵ1bb,b:{ĬP 1AO}Jj[f1e͹܇2UK۲Cah+( qShzTmǑ;@ 2GeC؎{{s Bƾ{g]U)EmH_ENm6hNvQ2QSKڌ@Gಭ̓Ac2ѫ+M qtTo;1z7g-29W&Wףiƾ 5u :3PͪIV)׾*1֗ϱ& YVqIJCu|)N>ٳG1mb6)sp &u MrjWՑz}8VTZ//s88Hu |]#CC{P编ࠋY(/ݬ ^Ёn:f 99Մ"XCTN~ =Q\WiGV4玎k&dU>РOUiZ3vqeԒ6+仼A?FP>x h!-)Ajt1 -6677\]=^H-)h =iܵkBAOژ;GȘs4ppPGqj t) x<8cwnW1sp`~1 O:<4wSKB0 ;^~٘O}~15c@{dow~ 5g<kpwvv991f:5nNg;;iW ./0s~^/G@:3-օUY< 2*ZmU2_F#cVeWk]*}[y1 y1 qklBvI!7,7ynxW{Zm 2~x[}2F>B iȭta2>:A gg3;+3~{J=mGG6p0aˎt=e&es~^ y^gVmħ01 (7|ж%Utj`/ R}-we 2)B+9MtouȘS6y88(d76 cK-1{{a~rsmcl5Ǝ?ǡ9ꑫ̫!uaWN,p];Xbxr?▍;\q^Lr3{o#VĻ:c(3"Ws^C ץQ-g0(ڃ18uۂXrV ];&`s~{b[]4et&TM)z< }| c>YkW|S%R9<$З<8;Hx~#<Ἥ!_N/SN"GjY 2vKZ*YWʥQUK~?EE:צB3GK恺p)LJU&p{{9qՈ~2G\ʴ}8U&L/ں2y1ɩK00#wGb"?6N~{Re)!|j?(?o?׳έd|H픍u^,BAIן]om,xM`2m#cMGqMʧ?;ߧ{WF#e] ?K*kbOm.ASl!L-ƂOXmrX`~U(xߴɉ1]_s|lq|l? a|u67{ĘW^1ylxm177\]Y>/{SNOY=-V``Aiy1ɹά$BnȃȘ ۖ x-c}[[oSϞ<lh:hhr\]Y}only=<('{ 1ٱe`cØݘSʘQ+{_nlj r!u~̮2'ϮNb iˤlm2qp`7innMerǒk*W½{>R_~ᾗ_Z]r{kkcl9>qu׊z}-Zٳ}~7\ϲ 49MT*Ie޶/=w{{^}{Y#SҚĒ# \4LTō\vwusgYfeŞT6iҠ,,k5լP%ij9֪Ҡ}^,r3[2'/r};R;Vey@Lb7}~h5|Z=k?N }) 7m1Lsy?)oS  rn!?+7Reh+frwZl 7MV(ѧ?mc/KE1JU84>-Uސj2|S=$KU?4~hGc_L32}(t'U}ܘFjK]*T1 뇳2_&{Q}-+2 bVUO9EnxiJ%mއ>bu澱Z%7,az|k+Ŭ1C5m!֊uXg<7e:ߑ)gǶ. ?o̟|ˋ~yz{~7EfeWLVFiopa?~ڙb۸;ooC66 frF?OtjkLjcx]c|kR &rO&`-LA5O{n|e!}ETR/+1iXN[AkM\Оu x S}~۶.uc+&SjOZV0utBf&#dRL($[ CeE,⇸)db)~mpup1]p-5E_t9..l}Y'hT~SS}Rx}ުȽg..t*d~Y!.nӷ=6>ns$rs{գ\#%7]^ÿ6r ]UuM/<~ݘ1גv?6 'O|u2_g Ĥj2GʝBUɋvAvCtmxl+[Sl[mfs3zex\|&Ќcbℐ;16^1d ˄_6Z_tXYIʯe88(f&]_+Uí[[ݝn{{"jN+jtFpVtZt|}ԙH}'V;? 63;OOm'SRh;;+\wn2*a1<݆͸xlB1gf~{*I@^β:B6m|u59rS1e?)#߱Jgd[{@^y萺}{eY,} {27]OП>7MNYW}`}mI>KC?gm\|qa:?ph~w@j|}'*7v~qGY(wSխ@͍}VU~%ZĔ~_uRN/L*E \_˭) BJ m#r>J:NI7me|.r@2K J 3:|sc݉ ߇^ր[.'2i^sXI)ɽHb_t|O0_zsk>nVηi\9ӷ%#GK//?k&z |I Ɛ>|ذuSꀰkRK  0~>ӧV+|CU&{ftTicznőh}?QXMcx]MܴV)Gm@ݞQ1,db}<7l|wg =4㦔ۊǏ]@*+]C]׈pӢrq^oݼlm)^ctv[[3&I:WW|M+ʲaloo1-1/|XXW*2I14);},kA~"zN.JaލȥL [[:W2?NjjނtRD՘ZStD%WS,..Fx˜޲lI6V}o[Ѩr׉tugϤ!SziWRKҞuI/٬~–oWka0ƻϏ=?O{meѪG27v`hs{{~y`PC{Z&֕2L|] S_oo{{{jطՄÃf+FZ铺قURǏgJ@e}ުqWmn.䋣#+NېzYoL@-gwQ|qQ=/E;n,X+zvs9Eni^y~{LRc#ݯ#Mb?"I1,FVH*J[,U!B{N:hC&&eq'@\{E}]o3/=b>S񱽖ƭrBVEˊ+Yo.L}G'6F`x^ F=nzzPu+|77D hQщgl>Ao! D q,18>.+XeHllO; SOʅ]{76sΘ?ggx^mo*O4G5Rmc ߘ"z"}fm,ȝ[c/P4!嘸,^߃mp_2'O/h"3:g? ue1fpKU̾[5~dCu&M>3 s[amslcܛ\36PpWHV?WաieU_8E;+k}ooj{M!~।zKfѐ^2%GJhϸ{;UZel+V=Ce޿.\óqj.#:q˿ G+өXDue.E,k[R#?,P]S0n//mw.CIbP6Mux~h ӿ~w).mI61r /sP(J`,?ŕupOe|r}3>p8Ao=bR-;ށ0bXЅr竖YW esᠩ[t+@nέXŢ e G@Nnr3:Y~jK~Zhvҟ`H)_1}\wO'F\d2#tTrƺߴh)O]Sm}1ƩRMD[MomLZʁvd[:|m7~mqLu沟Z."?qUCk0tfER?l5@DiSg4\f}~&Ȝ9ҷXS ф#姩Z& E'7BrܴYr`6B[b`FM$Dr*UlR wѕIle?_«Pt:?SggPr: Fk6[LA qqNݞo}39ȏ|9:gٙ/:K@9ЏѫPeqR])@ڂp(T\ Wu ,KP@ސK@G~"3 {J7a00Ș̘;{fl9NNK'cLN u]#G./L-UwC[Dɤ4=RnSnrݗ/E]scRK1[W}fsvvlp~Ҷ;;d:urpc0+x\ݞǩTZ֩:K=rYe;;.-K1Q մ?{i|صLiߦrcwS1n 4\_}H*1!#7dIqr .XPYԩ,'!wF2z䷃YY^G_Sr=vUҺ9g9FT'6 lH?r~n'vb./>-7T\֥^YDN7;j2ہGG/f3AHG11FW9~CT}EU܇sĞh%g.~x촓cvw;=5ѣ rtd~zc);<4wSKڜг7RKڜĖ? \\e_AöFwwrˁ֯xr2lnE`uls~I:s5ԒXۿ~n[٬hpsċ>Z$6 l}{zԵ[n:a]Q>!b3۶mc=Ftj]6 9w1WWVi..yԒ1oNeʏƼJ|ٛMi{~lly &ȿmU[u~gUX~UB=4PjC@cX9BгHL-em{(-gqM }>S{_{;N5~ZV[X6,Ӻԣ24}E1z5hQ7ƶ҆s%Aloo?ȯkdq8|oԐv-_Gl\^ھ"ϭ𭭢Cu34_)LRj>Qҝb&kzz]==L h jjW1!"U u+[[qҬꪾ]IJ:~Әo|(G1?Z\]+_?_@L&v|WoݝW#2O@c rure^s-Gi }\5 uۿIC2yw3puexȖ=/ݝmlVMT:<'%hg{!Ƅ.x_mS1ϟ7F_@<$Ņ5|=f"7wwt}m\Y trЇ`'̵qrQutT\ocÖ+נzľnny5>W/l>8.԰*nnpqy/ցZkK-~1]]_ҵC&&|K9}䄟E[8NI׶MqmVJw:wۣ}veuյe'ٶ%6WW64hTH} 4՟>uR#co*Ƣ#\[Z om%8%oLoO{YVӸS&#~xi>(.>]&~9u6ƲP`xY_hE}ʚ":=2mݝ4.ȋ@0.5}Z! cqhϠu0X})a.:f#HҧN 9&"WN:AOg>{Y]dmhtros|leZ#<^][KS'-Pho wՍ60%ߕ@Gqe)0ؾ{ ,D.Y`yxކ={6H*ShTdNN~( w !on)3h?Hxu~f_]sr s~)561d糱1?y¶}2 ]̲*HnT蠥}K rHPVG4U)ƺlQ//|Uhk_Y~ﴯ7U_}?'{{׶=1f~оw{k%_FuA[.쮸㧍btyYL,Lnn\"UW RSSuG ~o<%erjd"\"`=k1_kmξ[ٽ簞,7A2̄Rlm1͏seL@ )W ϟS>vq:=7nnLƲFKNa$TBGYV^ZIDAT9 d41AduR:>w&rH->vYkHJʶx98)Xm4Ƅ2{;~WH˧?k9'(ʯzxh;pW_-{U]*4}袩^Gt2~T]W+ Dj?}뤥Kgޟ1awטwn /+\+{e|1^;mRkʨOYsX뤜Y~?A@4/eF~^ʘ" ^&iz ڝ=3ЇTo3V\}]c^ye=Sq4T}=cl=۳{$'`kt}+ooӷϫ%flL?+5*?Z Nj{8JUhT$~N7RK<9F6*f{UKǏm0XxtYW@1O,b֣ߩuwChpҹ7!@pO?s|l[4W0m>e"^ڦF2M"ի(rUBu9t1V 77ENRە Ņ}٘~4:4V H޶lWWH]+ۋd6"%yzZƺS w],-Ϩ/d;j V%@c UG#=A'7scD8gX]s#Yv+ &UQ$o zi{.u9iSgٳue]&&A:UA*忏}|KvEpk_?M-a3^~y10`u Lr]qscjP/"0<^\:֗eem;8 "67m?pxX6>ҷ$4^urW؃z-Z/﬩1@'t2z4gSW4awﯚⷎQq=ك3dRtz1xtr{qFqǺW}ФϛoU1 hGQ}m,{YE&G9WKgNuZ'}IW:O1vǎ''é}o<ߛ͌I'e-{U޴Njù=p׭>&$AX,ιe*yGl_tZwwG)쾓beKꕠu8!te tʃukTҫyڨa^ý6tץ45b"\]M&ŭ,y^yŘ[l[~=''~ǫ?nK&9q.Ob[UqqgfH[L~l~E`P|G[yd}qs L潾pOh󔍹1_1evj]x9z+1u˂\ZaUW9RK4N蔒:OL(k|66I벊 nzw :/=ؘ֑?SKpMi=Mf{~rՕ=mV4.^¦_~% Hz6&Me|̘^sYԑ\=e+mo9phmn4BS (K3aLI,˼* :SluUoz^gӇ){>&֥l,I.+SRWoCS{>yj&{ U\^;ۦX'x\~dm>]̯mڰ9)٘}KNK@JC]ukG>{ucɶV]C.U~Iu%g.i׼ -enm뤖:UΦzҤ캾&{˧&ӟ^} SJ`) $CC0{ukMShPգgNuZ'}IY^*`LX,k[>M43Uj)gCB>49ʿnA;tB:59LLh"_#UY[!z`Ġ21a}}Ч/}lmN] =dZ蔧N:;9nʾlYICLTh['r6 n_W)2|Ad&;_: RNV\R>Uz`U\&&L}Ч>{ucȶ.V>=O tѧKεmEտ!MڲGWW?^lm3&6fsC|uYGr)OIu`Us|l6\_oӧ5 v<|h穥Ȭ.+#^ӹ˳n+A]钻˿=#k[u?9'+4z貎ޗS:>e^ qj#^ӹY'G%w=r &Mva].zuYG1:͵`e#^ӹY'%w=r,RO3{wg tѩ @*~sV:f Wu[W,ȑCz=t. =t@]m88H 옧.14r9  u ŨdȅNtZ~w:4lav"sRbwmI2ۧ\1uC K9<8iSZV-m~{gUj$wypVUbL\FGH@<YK^.QjIɭv`0?/~\*tj:G}.C ź1C`;VnzLi9ʜ }p/D:f#ս\thp_gg ҩQʶ[ɳwRPv}Cro/Ͻ9c亼97=2NUd‚R s!$[SO^i;6 BO?_5߅iehdrMwc2t˜ytkzzzz:0 Փ(4sQpoXgY3vY)N*:1WjĒ.K~oq~n﷤ *oZg]ENrҡd/3zc/HfڜUɞOAYvq֫{)m./@|晴[hdVOD6Gs"CC@<,3eKlK,=nǩ&yK 2yȟFmcsyc5zzzz=e<.tJ1&S=RLQpoVN|.rS:Őuw$d ӣReпq!Rv=2R"٫  A>U  UɞMh߇P.30eIMR{{ղ* ҭNnwRe> 7)o`ZtUP9OAY^Be~,2^oR8mg[\]SN뒊l[JU@@MzHpOK1G,Y.s8?/aNj[*sV7`~<ܴ2`Mؘ_657xØ|Ğ7)\9RL![L Rei#1ﳿhK.L~hOڞ͹1X9h Z164Qm1,c.Rg)Z.b/e"211[CKf&`4jWNN88[eLi^7qjzz|[/DҬGӭ /NPyQuyXvU&1rxC.2"O.߱srN[[~#rHqgU' retg- $qQWu1{OdqvV8uB ]7>oF,eoctV͂%_&JL`k;X`X[V:jK;!-y} 7Ph _^hhˤ˴ V>ߎNX?[d 9G>O[n4V!6a~_t2N Ef m'4գQɉmC{HۛrH[T׬Oz,=Q5I!qvGC&$li"t#(sV7`~<$ryY >ik6kЕsc*spMM:=4lu^1Wt[C0wH3rZrCYRvL|Ƽw[1IԐ!wi,/ԧNVh&߉4գˡIYyY@֤GqvV^4Q5hңV?rm@20GGB=ڐM2iӣIyCNS*$x?BceN{F7ް8﹍/5V>cW4Vuj{ĔKmPVtc0wl3y_t}Y|n }Uf+rݏ\V3סk j?xjs訁1&_M%S]/OΏO~~~w+@+9D#n*d~rkCn;'{Rz E|؄mj6C?>X*eY6!F] u%URfeV=|!Hn[:ͭA:d‚kGY[OҦG:yڧP?b t+OivGhapo%+t/dw.\t[Vgl1rÝȔ{ڻ&&AIɿ{SgG{]ձjVO0?WuR"{?u+Re_VS:jKyZF0ʗ]!v8mR$cS}ԸMgr3e/̷)M܄ě=&߉x2 A߾Lh2;Nu_B:lM-zCۂP=9 6z'z.zҬGV=2-,H2>]}(s)_U>=Ξݘ_ Y9]@ꩅ-c..@Sc}טǏ y*no?7fsӘ'O͍\;"Ç>j\tx|eŅ1ƼVjI 77̵9wSK]vm`|0΄>hC +;<( k[Ud&;=AVncp}zg{|\}\]ߋyJ}ߘoESc?Mo ز)t p 9GڍSc?_>?C;n^q|ֶ0==5ѣB-zlo[EakkN;"7=Dx?dk"skhУ`џ|zZLzA6t+=U'O8gs3*x4 \bVe, ePԦIXPX֣}9u+5B-yϡ,ˑ=lb) CYkhlrxBQ&[mp =B&b+szj+Y|\榝mexaW3z˾+{?C:^~.ϟ2lTri!g٫1Ϟ}nd˜7eЦ>-sUchŝ`W=zT=U.喕77yZ4gD_%]cHEfYCֵ2f2icK<ɞ VjCl* Њկ52Q4~,EhU@ChkmH{t|\L O+˾&+N,ß"u{;>nbѻ7ƎES( {7>>c^}5W_V}ɦɓYwo3;JQ]8<Ņ]Eurq|{k6Z鐳>vkzMЌ}[mEu65eZǏ۵;( ?~lŐ#YJ]BrF8:VИΙޕyԦv __>M';Ї{E[RvCwb\9a۟U!))ȿ* M{Icѕz]_w #~-O]ڴUkr6vߤÕC׶(fbwwmgK?n*qyΨmyw^'4ٱuMO$}k,NNڲ>{hE.m:,_yE_)9L2ƖbEI_"{:w {ڱZ_ϭvuD☤pUgUgL5Wo"G91ͧ}ڗr__ye>rgeL N8ykmC~*vOI[.ڽ9s~6=5QWvwIbگMW×ӧ2W'X `~2~_d(mG?jW'|?l>Zy>+/[98 ]=_~9Q+͝hNՕ"e벳458˟=zhptK~sc.y"[4ɢ\d_,U}?sxz~u7+yU(}6LUnxc>:;CWu\_m_/|۷pB@~;F#6 ZS8/.tegmONީ_u$=kØbq6Р S7 軴 g{fW<8(Xkme =rtԬsCHNjվ@&=צ1vLS5|dqrF=Bw/qtZ77v+ؿ(>G}3^cxØ7ߴxl?3c>. }3;NLxl~6I8܆YȝTe*;ὊҦCrs3bqWky͹޿Pkmk5ð3:%sQܲb!:+d %|rߓ'v} ukYl@@~{DfɎ: h )kŋ:w^ KUH1~@=\$aV=pa=׽=ʲtխפ2+5SHv\hK =uU!zǭ _{v)R{!s}sk~_w\[[3IdL?}A>YCP6riAy]=hMN"{:d9dCV׹m͍uF/-d{8Qqxh̷~k@1 i9k34Q[ɓ'iStFLNO—~'4sBκaݓzkk>rRРۦפUM}\<~J.MO"`&cRUQg0f~ k{ _0 \4цz,?a[#2(Jճjsn[Y5y:I|f עioo}]Mre4]Q 'nYbNNԾ)vL&V/~јO~r~ǾE^Yfm0^{QMNwf4Y z&߉4գˡI3h߿墇+wcG9pe7ptd?;nMa4vAGɖ?(+9ѤcYq^ RBq}}9KS0?FBKm"Wg77맓tyYU6hn{z"N)Ȏpp_;%L&V~՘y+;_dsȤe pX]gl|t.$ DiУD(ky,wGzQZgԚͬS13U}jgsU,NTe7 z}íXQ5AY{{vzȓZb@@uc:ؚ==å.36Vުv44Qo̙ޠ];leBx:4e 8g0(Ve ^^݀>|"y4Zn9zzzz=ѥlfOYޠqY=. Ӧ&V1d ̯b |'y0ё,Н9ʜ%u7~Ș?Cd+RJ2d8,OY+MEzzz=tЕ9ʜo1Ϟcc..j. Ry"1vph{y1Ɔ177E==C#mXE {eΒt14V;(scç9''㸿=sqaM{Wl렙tyR~KRK/GGͧmc66ڲ77ژ/RK葞0Ƙc>M-pp`cuM 9>ژ4}ɉ1}npqa̓'ƜQĆhNj>{ロZ4k*M\2rUwue>׷e<6ٳRc4S1goQ<ɣlL&v1E=N}CvGo77><>N Lsuec=Oh-bGPĖT2vOOxڐ{ e2)i_I)޿]׿줖Cܱ}O۫'l_AֳyGt9d&&lӼ4ctpUeGCX;aF;~uө~6NAs]mꐲq0Ms]Yp˷,ь4R&>7~fܞ5H=n+C=kOl&xi63sI}VNUAN=2@~l5(3ʜA{yrR 1+LROɅZ::vve04L~YBGoOAyWuh%__=:4 Rۣq 6x5VGY_^j6v#U0D{M_:h=ĩ7/eAi:QDi4?*d !GB?v?$04e,VpdT幋mq;Ԋ!4ߦ_9mө`PL]8;S~ʨ{bΛLJM/rec4`\]AQU4By݊MA&aH@Wd mˏ5N.AA6x Xq2EG2-]&~!w9<ު>**iY 1tkbVj,@t~nbm%ԖJ ѡNmNUfنʄݓI1v<2å2!,#ֶDtKQEk%}_^羳Sɩ&F4eY7fY+V6PycQo!4FKͽWMO] ?V#_ .ʴ 5.Jϡ e0uQ=3V4MibQĞݾvMe =#m.Z`fm2]͐rM!df)ڄP9qꯘò/i/!*ݦYq=1e:ܬemQ|ܶZámG&%9QOU]H X;,\^  \jєmu}Z,Bvu( /SY/l֬&bk}ޒlؒec}OsWц'uI_whyVcM2i;"2{h#RkY=Q@P(ȯs SCeWcUɤzENsusQ~t6˺uU =cz25t֩mL Vva<2W Sf%)?OM(_s-V pMwm=4 < b:-8 Sii[|>׭GN}y(~~FMle+D@~oC~ro'4m_2P /DL;;$f ןҶ hh!I?9,ba_v ɡayqK,>4v'msv8ڨʌ ɠ j#,}{e0bR98j4MY#͉|U@IV &homib t-c6UrCh([=6zr3 ++:)9}m|WۮmTC+ c8ƿeP5Ǚ1iDێO4#tԺGڐ6KV.mkcP.ZhNz=R +;T}8\~~v5)o̢-:Q) M} yڗ/04٨m@,½IզNkGTک"meupb:"rm;iRTYlRPU]1o ЪmRY{ڶ?!q)Vv=Ӻ~I]@eXU~s+)l*SْUuzO[cWJiFs\|g1V)'|U[}ט}bQoIiX M2 ??!Rxpi~?A>51kJ\GJʲ^4qhpdQ'~q.Ǣ"6e)f`Ic-y}*ڞ Yv/oanc&tnr@P֎/1k]S>uu =[,9o|̙_^v| ,4jCc~ f{澿,̽e;!ԑlT/GJ,b B 5d53fڑUW. 9][PڣelUs9X&X3R,@~N)uApc)2 'O`ji8t2jY1=1V-~3Aܾ.0oeN6գmk%6=B&Y8c+7hW֧GGvXM|ߎI|) -}|!4V[L[G)6Bȁ2;4m>N)a!겸hX֖&f XuA|c$-A*cz4gHhX Ϧ:>űL̺}Wq*W6yvg)(Ӥ @nWho4؃Mumcp'E_c'BxY}W1b}lhLƼ2Ts 6eOL]u{{:Te4% yNPjK=8XC#bxgt iG\Q}SUN&j-zɣ\: U(E:GcIiHf%u@_{ _rVĖ}z˪L]/B4Ru>um&gwSQW_EP:],KqY*ԟh|})(k?qC_?&/KlxX1bBe CvNj;G=Dصi$U?uA#'!GJBBEĈM]q\&G?t)>);@*_RSC6-+j89Ͻ e r/nK廮ՠGFaAg{)s't~k>&z)}eZvhF092AmSWNF$i|շN%knm[BwW`܄q'notsA[So։@DUm,kjI˔Bf˞ Mn 4+_i|h{0Dl~bƀɲVwɉ'=5Yُ+V%W[7*F #K@?@o^ xѨ˅*5=b.UR+EChv|}U^C ezy&Uz=/{n5S#2Qcq,1")Y eII@K@?Ԯ˶m'Ǟ0dnk|_'/gnUlև&WQoԔ'@1娬,TkWTõSHT}qpZeuc64n{f"~F侞,ѨZV+4գ>ջ836e](mX-}RIUht09ev u fbhj0 eu5f'nٽL]da-(kկ!xܔUQҩR6)aTZU*b?DH'-i-|A{@-X캚#e2i7!!Vhs?lac1ۆ:Y4(!~cU?5\s}/k{|7[mleJRŮrWSU۬~=i:_$Ev1'^^6l2e *=q`_˲kCrv߈s0u:&Eۍo h0+]H|B\b Fp~ df:.ƀ~لTclU;YF*a4jJ U²6l*;b&:&ivjԔ %@O>k1&dk%٬,~>!S_3>A ct;m)k/ʝc ߘ𤧪>igg٤n|[!4v mT>pbB4ڎ݅1M' OBkzl;6YʦSviW-^- m']e@R6Nh򞶺ژJ0  ï^1ok,hpʆpH֩ۏ2;] RPh^&ey1uJic:Na,415MңruT]݆}\ߐ6W͐%mCl6*H~l vL.I5L۵T}hޖmsoke'[,f9?}2hזjSێL&+GlbΎէ2Q$/u:`W~Ͷ>cQe_6OM{kϭlҟ-q^c@tZIL{{E Ul>珃YjBP*eѤIق=Gwb4ZtjrTFc@_SZDM 9-6MX[!c bSehM_F~^QeFLӘi1QVi#Oϭq%~kt%/hM#&f @lm++`mӺc6vGU}*KY}hfmdg4Ne+E`0`P)BuYs _X&qy)}Hd:ۤNFL t:tsN $6ЗVOTEWkL!AܑXD<Њ{-ɤpAclBl%(Su )GS 1^aƫ 1k 흫Un6l;gTMuѮGC ծGW;!.eA:*s,=*kR\eOI-ypP>xmסۂ!}b3r'+'Ų7=o2OR*{R? nnpj:" ц x.(׾.9򅽽{5cM'nˢg)}H~+dӖ\v%uYpq˫xK1jBϿ_[hG hNc&rs)rZY /K3ތ)Sd:UHN}__ۤvBGzHU>m.1u (* 5:.NbhC-bmV-ϟcHI)5~wwV&ZD[ 1Khks 텃b2K-Cs|OC}R& =YܘТw6~ȦIom3\l)irgU\c8h jzhHqUlH !lᐖ#=УoBe. )@*VQ&p@aU7(UfǐʦO㯣#}Dʯr}vVd\cON*G?49>Z@TOnɡ?'J֬h f}]F$T8T6"]{`' bgzeUeC(t -`l줭\[@Ddvf3/%Yj!40uP6ԥ!)h>~uFXe3:\r B?,?ؾ; Izg]),VfcØ~֘Cc?}/U@0_\QGiSOk_ɘ:-Ĥuh{wWo <TkGV$f]b0kY9T#r7dFX3Lo3K:1t[A%m2@ 2vv)l&mxL᰹9a>F˺2ꯏ1q۱\&di`{ I>J&.tZ'hbg'&v{ oHAp| l j%ۿ룣USg_^Z]&t}x\)r5go(;)LHl-4UpyNlʡٱuR{ڲGϵCihd˒['ڪ}뎜Ǭ>@똵1sy<ۖYX[hdg'LRmU[mJ$Dp8!8?r./ wt m0O&J %дnH_!hmg _S;д]}\1?'NYV9J4Mp骛 ~Yu76v1P`2̫rc}!mO]?׊2҆*_ʭoYƴ2Y*2}Sgs9-]cǾG+bs6q&7F_USڌk !Y~td`4KV::")+W;vv#džg8,&+EB>3L4`Կ9mjCd:Z1qm[:(+38} +g]:7fJܺ7ھv2)VK&}pLWy#XF6_Rܾ La1l4ƎϻXqA1 "O٘]{\<Yd$b~Y(6NMK>x];;&]mxhg9XFܾI_Z=ͩk4uf>Bs[/6-e+5eIƭRCiǽөZmcmCV-/Nb0j+Rhs]&͹2NgdFAF,EVqX} ()i*_sj NU)(6 [Js~o VuNݵb W]_;6)3j0II?%jh% ~L)['e{ۇ{m_k觚ꯑ2:]ǩ9ηݠg1(#ƤEQV"ٵ&J/`:-Hh\ĿNj۠ܲxEǥ*3ЂG3Vk*#?Nv-es}AβA#},Im@;eO'4iZ&!,ks6=bcbK{" e1p;;WM>ehAbBqvV*WfULNA^*^Uۚu4npNnwūuk<.pg V#]c~h1ˌ5 +Sh蜶[!BUSwX߶~nv]e 6+LM&NTei~:oUfĸ_Z;wl`meⷋ3#ۘFx\lm$ lr^hܗ*(O*2}>;K oo*`/^FaėE6W&!TV\(YE2N:_|ycGJJ׬PZ'ߚj:KZEW,#2F]^_Z[Ƙ:w5BNSLRw=78$pw`rroBhҵCOμcϟ*Q:T嬩W1fZ\Z&Ե9}|o59Zhҗȟ7F&WꗚnHC_BvuQ5X浆~˦^H3,NX1?b6Žv1E@_XbxwLB9Vɟ`i8cn?3fsV4P^h!,?I *]d|Mi[M4N60y*+`׀m`:A lR5Z|`4s{ ]],^sc"Fry4QC]Nӯ̗N' i4Ji!ƒ_5?W\e:vfcQ޺U䜺k"MjYVu2mSSԓR&vqͺP5Xu~j&cU>ZkFI~̣Q4:ek?:U}c\ݾpggI.RẎ7MkhWei~j߮usaպ@*ZMV [Su AU7UU+[$|~>?~6U2m^ȎL1|wI-}>ٿV؅SWms/˭9vc G(s?4FlzRTMzuƖ7qwg^R84E&V|eaY`~ھ ת|9RΏAUؘTPWtV׆\*[ {{60|~^ pf첲ݝi.J.nUEorn,޺iw*m uM&eE``wOikk\ƉnCV׾L[Ꜻk"P5"mcgUNe Odkr7ćr6ߚ>erwУLu*]}R&VS0&<ޒ11YlXcx.hoL8h_Z5n(ݚX+ %p/ {i̟LnKZ䛐ݛ ەΘ[c>yc>9c^z)!vmCmfT2ڻɒ†1ެA5~Ȉ|/"^??"~-vhc?lqgk}xf7[Z_`:=1iUSfmcErġ̯N>UJmjgTx-ui!'nRU6isBPϋʃ/ۇR¡+>gf'4$YJWi] t Lw۷msY:U:?\>R寪j#9dwH5j{WcI'b0ɤoc%Hfx6N޻BjfC{9t='Elv+}|HlOǏf ?ٟNf2_)} M&1A/s|Ĩenkǥf]q6M="v;t8):Tw Rgֵmj)!\wCn_%u=|X,OFwsy+Jёh߽[uyFzە9:ү#nӢ16݃űR%Ma(΁2GGzJ1H$:e// kpͿU_,s#T`}צw{ye_9p?.]_޳NOz]vIO^ >dl>>i::_\vm߽?Kt>ۘͺQu2'''ntr݁@77E?u?dgs+s{[ܧ}W&uy8;۾\_ce4ёR~ԯJnk0>R]zy7WüTrqCF4mhwO/ҁ2nVԶIrM/҅,M"8$;<^Gg77xx<>:9.{.ER$)Dp%c{`2zyY4(K"a=?n_\ PmWWJ}[a_o{Ykh[ >9PVJW_#NO$<c7Ʒ1s_Mm>} ɚX7sz>K>A8t^ztG]iuZﷻwCh)9׼ݻω0}6}}S؝}fTAc{t*fyh6.imE'\_?_o3׽Nj4C_=TQX]Yd]Kd4$5I+UX tAzU2e$et]L&2^IeI5 B{$tɁ̗||Iq\āB=!}aj 1/Xr|q@~G"?+}ʀ_nx`M5:5*?f酌N/zf(7eMuʋLV8'~B)R?J6&R'"ƌrxUI*$a_%c}lc;?xԯ/߽晣eiq=h߹Dž#r<mwt3_k?>D!էN)swG=Co5vvWGe'N!gާNKs2ʞBke??/9ωao!'bVOR]R=}4j]b vyƗ *3lǪ/!4βuj{ ϲ\,vd:?XS_pe:3fs׹gP汷RV~vW҇lok,ƺ;}o{,ytJʳq|t͔? U8wW|g{.wic,Kʙ!;Af#rQ΀6 t|wVXH旿u~uކ#v9/bY겯1I?:BcNQlzXo~N2},/̏qdۻ1:JHH\MB|G6zoQ4>u =뾶kugg{o|!K#e7]'9Cë́~}pvV}ȶ gyFȿe(Svk+ֲT}Vw:#{R̜d_s̘ס:>V %CJ;頻s,!~h]~9ZxV]F5o]i<o-CET%"Ugd,dowLI~s}z^\ݶ2d9/KZMhc=̥d${eeגz4kSf@f!Ine*U3[sա.6k!Ώ}='Zrjתjkc)VBt1?xQ^1HACzǺp"K/ГkcmMo AW후44TaIOcFȿe(!שX-ߵkk>+UIfbzkkᾣ^#s=Ru9fm/1yTC>V :&b##}woXBH7٣6 vYn=ľOhhzp!l=׸^W]bmwV]o+kyW{6m2+E|evcܷ-VΦ} 9Phٵk]bC)ӪǬW"?EŮ6uXmgzON+|wdƴ>[U6I]vY~Ck?Hwl%b]瘌ګAAv&v>}\ylb'z5ް^m['(3Fu#lN~TvK1+I϶w%ջ[SYr9AcgRK_sCeKޞj4*5zF|^=k>0Fkk^SY]/x3esi\#WȽj.i\=\HoaJSI:N]z3b:?ߍIv66Fo(nۻ<44MFQԳ1EU$ /K/\V+~~M|'^|IƘM2pc}> c%e^rddl^{}_[.ӎUfnGe#)7.wm?w%)׵C]R=Z~{č}X.kzN>Z`7"N&ۃN.bN@F_9S]l!=WVH[)m}"I\ >Mgz ۅ:]Om[յ|MgPqrb^늵4V%Ǎ-$⚟SWO=7B a"G:™O]Tn?=-fm&ĉ&?Rf)M+I JSMoo)7xdiK< 1$u)V;Uuk/x~< Fu:r;-$siӶ+mK>v|mZXL7\?<8茫"T{,bvA*H>Xqqo(S5*2574^.]wr:)(kk@F&wC&`ޮ'\Ϥ'rpBߧߤ0y:F{VEꘀbC9fp VU^sY.4֕%5$}:}ߧ`]eKd[նiY#>ysq]6\..CYq,Ře2|cܞzϴ3v{@r'sW&xrY},}lO^.w^nSV.Nu9lp@µRnx_D|WR2t}m۸QŶ/3E EQ:vCV) e" 1]szTCbouA;=5ͼ+횦8ވ:v_-iw:٣FB^RNe\@u}8iFS&#?:iϥjQ/Vl\&|faC1sUB.Ju+e9;Ӌ l}=Vr Ih N{yqޮVDr ]* iWϹWuG$Bfއp}wlNc>wM2 ~~-ai'2w`m>YS$Qo_GtͼgK|aIK'-<,]{2& 3b. &GrU]ecSq9c=]uj @]+kgT’ ˜Lv;!@`4b |Z! 3.ti<~.y\C:_%u2ߞ?Nϡ X 7l82ɳ2C+{(ka6^vȨw3yszz1S;b?$>@ICNNruGGJnn4R#MLt;ݻJn_jcu ͍RſOөppC..Z,lb_3@z{}QFJfJVaSG\nǻ\hoj8G8ZV+F#Δ5^ϕN5(}m,u]C}y[G#}{W;h[״Eޟ׆=ejOl0(/7Y8>Hm /(ur=4q۸ 2O\uM&E;b˜gg)K_L_gԑؾ~_\h[l|2x];},o'~o3:l֟ʔk=rdWʖ*ZJIN&oT ~|F ռ=á<V Lf>xPϡ 5-\ںvy=s0۰u}HݻHʺ{\>] /({׾Qx2:v^P_%>t2Ed:MI鴺tnm:á\춵ڙͦz7???A3,e^*uȍY GdIP5ckkIi4t7qܤ8Obk\b6tuCu=~[:Ǐ4f2,J /Y[?o_smŝzCFۉbÖ9{fSDbQ$xC߿dy ,)W=DŽdRo+k)ǻI(RS? h:`m:bN } a\}x/:<@OOǿ^7M7{eD,9+INn6ab MMӉ>fsXqjƘM5ĖP6W2_)RVw&?o_!^o{dROdNicsOh˥NO&vYQfkkssI:KNbD,9'uuO}?~wvǏwQ9DxsM7qsi٨˾ꌐHrjhKN>C2'~'g)~yQ[m)(Py<^_|{C1Xr@U0uFHjq0?#F^]~WkJSz}mk}wJՉ-u(m2%7T |%uLܞqj'F yDzdRTϋUR^<[֩1uyأeLdjm}zN柞B<!Bgc]*KƗϹ d:Ku#2P.Q.uLs|pV{Fu֡I2hg_kܶ⿽UԳR?({J߷?Ǎ4r>0X岸3¾2~)矝궻/1*1}avp܍M䳳kc?,oǐ9`V`'F>/m}ubK}a0R̯[o{{]h-K\J-W"3B c4 ]kY1GT+EuQn%R^A~}.QVIyb:@YmR@)݄޹'C:K ۏ|Rf=uQOzykD̪$}幺 1nvnafor؇yqJr[ӹ+:.BfKu<[~c[o)ſq} b{rnk>aǶƌI=;7}=)dz1ͱ/:B*@媤3h}öw>G)֣߫O^9#f1jc] *#>x :M] N%V1ׂC񣔻qgSwqL]VQvSWB%vVg;ߓJPU}=51Ȉ|YˢD'ON$ D4/ nױ~{5O]7=z^rH 72Ie6frXu֡n|eOq[]'"~׬<嗕d,mqeUp%UfGsN9up476fr]r%}4coYK] t9,TշR_GY7 STӾz`РTqFW%~nm%t)E-"˛oV_S\dXH/ץƊ]ڶf36s8^BNl 9lSodyO::ңF}ż&Cֱjr)s_}w=nNݍ1c_[_̿v/p]'mҹB^kj^&!$FZHk=6DRD).IDATggG|vogb4q/'ƨ)] |_c_snH2оF6cs":}L7Yϔ!MZ;~^eʘ36¯y+uS։!E%BR6~\q2qWTWIMvB?s}1أEc1"dex7&Mc6r)Wl.Uuly]}Mf粣#=` v)۷(JU^ɥ[ޔTu*eK)ms/|#ao#]5:?)}`߆âCF,]'S4tdgʺ<*7"Y]_J5sDzݟς]3J7YFJUg]\ .woޓV9Z*PUS_!2îTڬb ,Tt<9;̿Uz]{soL9mDbZ:ITr>Y>A\b -"fqLfuJ]gcGnvR_>iK/5 SrHTM9%0/6NT7Ř,.3_Oq,'zAvb?q_wJi1.SBAnWLwm*څwgkPyeUvkO'si<~>Ze߹ަ澰~>g);p=3=4\6LUMFއW-3>Z.l*!#S&圫3"^~wc:wOߗ~u:}SF)0v_#6n#NssP⯣\Iy3or^V/X?/rPv]gu lrx|Y@5I|ԉ|$e ~2l.[oU*f65]wfcoPF:^|x;`u30!Ea7fEa8ܾ BNUMR1?eM }{OjPkw}0 :M}܇N_6լy1픲PN1sX =H'xH߻2R'gx<׬tUFx1G}M1ٛ\c4K".;ߤ<0R2%oN}嗾%˒e{]GNz۴Έ|{71 ?fS:u֪%F2l bw؏]C5סS_G|W{o6И뾄Jm~eC97(voo]]N=z8,Oɀ#yڦEUGؘ::eHa2 ki/ 9d[O)v'^u XaG)Gd)u:>˘B |?_.1;TQis=RObn2վ]X+vs̐jR;w1M/ |s̏xõEIJ-4j.TTskDwרر7Y*oVK}O!棥>>$BTR'c_T7O?U>|1G^B?Fv95b?}u!סg?t7؅Nwg,N7 |s%su^4|Yz˿^m;hVCʤv2wq=5вф\Ndݶ!"mQf[<$\n ,os:CNJ>}~`Iɉ]MZ̊;blTqѫZ#`G}*Uh,loL_._GzPO>vGGJgښ>XhOA3u.M&C4S߹gg e{GNjG__7{M~},+2''_+_f<.v{.sC]N{?J34JU]f %?T[>lϹOH?W+}m6Gqmlj? oI2,m77=>G?*/?s=+;ߤ~n^Sh?䴍mUΗz<}''J}[iB#]e|e]Xr Oi!maq?ϙ\.E9t{fr.aq=>u=2hJz>ُ9D*!|Xz"kۧz*x5٬Xc/WYA:O.m?Rl׶f"|>]eutSBY2?Er ~87IyJCk#.8L2?@Uh~nY(FWxW!8m7ЬwU8tI=°"0Cq"iMMsb?U%.UulymT6|$HI<3fx=x:V~-պpX?I"IwWRެk-+vߧchM#9hxޮFה\Z7TO:>o4 X7/ek@OG"M[.CNfd~+mRiڊ9uT_ڏ˔]R/ӪDqIe>2+>9결 z p?;ӯdIWݲ 3f}q>7s:u;TR'4\d~/o A1{O_\#W+$×PpSJ/j*vmxc'l);}Os>xvޮgkyʵb˥R'yA1{Ne6KĿfy@lGf]ͥu:RL{7|M<[v9UYltqPp0cm6*pp &M6䐎}ڏn]T }yKՉ-u`<7\<{s2@qYߘBHu+:tqIqN>+1m?KH{ۿSvjorg1qaweuF^;}oTr뤾cH J}J#fYSM],G`&>LY8*Lz?[J]6 )wM)sfoec'~.O&?q.ҦPeMXKj'y6ӯ݁n0u}S15 ;N=S3&WbaWPW"ݱ+9oH0u]1U}Z-܎)'~'>ĿZJF߷!R6{6oJ=+t76s!)jyex"vr%sfKU7#u9I224JZ^'sH sxΏ%>ϋe2(>kr>l[﮳ h7 ~'~'~'イdUʝVwue k{ (߾^swD~x͍u{:f:N"6*Xe7gW-'Mn3tFh;{p˿ԋ/*Nj.Iޡ&x߾ tnb4g.9[P9]+Xc̶m@l߷??w?"S =LQUF|OTWBFa+[.x|HPBND'@rQXhDRxzf^&~sUr۟d]It9?z~뷶_e{y嗕gWvaFn>FvΝ%sOOO]y{nWWO/B~?m@;a;F'.'C)+oM??j[߷WJ>6oO?{ՕnHf͍RO@S(uy: [r_}Hw(u}:*ԕ>/g;w:>ֿL >ϕ?|5㷟}9gyfJ-eOjcwa~]RBy^>?'?-{| Y3s?dY.~Kb~v9xz[EQ._Y3s?ִk60ƼŢ3Sv}1u6It!&Cr$j/J%r_tZ︗SĿdpɤHM=Mm%w܃N~~Qc~b1dv TJ/O_?2oo8W+K9;wR%~CxO@vq,u9? fRa2dhcQ\JZW~E{ձ݇oRճii9l?*/ϊGJ+_U>áZ;'Ozu^yE/Ի+Jm3?nobzZv}J?cLKn8tfSrq)Q YlUacs5Cl+K4HeRvwg&|ӏw._9"~WUI\ ӗ\7QJǓ5oIp1Ho)cos6"_.suJH9_\c0QA:N&9e1#~ XH9vڝ&7i}<8dr%coS2-b$Qɐ؇d`=}gQ*<;~W"_ԙQ UeKg:~r}SI9&DEHu9+[= ߗ}>LH3w"[4\gVőlY.Σy=,ur5%|Hs>lK93ՀeO9F礈lF䧊:s%9b6ԟo7˥B|<`<w3&ӋKC} 4פܶH2!4;~~J>6^SZEF:Wr$SvF{D+(kԷԃ_3/cIzRʟOHM;Z_7g-,JrEe*~ ˞F_FIYQ5uua;~BbjV1nw7cǿ^vժx~E|3q~ׁ$ER6muy2~:*ЏD6l'rILvuL+j<\Lm)'VS ȗE;iBg3@wv5s$ I/E`> H vchN̘wW;;;g!?sL4̩e@_r9tF?&3Y/ /H1|4M&+>b;ό%b22_d;=,VfD2?]12r}TSo&`{[De]?'_~Y^W_Չ}7;鷿]V3;z2!$E9|>߹lϐຮGUŌ{:[]oJٔ?vEiFxa{2>svV:@'푻ex*2ҏ,;|^/Ewo|X4mw\9j?doG_\T'1sK˹)ys|׌ s٩ŷ?RzOn3k֥sO"mT]Cc/N6B$k8;ӯZ5KN!7U~9z^++];Zy yBoo_K?xGtkƢ\~g.eNW؛njfץB/R\`uPh.žKe~#{eh2f"lKy̘wO|g<_eR3Ďemo_}Kq˜nn8N۝eSlo!, :'sԋmܲĂlmd_Ga'S!tIR$s>%]Ϲ5 ;G9?՜C:h2GǶ ξKfS$_|Q<:~Ód q|cө֫jvfmy:,my6S٨0ǪTsߕT5J&難^Wb? uF{2\F:K}IVp?~W2_{}},\ꄦy]$u^}5,SEHB%[[U3E d>wۿ X.l_ԡnH=?dln v'c7^۝וqujaw"ٜ]/3Szw1~IR-~{?fe\o}7a9ƿ\?M^pa4kR꥗>Uw]rS(qoUO+g2Qѣ=RC4҉哓oKnRR/?G\hTcwY9"~ <'~'~'~?OAO@j?Mwg'\?? ~D~OG`qس;IDATxw\ǯ7{^ =PsgfY4skZYV49Kř+Ņ 8w8 _}}?<@CS 93*jbW%K<=##7/;;!)NR*B<_thhh* OO{{?`,⢢ y[:O0uvƴUW+>yÇzW/LvŔ4$U ?N]drmGE!߳B'1%#O[:g4444˗/_9s̙3qhc zp~~x8nٽ;_xs0KH4mK猆!qƍ6׻qq'N8a__lDmƎ;vT~hw1|8n)h,-[ѣG-#ܼwI"nm۾/Z:_4#G#*T;KX:444}'Moo\.ny1 S|O*5 @KJd\_:tit?XN@f#22"hhҟ6F!$DPzjU*Ah hܼY,vv YҥK.]"d4#9rD2x;\n򼜸8445q_h; @`mwZwyӧ. eR'lI7o dQQ;wL ;'N\x\+++K秱zp4mGiay!ΝXz况j<N Fw 't:L507;RHL|SL.l6#vt>vP/q3|  IIII:݃O&'s<ѧOTT׮]ZF՚L6ΝJeNNvvNaa a2}1>m_*__~v{(_,ǎ-\o;!!M&p8 O(xvv\.-xL&vOhF)9Y*j_~IJ*-hrdZ01q ''z^:!?/M0jԨQ| m߾}N nݺu֠ &d2cb|}}}}}9++++++&ן9s̙37~駟~)/2ǩҬYf|55БJKJJJ {?~XV*jO ѣG},78q pp\M)?Զȑ7ҁhʓ?wn d:hFh0:pe/ mIS00&Ӧl-)D"x<d йs׮J%BTLr\n2Lyyyy vk,]:~YY~4KV^^J$\ , :FZ-`tZ-<9115Uڰivueۑ3z7k֬Yqq+W\I]g~~Eדu5y%3ߵ޽'O<)3 1u*S S|r=^Gz1?mda+n}ЎjjA0hjB=sNN+>~,"GmWt^l>}o{o ReMS7`%ԓw׵[d2+?wԕ+WݡfaފϏ$طرcǦO1~ȑ#;tĚBշUTf^^ϞefffǁgΜ9 ޳gϞtGR^@a޽%%%%ct绻6iܶm˖h48f0x<pL1>u@ys??ﯿl܈%wܹϘbfX}B~RsXXxxVb1 K>D: ĉwGr""$g]L4r;E ֭m 윝Z6l~A ++Wڷ߸utwt|TjhK-4>}4q3f̘Tx֭[?^o9v +$.) ׭;W,>{΍o311l BPbt:N@R`0PP( u_ЄBٹC԰0̇Ão+h!7 ,dwoN<hD0BC\м hNa۶m۶m+p r7o޼ys8įzEE(7pU`b& 00( e32Lٳ ٳݼK~Xl .{ L;;`رhd2lGhJt耎 |we4D\^x1_0O5]㠲v|ɓ'N8зoTTT^|y TlzvرÇŭŋѾM\f0B@ BfX,E"o`KC RR( B! F(WWj 睢~|^ܹ~8hРA.X5Tà> Y,PTƭ^ ddbUE66u,#)*R)sxM^6zi7-짅dBy;Rk&Ϸ{||||~8ptunIy0B&-:uԻn޽{jK˸ӧ/_|yW=Y,[[&@PjX,0  յI.@./-U( v11113gNVVVV3g8o-|= Q?gOS;><>ԼyxxBwiiWnߎF7nn+Ѩp8\.СÄ p8 ɤ ZJ ۷nM܅sϜmmzqd ?_*4hZ水9 fs8@۶!!!! g}N~:g]q옇UDGqҥV `0~'FFVoߒ%ŋǎyxA ZhѢEe@ 2ۛz$c^^^^^^aaaaaa6FQOܺu֭[o߾}6$ba3;̗VÇZ=є>K9SXZaJ"`dj׮ nܰthʃ ?csϞ&}a~|>c4 9PZTboR0t:\@ %]S f0< `B!ݻw۶<{>[c//ʕ~=nPyQ f7ubc#H$,8,X瓒V$DRqqӧ_NgijƼyqqݺS`))r9/,]?"jkm ެHUL&{Z-t_ i \ד':@˖\.dr5i8ŝ={ٳ4hb19b.ǽuӧOE!?JL'Ox?DFMe]4F=|x!7M4l(7/6ݽy@ #'Oŋw˖- Zۢ hNe˖-[ָq11^q\.3dT*Z- ZrӸ\.ptttr\]\'O<1,3gӦΝ𮱱˗OpbRMMM&חc2Fw۷K=z !OgD_ZRNN HWRb2ڵ y߻S^o~]Ey=^QhjBQZZZ[xzzz{׿?:Ɣ)_*Ǐ>}]Ĥe(^S mAS,7g۶Cpy*ꂛm\ A;vܽ[ꥩ tUun=GDd}CѧO>Z:o(z6lذavڵK۷oӦm[ɉjQ0@ ƍ?eIS5fϞ7oilm//'3gbg_,Faɖ.t4+6mF:qϯcEʢg }0.V'O'DD@W*ڴ1c\\Z@WrÇ-JO2dRZ汴9#tXR%@۶[۷o4n܈#F?:gA"jjZ 66lOpp˖"'b fDT(>}23=wsg|V۪+W[44 ھ* N\75k֬YN!d4tVpC|ϏH$6;&޽$.&fM:u6lŊ .]/KG1xp۶L}aVR1ӧOйsP#L&ܸ hdc# EE p# `tl&._c<~@/ow^ 3ϟ?չsΕ燦f(JR\Z*T"&.r9nm|5t mAS95:јLB!yqWUCZ2v̋1 d25k֬YDV%M-ӦM6m=@.=DGcE"t~W\д N4o~@\O Jvuy-*o'|@#j>}ٳggɓ'O4rd߾} DoƮ\e˖-..isƌ͛6D"P `42&T*JRN/J=6KL?& ?(__BgQ?sSLcb8GDGuՑP8_RsLG޾=`Hdg VVm̜FNf': QЯVc?&Sv6㹹xzj5v,Ѩ׫:]iiz:@Nu&Ӯ]~/o+s<1y<̄DFlٲ%--QO"owI$Ziiz}vva!ۧO'$?~ ռ+@֝;h`4>~nwo gώiac |~IIIII 5?J~3f̘1c@߾}[{psssssXjժU/^xb˗/_|trrrrrrsrrrrrMëh k^dtqSCB[[77GG6[y3? U0 ɔ 7͹\>z̘ev$HIA4~ 2f4y 77ן7zvc8zzLAAc,\($&nw KiS"BCͻu-̙ys.KDFl9{vn~ *] Ri8`2w>CC1M?>o+qv(` K筶 b8/a0 RnK珆!b.ߺumۨ܄ &/lڴiz^O"lr8 IV{kq+Tպڵ?ŭٳb[[GiӚ6 K pGDz\ݪ66..lvXX>nnbqJݻgϮ['}Wj?{{(8tãY@c FAvZgJLc2U*GG,oӦ|~ZZRݻ=J`mwVЭ'-[h(.mi6mڴi&~ٳgϞ={ M4iҤ ][)UeQ~Ύhӆ~M?gڸcЕ+'N|91|qnLQG>y`)h>4 >>C㣣=KOɔd2 @&S*KKx<h{l'Vd0͋5!wrssr||vHHhhp0@ +WvPnp?a:v,b17z4^WuC4lmv￵k h޼Koe{FPP] )SP~d2JA;z@U(xlX~Q<*/'OkתUVuݫ޽_}%h4ϟK\RQB~³g=8h|}>09y&"vvK{ "4Go;_*E!A X:\2jԩ @2/X[ܽ?;slԩGFl9o^ޭ[OYquo'%ee:^?s&\Dϛ_rʕ+|h2_%eVKYBjh{ ק@W"BMH$vd[h4@Uۗ!Cp>,:3[DEu޽s8zܹs,իv+UV5oֽ@`mf3d\룵f FӦ rT\~ s۷5j˖ ,hƝ;9}:H  ^S^Ny^KUx<++† [Z`ݻ?U+Ɋ[U2N;w>~_~ty*w7.22222'B@M݈_Vq g뼠  !!1Q%vߓ'[Ҽuw\ u  F:FVk4G(oٲE __+ױ8y#F>|pgϞ=~Q_U;~Ǖ(>±|~+?H6 dի[n:wn߾}{>*--=== -ٳgΝCdžx@qqqqqqϡ,0L.(B6m`޽{rсжmvUzF zI~8;* MY*HW6 c28͒@x7J_pH q\Oa42d@CSu5P s/XՄ~~}wb05QSyzaڽ;毶r^U!~ij{Wy*Z>A ^~8{u$sg0p—l7kqjjj_۷o#FA5[߿D2f' `c#X[JBգG.\r*@HH@@IIIIKfe +VRI*1 LLLHweVBBZl5>YY69n40dBFcF;uZvd̙?\,:!\0<7dK&|u/7 }w}`ڵk׮e0l#~ Ç׭=rLV?C4v멪MѪر^^NNVyY!?Y2'dT-"Y3.W&KIy|ҤC.]w/3-TiرcGK9rܹsrK磡kX,pd0 l,51+L&Ʉ}!&>b/0{ƍ;~mxx >i@zzq 8_iQQl'^L#MU%ϣAHߑ:ycFbc4>Pk[دjZ-L/Gϟiiiiii&؊tҥK~…aaaaaaDemtM&%ں3m=zDYRիWc~6ų6ma[>{)Lֽ;(:٢Ep@s8UWDEjBA?u))BoYmܵ+K6>:Fw=cÆ 6lꫦM6m4&Yf͚5pݗKE@2͎9_ڵJiҤk.y5l6 p~۶͚ Hv=`P*QSB~"D p8R).Wc9޻wddd$TZcs!~TP*JGRRRRIR)=:Ȯ//j4HOGG؋DDPsZ-_`baJl6bp8hICuG^㴠fvcƌ3fL]G kcǎ;v: %/__p]壩UmGllll^< dr\?F.@ :[@w޽3g:8-X`mmmee  |>@vvAA^H ]DFFD$$@"5jjj2ΫhG<hu#)\.喝)?B۷oݺukJؿzEx߿>"wwy[FGGF%L-[o닑L4yY`Pj1++?H3gJ$.͞eb`Ȑ,Z3JRFS 4h 8Xf͚5kȸ.,,,,,ϢՅ㣢ƍ۴I,t~ꊳg}4bHOOq𠻻%x_ջwXѤEEkF*˩p?#"xkir"KSW~RT*ݓd2Q"H$ ݻw޽;gϞ={,YxŋbJ'b$υ ۷o߾}{>  ^tdZ_iv{Unq,~uPPvz "3U6%L&bu9;{y5o>mZRҵkN?p۶+,^vnڿϻv!/P3#:FQg0gN6mڴi}KJJJJJ^qUq@DbR[(X` "#7mZ:&tK{$\I d0wzƍg|͙3-[$% 11AA|`4Ca=bx"NWZ  < |Lw@6΀')ޯ @K}gƺ}ٳgZWj,B~4 $2D:6 qTP{un2tCY7P 2I]B1T"^66 QnT<oz#={ڵkۯ_~{9r@@?Q-0wukV#_eDbeeep۷oӑݻ=z믽ݧO r RZ F} V<"b D&ZhڔdzH^y(VS,\Іo-[wJ"d,FG`'0zh7tַRRMyRR1FCm1}< :NHt˖ƍkz6K }ڴoQ*[77?M ;w S؟`2G^d2d"@,hl++[[Hhv]I99؞qT EA\~oe;l6zJ%kBJ|SN ػwǎ9s @vm۶m p[nףGG~~8OMp'NP2$***ZP.. ?~Ku>}ѢE4O/(W=ի78'{K$&z^7`ү7t:`,(0~:,^a2=<ڴr_6 GK綾jL2eʔ)ԗK#u}`Exʌe+NrN/3Tb0е:> Mc`ƌ_~in`_-vOxL*]@7e2[P5/V4ڵdK翡w}wVqnN\__8~HP_[BuCZ7^٘Mhe˝;\.`4n㏽{ NNb1U[k,^o0#FGB?hAmQ~lwǏ?~ܥKXXXXXi>N"):e0>|p֭[nZ:-----r8͛7o޼9?c ɄϥUєF}Sy5.1v,q2n\&-ZլYXduqt|^_$P$a2z6L,z޽ŋ|-ZYqq:WZ:o 7o7e 㽼BBޜpl6,=xooذmG=}﫾b2F@WT&Zl<ҥSL&jǎ? 0Ew Ohl<=LHNvurTߠ;-'Onٲe˖-\ɽ{ݻ޼y͛ ţOO:uԩObÆm}|0 CR)פ3 UCk4N  FCfδ{o|k!3a2!!zӉөTLɤk4:y{%%!!K\6sfNNryxt J$hIpB!\$6hIHSTP_o~؍Wq Yz|Z44|Co}m0/7 ˨P_oY?^E 1 "DOhpuesՌFz^HCP×绢H|4u,sGy{XNQ^V1e߱c 8:P23?D"WW7777WWww[[kkt 壩uG|wޡTZ\\\ 0|8 0. 9եK.vv6666? Л4quuuy#Ҽ"o޼y޽{grt>Cp.W*-***b0|}====zG<둿zc0(GP..NN..Ņ,Vk289۳]kd޼~L&`̟1111tKQW4oweyxXY}R)G?f8.@( 51Y u0& _HNrL&rT $G~ݺup\JLֲ%ѣp!Dma06ܸqO?ܺӪU.Gsd%%wo\VX}?|E ǎC^HL~]t_'R{zh4 ōG,Xӧk|ڵ˞HSTx^z>ս{|s.]-.oߪUV(<ԂD"\p֭[rU!BPXmNEGGDӣDB5`P*5:+ (sݺɓ%˗Ǐ'҇ ݞ?P( `cF~ז}Æy7;w5 ٳt:A&xT46vꘘ7jty͛'_tҥKqcHȡCyyZ'Ov숊ٳE P|bV} 7h>>>>>>ϟ9s̙3l6nSwm>nh F۷ok׮]v8;ٳǏ?˽`A}o˖Y: 'ƦC<⼛V*;,k֬YfH+Sp.tɓ'OTGccM6mڴ瘘7SSqk˖i֯믬l.**)pMQ ݈NФ3ѓ'&ӌxoYf۷-ŀ:yyk .h pn jLh21l6i4.^$ܹSXB Μ-[][z8mM jB&ON/ݤ$׫kڎ;vhӶm``` ΝǏ? ڻu 8rŋƎ4hРK p>_о=̽xGzhFSm: |S妡y +pLj=0@+祐?9ZXPȏ[Ux07hA]PYcV|1C b|W䈀 kFE| ;r$d2F{`Ȑ-޽[f8j0 dQ{oԨY?zT`"lmu[>'M={=z/]\\\]֭[ry<a0\]q&99555 0yB!::S`@AX,J$qJ߹fX,"&$-{L3l6 t {`ߵPWɴiӍ&DD,]jAa|~>nMux=L m0Q.OKB`ѣ?…GF<۵kNG2? Ʒ5"~rwu={rsSR22~O׭h.{{[lh5"V=:R/ ʖsuvmg۶.]^_B~Bt o?wŧOϚukt4yϟ ዊ<<<<<<\Ar={2ZK|>F WL/YZ[.yKľB/h,㬆qqݻ b-Y}܋„Ǐ'LhA ^9ԩ=ZͭsfICŒF#pm۶m۶mhްdzѣG^.hEvg/^x"йe_}%%Ϟ] `k+t>>;`yGQT80ÇW^nCthh۶lvJʽ{o3"Z:5G./)Jrs32Y,ww?@)55)?Ϣ͵kwt튿x <fdggdH$|>u;vDjt:vvl{Ӧ<^zÇd|3kc}hpPؿ-3{vsh[,իyskk;v,= ^Ϳ.j>nѫVVtX\|X|Ξ=gP9;Ν={Ƶ_/oP- F2_ l^UzN,&4v:Qq@GS;lڴgϞ=s8l6;iӦ '`d$"H@& F\4,I=AFz=~Ѩ{yyy ^֭[g4~g}ٖ~o 4vݭLvvw~ 7h |OϠ RG/-   NyQߧpo('Ff+`X͛ N*LQ; \WF WD11{Cg%o)S:t;@/-}*F4++/@"P*ss/]ˋ \6[&PKJ(!~\@0 aV]9s͛cbƏ߰AٰﭱS8a ۷o_#GN:u @(l6pqqrrr8v̙3gv;ݺuСËT/pW!!0arrr2@q1. ا֕/M B{QX\ݦͻv (̯)ġјNtGI$.ǓG 3{;yRRT]0:|Ç5k֬Y3C:M Ǐ?T2z'41+x~NsF61 Ã銋KK He6hDekb&$&TPkC;N;N[dZ۵ޗzMCׯ 6>OERR bc4#m\Z^OM|NzP+q^ehTj Xex{cJ[|Ђ׃2h% \WoLFcYCZ7˼y7w:r$dwd?zҥǟ?@-6m񉍽pɼr ڷ J\Wߔg4X$"{yv~L[mQ/jZVd޿,t 󢰿"AEO>}TCφ ?oV_Lq&g۶:Յ`D"[Y<{+vߏFLg022=KI`2Y,6ۻY3K۷\pqqqqvr[:Ww8kWB!֔_+-JnݺsC^x\nYyKۣ=GmCWdBgϴZ.,+eJeg}t:{{T&{qtBf\dؼXXтPS'N>} +zܹs)!elM6?EE@"3>>>5tA!-~EzT:g;SXXXXXh48B}ٝ; Nn]V!!NNJ%5hP(jhDVvvl6@zzf8`E k[[ X@˖[w 1@~~Nӧx6}& zhoSxƠA>>mFGl6R5<!7iP;g|M^^BBϞ~ׯYc7X!0`~zjor|{jo`n^Qh^kkMHHHhڴiSP)q**JEhQs 2/J<^Ts\. T~i^/~L&7j2qg*դI7j4jX!@SvڵwA/*qyѣGO0;uڀwn]>thd J 99(7:u9s ̙oݻ7:`jUQ@ i^Ŕ)SLB7v؎+J}4$Ѐ5&?oHNF!Zu 7@x43S*]f>XKl\ܒ%K,YB֑̩DC;wr`p8֖+FYAٴBX9s6mq .^$vNս~X&2mpqի׮t;wy St?9#xw}up?[=wjoAzJURȢ"hj5ڑTmsΝwv|_HHX@ eFNV5kw#W{{}~z\AMKKMMIQ*u:V?cѣ7o.k @S95t,PXpj1_|dɴi/ONzU" 8P.xi)p'`yʶ ۸Xkw&&(??x(#k&M$':سgϞ/#GZߟ0a„W)$޾*!qʓb@ifϞ={캳4L&qÆ|c zNzC hj۶e2l4hIڷo@&>| ==#3t$',@zzb}VV׮X I$MZMTJB`4p8mڬZT:χ:5jԘ1&-?ݾ}ȐݻwﭡSUG= 0fLlj'Nv8g\~:{ΝǏ? C?\vZOSQ[A#^_T$J<v\.:DblX,X[cJߍ|l6 I&NhX,i4()JRd2BJIIMMMh.<<<ʯ[CR):"QW!+++ ~ W~"/H E"6`06`TIϟke`0/GVC{{!xdm6x0NN/_|rx_xCךVDyzbؓګMT"׿lY36'/]z࣏ڷwv8p<޼N(w{`kVNB).Fw ',WvAjT'=‰ZFL}j'33;;;۶mժU({{++&/zd$#?qK--U(Kvvq #_d2X,ٚLphD3#z..\RRT @H>l7Pq:u Z|]xxTZsZ 'Yk^/Z޽Ĥgd<} ec,,F[H??ҥq(-*֍˗w2r…(0ʴ4K(tq`? 0\.Xinj~hl62x%yCy А"qZ߰A}\ܩSN=zZg|“'T6L 0m  XɓkJ67Y,\Wg0NvSbtXXxŋx}:[Ӧј՚LLV[rl3&_ݹSpmmNeX!WzRf޸ciӸ\.dg+&N|?e Lk׶mۦ ϲڴiӆyM~N`0t"@*5]]ZdR*q嬲- Zo9 7nlǏ`lٲe֭ݰXM4iR֞SSSSSSM .\pot~~~~~~@ v\.ˍ7nܸqC ]vڵ/KS>đ=5P?aʱ Ó|҂ס+ |>~''dr ӬLB޽}vvVV"ыåK;vGV&CB )!?~rr<ݯ|}>YIֱϟEEz=bq8`q4O}v}԰nݘQrGGOOq@[hI,(P8K\ !A*RRrr<=1,KJ4BD (( "#7 Je2,$$##;;;{N>}z}\zucCjG7CȑQQQQ#F۷/UA~_y;Ν1_"ݎ1E?}`?~|ddH(WQO hooo= Zn>'lٲsΝ_ui?ϟ?@qƍ{}G͛G=iA?MPcA?*cL *ښ8y;w"yP y΂{w++6j5Ν %],f2.**Ѓ>" ix+kKS*7rbS{{uǩtÚA  Q 'l|>F>1 'x}= 936/-$5 EIsMS5#/x=Z ۻ={'p?v1ZijZ@@ӦM9;;;'z#Uu|4kÆ]vSggO>iLJA &|QO;.$]?RSөN:yCPDDxxXz, ,QP؁^֖-(((86nܰLHT LS II85U3Z)Nfm`m?PPbŜ9&z6,:z$?[N>y =sCr)W`HD"~r~ '']:gΝ?0dHLDbccocoҤ #@fAA ENݻ2T @?RR^%++ӧo?\f&z-Ͻz4GG>GٳG<(*˻t ''5ur(! NΝmۺu[5$$&˫m[6ϗHP&p"^C*"de[֟0`@>}9M=S۷tիWy=Wv9ĀcG(LM&ۧOǎ;RzubopV|;ѭ[*H5āU`{(֭;ujxѣsrhaۄ i[7ѿ?{ٳg__~訔گP( ٹ3/////Okhthaccm-$%=|/,do/:8XY8X/Pc<|Ko=ƿiY97M1@~~QQi)@NNALPZR-͛h g2u֭?@todBGzF֎؛M?Al6aQ S!KpϘQ^ͪUVU|r&gΌ ZPP& ֯:޽7bgפƍ& |9%/-U?5\.;wVFFјK/qDR~pPZҼLWqݡqQѼd2bbtY,xegv~4ڵٳ\dZ]H*@q1abh۶M>ʕk;>{s e7ʊ]mZ(xQA7j5G.wӫe~94T"H[nݶ `ܸq> .nƍx5 n"07sB1nѣG=Oy}Lͥd}$.nݺu֭۽Qu^UAmQ1 U>nnD؟)3Q&"WDITZXQBݻJ,XD _o䓮]q2>߿e˶mH pP/('dffgXYc\Ft?~\7k\ hLMMMP*u:N3s>ڶW^~RjB ԜbHD'h妩UoTy*ZV\pmڄiڮ~E\. Pݿ /ϟ??%nԩZ_PPj`004e&mW[<]&|Xh'\ b?AQ5kbA,6RRЎlDO(ȐsrU*Z & D"\+3nÇc}ĉW~TTTW_Y}6(XEFy!9Vl|TZ>CEaNv RTX[Cw~DEֻlXnXAR do~9Vcq_ף2 s~7b)=a s'Յ<܏E; ]E덆1OGcj,g0(Q~K++@(D=(0ٮ|>  [6\]\& +K& e.dh4xC MMa^Eϣ+Ț*Ay<)$u4+ldʾL^tP&ii(/]T:͛cd"'ݹs(8EO~^_Yh͛ "/ kݚc2qX,L1-z(w1rBM6m׵k׭鰟ÇܺuݻZa)[|6.dq!e2}*Z,XdL?`i hZXlm Tb?Ц H6?L&_߀"^[D^OG9(_VO?-,).J #"JKrݻ7 mՊZ-*Oxgghj\зСmd/S# `l2X3L&SI 'zy$%]z0@IIQQq7bV6]FNAJSSlmף_,g\dpTSaw҅x'{kkD"()r{ݻ7g.]to>O DHcǏ߽ݺu^ ߯Yk:()A^еqݺ'O]{Dt4y199R)-z8:::::.Zdeeeee5iX J%.5& 4~qQZZZZZΝ~ R\.ME*HD"  r"kkpqHlm4 s^/!ɓ_|OR|;rB`>  fprQPDGVɄ1^j)r}|<>`0˚``夿WSIeu} IKCQս?mBCSg؈<}Է)۶?iӸqx|Ĉ ><)i(''[[gm>l+?]DNOx<Uӳ֬obEjt:bBc*V4/͛\F3b!V7i2r[:_7oIEDpW޸R-Y2} m۲XWܼ`@ L߾}D*@i)'u:tBƩh0L5~/rƌ~ڴ oD!aJku:kL85t:zͳvڵk׮\9y2:Pmܸiyj*@˖Ç99Z8:>~}+KQXw/>-6mTk^}}0^:!ʲTr{{|qu}y~}''''#yٗ/߾};v_4f|``ww{r~0~mr8:B!x6AAAA O:tJh^yFj[PPXXX g6)~y?^xUV_}sC`0\_S{ UXOZC/%<RplCؑS6~ 1NN|>@V.#t/X۴{PYw|y \iAR;R%~s# H(lJh> sO WJJ,+do),V;.`? =l)h4ApX`>5Ǝrgo VVdc4;;g2   ǽdO"qqAyz:Xдidd߾ׯ;g̙J kAhZӧHR)@1"/:bp}|ڶsr0qJ,$vmmBuWDEn!B۝9u޽-woB"\ jh0c{ }LԳDrΝW}dgGƅYг3/7Ev6P@( ]pd}tcߞ`2 ( y<@ xuɓ|jF(pvqaͦӧϛWWb?Xb}@&P_PPTT F0pE""Y,\f(NNbP(nz"Pd$JF#:^ois~X&NTd,JeXU5QZcʔ)SL`llllllë7hI֬ib<[[++>ɒ:uɴڋO>|Rի3g><Ĉ_~6ʅxȑΝ>t?$ǿ﫱2wܹsZ[/?+.nٲe˖-|GM&hJ8U*R6v}-U [;VX(k11l6fs8Mu3oltxDt옥UAA?h4Xk7o*?maaΎ.X٦ j5%1=`2QЯՒ6-ZkW_h ͝ӮPxR`0 rV 9plN"qum҄`<.-{~H i߾}|sG!!W~…O3p`{KXAstNڷoET>Uۑڡ Z~+gSL2d_ܾ}ϯnby(֭[}k? WQcA?J"`c+WJJt:3|6 plQVGX4"z/t(A ,(Qٿv#ΛwEhDͨA5:joTD__]!c0^: '/+7MTOL}G>}ys????Wߡk׮]{>= Yf͸\"_HF.G==ݩZ m\|IDATla/z<}je#71TxbM4e1 b0`kө@@9HTv"dh0KMS;XG\.NYf͂ѳ>>>>>  K.^xָ'q4@Ck\f6RT*g@kшNBj%%͚J$qk`PwV1fX!`(..)Q23d2;wΝ;qN{ѣ>&%xH":py|>ޗC?f1mZ} T*\j{w aWXN2[b|W*38Ae`o^.ICL͚mggm-,Yү_ǎ V+*T Vk7LK_~o^?bĦM_|~<>hXlo{̙#F<| PTP<}J͕2cy#Z5VʎPF A+(%+7z=-[nʒ>40ښjFlm1 M&hriK篾C Ve"#۶>|XY 0E >@R*U*ttM*/?##++(ccccL{wT+ mp3bbA rE&3DLIb,?޽*++#[=< Ǎ Ѻ hDy.MO?OrܸIZjժU+. DC^:thٳ>U*mlfD". 7oH֭e¿y,k?H _g;;׽0'';G=*/[fZ_UΝ۲v7߼yxxDB .7'(Y3777I1(F@[C}$'?yJ w7i!b4=VT.L4U~"Q v.]r %ܿW AA#F 6l뗏{JI).....+>X,S'ܻ{w]g!:urppOucZ& 19̙99cgѹ3+8:h4juf& \Po3C$juG;tBUC;/ 2* Kоy0coȿ?ֶ"-j4͛PTfaB8+VJ>^vڊsktA*j,g \(.(jFGG\))?XYX LV~?GM\"۶p$ƍbtPz~ӂԳ пrF'L]#xϝHIy@0L޽?p xFBU_p122<<<ׯ߾}vW(v޽ -Ν;w*e۾EAϘ۴ jjW\l0<qN G5kX`߾W1bӓ(++СY{o:_PXXZ1u*x|>@JJFB]PPRf _-; 5k֬YW\rʁͷz  HdvǵUGuES5KH0ѣyh__c\62pFĄ]a&J)(P(4`0.,.~geP|Bh^Ӧ~~l6JRj_qiZZFO uNwoTh޼͛g ss1c~:u.^,.{d2|Ceg߽{Jyvvnڵ ҥϝ6ojѨi';;j%|A>˗/_|yد?t[nݺu5k֬Y3'/////l6ͦy<`8d@v{do`02kj4N'AA1}g"ի *,i,T.3R!Jy{hIХT$'|ZSd"ԧOSRPogW3!?)qmsL\ܨQhߢE6;  HdddgKsjR3G&vvx5N 1={FGE#Y˶6.&6::"妩Uo"ط=zt޽;SgϞ= yvvv693f̘Rj5[nJ׳'^WѼ|O8hժP'111118~kAL@Lt]ZT{PezJu7lْ|m;mPhgVc zH5:|0w_70A${l(T1̮] +m}tСh?jYގ?* ;qv*^߾;vp$WQС=zQyh^N(KJe_QSQx-5DP[nm۶-{}vMC2j,规j 2Y!.N-Z,|__E xF1c4Μ),h23ʗupP='OZ7T^5D,tvuE,tY3*{qBerfz]wV"h׮gH6rr<)(% -ĉL&ObqwMAAaaNNJg&NNVVpX,IƦysg ZFp(Ā^füD"jvETt^Ee!B-[PXkii!!mڸă(-Jq QQ&?w;Wgϒr\.+,lT*J տHD9z9&Mҹ\xbZ*`YǢӬ 608 ~&AsRhU$%4ɓEEyy2٤I"c0Tৡd2l6@qq^Lc_Ju4{aaaa/qջ?lX$%^jnȊ >uY&Ѹa/޻7t!]X:F3&@QB9 ׭aþXp߾qV2G|d߾9s_=ݰ /܇x8o\~Oo zH"h]{mqn.ݻ4w%,-A{l<|x܃rqxwoL̯st\6I;;hqU9ᢵ{ť:]mH5=)Ll))-߷n8T_PT*ЦcӴ4@*5֬i< >qLk0,Z={k?_X2t/L{JfZb_~ICaYg_o0 :V;ujHH|>cXXdɒ%KFy-[fgdddddPrf*P]PyAFcecJ_7Q:Ahh. FvĈD/Wߏ_>N _-ewERltZ \p8ϞԦ.^ :<7;0U+J,lN.B;wKKs'11-''C.h|dRt?k„ݻm{ll;Gy .!aܸb-[BBllxmCIwV7˕+W^ PTT\\\ 駟~J=')||||~|*mҤI&MRRRSSS)G5-ͫ~کS))))))F5o޼yNUG{P+ cDž .\pgt~~ 899:x#G:8ٱX%%Uu2L& PXXTh28a%<{vuJ%9$sv #u32>)((,,, ٪RϾ}15TZRRRB  ΋*s*bP 壩ю? iӦMBl J"zTbF\8|>ڟr8>$$$&&&Ry=jKo>^}_bҥKL7777`ɓ_Ue妡y5c\kPmZYq8T>{P,YҼx>{`ݺ !C|7Z>|'>2ąC:tdH<$zTVܷo߾_O#BW`eh qk=TGozѴL z=]-_/Y~yW1gΤIÆ^~H9IiFeNQ)|D"Hۯ{^u7/MakkcckdaɄgL^`Pd@Mr}hѢQf(*1~M&4h%G,i 8/,^/=NSQ")Ν..l@AA~~QǏ= PXѡ\BGݻs>Dp 3֞LLvTje@S0l6loѪ))/c=TT))?b*9:/2 `oDZ-s"###\~C[Yb1;w܋…g]v @U( j?_~fGG߼ܲD 45A b<88X"9~{Ǐϧ5u)ؿwqqӦxoֿ?C돇e̗)(t~:.9>66"wĨ1e?Uσr9@di^  KKzWWkk >_N&0 Xs, YOo:^W+SL2e bccccc\}'&LشI"KJʞf[[ܿiӄ \t*op!)iƁt yK jT*--HJ2׭>}%K6o>vlɒ}bb\͛KJ_N BO$8qҥdt[gHKS,p<~9ި!G-[G$mz)/x~6wz૯0ܹb@ XZb|6 $^ `oS(>H.5* `>Kdz:HYE0h(H׬ټ/< r Zq5k-{O##;w rb0HP 0o~GG@@{( [EEM. "d_(*p#{W^N.J[(-PH rwI>y>n$?6[~d2͙r͛kSV/>_or9oM׉0IIr\.ϛ7x8өL7 Khbׯ_8{ٳg.lԨ ?;_L&ӧm[F_?4"jMM[Vz.]Ly{G|a(FTusmWݎ_JIQQ!!^_󐖔>YY[ ZFfƻSH$yK^tѣ'j4 $dJ%{,{6m7WYƍJB.ZbQx.^xE?D7׋=Q$[^q&US}V…/^ؼQ@@ dcc`JT*?{> }sy2:2--77|?0@[׮ F;~)SZ{C֭l6]?85++7`OE+-Zׯ߾}RF#r9^\pJ \[fHl#Go|@_W*Jp8$ /lbbXB'?y zlUU>s|ea{<8/@=>rcEd2Y,X 6Y9ARq|f@.Y30@%sN@&Dqd2&|,((,,,%ԩm۶m}VU6.շp,_|9(uܹs4iҤI}Տ\ZRx}/ϳqKw2ޗn t;E;NYdݸ*Ix`>~5H< jY"6Ĺv8qdb( gfgk6(/:y?~Pf&ٳ;w,@vv{Xqv;6r2ɔSRҡne.BD022 y\P D""8`hzr8Yq:f;u*[6;vYOisv@W6m7oe *_,,1Ç5k,4L%%,a&x~ڵkOJJb #f:=*Hkb cWLCu״Z؎]vmQY%%Lv;&NY0/byuV3^6<c\nlQ`gEXB~CUŎ^/Kʑ%%߰MSG5{wOJ:r䣏ڵ("ɉ&OΪ?ُ?[WXN\{wҁ& ?|8=}֭gOKK6 fʺ<%BUJ̙KJٳ7SSN3wܹs͵~Ǝ;vU̙3gΜ[=.rc0+233΍ T*(W/n!!j ݛcϛs^ BP(<7 ,֭[nu:;vر%K}w}wxᅬ4cbRR֭۷oڴf'1Q NLyҥ…t,nѴn}]׵ĉ#Fh}$=E׮Cݺ;tؚJ0l~R@v[ϔsr֯__zÇ4IHhXV AҔJ}(!q'ΜaF7rʕ|vcDe[ *?ܿW7_.пzڵkԯ_^z;xsT*oӧO>d„ &LXx:tСԛ7=t)eei}VDE)͚᳖,ƍ؎i׳U\O>TֵkN(V`.Źs˦%U7qbrrϞuȑ<8=ŦM/j1V.]o Ea`Ӧ5kFɶnݲ1M$)"daCol0Tˬ,\)+Y3gpy.}W^yʦ$G͛qBߺ5 M6DEbumڴinݎ;v<|=gq]ǎf3NSnTTTʕ6l{?v/1;F7P(DlݻNyQfrʀT**8Io衇dݖUky՗P ,c))yyII ~,HDZU={׬ټܹ~xG?gi!5_*]gޠAh LGFեgcZJN4_~Q rLR<󒔑a6َ)RڴiժU?xСCj @6-Zh ~ o Lf4f3@?+z=Z]^UA.8|xѢc (pZEyfΜX?ĉ?=4^Aok;7,B_+/j4JF\J%]G<ɆL@OE7On.udfŊcrsKJ₂4u:ZR*]xؿ eKNB&2DVHIQmÛ5O׋ t޹y?Lv;ޗ-:;zY{l6iӉ>-ewѢ޺UE7fʔ)SL<900000pz衇Rq3c@oF:0ݻw޽.׾}۷x1>kܸ/_a49aӦ5mt\MxxvM|IΥbbVu{뭧j{ƌ7m')*o4hн;@~s۷={Ν7ի_?6g8x1_{U``]u^P?]k;/kZ}M+V[xС2ىǏ:͛7o`z62.(z<'OZUYvݺu|<0dȐ!o_pŋ~lΝ;u > '|-ZhB. _g}lr2@={L} }:u\qq>YYV+3|q:,MppLLTV WPf9ג~gϦvE}kG\3FV9nܸ֭6ji@W .^ܴ bXzWζX d2W*""bbZ(,_?&஻q5,(hNr99NeK̜۷suc{С}`2yq gҥKvLbz0y䑲qlyu}|\.sjl6 8QxPZ׉29p"ߒ|˿r9/1Օ8Bw{ma0/b &=ZXQQ =T}7+]M^۷dU2Xjre7zecaIj+`T}|&+_}O.دW{ d>زzۋ/_볳Oܽ/_+_Jzhy m8&@Fe+ׯ 7n|ȵHM5-9$$ `0x'|xVKbTz7aa@>˥K/瘘A8U0sǃ j0Pp0ppDq _R2ybl&L {M{w<㠎[~fZVe6lz͆ݒ$3J%+qqfsHμ^Rny.<,\g,"U_P}|:aa+j tp 4hGAA 68@NZM& 32[G^-8xQL(^w`]vP(7**""" ;3Z,ѯGןIKؿdIHHp0@Jɓ&SRRBBFz#I^/DZː2L'N9S\|-/5NOI[Tc7]P$?v=B`56ĉtn4V}^ԩLC!}|w w|Tb?D>=zDF]ukz?911&_~Ezk_1?bŋ'NLOSo᯽KJJJJJ8ɓ'Ob`i,22222СCrlٲe˖O?g͝~1~8vl֔i<h"#tiޜ狋ONK(*:yyLDm}7u>vZmf}yl{O?c2Q`e*o(m[,NgqqF 7~!BP(FcHHHTۨs`B|_Zժ_=jڎ@n4 gX.ZPh:I˅ V@~xNݣF 0joQ &ITz|}-ZG半abp%Wvܹ|'wꄁ:uر16k֬YfbЬY?}ӧRYk׹s}ts%%XoU AFcǰ06NTcr <2 =8# t:Xq</fd8S?.|c~Y.oT*Ӧm۬h4zvv""0pP(""ZXO>HKζ0졇55 ?/Ahذ^=ljhE'8\4qg9|IgpfϞ3w|-;MUqNvu}|+ȳ%%%%8BbZe \.;T*\j4jZFjߺoROlY}%צG|j4K^)"N%K\+VXVBϞlz[&Jn(+nW/KZ[,,c #7p.(aٳϟ?ﻱh wEL ׇe8*D++?/aeE+k oW߰CVwxzzJʭ^UIߏkSYF}Ku:Wk gdddddlk:Ba f@nLl+!!?=%(x<+ ?VZN\.@_o:\.$c.v< |.S> Jn4ƶjyXv Ն6lX:$<@PPݺm㢈:d2B$97$%| @h LNWz;{cFBCCCCC [RG@m0rd~4f,̙⤤MG*wM&*i2o?XtQ^/s^fEf<bXD'Iׯ_~+õaf~׿yj\. hZQ(,t}NQQr9@ffQ`EG&>[7??**0xEEnwb)%~mt1::8XHKw8|:uBCU*x%%x\8}k,Md @p3Ѩ2KャNfϷۗ,޿U+{};;ѣG;-Zhp\nk`*TRRTw,c۹9.,9ߧt `GO>9{vTLfΝOO6hP.XɊy??A=s4V~;n\f?xɵj|u#7͚6vlvǎLV-&5lժTqx83iEj4Fo&ӧO>}Z׮]vZtG}GU=aϟaa￧OO&N˥}weKgZ,׺4*ki]o`Moi|)JZ r9 %m6*K+V|ܩ|}vAAYY6РN'9SR0lXݺ:Nqf3Ngϖ.f[4?,=o/\0zi@8`%ЧUwxi\2mOG6lذw~*W\>}ݻwq./вe˖-[#:t8Nyz+x-fsd2 g[ϋwDMl;U-~|~u˖-[|'#WWkTv> WSa@])3 _* Lai h\.咤˿+J)AB}z|\_}*l_p3*|3Tc(W̎UӧO8uܹs6lܸqc}Տ\O>s4[A`fqK8 ~0KJ,3)nc/"vU\,*3d/,pRT.Lӵ%I>8({My1Y8^%DNDZ8wv(,EL,n8el qF# J dd܃^磶$Qt8Lcbb""pF@6x^8Q#U*N޴Pnݺ |Kvf:} BB81<<&&!٬WN T`(I.WR;`@1~j4?~ŒԤI:*^/exKЧ\3ov4Fl$,J^n= gM,Ӗ-\ -r\.k<|̀i8b1 ,! @)f7|Ae^l)~FS[QzWz<(H/ =Tb][yҴlgՋR9N.Aio6 'Ľ\WT!СÇ5״o4<7a$Wn?a_ kd 5˶ov3-=pO<1kVDBv]OOү_N xyyx=jhJ'JO:~|z+;f)^yW^ye\\KJ򳒓.\p1c퐛|ͧOzCJJ,IHjU*ArxZ0JAP(xuGO>٢K@n69ƷX`^өT i.O̚T._[99#ׯ_?*----- `իWŜQxA Ⱏ=55555_~;xٳgϞ}0~d ?~| MxnQhֽy>/ȑg ?}7C^߼yǎ׽v5onbIJ5~ߟCMs3lZmDDB@xx6Ç=Oǔ׾44%Ie T⌸vݎ[v  % `0X[v5wPS(=nXJJ^fټ^AQ 7`NsѣǏA^}?o!Ye~?w45zyY.cÿł0L|Njsv{R(:h4,>oర2##5))ȯ_^PPu@DDhV ),!@|/).UU:5^~*_FFLc,\/]r84V(|^/'NQ3-99???7Сef&.Ϝ޽_q38 8gM;vz%]gFGoD f3P"녉ZYh > }ŊBhT*}f3vref\N'ף]P`2dlJrm-ZhѢ{&nY]]ѕӲw:0w9S6nܻܹ)S1. ?l%U(A.P~m۶V-5 ~.II{wyw}we߮!X!I~{HJʑ#fsRR\V5T\ḶmFZ77jRnjLXO]7mJMeΫdwߍG5c=zѣz222222.^ԩSNX`?@vvvvvdzrʕ+W?[k?1~> v.]6MNK8K9x)#GNExt4(1Qٸg ,G_K.:eK W*D}{)...X|aa8LݾZSR;JB!dddea{==004KP7~G92{v J\.<+$؟qm6II)ッj]k ,o~=n|ɪ'q֝vw͛7o޼yk?is] 2t*\g2\))ȏ|oz+;F^OBZNqG})N?}:;}%BEf0h4J%{yU1>SȍSjJ<_l?]uGˇ>ܷn K/oYSܞ*l*loyͨrsssssHx|+ao e?C,2{w.?Uyr, f7L,}۷/b6:N׳'tegecWO \h4!!Sde+͛7mڤRϵ &lHNޱcϞ;vMHhV8&(H&$l9A@~/.ſ>p`.kRߝb␐`r\V I^LfVx8pwN``-X`4XYTv]\vϙe .p/YRP} aaCـϜٶoDw`[, L&DDu3{=;w:^/ϫU:dz\d2L)az?߿x\cKB }Va=\$QFe2$bx΂YY@}I d`['/3TMU˻2'no+Əa {;7aѼ9vjBVqpj*l~b񹹿 eUuŝrkO&&:kG=7GXN(V-[k4?99V+5 ؿ2%SN`01ŋ/^(b&M4i"-ZhѢ{+VXbnZVQ|'|7k_|1/d?ɒ`#Gfx5u{lӆϝ[z_mpp\\T KܬMY mx j\z۫Mxsܘϟ?ժ1AV=x;N׏j1^VvBZ a,[]dɹjDu1@IVprz4%2 (WyӰle8Nhvw;vX' 4֭[ **,,, G6mڴX|j`nݺuؾpFࡇ7o޼'P~ttt4@ZZNNN]vZK:tïڴiƍ FR(qJhp|ՊY^8~~J\.*?˱s#G`tEoԝ2q*;q>qX ?@:b~X[PSQE&ݸ8Y`?ǎ-qP%$.\.L2xtz;89$OǏ_2;gpg6sjP8ش Oޣ;v$$ L&\v3xuxKJ<nw:^'0PT V&˵Z \j&kx󃃃-{5 s>н[oegOuX,Llƪӧp]'rJӺɔqDD2 1u35„J%$\@v#kxb>O Qx\%KΜIM-.9244(( @$LLtb vx[6.ߺo}YY20`gY@B!) (f>Z\_;/8p@"1000з{セ1b?~]m۶m{~{ |>R=00O/XѤ&Mッd2L4rL&|@V ZVq8#Nr9 }.tJcۓal^oIIIII[PO9s(ñp!>oݝ2q**l2W͋x8Z>kkQCu Ir-C#%rn0yɓ'׶õOebϿa}(UޞZ_q{g'?/^Ϝ9_ǟ|Rju 4F񬳹97#˼) DZ!^/uN6{׋ ^rIVX$ L&cS$eeп s`cN~I/KCYxD6c͛9ܞڬV+sϋ"X4^d8%%׻s'#?lx^xFtOL v8BSOP ճ?[Vn׮ $(88,,&& ##5AL#Iv͖ ]<_&g6$~}60 "BK2u*^׿*+}ŜѣzAU(8kXyIb68a.V)Ih6;^(Ua||ga Սܹ{ݝ:uҩSN*\;Y]{p~zYB]D랸][ z ؒNSL2eJEfUޮ!g|͡Cӹb{([l ۷o߾}xA測,pޢ5dZhB OMuf̈ 8g>y=>RVo۽{߾}z:DD^YY٢g;x4^E<Qt?0??7sr23YMt͝tK&/l8Qw3Nˮϟ (=zc_^\\ ũSǏ8p_ Nr#| Kg 'Ο/*=9n̘` \lݺ *B\r\nJ[ ۳5֞նzL=Gj6l><6V&'bEZwBR(|O?ݪ; _~_X/Z\ŋ/^oa=?kcc}w oMT=`畵?.6m%vRS^hуiX]X`Er@{MǀK \ =_v;̝;`@QrcƬ]K3 r;fx> af}p6eppW)X>oܸR_93,,4\}e_U.c 22pڧ.Y}r.L(AXFBHen B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B! qɓ'O>(%%CSYSRRryuo_&86mbcV/xv&NWۖ-[̝k{ dz=[/*****z'vlrC>F?֭[}x<_;ٓ'Oڵk׮]>Jrh2!^Gyɞ}V$ysIzޘGE@ExD>uJEQx<Q\ҥźuuU-$'RA ͨ>rg{\1lUV5˅q}zʳ>`^zSRۼ>\c6{~U/_&vbQv-)i۶m۠ _؁ͯ;v)_zII*r\kZ\+8- @T*^gQ@E$ LY mMavonݘ͛7ovݻwo UC Dd,& epf$̼g>YP~d& V ʗ^G|qvC^޶m6F޴Qaa;>RVdtxnɄͶiiO~zn7dq 傠R(AA kaa͚uPyy=TPpu…]|+*W_kױ#k6mf̨IW:r3j%ysgPЛoZvO8l@DD> qaa w%EEcƤ8q؆ ͚%&NTxP I.]_TxE /Am ZTFFd11=z V;汁y=Qx=IJ)F3fMkԴҥkAAdYB'Fh3z+ Wv4!J;pͽ B%Otq^ 0sZTdIIZJq (^/ӉK-I;N#T:|ol:F6m֬GA˃;vE&S9N~k׮U+N_A6&MδKz]&MZv va+V b mڷoѢE 5j(#!f@;%d @kEL֤IÆ11 @~xp׋^/G%&J-d7aa<@nnq{\իccƹsԻ/̜׻\))'Nx{>t @Ϟ?>q-[lٲjZvΝ;wY }  p{~gygE;c3z^NԖVAx 88(((H5j`߾#Ga Vk׮]vNkl&ܲ*.%bS.Y}[epv7hkGשsNWnǎ'$dx0M(zI \r9*=6c\w-&;6{$E77n߾}w:8ɓ>0|>}[& j߾cGLk(>^&yL(V^IIJѣr^ovuWɴgώUPPP0p >{@>i[ }H駟~ݺaȥK+Bdɒ%KLP( Ō:uԩh46f}QD,_h4NzիW/#|1r$ORȑ#Gtv#7oԨQ#*8n#qhݻ>|S(}POu[N1* ƎGիC\ y`j9uE10q8\ƍϜt[毿ys's|p1nV[^Tԫ֫) BkqpM#?/]mw͚?ضm|`VϞݶmH$y4iRXXo(,,,,,Wp8\={23srrs ] <99ڻwjlw ҷojm6և r;'` ]*2YnLPTiSn~p&* M{wk/ؿ„`~ڴR*۴S'(H NΜ˳Zzjʔzb/ĭ%':U>#.q%>裸6.))svpX;ҥ͚w>^R;{ҹsN'C.ͽG)8M+[5k֨NsؚzF#+-I,٘ۍ!:+্*Tf6kֲa͛O EPP:dU8Qq\#EGK2Yl /u]_|ufƍkײ̥Kq"63 ;e2(8P}DKW\RFxzb|'|'ooelG V*ճz<(}1q8,o_)#}KR&y7w}e7UbbNSgx<&SI =^ vn$ukCpcY={\z=4eJRn`NJ{O;vرRT\qׯ_~=%<.NN[۶ t'p֫ٸfru֭[]322222bc7nܸqN^l[VjX,u֭[^~^곳+ cO}>w:ztF=bk)Fc\ 0-$pKS^oz:>rؒqaaMtTZϏe石wrWl_}]?|ii))>oĿ.\pY4hРAq~0gΜ9sL8vرc~Nǘ1x1G=zڷo߾}߿~bLжm۶mءpBΎa(4jg{̜ь=bDn ق sܶmn7M1IHAM2aϞ_=/\xigμbǎӧW8p~ܸn::Z:q|„͛Ϟ'yWsJ:ǧ_S|1@foI2XMN^?Dߢ^omÐ$If|YAHO?} P*J N'^x8Lh +z E\۩d2N7/!aڴٳU͛;W!<<"q0/Tfŋ.p\VɓO+}O3U$44444V{IDAT[ \\Դ+vL>Y=կov)999999c̙?e@-G PT*ʷ}u,ϘѶԩu w Lժ^% w(%$iJe@@-[ƹT[ ktʔ>P*}晤$ߟ<ٸqݺ|MO>y}6<[O>OfD6s=s .\__3f`"Äu.{oWsΝ;wnXjN:u %Zf͚5kN%:}` tҥK.\e˘1cƌs8ɀo{uwVM8jO⹊,;6^ ݵO nϞ=q`<@EQj|ܸW_]hJ@FP~Y`FޅL$Qi4exqqu֭ p\jjjoajċ/lIIjuPPӦ [TTRScFLL۶i4Qd3Q8(BQPq-ZtT*QQ=WPpȚ52Y~޽w/\s䈿+1}['I-IÆիg4$&FDh"W x<_]E ƈ#])"&Ӿ}3fܬRk'N [eIx<+|bY;/ޱcΜ6 5s-U].m6Qp120XlZ86O>2E 69Ϟ}w;] lfĤMFzn,"BP(rykXy5k'Сνr׮v8CՊ3\7Er ԩӫk4/nS;6{$4o>nܾ}Okӆ^ШҥSZkKK&z>l6}jO:|zBhj].kXt|'I qӉϣϿa{I*UttlI/[wjVۨQ|< p̙ӧtp%o7!aW_()9{*3??PСCZp\f ~V{ܬY~8k_c0`vʼnHb]cÆ t:Fq{Łfvڵzwwҥ @pp@@@|p| {LV>1زSVZz*~W XjP>k=Z-YYXnC'N\ gcv? 2zBvhq\$%to6ۑ#o2Y,}ԯ' }Mܟ[z睃 }~nWc4FE/9h B˖3gΛR Nӱ?&6No/Z>|x_w8~1xCzzA]>3gΜ9sf͊8qĉ+W\rowLdW.r`#;wܹsgjZ֭[n:_ ?&ziL&d|[)Mh4'b^۶m۶mO–?O?w㾵w7nsUڵn(z<4hаa͛9zJ?^Wzܷz(t} +~שּׁsG`̘%Kv8R55(e3^-c^/6 Q@U jVh4|Kllذ^zΞx?ᇵk׮4G 0f*\ؤNWnD FG SXO!hX v+:ZZk4{…,JL4驧jRQ(x1q Kr}Whx}hGzR(|/d?v? +(II!! +XTџ`y+:VX/qW\߿`fi3i$|j$ɄY-=rlz}ddzr9'ܾرmڼ}dLj͛ׯX8>>*瓒ԉP*BB4G (+ gz1h֭ P}h:(*Un}5ddz}HHttFrZォ>p榥8zf3PE2T$F<6SٕݺQznǼ,@j=sQԩҏ8pwܤ:P͝).n­[,12RyƍBB  LyH.ǀW&݈[7W*y $d8GAթV7m<Ν.{v֬y?%iϞ|>+O>}Lb_==GV>`l߷>P`.S>A!$'c$)%UQsf317kVYGJJAo'\P͂CnKDW{Ge2\&0@_^6 bnw$nT(&Mz/)`=7bYӬ\e4Νiݒ]zB+[Ghlҁ {Nҥ_}%I:=x'6ЧϼyII Ś5o嗒t̙~ꫥk8sRUQ0^ pnl0Ӊ-v%Ir9)<(خl,FR(Jn kC. Z8Y<tgdݻsǿK/Lv5_(۷#= {>Gn.9]ゥnǎ\,9xpn c]KBbbq܉/fdpÈ7/? SC?\\(gJvbټ n% @xV!L.縰6m P*32og-Ȥ{LѨVA_.ofѢ?WkJ-1qyT*05W`<Ν IO/(9s̙3gjڴiӦMǍ>|a]?> ;6mڴiWjg}ȑ#G%ZA,&M4i_}gr2| 1qхϟhذaÆ p?FϞ;;8\?g}bTO5k0Ɲ&nn((+?dl%]bSWnUйs.z۷gg'%͜;v8-ru5(hTqX#ǃyO(*|ޓZ]>086c7n\~O_p0x0vԠcPHbx^HN'frŌ:]xxPLVΐ!ݺ=r"^"' Mxx`L翦ڻwƌDBx[rU&z0_}:l E``dLfw_V'>Wy3mAA 85̘TPү8} E< .N. JHMÇ׬Eܟ_aMΤw:I[7n쳆 CC%  &&<\Wv1cj5nFX,$2Q#eįpOq8weVcwv?6@LAΝ;xp&z6P(4ёxGI @Fƅ 'NDDT ? @ٌ87N:]|<@x~O<+p?tx.(2hдisBa2?j\ܢoْTT8;(d \ =,y<ЏGAiS|j5~n\. BӦux4[Œzɓ11AAz= k$\ɰ}K0Zx囙Պ CC##1@F+2Yg%SO?Y6ƌb?<|^G}q'O:r){C9nǎo]L:v:}{ a8n͚wIrDQ9.*jW^UQvxxTTL ە A_`2Y6 (^/ HimqV\A@Mgz[@@EU"#7UjEp5Ξ0b1(("@4E(1d0 ǯ{=Gn.9ףGޛ#(n۷{ojfl6~.+|ϓ˱_L7p+7]8c/R4qeeg i4!!QQ2b71P%~XI¿{b׋,pMXiN aamBz:>ڿxZ nӦ];,1gR*ャXbgT.^23Wp|'ӧO>}Y ׯ_~:t0>~ٳgϞ=kvabcccccL&dr=&}Q|o^:.wB˖gϞ={,@&M4iк536mڴiӦWSmv(۫W^zV-[l^\ؾc6سgϞwb͚[ƹ\ԗj~7ߺ mہv;@AAIwU]UΝ;v ssiHR55"UY s{3Òx3ΰx0_}GHE1kW*0PDj$:O^/Dy ٳM ؑk q8@I&T*n֜ LI,v:p(~?D$IVvJ 7w׭S(9u_NwkԈd2gOI8A6-:cW$tt3_ \7n7v8(.I L&InwQQ>}m?u*ӀjӦk/n$:瓒ԉRbb4 l6`Ӧ1j̘~*( Ax86i%%8!?_((5jjW_Z=1 ͈GVjU*ejɓDG6h3;t۪s ##- CZ n/*bXr_\|lTq@chhϧf"Ww7_{%:uFdžJJb5;Fuڶmqټ{FEkw<}Ν7L6`6jԪo( ԗ$\\.[\yNQ8j0x^&h,44 `\ 'bq8VJT8WR {z=R @X\.hѽ&&j4#G~uCf_UӉͯq998Y\bk{ hX|\9x /P@mW_=w.$%}akݗ>}{@ S'k-KyT*JvEQČᘉdJӉILYQ6Q,0iɓ?@h63qߨl_h>H9x~/hhRQ ֪U7np}hl͚͛7oԩ}ٿ~z ௿qqի2Q#L ֭[!pca_]qԩS:pag?`VzPNNյF_GwWGIR˖qlRTL&f3k\`Y%֜^9BC¢ؼZY""t ~& ח?~YRb:iɓc b)w^we$}9Zvz8nyVH7tz<  &Tyj5 bc j5 Khp\n7@j;AAW/c `,-P WJ%ΤV6^o8ZA)&W)Uؿy}} z5G:wn׮];ݻ8p`@\/C>rsUT(؍a[İ_M7ƙݪ&WVY;nrcN[TX_6|^/@׮-Z(8{+nEWN,o?!UAj F#6nv;Я k@1c?8pJ*߆zx^]. <fuzEyR.üӉMw7k|/Ix0\8jMwN~QgiӚ5[l2DU*^A`z+`IRa!Y.p\ll=Vdeedk6_t1v{AŋJe4֭Mhh2YhhӦ; .]R z$10j挌:u|h*"d3u j@p:ZR(sƌmV-NP>I }&IIIuDF*ȯv]֭۳'+ M&?~$X lY:j9N#xUGs8wڴ)+Xl*0Pض f].,'\V+.pTp@v( րmu: $۴hg֬U z۴罦]O].:&x'8 5ysv}Ů]sbY8)yM& At;_;S mxBpQ=ze4d ۍ+d%Jk E㑤իNG-.~-:h8PkҤYÏYhb),,,h'~@&ÙnTVVVVu&zquFƍ6ddlڴq#>?ow߭Z?3}{>rs=Y ٳcѣsΝ/I ܹUVXk۷߿?cT75wQ6 aӾ}W~ʿ'w^wEkժRR""fT*o~f[}@ (QQ =ԩ?Ksb")_ѣ닊NLOp:1۶:%IO>3ײSḃv_v޽G `ƥK׬hB?**Glf3u_vF)5hr, \.{]% pb>i4z=qi6[FcPJEEX,.Պ%%\ϋjʀ rs.^8~̙Sbc##ưGիqދ"qo2a}de4b}KL`|{T/uϋkϛu`,qkӦM6~09Tvok2Ν;w\VT*׿Y`=[X, ----- """Y)󣣣} ,Q@~~~~~/g-}OLLLLL2jl߾IZ$ sSS1Qz\N>XR @XIv(Q,ĥ˅;V+W<LgK/.yI{g0k~GFo/i?\n4o߱LVȨ(_𧟖ϟ_|2ɓqO/bƌ u֭[7ݧV^zY A o߾}]ȏ,X` >&6aq=۸zoF7hРA׋ϫSvQSnq+(գt@qޕ}\&ckxCpMU-6l|-GR;pz Ζ=" Ǚ\YaddTԵU~FDruXyQ/.8gn0l,'n:$y<^$9HE<%'߿qqi4 X< 2v;$ " +FcÆd*6x8 džcn==3``0zz\\ѡCc]֤ɁBl)pZݴi ɴgw%%#{'TMVxO6:ujҁ6vlڴv6@FFNNGp\0y_CtޤR۳,\-*ڰY}7oص+9: *RQ`0J7^z/3RY=㫋v\.ae``@P&Wv˟gΤ  8ٳ{nݨѽ^:*ZscǾ駱3b渀ƍ7 .KCtIlcHؽ;>%%))yeH;jl'h~| = 6[-ZdjZ ` 'DQq c*LV Lбc`JK =fq%J%׫T*r9ΤײNP(?dH /ݿLoCN_Qߝy.*Z/]qֶ5թ;wΝII~N-S9~t /tBOp?RyݧT*rLݸtn Y#Ψ(I.~c9OJJH4iB[^=srqcu ÙӉlL֭'O2@2CCҥN nVT$ :d؎A7SelСZcS$d=6p`͚Zm@NgQT}"'Y ? b{<'*Zлwǎqqryn.xT˖ϝUII?t׮ztLV=9gOj$5mS2~~駟R `~h(+gfsQON'`l[ ep}~n55V72M4]3.=@}VNeY"De'@KlJW~]}{^o4~TPFz/$~ g 9(*|XUv0ӳR j6ED  :5n;^)<[YY6[~~qqHBR9<MMAڏr¢"-IO~tݻOr{M۷:Ҵ^o4j`0) Ivs(b2ǹgx<Gv6dRa=g3b﷌ x+\ vTByX:v,7W ILZ6 ,, Lh46l(vX#F|ez={sϞ=|s'w:Im6lHM BCy~Ĉ:uJ0o々8B?`ZN?\iqxA0~rs>SǏ:]yGQn3w鍄B'RE@T,خ^bv^R,(JwBHH&l !$2K}fs>p=+3 ɛ FGKU|frX2g;lm22uKNѯsTF@>'}dFrrCunJ)Olذiӧ&S|a$ 6oqHи @;"aIƍc&,:?ߵ>x챡C񏴴>JJş~2oW(['NW ptеH !y)HL40)`1ѳ^P!!zZ b0۷+3nX`CwV*.JN8Vs܂:h0c;w O?MR^˷. }a#Gv`Ϫ-IOۥ~\.XcLJhƌᄏL5kHoֵ8PWȟ#ÆɎ ,U⩧F~PVaV 6zPpfDy($ōxߕ?GE'$uةӸqfСÆ}wߕoXfh4[ޞ^tÏ<"mBC9rП޶m֮]obIKk+eX ʕYǏ?^h0PZM;S%=YeE,~ԨC$ؾ=%%%0IիWnݺiiO> TUQM77n\~4LIi*]w ҡù;_X~~O4ٟ*̟WW׍7:UUh6'&rI~ $q$8A]m[k^m,^v[5Ϝ))NJܑzde%t$^kx/v''''sk; 7LڧFn/:4cRT*3fPzT7NcHoi_dܹs}Ç>;wܹsg #####8vرcǀ3gΜ9sHLLLLLL2e`Ν;wVXb Ib|B),Q }?/⋺ 3gΜ9XЊ#ȴm{"6͕bhie. ErÇYa0FRVЉY4腰hѼyk>,oɜ*)W*뮷6OY{WP u حQV7%%--=2urթSGEڣ9 Z-r<_]M vӦ>˅#_}5-m|Z?W_++nQP*3##CB??EJx*I"eU(J83)Dfbhl7 ːۻC=l{>kJ|2Kt_n1cn8Ng}!Z'OJBG>\v]jq㍴GRT(}[۷/ĄJZ(6M Z? rl7z{`Ahh]! 7ܐd2斖KOn9__~ՋŎKZ;xpɒo^t 8'aq'%Lk׮[l)kw|p8JioaaYYq1`2J%`0P\(.RjRFshl6 ,,0Pɿp  kjl6@jz pׯ_n`QS`jd"aиS_&+T#MCA%c2?Xz~IΞ#G[4\ 6.dBzYu#)ΗHOʒ拝;wر#0}7|3iڵ{С/0Ʒ۠AVqg23y;˖}; _|Qד.#sQ>0SЯR]om" ɖihx b4>7HO묬3grrBD[ Yjf3LBА&oxD@9?je O `X)PO?fLOi4.h$VSմ葑$g˚i`ᄏ> ?w; S(j@ mֺkI[54W'f-XC55sv&MǍ2?LIJK;щRg4V|q m6j4d_ss]u벲ΜxzG 4jWq)Ym l4#uv"2&쯭zJXjkm6 RDU2K/ܺ)vƌ~ALիKJҎ+/,|ё#@K__y%0`P(>**"BSS*n3{*BAN@[Z2?"φvbJ;VuҠiȐ~ P*yjیjkkkZi=: .***J`m#]4fsmolm1{<َ4;ߊU/%Kn=}߻ム#럏,o?Ub0f{?q㫯XQYYXoԩFcXX>U^_?H;)T[ya2m_͔#FĘLeev8D{~W^y>{9~+={:N'0~11&ڵ۶ϘA{Buyl E9Z?}'**jjJK)R T @O 8XJ0Tj(j4@`FzR`@J %K,NFg< AW={鮽6[e\)i'?U`k%^UE~)}gqK WW׾P<%l!ѣG=* u:NjJLp*!4.쯩+f٤:tСC8J%giZV p6eS(ovKvW~i}DxИCt8uz<٬RUTEEyy99_xxL R9ii4 *+ÁP.- 8HZW*}u:|-jr@ψٺRR.J4?m1tE<ӫW[__>̹o3fHMMMMMv&fiiiii_?iӦMlݺu֭ᅮڵk׮]^PŒݻ?LuK5v]TBP0RSgYv>qά/8gΜ9ԗ={>|8v,--- xYfj;ayA)si 4hA?X1a !)W).5kׯKSjm-9Q*UVpnwVճ^_^t)qu}]T6n\>56V1#..*JHo6n=`ÆKKb Wͤ)"{M e ^I/LfM{_󂃃ڙYY@N qq?v?33; aaaa!!W+m5F9s< Tk8-^ (S"Cͅ) 1[Y@su3{…))_;=4x0pDZ y3Nbڴ뮻`MvE322!P( KP@lQѣ9EEEEş~JG「wƌr-IO?z3&&&&:zL?HqHOG^`0u~}ef{<^uEETC{_lV'6rۺ{POwWSi? '} }-s)[|!o 'N=بQrٷҽ?lju钘EE 55dvp:n杂\n7[<}*{VH0gl^MŶ~]:uR(OV+٫BR8ۣG;;LIO?|aO;v (,,(((zLOÆ1bPRBR_RÆQ;as_{-w(xwܸkZiy>4vߊ,w/|ii,oٟ*s??; NMJ1Wd <0K#^TW[ݵsR=Kg̸BCMҒjfs]XbGB_~K'~΋lُ?II!! d??4T:G֚z>bm-h4t55@H%6V jO"AZ GvIVF<>F@CBZN:[~ΝKK_h (uv1|y@@@*P[pl@@AAIIi)R)Gi@MaQQno0AjUvgB" GFpn=>>666@\/߿a;v|'K_, ۷o_zSl*3?Pd׈$b ظ%`ۙ7[g3X!ok?$=jݾ'9pj}xoZ7&).* P] @8b BC .]Hӑ'Yj|)11@AAFFutԼ~q1,W4~OH`Cd$%m[OTyZmPETj5x_Mo;uԩSΚ?~@J ٯ}O(lڴiӦMʕ+W\)"#####޽{ezZd.&R]^D,-5-zᅛn@I68TBY詧>lN-s~؃N.63gtS+W:vaz=,M PϮosvL@ m҈9s _z)H: zl 68PRdeVUO k򇇓&zֵzIRBCCB1#3gΝ;vt \:}:3x,@=}q'~}}8TdZ8s=2 fFJڕapؒ%7ޞFR@~]L ӯc52M#Y $8j۱]w]Ԝ9a//̰KH0**عs§y$A/C0bcA^8~ʎ-=zXغU[lÆL@Q*CBN 뀼3gx^\iŻwo?A99f͟tFG.?ݡNvZ1*]sMϞ={ƒ0%+++++ HLLLLLrrrrrr۷Ow6_`Ɏycǎ+|c4ݗ1c(k~1Y}+ڳv_v,oٟ*s1!7͖gχvݫz}PPǎJEUnX+dϞ*jWڻ?WloV+ISS I?`/ʥ''ױcK|(vvssE^4Mc^/%8JrQe[p8v *TΨyF` K|}_\Ͻlذa3 `Ȑ v &ѼrÇ y _'$tl4?np|i)=JJN"" -} f((*%vڵkWL. *󁈈{2;'K>/,,,,,Ts߿?@I> !ono0O>i6⯿T`0 (EEp0P^^YR_|qJTq Bvدj2K~~Dgg<6>uҠkn4u*6_X߰@K)FP*FJyV;'O7^euVʧ]))3fޣ̚))r\LPYf͚5Zoo UmiӦM6 7_|7ǎx?Ofw޹xGx?c maA̚כLRi0 ZJ%0êfSJzo)~g**9vݺMd6=p뭷*˴V͞ݡRI'DD$&&'ՂffF#J%M19NT*r   ~~j5  @V( jjrr ੧RR' v}xqZZ\0eJN'>*`"#CBz (v7}zn7= ŋCNrI3b,Rx饯޳gɒ7 OKn  .<{w`ڔ;bR*>:s&+c|1?/SzSOLQQqq:oԐzSRlIMu:kkm6 zݔ!z6+Ivﺟ7nwpe.j˖ؿjj+YFk2& [ѨV+K!W>lm{oŊԬ9so4#" A023ӟz?$DV=GB* :%ZRi}mٲy]V(bzʅ/H^|qĈ#FǍ7n8O x ;tСC` ,(d̘nIpSRmoyَ$fv_v,??.ԟq$a~̶B C"(70HY^^Xh_~y?ظWU*^PtN(5矁\JکӸq^Z` gņ%ع33|N:ed4h4eahbbbc32LJ"'i޳&٬V*iT`JvDQxH Pj[,UUj5P^NȪ*J_Tq@PMBېj b,zy<$!& NbbM& 228R42-1n0@w?l;G|Ϸ2 XaC8k믿zia 4cn/,,/OM\8~<;|h0H:AY,䯫wv1/H'ׯ_~ӧO>}ZzO:\H<vr \qM[{B_sG# Zcᵇ;pIIQQtڡȑ /*r+ DE1bճT9Lkꈝ:u ~~;n n7@uc}TV7aۭ )4LJzi@)*jq)92_Z`^hj{AzBCI 0XQb(Q A.Wn.vUv:thb X!Cz[F\޼7ٳd Pyĉ/oA[0U]&OxN:}ԩ 䧟,x٩SdȑĉÆu6m$G^ NBs!MG6Od}/t?{'4t 8Hޚ3Go_B:@HHHHHP\wܹsR. /YEe)ޛ# td`BzTTx()))))ǖ߿R"s[u!a7?pB /de9|@VVVVV@:%מ=dzss=slOz<4%}ɱc{-[FOz͛kִuZEJ\x<p\ڂ~i PwO{>|>QRݺ8K6Mk%zغu%anݺu5r$i7}۷o_̙lرk׮] 7?~[°I9&? c+郘@No_(n7dMTbs `0o?|V."paBBzFp {>Paa].][[YY] T<bsEGk4P(/ڱcǎjYS:rY,@z:UM륀YJᚗG`h)A**bbj )/#㯿QXŋG>PD-Οƍ暧m;rhm۽{bwo7Ρ>ll8gl;v ٻOwNBOg* Fl5*$d>(T5599J%uطw;@ll&S^Z=<{m۞xB{j`Ο~׿aÞ}vժh4:MҸɼ)WVn=^;lZMBc oT*zNSUUZŒQM :?v}!JtNѣG졀'5k,I@1dHZ "lcG5JjǾW!G79>0?H5sI}?s{REyy>ԟZR[[Qpx<99iiN'[IIEEaa^ݫm}72:u4|S'SSI$S(и)Lp0;v짟fsIɑ#.׭ԌWWj{jB ^<O-?g}矷eZFc~ի׬YKK)AZM)~ Pl?0l"#<f.-޲J`N8//70BBF懇өOjVq-J%RQNgu5' y~&-LPB3AtN.,ܼ;<G;`eјPb^R]fÆ[nBCI*훜 ܹgϞ=lڳ`zT `Kn]UK/}tO>iXzl,-l/pHCLLLLLSPt:N 44444TJ,c:NI/2m9/)͵X󟄄AjP((2(P&~/rUQ,*͵X<jyRmC 7p 7__SgpW_}駟~|eZ\.Ǿjuhhi m-ɓ'ORSO>}Sᾆiy=SL" ۋֺ/RSOd`hw6nLLttt~bbnj.uz}n$ؾ(,;L|z oYKjkyemk4/ cozV4Wo{.[O>`p( A~`}Ȑɓw:m6KN޷z 3^ϤrUU5.?- ~M[!Θr=$'L_替ȑ3,-ZСG[+{0jm\",L#"TFx 7,Н%xHϖ^/:N'{%%MB9 Tt:??^R8)!ZM5jZ*UFuY-$84:q:###k`ԯ]j=y f@5aԨA jjF??࣏W^?>pYZ$gy/N P%  }9uԩSmjZ3f̘1cl x?~ȑ#G=zv֞zc4_cH -y^8w~-=>^C-|lUU.ǓQZ* |W:cƌsu;t:^[jZR H˘+sr4 CЭJed$PUiwPTP]MvܥTtR}E$ 04JmfJo6w`4gzp]~[|Ucԟ4]/1DRUd~(1#F!:tA &Ly(ۿ1?Xd$֭۽oz8??b>۽[s0A}Q=`^zDzP` :{>S\UF3oe;v[C),aG9 Js{4ϵ?cH%}vD^ګk4@aaaaa!@t O$˗/_.(sEEEEEE=ĉ'N(τK|W_}CweVp(.nXBZ랷LK88%9{3g1c yԦiOlXO>O>Y<ޏR =_h>tժCXU2gϾkZoi„}Mn}׿{ ۻ2W7*yq ċ혖C`k?8|A` @j{qq]t* 2 'M2~;,pҠe- 3y>335IDAT:v9$QQu(jjj2vԩSNRFgrfspLj5~Ks4a$CnnݻwFޚ$IpR]i;Lgs8a$_Ursl` on}m*N]+ii$ -+9!hZAr[TJer"`6ߟx<))^/'&ϘA (=q$W(jjx^9o{qМ9[,~~ǎvO?93q"zBAn௿(- ȠO0 0!?7Oyc{ ߿իnӯ/jufHfٵkשԩkWi^.30qbllDZ`Nge%k4- N&R:w8q";{Gce͕[oþ}˖w^s kk.7GCoI_/Rgٲ{_l|]]MKVOk'ժb{OmH]=zdg^HDN v;d.E47߼#>04h6ZƯ.B~{sKt:1}:oUTݫWaa V ^A8JH)X\\Qr&SppL K ,]ՔL1Z2bXĉc @=;v d~睅 /~5k{4ir^/wժ:6eÇT&%%%%%I?( _իWC `k͛Wh۵*.p 56mڽ{n l;C4ϝY}eΏS/EkkkkIȟeDC_?c,oKx?G#h.2^M ~~FJt<&&z<۩t:~ 70~UUUUկ{ݻwuMsiq/Fc{N;[\ΦiL(a2yjqyngfln}Vk0(_]Qqエ\'o _=KQ]]]]]- YB:=1h*ݧ3:*hd`YJR;% hneoHIZ;tЁ&**Μ*+򀴴 W/n-KM;0 0`DQW\,虿u+=DQю۷|׮w}4.`> \O[Ri0 @vڵkRd .浾;wܹsg}3vرcGPڟ~駟~8uf?7|7K,YdᇥK.]ۻ2g#onhj 7[%4|baoi,vֺgQQ ?_|df8ql4j#y4Bmz/II}'$&v\]暦Χum. 5ŋf )J%ϓoFh~={v޳GrJ̐v3Z] \wu]wd=|Ç@ΝʪJяfd7̀+W+}/EQ;u2FEGNJR(4Zd2U*@( kIIt49 X޺P<LF̡͞=QN ҥyyV;}zl, j9NT(;| -tr&i4/ܹ3dqNزС2 ''? QY(^zOQgKHHȿrʿņQ%ƅL_XXTT^NF <y???? @:R <<,,8u'Sw6 5DEwNHNvE(GB7LT=//7) (d 7 IF͈Kx<_7o;U\ =s'JT*uCCKKUUFG@PPP^p: ,lA{;v2n/)PJ hTɟt:<dffg55^@|<EG۷Oם+ /[FZyȑ DQV{2d$&ٳowgn!|\e_uDv$g;m,!yP:E]С3 z6jk,Z-%+\Mk}4wSnTBC11zFvݒ`pH$'a(8Y;}v޼?LOՏ?>~|.>[\\Vr}addXVsdk KJ\.p{/Xz\o]oݹO>V| VcGN|8ff14!nnjo ={&&vӵk׮Ϭ+~llu}/u߿cǎ;vT*Y`G4E0FnnnnnBP(oGP0 V `b4hs}ƀ{]?<i_;KD{"S/ZsSjF a[{nl6egWVJB.+ػוf0 {Qe;W=PH~q \r>uYwo x55,TWo_@pĉӦI+VX{ C)pRJJ% QF5jeH쳇:tpyy{_˝ m)-=03BR*Ҽ3gZF^h4J TT֖]h$qTн{ddu5`*39gh*cTV<`2 qT*g0AR ́DF P!9pW `ժUVbŋ\\$e⭽Ϫ)}b^Q4IqAAAAΜ"da!-rԩڵe˖-𩠠@2ѳg@jjjjjT.$$$$4`|ѣG11T70$r9|G].'CCt:8zNRn` (*^ 22yc0Zm2Q-iPPvyzB&YX}LvXNիWw.zѣGښ?4sJZ4^Qc.^|}Vm,o Fq/g)x<ܼ}8n" x2-g0h4&`: <%ӑ3<\H 0S*I u%&SSr6.@q"@``.@ZJvZv;R@BBll` `4tVt~~ ciX_O O.GB9{dyoȐc4}AP*+*NW/Ti,-{gt޽{@RRRRRd`v dKX$bvP鼘P=Fi>//wZQj/(6lNCk 2R/-`\.jE^{jǂfҥ'y#y}nXH9pg}g̙3g,Kz|/ F R;l{J#<򈴽_2/~; {o\g'G**J+s>oƜ970a„ &8p?{kkPdO֯_~z`J0D?'!Ow?eFXMJl}B)LKXRJL|dEӴ}ѵ+%g;wܹkyֻtҥKە'UV< Tdd/o,426sq0A\kK6_(c/ 1jujWa~~~~GA7 lL5,C+ H #####Coᶶ8~رiZv9rбcBBǎeAk x$qTኡPt4alTu@xbEÂ~;8o_@ol* TJeq\qqq ?~hM СC\ $%uR qPv;e03 @ƌ0UV(*ԭh& hH|z+ 32l6^m07dȍ7tn<Գz+|/b{J 4>X`$g%Lu+u??ٜm my7o!!aѢ{?3f|wg2[WSCIqc]!V֌O se7سg| x3+>j4l[`Æ>y0y듒v(**+sgn/ܡ_mѢ{oVyV׏yr t:\h25#G^sM@˅ ߟ5gDD1jpg})׭[Ϟtu\ Ue!C b4RE;7D04rȑ#G6~={S p_?C]aÆ CWk_3UU_k4 jZ~/x kk+/UR*/xqxxxxxV?Ύ/4U`᯿믿I&M4 p'\Œ%iw8ȏREDDDDDPBurw``vvvvv)9_Z+y%bYFן .+  $;CqV+v$&&%)@\\P L<t*R  Z^(T)RsDǏD""0͙bbt:鬩FfxfDbx(淫?itWmذu֭|dӦݻwj:C r~Φ ?M+4߷r@R*#".ʦ*?T Yz0tR+abϟ0&泥ZMs-:ti^w{JajuV֖-TW@UԔ:QRe,3Oh_Rҝwuҵkn*JlO?mq~\NHxMD`Ȑ8~WUdr f#sSN' J%aaa4?{sO??`Ȑ{]F#n7k4xLznw\\z."4x;229yܸ).ް(3]SP,(hZvY_d!1Gp8z=95>\_ZV*)#@JzLHqqse OE ϖA]BZ>֐g7޳gck 'GZF|…wKB%K?**<iSm+~e!xoQQ!!jk4j5aD`N';n\.I/@YYepXϧ.\qSgyP d][C ,8bŽowsΝ-T(v P( ԫWހ9? ,`VV~~~>@#"L={x,!{ou\ ;Ł$HѣG=b K/0򘀆UDv֭[7(0&\sM߾}Jq 650-1bUԐm Λb6|VV^^m%qqz^ѨR]' N8+*RRڻW*$h&*+Lt..&ٸ\ee~{.*htK  M-kZs=o߾}6)P! ۇƮ_>:TT* (TV**@5j@Q!$ ^fx0 @j9pNpNp8OP\(RxP(jjf+*R*r^ON!X_uuaϐѣoE/1Ć [l"NN' ׯ_? %e޽{q㮻뀍)CH )_1d'Aj?b똿J[Ug&dX6llVA srLТE=+W'rK+veejB1y2ge= 7,[/c^l^RB {Ν/ .פI?J%ǩT* TP(~S*M&Iw;|C>sKBoovN/TWWWK3ӧO+hׯl6mK]n0|/|ڴGi( ߬iZ0o9yɓ'EJCZɞ-3 Hor0qK`kBW/.-Ш( ㏏>N>~y!sirab:q>.: }2d;|>JL㎪J Nd d6K| ;Ap$ 5ZV2$tk:tP2JA$! e0pe.W\Jq )dAh+@PYe~KA ˢH .@FFu >|h4550h:C{oTq~~Ծ p(8tN+{U^ʕW7y` 0fk뭮&s)v-\1?r|u5UԖ \L ^r٥{ <!sX.\(`0Z)Ae#˝fxxN.(ض ѣ{8r@뮻Ns瘘11aa޽'O.[=e p5ɡm{lL^N@V*uOi$wl^2z7 {JAz=So`7@& WJlmXv|6:9?:tX`.Iw~5&Ӛ5ee.pv8! ssydPYCgO?TNѨբ"`%E = X!'5PQQ]855^yo!LB^nݺJJ2zl_Lp8(a%4 TdPzNJJJj^/Dm{駟E}]/7ȏ㏻vڵkׄ TqXbv.Vi1߿7|7__f̘1c :tСCRňk!RIUߟ,g`K jme;FӐyѢW^yW^1u[@-YZ/Ds!o}yH|EEҥ:i$-gQ-^o^^i% wY1 ?ɬN\aSCsB_!m4$sξא_\I:_ xJ7ҧ|i&)Φ'ưaÆ .I\*}X"##+*Vjuz)]&;8O*%Zkkm6J@N Z,xى^XȐ.](-.}/UXzjjzQFF=[ n?s~e/Yr|m~@{/9s̙3 w?voOhmѣ7o?~oYDx*+++9^(F6n|3΂]XމlHb,s>̞={s$'''''Ϛ5eʔ)SHWXb VUD.g/\p…s˴-@S&/| I/Ƅ۶^jmDK|K KK^&SFkN{{''''KE` n馛n ۗW[2{?>]Zj\Kyy%%}rz=aúu;h`^ph^ }wL̺u(Nx?oрeZkj(Hy~ `+]pǕRRj(sBA[UQQ^nH=o\hiF:'7T*`ֽ{ nbb5oߙ3%!o:+-7m:xπھ}B z  2x4_᫖u%@&=L9@RRW_((ؽ].99j33׬ x<GM fTCӂ~[d ,PӧHcǏ FNg4Neg[,5tcF o=7{݇:e/]*v^?|ȑ]mڴq]|ʕ_ /q<{-g}tߓsߺ3v;{ kwi vCϘ6`ɴfMi dd^/޽??G W:>8ztO?t Ŕ)~~jZtݢ8..L0-Z^UUU[ΟW7:s?1sfyyEEZUJ~UV^0!nMS* S(sU,bbZ2<99ـ_lldu(-ع_|nwV'H *ΗիW^zruWhhhhh$o~zddddd$p}w}@QQQQQT9UKHHHHHlٶm6w ,iyj̛7o޼yl|zㄙ3gΜ9j~\ϟ?Te.%HpjgwޙS\t.[VJՐN{啕y<uO<8l6%D 7_ <991qDw.TaӚ3#ذ!5uJRW]DD2, jZ0{wOJLZs ()Zl6'?=nwsr|kk):Qye4R|4!;(sK ,@IIIIII{ 9jG}NՆqm[ٿ5(:N'?#8V\f;B4Is_,c?Ç;pZO9vKBtرS'8''/pjkvOujJK󋊤sg2I)sa<_TW/YhѣfeTbTODEGuA&MRt:` j?HO'wԩTסr9.'iij){h(9t:`$??@dq;tjE1#ju ,;|pl`Μwixv{^wFEu6tZv8k!n o0Yu ^?PfsRҾ}?G99_….a?hMMu5\(JRq4~Yr𠠤$஻F^*d$ۻ~x۷s)S-_h6$A"{K4_aRu4t護#O]pli3_ELd9|jb7,~zl<" 1⫯}6;{ʿy~^G4ZٜN@!tu_PV)[hz@8 8zn}Ԩn42gCUIN/[&q^?jȑ#Gtoܸ{YW>LO&Fy}]Io~_Y{7,엤q {XwU6om>PDQf[o8dZ22l6E <<;?IH8qٕkjBA ۊ7l;95jh;vm[,'O<$\o-ڼy͛ǎ?~._(C Reaaaaa$䓹sE&000?믿Raʕ/6,}Ĉ#Fhy;k֬YS7! =OYCYjZU*?z,O>iTT cP 9oLX)t-JZUUtx {/yՕfʜI y ]?{RDছ| ;;;;;yb**CkZ;7-68{_dfmc$%%%%%YBx r m7nLHX⦛nn6~[7n8*+++<J8$tdg@qΝ/.WiCq$K1mQz^<3<]vڵYӦM6mu֭[JY)ΞW_}WjC70a}s{[y|-2ΥߐM#%zh(׏;vlme. ؼ?O>& ~AAzuEE{Ϙ1i]SqGF?P@QJq*PYir[\\Zry%%^/o`֭o[R5kZb̕ESعsZJ`zB5F`NرwMk\Io0@߾& ˍo4l99?Hbbϓjkҵ6 8z}0vCvx_t8Nb5}0a„ y^x^|񩧞zꩧt\UzPj8uԩS 3Bׯ_/k׮]v^^^^^^k.X`XTAwo8R~{#s?5irr,wؠ BgJAp8hsMO=UQ! \.%zm{y^2-c(qٹl?FK+ / ;wҸ;vرcǺ+ 'SSR|.U.kۛr6 m +Uן~駗.}問?cm7n|!t0ZX.6 T֥lؠ׷}%Kf*,GA7͚5O7hl*ʭ,[?thRvw8nwm-PYt?lܘr*`0 6jԨQFb%%%%%%@eeeeeeJ2dɡĂ,7TWdg_5sGǎ7p *U~O=Md*^f^/%y養uGJJR* *+O>}Zm9\SVXw$YKvYPt`ӦM6mV\rBooW+w̙F >"88<<&F`B#GVԩc'KUxxxxxxa!\H| , dG?o.Gzqdwf>8'fד9_vr#O7w?dΏGY֞{/gżԚM&lPJJ%][7xZz0'RIIPsȌRbyyYXyQz_~y„,*- zsrDQz_KW&L*+8-,,+#~IIYKu먕_~̘(##ss>yP-={Vl>5 '**/ۙ:5<|PT@uum {^}A:=̙/6>['ֻ7`4N'PSpɽ{ϓTDOJ~~z(+Wn~PQalo׷߾*|m{^Rc7اϝw],jɴ$H??I&M4qbΝ;wT(EEEEEE@BBBBBP\\\\\,7o޼ydzjժUV1{EԾZ/+'So%/ReeeeeeNtJ%[jZV+ 퓄eI;_=+t:N'2N).G6~[|nn ZҢZݵk)~Κ&ӬYӧ(<0y2`2KWronVXbŊ1cnoԩSNa?UzIrQ/nT9W|/6wܹVwqwLB=7xg7Zcˋ^zbJJC1.=ϋ2}ϗ9>o޺u;wSƾ=>}G҄>gΜ9s*ٿ$FC.]txx_;w\\j;78l6!fee[n]P-ި Q*ekU*u`LXv^U)nwaaa!P\}>34?ceٳN_H WzM`^mkhO?]{j?>~`ÆFˡ޽2f .X{Cd ƠsRQQQ1jTppppp{_P?}!|T(++*K/2?ֲVȴ>o{B#G9rɎs!.;liﳒΧ's)B&6|l6hQm'̟?cߢEee˔)eeo2jqBѨTqzVK(9p_~Y{ 1&&&;:w[oh 8PRu:P*U*JQJ^KIH]. (.>x!7#㧟/wl&\Xl$Zz.LFo2$>Xm:6Xtݺu֭[#si@BEƎ;vX8v+ٟzy@~H*ϧ%%-U*J 9 LOBzs-s'r{E= lwB%& M 6E)>QĆHADB wI6 I I8Gܙr=疗|`0X>nǩfX,ÁS83 q;Z3ԭ[RRR3> C#b1eeRc..2}g}e˓O>ON#]Q\]gNSS1`WYSj@u_m֬YfblP^^^^^ݻwRzpSO1 ΜYTtСC8>`Ŋ];ڃ3]CX=+Qoو֭[n]IGsD{ՇMkW?tȑ#G 0_~Rq;gs9xÇ81W9.X ?n' O*,,8=ջu4^G!&0Ǝi8eqgm-Nst>oA„ܚvЎ:v5܀8Ǿ`_<.:{_?05u]JM;O!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B:<osgwv45F1B7V9vh\]2??87gNWW||'tu9ɍE!`I&M صdӦ-[6o޼yssjy͛Gϡ7 >/tT|㢣X 5uKʕK̞o=lX9y2=N su8ݴ%l^_ןE-Z' gl:[oݻ\7Gjjn&,]JBi+6۷os8\]1q8MMgi߭[nݺ9zիW`@?wk"7ٳ+V;wBdj6TSS\pab /=Ǯ.'q |9=؋//T||?;2-\v6VFC=CT?Q̟zmnjκ]koXtG&O˥Rtꤤ8ݽt0222333Fh4~G6lpu: ,X@~^{w?CN}Fj%K,YBӷly خ]x<O( E"X,H|>..vnX`6jlyyN}L' ޭZjժU܃s0h֬Yf͢A\ L06sR)_~#zz nHuuMMMz˗/L1c&۲U`Ai'͚ӱcE"f:T*L&p8V>nl6p8v_vfH,j O}wԒ%nr}0/΅4 ,aGUNsr01%'t&5e ]Y=$…G}G믿ZSj:>?%Dϳ=p7> &f5fnvO_ i #Vuׂr=~mɒ{5U*\,jj4lZm6Opof͙3ppVU!vTVbbz_uu:g/WNHx챯R,A(tw8w{kGOL|饣G>ҥO6l6 ?|_XVłf3l2'N`{OGzȭI g'$DEEEI>>B!6ٻxmm'Ν;weh~Bk F䓧4X|onb1#;vՊ]ƬV e2>l6f~YUn93gΜ9s&w}w͙g?`Y,eI$x<>_ Kfؔg֢r(O?}Qnmxc1cO:ݧ&&~V2{IRSuȏ.uu9ed|A>s*~~KGDH;@a3G,^HJzc(VtҥKXyWR9szgU?ӏ?~i|T:}f[v HjXyIŽ/nu㵳#,ѱtΦ >i(X,jZ72͆@P7OT-Zh/K/|˗}!7`6k55vb4B@`D" |>^;;lx>3f nX/m& 5 \>o߾}J:~=zq{gDֹ|t$%swWT*}:/`<8#j0F"y5\gӧ. 7I*Źi*2R.x<D*K [Ι3~?cs\ 6lذ߿-WQ%7W͜sgwڵk׮kZVk/?޿;o-,,\>ɓ'O\SW>c=&|$yzbb^VqܥK.=<~B/q"Q^xUUWt"Qffffu/VWf3ϼڴiIIᅬ/]/gloq7xr8p? p=Qr'P|_;y½Y과Yb;>Vυ9R@)~@NKkdU*#-=̙eRRu{鹴cO:zx^],Hd2>@~Mm6췁Xݻ7ڱ# S$8bx[Hn-Ba0;tu gSvuy::@!5G: n[a#r8l6YO?>wkr={ƌ^XX,6o޷e)SM9;<+r9D"H$F]vڵrf̘1c h4F#"vuVHsڴ;lQO rkWXxh-:!7nr/0qb@DcF׻jju822 _Xv:}ߵ|Bii:''S`{{و%=`.qqju~\_] ?x,V-]e͛7/X KO_<%e\ Jh IJ[.?sĉŋsA/t8{~& v0Z@wݾŒ /`X`W?ٳ,7WS Ν55.ߎ|yIW7Z38R/[\> YRw^:X}֍|ae;3{>|'| gҖ-f31@x cj#;XV͆rfC(ħ`oi ;pJ^^^^^^?a7 0`TsΝ;wv o+ }:Ӻo߹s?>ǘ={ԩSNU ZOF-K,YdIbϗ_;vرRi@@@@@@ߧñf͚5kּw|}}}}}>簿_xŋݺ=<<<<<.0a„ dKNNNNNvرcǎe'N,X`z?={y1X$> $OXjÆ TII]tpm]ZZQQQ3KgԨQ%`(LK锭7;;=/$D0BC⒒\Z$: j_zi䄄^Z|Ӧs_{S?Νl*\9`7@@@DFSYi0de^w8077wlヒSz;ɭE+b1˔; mxP\]?#]pZKG[vΝ;B `ذ޽{ضࡇ&M4敟o}Sx<@(غu͚~zcQt:חi](đjش `0L&dj8U^^^^^T*JXP( ~y^UJK/^dP݃SԵ`Ajss渺<7ʕK̞oߓO$n撓e2r캹)B!7hP׮*P8x0Nw>}j;o |e O8:_}Ⴋ90?2^}}&$L/Ն!{z pʡC 0mZUեK/Θ.P {uۻܹJDҥX&6ryN|h.G_>q; Pb `mۖprY=ɓyy nݚ k'}bٸ<Dϣת zL(ƌ `v145qnu.׵]@ks8nzk;#gL?xL 3nBGHP^&6Y} wLhRHjTMȍnlWʶgҳ.ru~~t{:KT57nӓrM(l]BI~1-]~JHOӦ%%D:]ˎbjDS׭`36 ts۞zsn^~Rf{睧3F&ˇ W*y<g<\Xn՟gݘ~ ILHNZo+Ws?r9,Zvx啯:]1>͍{.]OOOO 4VZ~oY`H$ ~~"@xxXHPZZZ*?6e}_z뵵 Z_%7CBpC>qoɓ'OX}XXXXX@pD[w\olG=zT|RT*y<\Pq_~?޽{w\r/22,,, ௿:tԩ a8[ \k^|U*L}'N8qD$8p֟`Ȑ!C lbX"] Qx>kXV>裏>ͭLw8jkM&S* ss;6<\*-,tZ"IK;{{n„VO?ݱM\?oum];PPp#/;{7@ee^^F@nn!!z}m}Ly9@eeub6X繺D7Z8DjgYl6Eͭ[ٌ f3&<<.|P(8x"jL啕GvرXž|pĉo~C. `$ ۏz}mma!V[Qqry{ :U}r%lDw}`WV[nϞ={-؎T0c`D XBBʲ2ʕ_!\:H]/̙0;D".gF&غu6%0%?BaY,C a$))<\h1 G!N>hHvwO@|qW/Ҷ0UȾ6N Zo1&;;:Z.뮈;1@/)rp={jk23|}M&2=8y{;W@ȫd_^&ӟ|ϢE\^;y;ŋ/^ ꩹s_|Qz睭[._.-&MLJܦM'NSr@ms[xzoo,f?SO=TӯoBHb?߭B~͕˯,ԭ֞~X;|#c[ce4:yyg|eizm6ع`p8fv_z޽:v+ޣm%%R~…^^*k=6bL&)sٜCoXx62~Bˊ=?:\ݵwС>><_lݚ->> bz7﫯 9s~z^PQQYi`Ɍ^[sl1_TbA H2222_Ic8C8wٱ7\rcb߾l.88JÀӧO>ry_"i_XfffffՊoCnw޽{LTf)r9&XArvgeTWZFl6ԩcƌSQjﰩ@,SN:u]vڵkӁ,?o,0h:bX,ly d2~ `ؔ0ZbݻN:w.;@hF.Mh*HbPzxzɭAPF2dGXpڅxɺks8pd:g<@Sm*4uq Mtm{Ι0\uc Vn~gWU@t6y,2ͭfdLnXEUVZ^UW\͕ܰ\:H]ku503 Hd2L,n,@\+basQQr9/7c0v60!%K*]v߾"(1C5Ç]H@~//;SǏXf wҥ=z̝R-Y@~"#{_XoT\g{{/Z{ӧ)x{foeKn.@VVY''K$\I=z%%Ǐgeƍ.ϙT~_|+_}W_}Fh:[1c"#ww:kW`ʓ'jOA w.ul |PX? <-MXzv@9sf&1v@4;zd*+1@,M --!l6-Ғ2Lb2q0ӧO:s@.rT*HCHԖ%vi.@uǛ[kVp8 'bHOg-_KК~ktbq8Μr4c֯V=tǎwuGm#1rs~X,4(:nɺv ɸш# ՌY?N~osSv=UٸG 5u R+>~<܎gWSW嗿j Lc:ս{nb1 PU#PF7w_b2uO%8eo6v;l9dJV JB),oeP(9o1h } ,Q>aÆ 6woL0{6~3gVܶm۶m۸[{ .&Y{kRSqbۺB<#+j5&Z ߿7sAA8ݵ ۟f|0G>Iz ZV!{V*JϫRi]| ڰe0`X*QpZ]8Ν;wFES֓.;. q泳M7n8or͙# B߳gϞrRB!&d,#Gi;f0gjw{sŋ/^X:tЦzt ?|SI;v1.&s]-V0ʩR5  00 @ ºtR(23˟xᴴ|n#+UeJrVl64˗ݺ#Gn H ><0=^]] P\\RhV+Vk4Dy.GqmvJ,۶Z \fz.Vo\\2Ph2Y^^r9ɣF(v;CY,oދZ|~Xz W*o`Ϟ#Gܾ8~rsr;{;>m8$S 7;6$7.ĤL?k׮]#Gׯ=z(fXfǎ;A[(HLXj˖-[͚5qĉ ~혡qvb[?`ѣGnρt~h^l]HtRoQ=t55\^new~8 u ju[C9KԶbۗP4 +*Fѣ,8|rHT p]xO>9qbDDb0'&f˖4& @xg{Lįr~#pBn3'\9sf? ?BCG?=6KK֮] `@~Kf>}S;sj%KU*×, Ů855~~QQryNϢE^},HKw}w@~9 ߼97…+Wt:}##Yb >fIDAT) JD jKmxz_T>xŊgͯk6G{TG q74TjYpR)poAsa1qcZv3Q6a鵪MKW?o4V^Fزkƅ???̝skx8{}˖-[lQ*[=֯)X~玶+dj>.ZґuB <.ZYv}=\ &L0!&fΝ;wl70uv^o[ois{< my+~+~&` ~ܰ)!neH8;R: 6Ν߮.Mյseg|7j\Rl}H~ Pe2{_uuM%Āj;bł@p_nb@?_ɄBZ,sd2PJHXĉ?(*!W/еHrf3@MMu76 b1@mmmP<k:s'ud2C,pwZ<===fl6_xd+񆏏7 D \ 9+WիW^R)bDuo==y< T0N8qĉY܏= ֭s~}ioQT*n6c@VUVVVVVPUUUUUϕ>>!!!!!!\9P@h4<dfffffrBP(N@ h`0 _l71-g'$ƾPh4L&Sr^o0 vVvd6Nlv;vԋqBpz,N pzʌǏ˙3G$DǶ;B.H$f3ðZΞt%bl9sp=u{ư5־uܹsqSg=zѣGY}2,4_(7 go*Q짞h5n2- Gx޾5f1?Z84z` >gO?? :kWooٓ'ߴJJ,hpŃ@߿`}}D"D (//(P 4`{ީu8pev=iMEsqD]Gn.'m@?\ҞkBadѣbqx+v{RB!v ij\.b;W_~z%&?Ę1|~boo`;׃rcGԺ t!~쁛W34ݤk*605uxM$0t6S`~eeMMM b`={ƍr<+r;s&Lo𔔔 5!F8ON(-׫gׇR׭:䭺7j6zefbX `x"sץu:_|J$xV+#xfjd8 œOtLs ɤ?ӦUU]l\0zttԩ3gD…~HMKJ""jj23ϟ; 0*~ڋÇ{[s#", k@~gGmmv6@DOX\k2TヒWϜbѢE-j[ p2ff m6_=zh HJKkkF#G.]x>w7}TO??| ,P믿/^5pF*.hXSj ɲs`IKv4qM'5%7sH[Z;'Lx!l.+wj=uE(- @" m7ic-뮻.0^uǛ9s̙32flV*ׯ_~_\~ᇩ !-qh4Nr-}`EEWpа`ݓ0ȫ7z;;oos}}BB@% kJ6ͭkn3ݺnnq9&fʃw|yΜkzE"<ؒZ~YI&NDxt~{n̘=<ҤHϯ(.Ƒ  X==e2 44/2T*B!b@jوV,PV+oZ,V+W_ffH tP 7W&3pLw Zjkj 7Ñ  b'8tv,\onz^/<@yyELaaf3L&Y,>>"W6eg: ΀ 0>~߯ڳgϞ={dVa-~b1Xֲܻw޽{cݮ`(X,d2@ttttl,ts,ɓ'O~5nGDġC:tkGڷF1br80X ?yyyyyy\~nݺu^rʕ+|k4b Ff#w?aaaaaa,Ͽ{^ jjjjjjooYVv1m۶m E"gBCbr9N<<<<ŵv]ju:`00ݮVkZݎw8۱{Rvdի\Tr9{`XVO̜ywOSSg̘1c v_v?f͚5k\o)RSovt:uԩSx|BH( l6 议)*j"#==z:4(H(Ā~vS@z}f7o޼y󸚡奥 0tQAA|vvM ~ VE"ZcAȍSíߵw67u@?\ҞDQj X,Z-D\Պ,b#l6'vsS(f=:$ %%:mG<MgN|+n~@X(hiòfBl lSk{_##iTĈ+Kґq@:p`˖<';ztVb1v),,.Z9ifXzbIInnM7(\xv cFE̝{]a UVڵ|՚)5ǑEbcclB'NN{_H]wǫե?>zXQJexxddӦ=͆.^\z@ j V``c}}7)i\7%Kcc @4|0?hX{݃}822(Uywy@Mrr.]*-&O7nxؕ+۶:URpm ii55%%#ygJJ` +55>|bEohܹ/'}=x7x7n>7&GZy;D8e#l$˹#4dcGD|?BZyVVVVVU9r;獂" G@P*xTajZF駄ę3q0rAJf{sÀ&*v .wk5vo =]`4#_~9~/w?B}晡CtoJ~G?tLLLLLLFdgԝ"N|>74\JT};[gae\X?!tڵk׮ ٳgϞ=]Ǐ?~+z?woo=e Ac^_X ~~~~~>@|||||<׎77oooooonl7{P[;!!!!!ŋ/^|>bbfB,Ƅ,U;##CCCCn>T*N\EEuuu?ȑ6'RTD`@,ƩٌY@MZVc@`ZtNZYYYYYYwyw oo%iz`8djh*+zwwՃYtҥKG玍9lh\hzYDl֯3,5AeK6G`rlȷ߶ZlYB CB܄BP"8@W@~6P5KHʞg<=J?h@.Hh6rs /J gba#4~;\Gk :R@?kwر@L ))&&& $wܹ@" {H( cСCYPnADk}jt'cbp.5uv~OϮ]Ti 6ng@ 0*+ʊ˗qӧ}Tq1Uځ30wDĒ%qqطS7wG|g\t _[' ۢEXNx9r`'.gT˗KJ'/Gڅv;61@IRRXsbpT p]P^_ee\Zlٲe(S|Szg8rٳn^T0ujb@\DU]m2Zmz]6fsTqs<矧|9͙scl 6l6$<[ V'<~'r_v&ml.+Z52 CVO pЯ]_*us p8b@(ts  b__{Su}W_}@k򤤤$eѣGxw}]W3~PrhB!v4Jpdv_~FjRS>;qSD ÇOt}b'A7rB&[~YٳgϞ=;? .ەJ//ooh>8xp` &|3 4g5U՞>k]mgưsk֜*|-&&0e77O,-;7Zs8jkFሌyA|7H>$ok{NU8w+Ϻ>y{HX=" p*r|51@l66Fht8bZ? 8t\B"J 'XƎ,/Ñv:+K,hvM-HsFGGFJ$Fd49BiG^w8~>pΜcǎ`B_~y+2?] BPgx|5E8zaGr8]qs1YH,!.bE"8s̙3gx<6B;wr1@cׇ,<44444T.Ǒy_ vZV oxBkZV "<=====7J%x)KPZZZZZ=..... #####@*JR:3L&m6?uvl$ ._|F܏11؛W$ȖN>{Yi^zɔJ<%', 8g@?>%%UUUU,!KMJ!hמ+XE!krvv4#rƪX\!Z)~ rwwwgt<)cǎc4hwfƌovn}luw:?\?z}iiɵѾ޽|QQ^^4pfŬjXUNDD`J0thrr@16]EE\={ĸs&;R W@HQ**.]B}΀=☘S2=Im~n DDT٬Ѩz+ŵ;@~6O\eߎ;=002rɒ` y֭+WeeYY8\n.? { Nv~z뭷za oܘpBqNЯ_t@`GݑcS T*(+3وv;@||PRsqVk0Aj9sc{ `YUrj[{T!`TTh69RZ xCt~{#(VZjZ}}[:k֬YfQgX'l./h6oZ ڒ._ @"qsܼBBn{n7kj? (_ѣ4+Wl@J._( P'M覷\^OfΌ Gs6gΜ9spۋxhu6Bv<rް/K/ttp]|˩kSZZW[[[V@~gF`4>|C6p 9xΫKLLLLL,+۾}۶mgZy< HbQΟ/.jNQ ++ƺkh]@?wC1Zy;| ݎ9Cr[Џʑ#X/{a^^7)7VcK0:i:bNg4:6[m-!;;Ջ^5 wu:?NTO=+ |1{vbbtB!X==e2ǡHd2{w^^QV tرTSlf 1M& 7ټli4ee QfZ8g?x^(*;DLM;{x<>xᅀVf#~EE|>_ӧO8( !A( y<x<^Yb\rm0 [,fj6<%p_~p`۷o__u)oxrhĉ7|7\觟~駟^{뮻d2 羛B@vڵkWK].LAa=>}^t:q LLl&>pߴiӦ^ϟ7/::"""B, aL~}"aAclj4@~VWjͦכL&C'OL׋78Sv*ΦuVήb1|` JRyEEEEE붛LsIϵAAAAAAx_W- v [sA& ~} ꒸fac[a~ک[Ȱviٲ 6n W<=¦MSz۱}+` KBdh6nv#GvxBꋋNj4j'\q٬bޥ @GOЫנAc4VXtK *n\]-f }ͽMߛMZ5q=+^OF@Bn;Oh/Mj2zh>yg8硦**jj ME|0lXϞbbr>WQb"AϚr„u"#%`͚޽&O2ʕ`]L 䏌ٌF@-(c;3gb s[ݾ}oӞ@@>0JK&X[ Y,2h~y7x+XֳϾ¼y*kkV@VViNǺ9rRe%\.*8~C%%UU@pLPRR]lvxa!./8 ..8Xp5""}th%K,Y wy jsJU3w"Qi)Μ9c.5+͵^zpCjJեŽV+hԺ6жuGM(/ߴW >@,NHHN e2@ H;͆#l&atTV5 :Vݰnwڵc@q55UUǥVS ` m[ݞ=;xJlYll׮ݺ@~$+ hf3+Rx 믿+Vun /\z=wmpHQ-Ǐ ptNNu5+P}w~!!u;7`Cz8vҥ ><2`Q/^xb.ѢE-@4pF`I#߷}9;f4 85U垞ry^Ӧtrybbl,ÁVvFPv W^1A&| 'R)@ *ZmNٳnn?(DT6>lhԣGNNNNN@SWFꚺ9sժ܆Y"":YCS^T|6n3'!`ď?NKÑMv۵k޼>}nvƱD;wً1-8 @2 ?/ @T( .Vu5쬬, I8֝)ooR,3{w__ѣutD8zҥ|?B֚zKtq-/߱c׮Su 5j„y 8Ԭ /]s8Fdۢ^?O^/:s=p  ˅Bw<~\Y/8 D`2߫0ummy t&ȯכLf3cӠ  %%. Y1O*,UM Øx< GEEuޯ۶=̧r+%%s4Ofcsʶ.r~ <L&.@KPT{SWvp8Lc=J1[`#6_`0|}Y@?+P uq{EXKnx]B#sl%^r g??4rsssssY*vQ0ܸ9s:tPO,Q /)))))BaVVVVVnKs ]-4~{_~KO?~.]bbbb`jFOHOOO7B@  L&R xawUU55556VgL w1vƍ_MS111111.]aC4%:^p… [ϭ>vg믿% |\/=p}dBaSx<DzkIK,f3Bi[; X?9/w}_-(HK{ JJzaP.h>` }l+*p[ھ:_Ho~kv b"pc}UЭ[߾Ç7> OhXbW_]-+uD1g6mܸq1c8+Ysc;>|𫕯@{p;f8?+/~}nq`2yxt0nСWKs6lhzXh4իnݺ„ o{UGUa@߾l{8_6h8>d_?' "Hp#Z1f:TVz?ު0? ?l`~++RJ ݵk6/q)<@m/TV R_N~hV%y$4tHfl5jkqz@~,+ @pClB0}}}| L;vѢKNv,^{^{a b v6sO߾AAرwݧO` qDQwկ_p0vx N4(, `͚: ?9jK -TG ;_UU8@zwVl46Ʉu~nbTyyruC0 ,-\JգĉwlG,@-3deeWTXnn^^c6]>2<һ7v bg]\]k9>|~5uHF:ecsw8@݀ov5pյj57m߾쉁2(c` t:@iiIIEKYYH!!AAQQ8GTTTTTU\ȗaaAAaa!!憁B!ZVk4Wb`׮ qq8/;~7߻w޽{l67nܔ) O;NrT(Y @|.`C|<R&&TZh?U] sUUZ-K8zkVoծ~:_\]`e[|ɉF ЫWl,?PYYVf67LPsbI #ooϝ++qíou,]5ˍ>u-&ƃ>@Wv]sag~s#x>JrW"<| ++srJKkkZn^jv36~'96y~OwH$ ߿n Vxۚ>d\LO?)I؀Zθ7{ L|_11F*US/Y0nZYҺjvƱv0BP(}_(CBBBBBBx """"" JRa:Lxiϱ꥗/XGj~PC"3 g(*****` $B!-XPUUUUUecyV\_S{={7/.ׯ_ԩ3gΜ=˗/_~X844(((H$ju:n?q"---`ӧgϞ=e277R$z=&`u #)))I*|9'''l uSgT .\pեM\VGno;qn=s=dBaSܹsΝTtR@G^=~32V80)i,}v2\݂Ç9a"[rɒٳkcΜ9sq8zիW/G}GmE$9y+pnk+_jjZڤI;v ju~=?C``9}^B;t񇫷ڄ\ŽkF`HO?p`Vxjkrsv޿VjZl B ;…ui_7sj .X=km&+~IbtyxT*Uם5k-?wPr0*XksqF}|{իlٲ%>'N8=ؑq%7> =@!bEx8f6ryۅMWWc ௿XftH#b3vl6T0gFFvvu`r Np͙y/#DlګWϞ={s9K?%9NVTQQ\G**Bo0'\ر`AdDR{{pp|@p*^\|0T OKnd iiVAx<Hfϟ2eʢAmW_}W@s_|WT^@ ZcccTZ HRaײ2xsBBT*PXFכ\c4 {=ofssݍR 2YLRX#/jxFJb>04uX:bGΦn=?sni 5z3``'?4oL vXgoO,(-MO/(ټ5g?QHp˸vWtԀ~vOʶ1 Ja G:e}ݍ Z~4L&K{t8`Y?7ts`ǏKKHI'9ˋ^-ۻQ*  88$$0˫~; g49@;۷o߾}.]uG\X{HH }UU:B^T*L(9{w__Qw)-̃/\םkva=t֥Kh(UUf3@vd XB x=8,o_ _99 D.8˺x_Dx?P|` Oh @=<.\((X@ س 8zΞ˳çLi`zR`0 nݯvB ///)㯿Y=e\ʕ3Zl> <G-*W- .*:qĉ'BBj>;S56ws>:lǏo:|,t;'hȰXp=_ʳjϙsHA0Lx/fׯg8ԮV{lԩSYhK/}?Ǐ͞}bVVVC @ |>/+r\dtWVl ݽ{RPXTTRRRbUUUUQQX o+Xc(b1 JRTb@^^^Kў;;gE"D&knW^yW`Æ 6l0`0G(l-/ 7DSW꒠WʺrkĈ?V^ пrr\V>#F P}]읋RPH$yNp؎ͭlrXS}#GΚGEEuVth2Y}s$(( xə3 1cܸx{?~fΜr͛zU ;\p,@yP(Y3cѣYYך(6a?pd!< .[L ceeYY gX%Î1^^M2a’%99V,X`+ml W^}uÆLs j.С K ;l8 PZZU{{d%%8y#8np\~~M oNC8bȿdɒ%KPEjj]6B*~HJSc87u4|w@@ ;? ii%%#1Mƞ+?iUv8;*+wX'bce2 Ϲ|T PRQVp =f n9W;J ?;/ҍQ;J`%,@ -~|lf&w;~4:¦B!vTw{K~~|sk%P(bu:V{Tر:gk}!;t>n@*<_>SQ0}͘1m #F  dR)@u^op.UP*J<8, Kv8yJ9l^R<^VFct^ tsxjVg]^-ru::Pxԏ?͙;v8^}|\ ō $%]f)O/h4V33rssrjjа077ؘ//L*ń\ ?O٬V~~2,H$xÇドiY l Я_b w]=<8ujsrsy/W* Y" a}VPUUUUU%;/#cwyMmgӦMv矯]vٳׯe277R$׿Á >}zS&9B&JRLcz;l*q nyg,1WTyu8R: >{j֭*믿]vڵC 2d@tttttth}{<=}:~M:uԩ2YTTTTTT ˗/_|V5%wV93g~łRRu++/_+1ӧ7lJ_ӯ}Y|YYYYiCK$X ;v`۶; @-/kNg\-/_|1fJ#;wPbe7 x@$ɼx'4o_]8└X}-4'6{ػ7o裑#~j}y<ϯyOO 'mAܐ|mth??E@@*ņXtILHK 鲲mzj,Y. _-[)FjiIF1VVp$ { [ΨQ39υ` ?{ɣF-}i|MX`0>>ԱjrӃ׵YA#S,@ ))!Vsnw۱Z~\ϞMw詪\).D"j ؽQ(}|T* 6Oh{ZN+*jj c={.\*>to'M4I ݻw}!C0?--===!L0UUh#g;_GTTrg͞}>#mߏ)(={'++++z({ (.ƀ~ڷ/+ _HI8zŲ292* cb/]tҥTlƊzNVXXlf^Ohoa=q5@"7 ""2r77ww<ԯGc#:wTlwkk:׸q?} ?{Q8 *udOBB =[_~jinc9hMQZ՜f}n5 gT6[׹&h灦D,wDteo^PSlݺc޽~1Za=z$&FE8ѷQ?fͺuk466&&&`ΜG~Ȱ@5u:LL;Y2 KJ1{w `߾R?8}G.j<|updڠ ϗJyk#t"ddl?=;?SYӦ^rvT_s9M oeʔW_sBc[v۳o  HukM`?:xP 96gdgbNg$'%+|87N:6P tsbc G32~@6m2gO__s"{طر_m`0 KKvM-Ci))YW\r @nnnnn.xy}Z}^t:.}᫯ٳg1wbl|>Y~b1KOG{ٳgc SgI]T*a8`loZ?~paSonݺuj}.%p^/Wo pjnn"7ڧO?=D"K(2LP2L7 0h@JjV5ݻwoS p~ݲl/^zեk;'OҶ6mڷo߾ɓqnD@hu9r|%m6`fd6sRPҫ׳X&F3w?׭6}zV!lP^K RkMYYl,~Ⴋ\/$$dW{x`&`f4 F#bV(bO.]d2;6`{R5_N6Z{#Vq<{W!_巴>$G&SkkOO](JD(Z "k \SQnM< ,C{iӮ] Xf7\` Mf=F7W_u떔tCb3gΜ@\\\\\1A*0l-ڽ{]]qUc䈈O+ H͆uXoFE]a@ӕ7KJ.]Ž,< bUV&pLr]_XHmW^yW@~)h. {Mڥ ?t,F;[;VP܃lPoo`ƌC##VK܏f& xu֭[N,fJXT,77͛7o޼y˗c{j))))))$}.`"n"QHHHHHszb|u*=$&h8/ g(JR8cǎ;x1~!9Ů'?rC 0`\Pr970/52}FtF# DM Ku!F;:ƭO>}\u[yyyyyyxnt-UYVXfTUaZ Ν;wW^zuO>}t o!ד?@,_ww%7ͪrv pdfCxyTT@~dM7PYՖ Գg` _=X!;qb˷\ł6"n-9V@0@lΜ9siD+W\{5f0mZmKkjpZTd r׽{ek>򈟟wrr@Ph4 !!BڭRP`|z@~XbXZd:}nOJz5ood17,lJ`xⲲoX$>}vB >{DѣGOzDz+i߄\72ͼxR"Fs r=FA B`j4.D2Y``>Mot!m 7x7 X"c9jbvTWLh4.~?nԨسÇ~>iӞ={휄u^w=z4?cVSoIpDžk\?\;u4ա;F?_ob#2;'O^ 尦F3~Ϝi_l vߪy$lW$hϞpKLq4Fx٥Kw2Ѽe |tZZZ#G9uҥK.]8b~p̜a{򋫷\&x䑠aD"dB߃\fb15fN [,%ri*l.-t 벀pU*77hNˋ(`uT,^F0/ZhѢE\ ?v0@T/;,U>yD\FÆ%j5j @*U*"#'Opi @HP%`N|y^J)VV vS 4^)^[׫|kI$"D.qתa7[jh   ۭk9.O(T*b7@l+/s ׍5} X>r#^֑;%>g#UNuz?vM$Q7@C;P8_?͆Nx+SSWXz `U<= `„vX~~_LLڂe'nڻwrrb">8}:h YG#GΟ/+ht5 W/|믯Zս{t@ %EFFEx6X,x휢Vc}HZZmЧ/f~H-a`fZEa>_ƍsvW o lp<4ٱߤ@ 2Ym-@xms@NΞ=6TW;-[vj-Yһ7[cjjr'Nv#է՘bR Zq[űZ.>&SyPQQY(^^r9B!\nx}H߿X Pdddgopb~7կ_p0V++7B@`ٯ_P}@0bDnw)(.9s&O3&"_k#1 |ؔjFcc޽_~駯zLMZ_xN ‘y$\. Ο?y`>]vڵɄb1]ΜΝ;wÁ#HԎZ܋_~_~9*j rsssss"#####`lL-o߾}BCCCCC}6;;;;;{\\>hРAY,ٰ_0\}"H$lxTTHvz?wT}?з/α~lOOK$D :prN|~n.'ܔjj4`4wwwwhmXN\@н;:vju65uHM3RT*r80ٻ7~GZK ׸`Ĉ#FeވB!x7Ç6rdhߟo3<3SaôiӦM&5z}دB>tV7>9y23s&ÇϝknKI@}6o0@u5WR0thJJ@޽G| ؟u:2\@*`\hk 7Ϟ+,hXKga= [iw޽{,=+%%66"""B"Q *p8NݧO_RZ K$r^7A>OXZmd: ` ˆ ŅBaB.Ąg'<|p>_*uw5 `(+_o_@(J@`r}>>Ut~ɓnj3[Mv޽dz;κUXѦ~O*fJeٯ_~\>s]FͳDΟΑ#Gl(y9&'''7]:6AN00E݊HW#Yo:޶#ջd @\'Rb1n՘iFÊq@.BJZ3d2D(FŒ*oZ-$6صkP@ H$WKuTZZNV$'w|婨Jncrrlի7oNK3˫t:vZ, ޟx2oްaU;v\@ !W\r [l޼ysݔT=Zw ON6L.W*|;c^_^`6k4W]h{U 2={/tņkoDWbGQ.*"XXײ(v JzzIC}?=L2gNM.ɤ( C¼<q &D㉊C!]״/^*,Dw}w|$'GyG䯯sLgK{y5kApus,ٽ s-6mڻ.ܹPx'x /( 8=V;rP়< a?NP&?xݞ=|1-KI@DT^ iQM~?рɤiD~sE`Y& A/QYs'4M gϞ1O/n̈.tԨl⪪__vniڶMC9VpIɞ=Dv{ǎ;i=@?b$r:׬ٶG~rX^BFpuOa?rd 5@ځ~.EAدv@\Wj0IG& ,nD_-x,?]d9Z@WBժ6۶hѢQM 7$$4K˷l)*"ڱc*"Uu'MPj޵u&͟+΅DOܽY~˖W^y9sJKmtn1|a{8UU_?n\^[oyl9ϷcWjf L}b,,ŲD[ph.ߏ1EݹsiiD9ng*,5^s4h]hÆ;^{hܸI" 6f~$ϋUQƍ4E y/~5.wq%^裑NMo~v*++*P1XVM%{v`04׬릺w5_wD~$sw͞1yr~uC }'jz7?]'jz6{#qqqqqq>A|SŐy>( A\.e|~˖-[liaݱڲCʌAaW^zr8******}+._|#OӧvK>={pXvf5\rt4:J֭}퉖,Yf%KzYYEEEE0ȿg]ZVU#޳g2Aƍb}vز(#Uvߵ+/O<6{ǙmvD~gekrcXh汾h}Ep_ocx<6QYYQViicp|^}W_}nn/?} x 5nrqaI]'ڿ9G9Ykwŋׯ9hH.8XQ Aݯ|d**"9t_gl6"j߾Et( u)J׉MYnsofuҤI&M2ր'IIaSUl6>磏ϟ?=箻vm߾}{#&zٹs׮D%&痔UTTWWT~UZZrrJ Q˖DWkkשرD;w\9u*QBB˖]f67%$$%CdUV_~y?8yyl٪ՠAv֭7~ _y'ڴ)Nm;H52X^nhUf"jٲO"r32,n`_UUP=u;N'QTT۶^x? ] rƾN qZ>S}hĻv;bzd"6Csa+w.,l׮ݻX7ﳇʲNԷo׮-[' ټy˖={L&"MeNڵ;\Ĉk} ~w߭(=޽^g믿n6c:tx#8ȿf 8׋JyyyyyyD|_܊B/YQU]״۷?s8TU( 74.( rډ@Q,s˪AjYvZ@۝~%F? (aQc0 +KJ<^.^~Ayrr}G}vӞ Loq$#####K.KOƞ=7W$ :ak>)hٲ[nq̘6mo ?7,BzEi(d<(^_; ly]|.I]D55OJd:Dqqcee]pQ0 \D[/[FdeDvTV=qaSs8?5LJGS狆 OufRx?KygʔݻOdP64uUe"I*..( ֭$u811F ޽aW͡ Gf誫.x{HO'Z{\d"_EIRbbϞDjDE)?|C[~Zf2l;wÍ)H.t͛7lPղRq(IQQ^oT۝յk`2.hQR`p4-*spO#d݄Bohf2q_[xEc,"Gffp8}6r}׿Ӓ%n7rd  )/VEʊQQܠK|9Ңf=m[+6o>hsiՊ ++a.q$),\v;"??MXu{h8~ U댒E`$~Æ[q\{=;wI.h،>}bcV^y?{ S~mɒIrr^zM/BenYQO<EA5= > 9[L2eʔ)Cfggggg?9s98"P]D[lٲe QnݺuFԾ=},@cpNDDQQӺu֭[g=ciǏw~_x>ϟ>}Wr?yĉ=ztڵѢEFFFQx}OTR_={I~֭[lIT^^QQQ%%eeee*\o?%.n-[ly;/c|;wnm;v,_wwdS >|'~C:t… .\x|C4ts;gr @"U={ٳ- 3ˉaC~w˪U/H4v,`~S/^Bٯ_Ds.^?Cte Dii}:pdi4{Ekoߑ$i֭P~}q(7LAwr9ǝwףGnySS9/M%~;<{6ww(??/o""ሊ"X, EG%'GGFiӾW\矹~? 4f嗯Z;#pdL_p:33& vk,:劍mߞ(#r:m/Ӎ@%P~~=7,o,Xsۗ_.]h„ѣG&~7䄄wޝhܟq8"#8hɒk׮5~?lذaD?aiт/0qspk "_lp}Rh[O>QJvsE}?pB!JOo"#(##==3(..&&6*D[gen}%g|/]4Y[<ڵS*wծަMZQllLm*~3"́<W?|~r;\qŕW^yeF7$s=sϵXVZzj5kx(zHOʊ7o޼y3|;v]r 7o|A|w$&FGl.WlM7Ĥmkz(TZJ$2* %An~w/7[MUB~?7ej6|eeEEܳE"pb!**zn?uUk1A/ss~ ȸ'8p諯ꫯnnsrz&7X?ظ#׾=OD, Y矺g'FR}6ocnhڸ̡PQWUD6}QVVy<ǶmDvcrCںAj=8/9tnr8@$Gt&%qYjrmq>W&TUQN],:Qrr&tr{ZuY~+HRiiA͖Բ7YÁ~xf֬Yf"S4dرcǎ%uwNh/R35*/?ƌ9r P >nu.`-bѢ; ##+=}{(yn07o.( zٳg"P(p85u"]79qa ۋCipzRׯWn+sz?uy x?ѳvd%'?4M?c{Ѵ}|'p;Az#@?2fh.~ڴV\)7WE9G$Iv(bp,3=]d@bo\GߥfX,D7_tÆ"F֍JdZ,n7`砸$VN}wb?z|޿?-xp8߾}ۉ:uԩS'^zh+"rq{,n ~NtmܸqƍD-[lٲ%Ql,x4ufsAAAAAh@C{.7772fEhחݷo>  ݻwoU6lذpcoASsrrr>oڵw޽O=աCv|l6gemKt=Dɉ D1vnqťeeDܮ#O] o7TtMkzz%8YͽM$E ~g!_GڕUܱFTTpKTWs>`!:펎&r8 w.M4n}sԩW_p!uGа>::hnruݻv|hwɲ(JNNffzzz&l6ǓE}D[lDzw5D\uصŵha2Zt9*IOAM"`_'RIEEEEٺψZ08pGTVgDNgN+AiӷND$ODݺ]vYaP(^+^U?+5|>%5ja8rU# 0x ѣGC_?f:Ć.4Cn' kO-'k=W/W{[Ӵsc4و23^6DgIDAT-ąo׭۹s;vlْ{J[fϞ"s.O ~`P1}PH)+H";gUU~ģ=ukJ4Z<Ժu6q#A];t8uknTPSe˞|+"=8#G5jѹsΝ;ȑ#Fz5W^fhc~p8i\AH4 _}׮cLp|ŁPr^`"?EE|_g%dEP|^EWYiLӦ$B ]~u͜YV &s=ܣiӦM6`ED4"u㞭f̸喾}nm֬e˸R,z둃/K/ '[C^?/ֿPPqXNBWY=:zk3t]Tu@тApb5w. 汽_%r89RS7$*/߷$*-ݹ'=zDGE/LEM(DTUEv''BoFdkGpA&[oUsCx pjOv 3]V?Q;Xs϶ASMC M^oǎD~8g{{{9 yGӧE [%j.##6 rO\'WW0ѧ~ŷ/^L vF$^oj1]&x@ɠ5ONЯ0*f3vڲeU㏇B/pmWs ^{ۿ͛x}!CRRrmX^ c? I0Q(9N$"N'( Gǿ>8x7cclP(VfZuuv풒iM޺߻ʲ$\׉JK}>>XiT_%*-lL.>eK`P_C?{ߦMZZ_fM4>TUU MlwE&Q^K.jeYQN/_|1+[\.l׿:wn% `PQx`7J>xgzwwA(uIĉD!q9[K.]tcq0jt}ݻwVx ͢`(Eԯ_~r|~#蟜LxQц A״D7,h}￟h+7.`ذL>--%r8}[>FxG Z#䗤`//_? n'>d8"M /'m׎8/O\2-x~>}ƌ͛_堿( o Dv* _Z}ͺuNƍ#Ό|7o&r8;t pHnP߻9D_D.׷O4n\nn7_ڧCԾ}JV{>#yoQNUW9G_.H/~晾}E.7{\ O6@ȯ]7܆㔱9-hp?plNz`V.\XT3 W++,/`G%''%%'n'`/# p"RơD<#<9rs#=S O p衳;Eb(ވpx/ M3ccA#-}ω|𮻮hǎ'U Vuh͚ v&zwyMJU! 9V+)T1G/a?rb=܋k|;9пtiiiI iK/m<)Sf̘5k j-/ojSy=/_nE}]w`(4kΖ-[HJ"JNJL$?iuUsXT K˖-%%DdgwQVVZy9kB4w_=F\b1N/4j%$UxT5##.n߰W6mbblṮ]zy=DÆJ+V -[ݷw3t.i<pE! C!^8/JسAO̟hW5|Çz:M+VXhʕ+W4o/ܢEffQQYY-[feW.\p7%7wݺ/NJjw=;bĬYhҤcٳ~:'&On;ygz:3wyA֮>l6m۷Ҿ}\.;.x˖u]򈒓SS aǎ&S0TT` P^~EŅ[~YYII^8# w.ee55B}DIID-[vꔞAPWؑfJJ:uzm6"+ Q^֭DK|D|MH%Zh޼_߳K{">}^H#EAYuU=\,vbxkK O6=5t 6Ξk:ݦTrփ3ta'rTm>5{Ax(hXFG{S^qre^z~V]s麢=>S<Nr{W]woAAAڵ֭[ M23***+++vڵk׮{9pa;L;ztV}^rI6jL B7|qE͂`0 DpPӈL̡jdf.;wlf$q+ٳ++4JГO>O~iӦM> Znݺukcǎ;=Z3+hp^}WW_-)).+?I"/ފ 78/98 QHSY|c%Km[~~"kױcnm"=-M}#yqqcNHpDUU֭}D:DGlZu~Ӎ]#>ELDCdAh,+O>?DU9[A6Vh3k֬Yf<; yLJFP[}+QxTP_M=nv툖.]dbm.x.`OTQse2^M|>~O?oV\l2"?:sg"Yvj!~ux\[?!#"R >=>?=/sO дő|7FTL/Sƿj+ʉߧ4Ani'6/ p!c:1y.w5 cǔ֭SSᄏE]SS`Pn¡y-b~Y֮ --&q:-"lU%%==6(>>*fmDAntlִ{ɿSwTVpH/S(,|f=bm$qu8f><3hŊ ~^x!3CQx}6Ts-p۸GtI۴iӦM-'mQlL{ݻwm 6kyp( Bw=6vn2# ,cq=cϞ={1 2v|r?]}3;sZ(3f̘ ĉ:WH[0 FG)\ w޽{FOjyyyyyGt~;O]wqO[#|4=8Pח, EEŒ4p`~9l*29.G"_?~'Oϟ__4M~lVDv;v;Q\犢nE!ڷP8 xqGv֮Ed_EG{&etv-^iS^o߶mZܢE 6s"FwݺH-ٍ7tM7u4d?WSSSc @v y(h7w0dȕW*ID~QѺuDUU]K@M Uc 9Z #S(UTTTH,KR8Oڹsyg'Fu57zS7Pzantr>'{Tz//?~:©n~_( 2-pf3QNÆyD))N/(ػ7=t ~, a=(՟~89;w4ӳD>?9 ;u"33kioDG'&_pID11Æ]q߿a…DуMpӍy"aqƍGԹsΝ; Om۶m۶諯ꫯ8YOԞOv%|3ڞ-7AԵkn:i:DP ?ο{??6u}WcE dۉAU+瞛>7~W{&$"U5wYyD}7QY$yϑWQl1mwqG0c3f̘j8{9 0qCu]7y /<7<^MeM }?@aϝk''GEv[˖%&&\EUpr8~)J8kI~?/ct떑Q;_w:cy[hpx?cg7qiZ{?BFIOԹs۶OOi|(D}Ȑ}u)>~={ jj/**- **a]gtk%%yP X_xN~z ׉rX2-->k_] zDQQyy((۷piT""2 _8EƑe~!ˍYn\ǎMJz'N{<)2QYYYUw UەqƎuAѾp+o~:533###jMKKIIIZ,fN\fݞD񤦎c ["O6mؿ- ڷo5k33w'JMMKQUܰWnjU|3NC v"xrLRQ `<#*(::95) 7GJ"(1^^syv\kݑNUUU99^:~ 7U^?h$YC$I%%+V4s$HB!M3F:t/?៩ĉ|>Q4Evwjv钒rΧʉ~gR}wzMdb C 8dȉApq>KJ +N\ tU<#*1cOtɁC޽woqWTTVmQ^o呞8[n?c'f٬֕+W\mذqƍ3i?뭷nu~֭a_|K@(wqdKHR((UV?kEp޼o~͚Wt GQx'x[9ꫯqG}G߰{9»$ЙO`|qH}ur_kY.󒓫\E3Ogu'*W1cNtZ,^o|RUo47#c'^oZ- gl<#}p"(qt:,YdI~ׯәd)=qs<q9\8]yΞyoJUUeeMթS|a QNU%HQ$)2nb4I )J/Q@cq?6={.xԷyU̿bM#ڶb.?u]D߾}˖^/r`P|dHt\V+QյkBq\jP(TUp(e x2y|&ΝQIWY9sOzԩ^;?Jhh;n^|nSU{>M\h^Ƶo߾}=G M?Pm۶m۶Xz͖`\BEqƍ7]vڥ\r%\t _~E_|tx;㎹s}_~9.'U'fΜ9w\PˀM#R]wx(==DpȎ@E45ܞ{zر圜Ҫ*I?8dGG6M&xthϞ"QlZtXRRlJh\\B C!I$Yִ7ss?wPN~NWO>U|qY&ZGMT5-*I&Mt]tVٳgϞ=8KVU jjjjfD\'4=-rOΚ5k֛onݺm۶m]ѣUCrؘh966&&&lz^ .OeeUUU*+KJnu/{_V\d]2]hѢgOym~9*,ܷo*]ԩ{ @+*>>OE8؏ WDw9O,X4/HCX}~4mC+@?Wm~eYs\hXk:|CCOԧM~ethՓvu.ld1pO?qEj=vbbR ?D>(9'L ?L(G={v֪U=֬[q]IՑ 82n8{))))|hAs׮HO7az<K˖ݻ[o6 q#M UUFòPHfM aUU@D% oNg0:oۭiӦM6-'GyGކzF̙3gDT5k֬Yf5a=s=TWyQAUSEaFF۶N'p:%%܃YS.4"T|"F4| r5wϴ62i̩n[i / uz^;#r8X'z7nܸq㈸4QIIIII .(HI٫~Y ѽ{Ϟ:_v-nOv޽cGbCHT{BF`dL;7e1Xgу$[{6=́C:h .0K>#jٲEL[o[o5zN-,|k}9ncvqqc(p8RU"mZqLUU<]r{QpQPᚚy:7Lv7p8Buۻ۷o߾}$>܃KT|Ç>h-믿cW?grrrrrrdڳgϞ={TP6EzɜD_<6{}݁sǤ%h\@1U#~~jt1u;['q]׽iUU~\~yYYu,Ohl&S))qqNlfsvNg[ffRa)eeՒiBpeeM,^/o3~ q,6/qgouKp0_R`PkLAJ߯iV9ݻw>}́~Ue Y6f`Mρw-Zt4z\doKR  #K p뭒|mȲ$WY)I55?r%/تU۶Ç;wn+Vp?5_ҲŻo޽(peME3i @p=Vm`^7~k[8)kWY^?v8Q?^{}O6::ݧ s u#++;uƌxd4EYݺaSO|3sx7ۦM֭[_~}_R7oΝ;"=pr,_~@Jʐ!^;rdD}?D駥DDEiɤ55UU?e<14)7*=AonMx'xbdn{x7k ?7GzU:ѣ%%'&'1xu=PT)w˗Gzz,N' eddddd=YTj.`G5f٬V>}pv?lju#.^ßSyh繹_|_|ѯ色E-ZhF֭[nMTTTTTTDdɢE w޸qcqOO{ݻw__Bb~#hk<׿ヺ88% akr>nvMP9z{b~(NQ~odO?-((-ݻ7-cǴ4#115f3%0t _s|p(dD_޸?n2Y,G/h)Bn&ŅWf޺h۶CUU5k>?HS^sͳ&'^sgM͋/FE%'ed\\NkƖd:\;SeBuhA0UUeeýtNxss_t48{啦3 B'asMϟex6fx =9A /}3qC\L~=o|~_t~\8d ~_ O ۷oZz7s}mCIIifGƅR":yEwߺt?/UW'%9Ngjj|a.Jd2qN&(daY4jIRP( %I?XQEss_}u[q?D9^;} zB܁ߔU3socߒ~λֿ.r7i;͇;zC>z뭷MuƫѢE-Z\o@i빹O7(!!:Mm7VWq>T/WQٳߴi߾ۿ&شh"r:5b1jEsf]U5.NdYQ<[,^oBfD11.W\+zp}ASW?lR_|4t\r@MMQѣ|ˣY DE\ r=X~ D$*iB!`HUu]U/~Ot6>4o?|{O>RZzL4˜9 ,X`8Y񿸮i}穧xdtҥCߧO>GZZjjjw0GNѴ@EEEElʕ+W{!$q!IU y4媐:f9MQTUEQ4MɁρ E`o_^,?㺟Ϗ~?oΜ#^M{W^0MÏsժի7m*)Zkj|>I]KCuY1.4{OBno|ݺu_4Z;u8p33۵ٚ &,&l4tC<7뮻멧z6nܸqg> "=]Y:uԩSIIyyyyy5_~#=pzC[?p0yln.7z |+j^!Sn.7HOљoYQs8^gɑ3W_M~=Əd##)7KL;wL#?xP~4z4GvkVTL0dHf=ӧOܫWF+WNbmr0h96%oEyy&]xk[ǟ\>`ժH/W?Lb0Ë/a><ٓ <ߣ<駏>z`0 'EEq/sq3_ޗ6c--{3>C 5]ѣUUUu='GU5(7wΜEvHO 99={͹/z{:|_ >~`e6;QQEEe6ruuaa]LlYEE =;bĠA xؿ˥ީS׮$Vkǎ( ?oxj{-۴)/_ol6-'jZ-mLxEQE!RUUU"I$YϗeYի%I$i_~_~Y$a7<('Č%7[ /|)S"==dx~$~GGzxn'%s XNSv Nb6ϙ#˚D>nܖ-7Գ'#tO?}5嗛L&э7z׮DiDDCEQUmxr%??c /|-_ѻ'&>}xÔ:<ܳ<\j꧞JN>p {{={/ <c뺮6ڵ;wcBƍ{Λcqq^}՝:efvGGge9v{l,f6p`Fӈ%5?Qӈt]U%HUa_Bŋ5۽oT5t8>81qxi#..;d2L&Yr1f+E<'*jVqp_U4 eY~Ib(˚ ؞zN{#߹#Fx΅ dXD7ot~E>9rh8Ѻw.JOw-?4kר(uxjQӕ$IQ^}ƚP8Ҵ}/NNHO٪cǷ^zO=5zt6nwee($˚-ZgO(iߺu޽?3ǝO=u5˗_:VG\ЁuGj IDW_=sg<wzz衢8~t<7fZUu0b V]uE15MUUdu]4>4d2,]$Uu8d9VujykkY{rp8Sx|ıKVDGO?lYEŏ?np%))Gz:6:ZeԨ6mnYXl6>_^xn#ؿm[NN>)S.l~8[oߏ<4]' ~.]rsEvC]={>b~Nͦӵkp ҡit옚jL^<(PS *QyyM,]X ]gO078(z@eòlW׮}晴}"\ؼov߿Ñ{bX"1,*aa!QzzZZJ SSV'&h׮;v⋟S =qQss`Ô)3E׮sz&%%$,LDJDԘL$&r|o>jy~+.ܸq„T#4hۿ&8Vwr-r 141>VGGk7pF=BD ݻgs{?r8eƌK8ȟkUWWs0?C0@*D(VV򰬌EE<,(a^mٴSZJ=p՚>r 7(J Oo⋃wwv9>>>>>4MTj]WUI"z-^OGA~WUju{8<ܺ3ڵ_}u}>ˁ %%uv=k©EzCkjʌ}=z;wΖ*)J;QRUP xk 'Rvolل vB4gԩ#GmvEGGEY,+VFte]'Z(6wsNv~?wH4qܙ`2M¿UCUjMN&٢v%RU2 ž_<1;Oݺ}S8v}GTԽ`fe%';ZQȁ˲,khQ(d U( ?dYUast% /LLXzHKv].CQ^yG"^{^{mbX~zԨQFr<9 ol6(0|Ç\<^9s̙3q]tri~EѭZeq[ =vV~6L}?={y<_xС]FpXܓ,WTBF08t(b4CGY8xiDDv-lBtƚ#G_py޽s{oVb"|.fbͽ{$ƺ\N4y ]MM4qymKq&6("D.GSR"=м֬;{EP{ҤA"hWVr_=b}h0==--%r:Nq!jBFh4+bCUWύr 9*<㿆;wΛpчG5Thv%K&Lf9sx`Ԩv(ePvѓ K|jj\6e[\&<OfiL߳'ر\r]D_|%_O4bwEw'⸒nsX11ܣ{jjl׵}^>wwצm*ߠx(A~}c*Q0xa(+  aMLA;&~"߿r\.>X?_<11{իW/ Mg=Y# ӄ .WBBjŢʁlF^oLb2Y6e[S{Oԣ^-I^P@Ddl>uy 0nf6KdY,fD(c 'Im]dƪqں^VFpDEub6 r7XXx+pyؔ>q:~.C!뮻Mf`D\\tEt D>~@$ree8l͜9gUWK'9z_s5-'kA>VII ư!֬;wʔ#Gz}ӷoϞu =Un{ZX /ǜ~Ŕ)ӕ##?\b{qi3kO`[,>gݾ]TeX jZ ?Gl bM3 HNZs۴q^x߶o?;~Ν'^p8$q1fر99 w?\𫯞xBǝҥ˔)wxr=А!mhթSze|#V>o%!DZD_U5Mx _3#GvO;֭N':磴tӦӳgΌr=͘1cƌ]x^{iiiiii6,˲,9v~C?6ۚ5k֬Ys<}fywyg^^4;k|w.]^/8Я(Mr_UoW JM̴Zy}߷n5k̘ɓy>'jnX??;{͚m=n'zv"jZDnZ-e˔8V㉲RS^ظD"du_~6? NGV}w? N\D "k =ѥÆyTSSVF4`Çi,BD&rr8L$/17Z7e}c5sOP74Vf\hl&3G..z9p_4kС,sA.[Ɵ#Iqqo#y:qgvKGTTrrw\1133-Y_yGv۷OKsL&ҋw0ȿoIRBt:V+ 㡪PH ULLTSHQMC~\V+ݮB(7\VŢ<5hPَ]iɲ$I<j(@s~ zw>|8W7tcnDLqk睬?);{ƌ &L9Cctvy^Ų|99+znj!=pKJ$II1}{l`?O^>@T3.X+6;23ZJM5zqA;v@ڵU+lxn UrlD0p&Ld6[6ny*/F?T1D诬B!J>5x\{Hq VDP(@ @pW|,ILdGw=:(t]Cә`699W?XϞ02VIRժڵC(⠁z @{8P{("߸a($I>@~ӆTwh9-7l}ɔеq6۾}%~5Ev9޴))5NcO*U eYŰvAڏV JNu[ܷ/?kV;࠶t>tȑzi)Q0XUUZJe˖-۶޽gOAɟNH/OBӭې!#FA~E   >|o(/h,DP|<=b"|Nu{bl˿A~]3硇Ǝ..z,9po9_`%<I`ԩFurLit"ib1eӦ('*;n(;;1QQpyo۷wͷ:dH^f&lDAM3 v  8NR7_P 2%LTUeaI"Z./E׉VQZZP{8|<#FDzy80ߺd6Lfs( B:UWTW5u<\( M8\Hi;&/;; Wz=23-ML&]x*yH$~?D L^oֽ{[? l+Wz\lBߞ#z2~CIj0e. ǍracXtQ OD-[fgl&%%݇'fsCdd\OLxE+T$Ir:].hΝxvB,_駷fޣ9AB`h֭[o7z,--+0{A=Vo7Q~_~nMI!ZzD]0x۳{b"NuY~1|ñh⥗~qb9s~xܸn5%%UU>vs EA/]q311.j}ѣ;wvf"M7Hǝzٯ_woߦM68<4MTuġC{v8,[,|Tv~ *Ͽ@@QvػhϞ|>"?~"n~\]I"?ph׮4MgDV]s㋓zꩧ\.d2\.C`(D0TWUVVVVUUWcDAjx,I} $)I$""dH//8:ʕ?ݻO'NOD)&]}-M ҉ #9o6KRe%QttV]X[.[<5˗07o'\ON>]\ҪUFE 8X$(<g:/u]׫o`xq@HQs<ll6=zX,>޽Kܥ~=n/-7o`2.(**>m["M KJZqJdXl6"I|>($b!5+s Gl'L4}kuWUr?/'BVV˖Di;-[L<}:srz>|Xc䯬ި(bxu]Uy 7yÇ #$.a2Y,ˡQ@PUI n,Ftس_O;+sE!*)Q9צ2w.0pӵ?~y<qq{y5fh>g+JQO? 5qZUp!'k[7mrVYsrtiXI-ALL\e|f2IDp\=u{=D;U൦qM㠵| I8$E!ڿ(~ѣ) Qi{OvvV\]>~ᇃ'x'kj|nv"jوf3yq8?K>X,3?^sxP^ca>TUMe>:G^^ptV%**)۶첇r΄d$?X5-&@`>}"]W`iāl{~ dXUtJReeEň;w~3 @D@Pscb^ { l65&F<{A{E5o?#"RJ"Ph&ii…k?Q;'o~eڴݻ/l͛?:t8G5")"R;h(DC ^M(~A̙c<_8%K>[O4]>}F8F;Q~уMm P^gKE^?z[~ ,Xdfs4sgؘ{V$^/RSD˖-\hQ޽{wrh_<4PhÆ+nXb{.2Ǟ=7Qp>LOo;w z}E };-׹sy )8$Iun׼B௩ $**C!>zQ@Xߌ!(3auh>p)?KLz^le.U4^^->ZVGy )ce+X>Tu߾H/'8:$UV]wݖ-;gNfwۺuV&z;ܐYQ8%55@Yjy8 u{3z,Sa6[DUU{rA} q_f/T%˪ mr" n~d2lo0(I=AyR^NDɴ?n)O>2m֭_~YQq^ܳ'Q8\Zol?oMuU% JJ->{v??[O]NN߾Fh۶k`oٲeΝFp{ky)S"<4K|?a}y EP?aCUT||v\v~U hÇ @/^/oݺuk~> toh4F{6>t:- E@^ .5g:5#yymvh:j>GGGzyq癁jvWDZcX_&'u?{Nu"'6 啕 QUUI$WU,ɲbsAY9MvEE\n7/UU%5MKK+*4 "p`~Ѣ򊊲}^7*lU("Fd6f\8H\lD U߯(RgH/'8:99U{={ڵk:-(>>66*XvΝDݮ D˖-\hQ>}AiӦM[^歷>4豖Tw)'N.kLgw4MT]hl38 G9g?2eɒu?()- Z]N`LDiuk0ҠA/y#DzO&ɤv$ɲ,6'e"EQb"bq0D 4.W@p}5jZM Ţ(" O?˴i~Ν˖MަMFFn7HrŵjEdrE2ݻ/*Z?G#=?Psth0`؋.vQщ WVV^."V33}oܸqFpswnn'N=?f̅ WVjMm۷o=Z&xN~h~ڷ'rx 꺪2ŷD >lڵK.YbC^woc}h*PSUJjbڎu:UUU<8=:_̂Oڵ{wEQx(#t zxRˁ~7J$Ix|UWÒ$D0/c>WU.blN(`0M&MӴH/O?O~~'_XXXx))IIK8~Q(# Ezd2 L~j_X8o2f3ڴI*+++++|^z饗u<85ؗ=tx/]s-Z ҵvNjw. Q P^.˪ZP7*IC֭3gFv OG`PUѣZj4"YV v~\ @CPH)8@?O2s(>}z >˴iVe6[Ng6ٽ{_{-79WQw/vͤ6mƎ% Wu] -zソ}t4'gq.uЉ x=ڪ*Ou:G'bA|mqޡ=%Ùǝ7;$) Ѷm۷޽kWe%Zh2:]m\.G('~ߺ{@?o7D^xBԺuvqqDVX7YU~ Dncp$[YYU n54)SL2%5ÆmܸaÆ K|aÆiflfl6Ndv;a;DV+_=Z|AdpP_u1]'*)))))Q ,X 6f7"|G{g㏻a]~eժ=ڶ۴u]9trL&FTZcGy$_s󳹹Cʶm{ %IQTUQ4fXֺ== x L"Joh6|pX M&~x1nk@N478 ѴH/ӤI-[L=t(Q||BBvD \~! ]."9**%60QI=$CEzV  7p뺞3pOJRd-[hNo[e>{p} ӧs99wބ F_v: ~BB|KT\A%KV|\{* $}v'ևu֮ݰc}8~Z>`dsY$sii '@/~}ipy$麮L&bݻ|>_z;5(څx|!z\WU>Vq~+\Ȏ\^xL&YiIFa@ fj5n(Vo?L7|[er08un嗗]vE7fL6b<|ÇkZll\\Lll6[F_Ed룸EA]ӸǏ_"j2=(111pAu֮ݴnqMᅬvs[w~t( |]~YMMzu pj a ؑ(66&9>˖mJ4fݺ.aׯ[y>{7Ιh"eܟwdYQL&cen_4۶~3 eYtl$.ϛ\fZuB(ς(+u8#8-끢~Qn_ʟ#I9E`\6Q8,˒<=O||liZiDz9Wߟ 'Ltff婩''$lDD>͟?D#F1rtԩSV[,\bL^jwl]`իW^-I??+(ʤI3f̘1cƇFzy@5:/p`^ w}v~k7ztvǣ5߄LVkTΝ?s/I~  kyy<yq?Ɲ:\NѰ+S @4rD|JtժDݻLͳ^r4]_/޳u-\4):nWc*;{̵k%O33o+&N$ۭVHjj98(e2addY׭V6mFzE>;wΜ>ۆ8qnD,oB&~*|z׷߾jkZNΐ!\q tn]fMG8nn^;}kz嚚R}=^_JJXgKJʪ֮ݸq~zlݚn7&$׻.noݺ5k6n]a>DP-枇ͥ?xò́~o8*+xk3ݨQFٮt\O>ilVk?O^N;\__]˲Y,"DVb2q@_ySRDeen"29`iD&4^B4||b<~kf9/$qA McM#a"aCf{Ŋpòe|p\h2e_mۈڵ۷oz"B}Ow}7+WX|M7uҭ[n6[vvvvvŒflMqqQQq+ڵk׮](S;s̙3gnǮɁ8ov{ttb?IdEEqOee8V+-ላKI1ᚚ|̅=kEEu\yettT(= 7ʪ*{`VQ$3g"U%ZJi2#VLZQeeIIu5'tձW^Y i6*'y䫯;--6 ̌1z[/hݺ-[:w&ڶm߾;Zt҈TI^DUUvUV_]Mֽ{Nѻ^w]ǎ-[^y;lYY(ʘ1{O>S_}yyOzNNn~xAC/ˍ ,D$Li9\YjFp{Ԩoc=/^}\*%'g /2cPP#XvnMJ"Zl~իwnݼ^3ѪUEԷo":@  -ZtVk׎(>>66*zuF|և64/YV|>;LΏrrrskjz}GGU})d&0tuA`_׬++=xEPt- Ȋ& BAWdd2{?ghИ!|w̽9>ébذaÆ䔔'vmH j; ssb}OsÆݻmغj:pXssNf5Mӊ1}(0yqƕ_<֭[nZQ`}&FYu0Xny4 Mç@a@\瞛v;DǨY0A > 0 IX,aU c'0x 2躮.]ZYZPЫ7 *@eeK(X,ɉ%%\sͫΞC>1cƌ3^|uݺu&MGZlB }o/X`uu>OB!B!B!B!B!E㓓=X4Pծ>93JJ8.R|]-1fKI[[}W̄ 䚡bơ#"\`8,ѣ/$7׾BM`X@(b>_mm]`6OQ}mܘ'X1~C,X,V47  rl;bwq1@{TU~ r0QAEQ].q8RRrr`Bs}z;:aEp8V24iР!Cm6Yr~jjv|?om͛at,ˁ@k+,G"~?i 0 Я_߾TUp4uYaX`;vnjo~3q7] *;CG2@UƎ9s_Xa#8✜vױ0zw.]JᗆfpD<=ow“_NI`nYٮ]=6mZRR(dwOLR1 >믛s"^ 2d̄y&r8nveY8 I dg^/ԩcǖlX~ 2އ.^,.vpAA0{eYanfYfFfOIDATK/K/9r@ x૯jn/T/[6j~kVT$$$&Ϧϭ[P ref: ˚#+O몪iA~3꺢`9QiOHp:Y 18쇇0;8[C@@ {o̘xnc!CTU23woɓx"EسM"`0$4UwƵ~ 8S-!B!B!B!B!B!׬_r奧s}1C?Ity&v@Oy;+*|W<O+''3jc1 B! /-92/W׭uiT0`~MLhlzVY9r?=UtSo;0Gb|pZUE1 u֮ < `䤦ƦsP^>f;.f`R0( 08'ej-|4 4 :h~a\4]eԜ YEYPnay_UU5M/;o?2DUUUQ*+ &M*)AQvxQ?DEd,P(\.qB!B!B!B!B!Bz.nw$$de3{ ia@G;$*i  1vgdsG>+Ar†Gb#ƹ7/ӆB(H ƍh˦ء@,>Y  I,m ȲÑ^XK>ߧɓ/g#KL|4(-}@ Q~p.fEI$P(V?ŨQ^{˗ݽCa|;B!eͳvϴ9z߾Nәp=4o0 n,핕;wB~Q{麮Fy͟}駡핕vu/{UPGG=:) s-Y{hص+2a-fP]!~}ydkyܤ{ah,.I'ޚ˙!ݫe1ȿhQVVVVV<K4F" ݊(".oHOx/8p୷֯{Ip89f@@Ach4۵X(8.;;;;;jZ38]F CU1puH B(i ;vtt0Œ?helcgц(E"MM))%%,\Y:nU^z?￿zϞiӞy&/o޼zAx>}1@߽::B!Ap:17ne~8Ba fx5lN'@UUccB(,=?~Odk{:ܺ7 v]ɌjڡϦo1";`ɒM2_}=twߝ9s͚ `۶[w(+2dذAapT3@UU}=@8Goii ?@lvnlqfx} nwӗ-3;v6>zXQ c#$[6]'А!Æ xt2v=) 7w^~\ ȓ>0 #I0p4*INgB/0b#O GG+*6nXvÏ/: _rɘ1IIŮ9?TTC#K<-[ZZas`֬23oOt?dG&K}{bE?`m6fh4=2֌cYe d z~|;G.ył,=~kj23λ7=ju r?@?N뺢s*a :>O*\aP_}s=Hl < }">7!'੧~ (L޻wqqq1- ԧ@{;>~-zCh YFPmm[=7SB!B!B!B!B!1kN99Æ]vقgvlаc/&ˊcƼf}q;> 6# r n$qϧ>@c=&vm|뭸e}bOwSΝ3u*2Ųxq~EEv{+111f[ `oZC!c꫱>=ϕW77c=;G.>VP1//##1moxhUW  pm#F\6gdd3c#F!x/lnؼy>HDz p<&V*TVĉ`\2l16m n_y|9-{ ?<[(,y9nw:qd[`Æ?^é`Wܤ@@QN砻  )̙W\ѕ%lȏ?goy{MJ Td[R1 / /<]vng,b1ꆆ@  _= ϗ~߾85}z~9̘QPp٩6>`?eYqZb$a/A͠+ .4Y1ϲ ò l0R_$t)E']aCcO?/^쳽zΜy#F . PS|(<ρmm^ok+,wt| cz+ !B!B!B!B!B!]TqƏON.,8M={<}8N[[./;O>8Oo%?/zʲJJKKsr`fs cٖ;ƍå)K{Y|gܬ`pp8Ui {NL`twn::::o hiCM~UWsa4EeqJIB Gݿnnv6@AAF ˲|8"7GUTڮv8łqCSd93+Wo&lee]ߜH rrUWwߊig A7M3w3 |]0PqڵkR)0i`t+Y9?6nbEcc8 0xϕΜyiM I$I0 sxw@7v>X]ݞ=tt3f n<2h,3WCƂ"ˇΏ~Z,,a%'F{{$.^o}}0`5~ 7<S)W_=p`q1@G 2@mtKK0(~kks3@4 ̞}'B!B!B!B!B!tɔ)yyqVki)Z0Qmm$" /.Y]X` 7x={z=}\qEI͆cNy'E!~i׬Y--۶rOgf[Wx]Qg<`G=wT,o^M6lز%ܞ8\ۧ;G8-a[⦛RSEd#4]?u'+1e0Aho#it'LX,ka}9o;eʴiII'4W_}uɒ_ ~qJuKJ0_[8?a[Vt\.,kX,ap*+`(n дP(8UhnT7s_zI?}xMJ/X0s& >٫W^<^o,ϙ3c !B!B!B!B!B!NYsM{(tw'1X)SIO78c`{؞sغ݇/m?7/Vav%?ł5T1jܹ"lB/k0?_7c{7UUvݺYjk}ZƏilWXߥY,s._~-8e^߁_] 얗ƬY'.]=1sd,X#s@~8UXm߾ؚ/]PӼ4`w/躮z]]96eԨ߾=Q5`'y=~l5k]0֭fzN.nY/x85}:ؚAys7~"B!B!B!B!B!?rMkIENDB`site_pro/images/icons/icon-previous.png0000644075506000000310000000025611715340134016522 0ustar namedPNG  IHDRauIDAT81P$X[q!8%gyZ$BH,˃V'l3,D|/C305[mH^5@;Up58Dx /ߦ,) |mgIENDB`site_pro/images/icons/35x35/0000755075506000000310000000000011734665234014012 5ustar namedsite_pro/images/icons/35x35/lastfm.png0000644075506000000310000000322111721524660015775 0ustar namedPNG  IHDR;0XIDATHm\U3.jiDV+Po bQ0bLFQQ#51&jRSC6@ ۖ(jvgvv޹?ٝ]V`ss8Bl:_RJl&C</ܽ%^n6yKؑzlK }"&U#YMRw dXW "@S!7cDP* $fni|;B0bn釈Ҽsr4_K`C[K)6ZXxc!D0et*_|H |BX i=]J´(Q㩶[16u%R1N+B2XNdzBD$1ڠcg)?q_9!|&6WXуԨΟ`j h 4(Q# o^K7agb.UAːرu~!e "]"2MȾ ӿڏ{=G'ľt=|XyY7Tvu:D(HT,A0U!E{,7HLW? Ia<_N!;>nO&?.qB&4HE4-L_rO(LMy`g}DC\tXd?M巑5-n(0P'x-0n_a_R= v6I}_&qFW^)PCɢn+&➻ET=5՛ZF)zjk)r?T%vR_3nh 4X x u1ʿ^F0rqP Wc.>73C2 o;CDBVeԴ"R4csS\;-DMiHk p%v"D9ܓ9ʏ<,B"v5[cר>7i,ashEpu0@X0n.ГUJ>!CkJM?<.ڹ5i{bט!v۵,mD4Fn]OךNS2o189r տavat=%)?кU4q vo쮯 Wg14@[?LbFTLk-w W0ÇN=_;YNBV!AT~Mɚ#!%41C&%YwHC1wħXB`[v^_[W(yMQFhAB$w 9x`$> :c;s]e~av:8ulz! F} ^.Ӈ[+bU hF&VXuUFwM/!-zaTVu!V..ݽ jbNmAl{-5Y^%ta(C'4 j jd?fqj4Y]g78x[$BxYܤV.7o[us  $cӨUO2w+/BcA5:Mpmhb}ɹ@p`  e59&~!%ZkX*iv`8Xdfp:Ѿ]rL_ l:ָF$1BĄKT!0G'`B(}C)n>xBJM#Ob>"~jy&ŕ4p\2K 3jvxD.*o@'NzvPjOS(#ҋU?Mv%O|e޿XZ~:vѮjo+2엉 / =2} +y1Qhbkx ʮ:W,^Dj{ZH@$ *s]bƹsL9΋!zޑܺ! rطqjeB=HC!$&Klt߬o>Yo] O8>L5+']ꎱ{Kԫ%lmY9͏5 ť{4l,%?;]-=9uDVeZc9DJ!bC$F;t۪1Uk C#Ңl{ߙJD* a eu.g . »oM 2@JC)xtrTIQqݱ-^@.=K yC2(^3gϓ_^DaFw$iKxùߝi{ uFi\i>:)Zk5%9uH-h)_40"sʹ>(N;y(=-[z+Q*登xr!esbM`+Rrf=DjdJ6r@]*n|ўYF5[JR~]7V&sU_EԈZ?Mh ?!}uRIENDB`site_pro/images/icons/35x35/vimeo.png0000644075506000000310000000223311721524652015631 0ustar namedPNG  IHDR;0bIDATHME꙱~ \8D >ą 8!qȏw@p\Hp@lfg8gf׻CҌ_T[vMwxo&w?(IstN GGa4T "VgRΑeiX52bbUTU_:i4շb8PQܧ>TUD*﫶 pUMU]̹S7NH-Z/}~#똪Q-T`׺Mֱ5nrR=GWOR+pb.(JDX`3ۅw_\|NWC0ahLgN@pYԹ7?JXoIENDB`site_pro/images/icons/35x35/linkedin.png0000644075506000000310000000235411721524572016314 0ustar namedPNG  IHDR;0IDATHoU쮓ێ!"4 D zZ"PиP#EH0q썽/{_ݙ{)3cIV3qs{ΙR(^6XT0<99~l r߆׶w/k:;@ `9ٹpþY8LyRej3ƐЯ=Ga A$0YペlALoaI1Wk\׀@R& DP]Dav?w^ܙkXH@Ҙ ID,؄JH3S|d,A.]DĈot =QfG=1B.ˆN,H4q=iTǀ* t]7KEDlyXmʣZBZ/ywz<7$R=6~B^Cdh#YFrĶX*pzrC.k335gP?ro̩ax$,{,m$qsgYk\]n ~.v_nvt؂^լS0."j\9hwbgO(YBLySl[XƶD5TXQT069j?,%9{:֐6uR&"eY}._/*3Osy ˅=-Ũf@("~Fǝ:*u+mo8U`<[ԢsXQ&e.զ?i;נgcn6}$w6J\fHdh8ocD0bXޮpy~1Pi}a5%6W݊1x5f c)(Y\/r㿝Rg^]GEVuI%BVO:.NPwYܡNnAk׏XkGATo?zG.x%BgZ@ F{}no-GTC32c42ʚĘh|b1 ]QsIENDB`site_pro/images/icons/35x35/blip.png0000644075506000000310000000252711721524564015450 0ustar namedPNG  IHDR;0IDATHMlUμG?O("X/ LL@$riN +# FD;5#&  Dپ~ЏW5owfޛd2gs9s bٳ͓wXα##_:;4p#Qt_+=apVឆ 3\u"xF}ߪ6fLTTAUFUʑZM6'ACTYrJ Z=˪*"IY)LN*qkQ.4\9 B}9u}k FVkY `'XB .3UmEUZ̃)<4`'X:I,";ev҂u!,=64_?|ɩK|.UON3fb+A \0tn~2E A]=SA)Aqu&Af,@0 C(7փijK\c-֢jZDFXQE&i4w?^-},؋YEqtdݯ)J9: ]Fv+7mܕQLYYMHT؈h AOCV\Ձm (ulAV9ݘ \Ď _N-q 1ކ:n;3.jU 'PhJ I GJ07Gluz< |f, wӣ` e;~`|!8:Wg #js0~ L6PW90&) S,DL4J/KȄ 6P'-ΦrgƑB!^<WDſa羊߀Yъ-I-W׃ZM#F\<"e$ט6#Q;7B5a/%li,Tںb7аmwf8vdMkr ϟBV=h ҃tu>]0徟×R-%"SoV|!v ױ1׌DF /~s-.tԜǚwY(x>Fa}g#4<"f >; W*?/-||b@e#y !&(c'uK)W)M˷NtuM"4FTGigc* ?ԩ,H#+$睦H:c,rZcpV sB` XPLQxgMBڗFFqs &'tDJ2E@VF$_5IENDB`site_pro/images/icons/35x35/yt.png0000644075506000000310000000310611721524606015145 0ustar namedPNG  IHDR;0 IDATHMlT{cwlx`RAբ(\pE[ĩZF$ MQP*u:ڍnl#j ՈFĊ12J+TL t{0ER5g19s}O2 w ^|9dLUMkkL&M,K*jN/F"CU !߿?{ԩ_ ⴶ~=`j`]sX2+NlTձ:V144ĭ[(J={'O`+uW>*ŁfGU*<"9sX,F0L^TNUeΝtvv2>><qPUluR*>5>ZZ@<).]D8)?9qTׯsa&&&8}4ǎcaaa]:ZI*ٳBI&lݺan޼ɾ}p/^$rrLOOy^ V]Ib۶m$Iٽ{7LNNL&9r fgg1` p-bڵp8LOOONDpլJFKyJ\qT_iG]0cXUJ|!p~1Jύ7l+UԑDhjpZ^zeP!=O$lȅ/K^QYi)^W5G*fGw7{)/^hL26tK(&OAG{ vj6E=z~;*V=\2rijχl<0QEg n}{s GHJa_j< )7QDž|y6CMgmZUZ$p]㘷 Λo#P,<w/8v#oaO?LJ"ZQcjOϴ1&@3t& فrAËqR IU*9<P A-駱)[K (;VT<* 7!ޯՅ%|v@-Wэ ֖3AT׾$*-[͛R rYd^\~<ٔDq9?xQ^//!wp܁ ׮A6l$ ᅬH3Jm X_[*?(և?ƷCtc-bD-kJ0N3=σoQk+ RP(mLZWqX`j  ,s/@BnFPq]D ij4E+AbL匎5H$~@iZNXުLvttP\5}_{&"Ek]R0UPIENDB`site_pro/images/icons/35x35/Thumbs.db0000644075506000000310000006400011730433520015546 0ustar namedࡱ>   '& !"#$%(*+,-./012Root Entry~A12<3* m !"#$%&()+,-./0123456789:;<>?@AVCDEFGHIJKLMNOPQRSTUWXZ[\]^_`abcdefghijklnoprstuvwxyz{|}~ JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?&h~ ]5b[kIuIC1xl kV/[[YJ-g "Kc _DxWӼ?\¿Gq9$ƿ: h|1kǧ^\}>e]B9"m([!qg*G]'j4%&#;~dj?:g.mۈCҹk^7?2 NOíKP'^kHbXfb]#+,EJ:ts.cfbcUل!' JFIF``C     C   " JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?;QռKPiy8ơW>Z+t,e?洜 5]\V@7g#{ץ/IeC׿C19BJzTKG}6:gj6=Qޔd,3!pp3}IRBe8+iu?3Z؊&W Mo/ً/5o6zou;oG{)+#8c]MxcOm.ZNOyNE䑿?i ko(l n#n3ozquT(•{%ǽZhuogk]s_fF}S|5Xd[3k^"So( hF.O@k??O+=Ek]FKdu1mapk> iq]ZxD43#Ek߭_ª3E;B7uY[s)@YA@=Fp?*_E_ E-!KtdT[bOp >Yм_C:֝J?^-3@v3gKo~$x">3fxH`#߽~ZRP]Ѩ9F+{amKKg)6"*Vxŷghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*5 JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?~'|g?E >+-h U( vxkdl-^GmFYxHt$1utIAZ>-jxg]~ө0t~7Ċ[փqC B sIF?ʛzoEw:5oj^2S7ʡ6I힕a?PD8~CWW@^aEo&yBdhVIG^O +? ?o5^*^#w[Qum.h6ꖭ#6"6N^>_փ8O b\,#բg.UtRދSpvimeo.png"].[rss.png*kUbmyspace.png(-Anlastfm.png$}Jblip.png,Qfacebook.png(]flickr.png JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? T|N<+X쥔әe N:gF"Nһ^V{j'7x ^Qo'٧̷4f[Vikb`5+.FJ#]߁ `|H׈<\9"i8bXy}8<5XQ^O1V8 !}k7w5+]|?WN> F_Z9ɻE4=r.iCVZpխWzG#q?/mT22bPFOL^8w`l5j72jzl7Wyb~^'O1} ;6ZHt|K v'5Jty)RN+Mەս:NeS-dS+WjOݔUMh菩1o$M$ JJFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?߉?kA>'X DEV p+O;§5cVBO\OS]ex>\xǘc_ ,Mij9>V/p2}hPU%|R2XncW~6 غ3|iBL/]kHkk.4`dgָ7J# {;].:xm޵rβ^LI{c%WSž/ƉfU_xS/M2X0*42#d),BxIۣѩєd}}(>Q%UU$݆GY JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz  {JFIF``C     C   8 901 '11=" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?:I3/^;LkBKm[Vi<ϓ I^iwQ[=7v@tLnRpAZcg'f<-`쏠<\5zLvSV%(m}ۿ7wy:??j+h+A\Dse_dUP\w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?xW+Z.k&hD'Z߉?3iv,ݸe=}y㸭owYH_HQ ۑ?_^~η&x[œKlE)flY |Z;NppzdxQ }oHk[/#U;ϭq,?1n &)sRi'{&]SG~~./Ŵ9ՐLI<^],Ƙ8e[ 6Osc "6789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?߈|PE[xu {ʨ *+_tգb'HT FOͻGy]湧k?9YK [hE3_Aǐ|),洝h"XP񷘬  ؂pkPMv2)] pQm>m+?O[k kXWbv3b|iz?ٵ/]KgDq$@1ўctgK}E1ml23 r⇆/KZ6 @5aө;x'Re<9/Is[Z}9HʫpsV?7cuoiM'!7(=To&b[ľ$e!Wпa⟄6uM_[.̉defF܋\bI=:# ݽx<'n[crBI w[ۦ I w &wzψlY#|˻r2UڌYsөiH Ix?.hn$岽/an|qjJɻ/Fj>_wOr%G*Fуp}k^2 ָ.澶? >&&[4;9";TqιxO 8FZwzyN:5 %{w? ?G JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?~"^+jBX e*vxK_|Y`.QD}.$}P1ů3ZΛ]4PI W㦯7kCҮ-ޜ*fNAޒa>nJ^{Wn!F`22FEt?oj^2Iĭ `I%PG"r~OtIC%SvD3BT+TIA8bbs<39>+Fm0XكʌO#xmG:=ЄiDP"ڣ^*^#w[Qum.h6ꖭ#6L;xZ:*NWJtmw̽21 _31Catalogv41 )ߪ#w!1AQaq"2B #3Rbr $4%&'()*5, nNlinkedin.png( LKhpicasa.png( etumblr.png* Htwitter.png. ֚Wwordpress.png`:D}{A42CD7B6-E9B9-4D02-B7A6-288B71AD28BA}LKhpicasa.png( etumblr.png* Htwitter.png. ֚Wword JFIF``C     C   ``" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Ϗ-=06t}Bʵ2V|NL|Kp zD%ijEijc~4oc HEo⶛?Vl6hqܩ0129 Bx}uDȺ~z?m~ KEon fg/f}kpi]{g#'a%$' 4K' 4K- [d|yq?>>+},}>?龍jSH>:yYNN2͓Bx}tBx}u-vXRo+OCWl=XIM3Ľ'Œ$ VVQUxdwm$VwK{1mhn͐2@ԁ[:V7*_Jeb*$g㎦E\g(ܩn>;Wcc%AlԼۆOk^類E_sNKp3!'C McS%k9y4+M2 &OW7ǣ+Lc1+Fk^VIum$'jC:L`^BⰞ&B\uR#z~־;5}RDF3[4ό6< dz6LQķrXLG!'+l2`%͘J2]tv~%}5d6rIl`~u~[ H{_|O|O{w? u[Udˡ,bǒ:zWz|z1̍(Bʇ8̘ϧC\j3c MI%Z$VO1-``rqW:>Ivj?}spjg]ƕ >]_c_\ &,#l[/q γQ Kg#0^rlܳNZq,҄՟;J!^g 'ߍ~y>Of񥑎wI,qq`b2#qExtF zyUޥu|׷,__xymMem˫mlzYm}O~C/@5Ӎs&lc|o&`0wWk:,_}$5/O?t.. FY$33Vtro.?L~U͊kM.>C;qp5N_w{KMc?Z/k>#8ڡշtO\Sr1!0Ȭ>a{_a?L}I̪TJƯiڝݵpx mO+Ǿ#xJKH^1co)+"qs:-gY'^'3^N?*sp3k__|.׭t6K JQ!q+n*HsÞǨL:oNqn|,Tj+[.Z6>$xZHk|rt-;Cς1s?>&xZI-k3M4nbH+#TX H zikVIz3bཌྷz 0|^VJm. 3זߥ{/σW}1"e*V 2rq؎FR<_\S"5Uڐ[!}zk?Fm$c.=ba1SW<q4jU*Uxo|DF^HeR7aT+v0m%H¸O[8Lv8ZWl*BֻOOaʒ!.HBxۯmO̱Lm 5J5N6?2ki[Nah0Fxƽ)< i=+T5 m{mlU)92{~mMx*ڙ!Z7Hq}kоm?Iy-L6TeT _d1ҿvɩ)aiW~gU(u}O2šEIy&|郵pFO9]>E+CHE m9-9MZ58nxԔ#qISNƺ? -JH؈Pp (LƥWztODyjRb`ѳ_ 2yǹ 58.+`uZ|="p 3 >7W_y\W\cOw?dϞY5oqLt_uMQ_:Q{irV72:wBSQfm/.G=a2:وar54_YBƧhqL+12q8Zu%$95vN1hXTRwWEݣv:>q//TH˷jL{p}y.ZvqsS'= rͰ~;6x:xsW(a3dUH~] >7E)G9?_OWkw8q 2q'vxNd` R5I˪k_.9ɧ[p䏒_t~{~ۯE?:\;x\Z|Y/J֧7vq&yg#~÷?Bߋ'4=R÷|?~,++ԫxjQjiNnW$xɁ%yW֎skH+  V/ xw0 5WAu3xFfѬt饸/us "v% <0pŚ0k No[:I)&rGegZQ-/z/ͺB =S\=*0'N\]fyÓ Tsite_pro/images/icons/35x35/twitter.png0000644075506000000310000000231011721524560016206 0ustar namedPNG  IHDR;0IDATHMoUsgq%nTTZ *b#X"~+JH, XQUE醲""ڔ櫮;s=,faEr$G,ErQIlg-Zص4!L+S<{kP7:Vƴ Sa3`Aҍ=\X5fހ-T+Lj+tcR ,Ŧ0N:#f֖|pۏFpev"NjuX spUMQN|*-| W!8,A(rU2LOTf{eQ'BM N< a*4et~7{TcaC*܍='j@ c Fj3,Vx814b qIHP/Ԁyc`HXiE:ad9qʱWF6Ү.J=_dWx Fc{B#(bFjO:b3v̸*Cy<Z@\;۱ زR_ \gųv07;=6zfgHiZS.3v1B92ujkx Hz0oF_'\1Qx2o^-WIf<{nx{WN Np2.MHj|7dyg) & Fr)*uSZ›&D>jUpC#ň$#_.^ ߎ=Ґ)05IRIzn}qgU[ώeAP\/3R{ ks+W9_#f &[ټW[ZtaGv|ygB=|6Fښ:~J IENDB`site_pro/images/icons/35x35/myspace.png0000644075506000000310000000252311721524634016155 0ustar namedPNG  IHDR;0IDATH[henv7ͥIFUx ZE|RD}Q|_||AQ4^FmcekH6m3s|f/Ü;;so$͒J"ccc4SztttH$rL-;u~Au#v 'f ZXD[핕g >^D+ƪeZ xh5 Uу PiLwpx+s9dU^ ecUٴs i+"V** e2NetI>@|<Ю$7=zi 9kEba۪:0WQA=#[.ɶ8֊d֋@W<“r,NW3!_(13R. ϥ|2>~ku'un⦡>,/_{Gۈ*/h5TͲJ5ʥ;xDB}-|$]hfgGGn4 2)Q׳ x4˹Z^r(^|FM#2Kxʵ\̀- jjڨzuQ-wUuv>u+Getd],-No& wqeZ# P`cj@T{|W&SXΎuTų رi?POybl~$935e߭1vo56mִE08PIENDB`site_pro/images/icons/35x35/picasa.png0000644075506000000310000000263111721524646015757 0ustar namedPNG  IHDR;0`IDATH]]Wk{nsL&3;>k/DL Z 5" _틨O BK~k0ӆܙ8uˇsɹ_U,8_klmmT)un STE#,_7 C?jKOm]"b16U27d/VX~ew<~sh"XWAT.`cLq3BpS5AT1ruytr͹MƁoW"ioAPߡ> &%$8*Zdj KZU‹lS>KDVF $"_G"N2M\rCM&t3<G0gP%u[:{#(B~H81O$\ɓHI'X|==ý/ﲹFXU 2rJ""PȔzi:Z[5lq3 ޳7B}rR+eF6^ii! Xn2,@D X񎺜85: Q_/ 1czL CyCӿl:^9f6p w:o~ X<Q~_ءDtl!6N @H`A>Ѩ9~7cPS_3P'?nJw'#sy3XU@ lRLQ7˶"OBfܱ8`Wj>qڣm/`ux[,FT S1}(ewyf 5^c1~ A(E)O(;\m%<wUK&y}{k['VERo ^m$wۘǟҵw:psycLUGYE-XAg|h ggxpt?{י+kżgٌ\֞Zc<^cx˗~ㅣ]$z.{U'ϔxE.T3X`%\e :eF9Vg@!i8\ Wԁ"w Iz5I4Za_rM9ƁDZOOO7u]n% ցH}1BIENDB`site_pro/images/icons/35x35/wordpress.png0000644075506000000310000000355711721524612016550 0ustar namedPNG  IHDR;06IDATHKl[|AJ^d-- R,˯$q@ .Ȣ(@EStQm -8uRږdٲk=lIÔ("EQ3]\"6\`03ϙ3GD"\}} rTVzqQ]Wޝ[ ~4 ׫"U&3njy}Ŀv4iȟ: ܍x6 [[B?wI])JB*&Bд٩ukN0M MU20Ɂ(w u;dyc56"B(rh{=M*lAZW_0bSJ4E|Q6\H,n ã(^)^7:}En swtP)@mH)ٌyb=!i| O1:4W6n?h~>x$^O~!Ey;TǑNE0=m8:CshȜJPq ;T{9וC߆ˡsh?|=PE}Ui/4&!;儯o5CJR/@ J0@b7LS"DJ:RfVKR14g+f:ֽ֢z:{7"99kE ͇(NαCuVz8H:%ieżقӮSW ݌L/`J+2j0B {c\Ci"bptkc|uouο֊n!p绨.+"4(*tYR9ĩacbOMnӘ^X'OxxyN;6Mc-Ʉ <}nob=ERȔ2MR[rIl$:XGˁ&WY PP]FCU6tîsHyvw0 2#uvҥcWKE-YB8caQ-<+_ 0@u1bx)sfԱxD OTCkm%[otftr*EL/3w1C;Ԁ)%Tx,)D6qJ12HSuG)r\I i\$O7:-\>v"I$ç3<5z+Lί4"Zi~Fx}`{pB02ߧb: )a\)%G'i/m#z^OZ14%wGik``tZqwx*xIܗ9y~~ ޿M  ;1䍎 >gw>iY͑:=6`&ZE% . @me ݇фV*߿t/ƘYZGdܧ7%HS+~mh! 尓紳E+TnReh] mםv,cػa(u+Ye$_ f|+:;lX6jʔ(STX⩁pG7oIENDB`site_pro/images/icons/35x35/flickr.png0000644075506000000310000000207011721524624015762 0ustar namedPNG  IHDR;0IDATHKle6/F@'zJx N'x 3 4p / U mR{v~am^ǩS7Zg3YT*,//Ak7_7nJT*uJk=pE n9sSccc[kH2JDtKOڶ\\.J]kv$1-Gw{" Wvھdu&{NځvI_Nz?5UHwCuU: B?.EI@ؙjXba)UC&ȍ:.W70|BVB|?JD-ׁGFN=h%sX^G656``:=0hsW;⧋3E1߬1ku+z%/nP ΣfnKRGW |,m<c[UW-:;jGP.@PꑭK#Z  7Ĭ)k8 p*~hKMƈP -*Y eMvX+\Zk/Mb[Y[T":252++kBْI {aj 92nɶj, R & 2`grݬU}@P5{[35qA/o(Ru9@],,*PƼv^x|WT#0^<2o1gPlD4S7?=NZDt^i_q-d3Oܡ4\w~+Q?^Celns| {!>zdܺ)3;n5˗ 8ؓOk0F6z{t-o1PD5|{m~V^3ۮk]*SK\uy^}7F*"B1Ogٷ766vݴ[|>_( y }AmucYn}R]IENDB`site_pro/images/icons/35x35/facebook.png0000644075506000000310000000222511721524600016255 0ustar namedPNG  IHDR;0\IDATH#E3޵o,D@@82Dd" dH$HN}?l="{;ofzﳻS~q5VW/l6gZ^>Ƕvz뫏6Cf8߫/]| ;{I֌>iDBHE,4}e"$ˍ*"`!L\89ظ:gg@<| ho GS:Qv<.tusJsR4Ify *Hzw|ό'1A xcߌ{ &ES ZQyVZu.T ̭k[{}bhjH*;\lygXkYoΛǟNcΖZQӔWa[SWV*VFVO^ys F.!.YOGVJhj}g+-6.7hV:èЋL&nQoun^,L^k[]^y ^*{|DSuN-I`1EVQU:.& {c#G(FUVc;\ZY@y#:NQKzcx_iMhM$9ܿEMd-(DŗBu\5Y"nH-tnoਲ਼NEO«d.cMSƾIAjK-vOvounǟ8'Rc;|sO*:Xm'jסq[ʲ6m, A~rI#733;49)G}QO^`bBCַiu9"f_JJyϦq`M$V]`_ OPIENDB`site_pro/images/icons/35x35/rss.png0000644075506000000310000000263311721524620015320 0ustar namedPNG  IHDR;0bIDATHKlTU߹wSt("((b@BAԥc\1F]V>.ܩ+7,411Aj AyP38wӂN2T*KùcG'^X|~Zꭍ]~A*^ wqß{G'S7ˬFwAOXޏ_.5 YA@%\Q$꿽Vn\T pӮAP;6*e J4@W2=`haSHklCKiASOB}ԗ40}n'`"U6 @]}1&!E0mT_#Ǒ m6ӗ-قծ&Yし? .`L !(/1HRAL mVP>xY58F]_aXF2п~yjŨnQ\ VJ&LUVZ9x9{],l+nmRvҠiD "G3} : 5I]UBƇ`lم tcwV8n3y,401C0+&A,~9w3ܷڴ} \B#ZH-*²mO E)(3ĺ_qvA0NQ&f bR"BZxC V?&,ezoM rj@J0ߋL_G{)r$e;;T'> ܕ1IVB:^C;A[ghWڽ ]=+`f(ƸS]yd<ќ(x7B^hM!CP-[ɀ s{\c`w/0ͭ+Gw/_Wе1s?f8La>iNX!ܻ.斠Ozwk_AL7W 3è7]WM?Qdpҳ$✈ށ\?t&wRݦ6 ?/'?3(ۊ֧H ]M8)}\9TK , c[֝ Pmw7ny-qNf"qDۏVs#Q:i+Wdu-GtM%ebghs tѢ^^7(ܑD8 @`2!,K V)#QvdIENDB`site_pro/images/icons/glyphicons_207_remove_2.png0000644075506000000310000000551711720527552020301 0ustar namedPNG  IHDRRW pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FzIDATx4α `D/;+I$n"sY8AP+ǰJfH!Y{8^7`lb IOJ('i$M2旱S5n8C8oUHFIENDB`site_pro/images/icons/text_html.png0000644075506000000310000000560311721777060015742 0ustar namedPNG  IHDR;֕J pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FIDATxڤӱNBQl$MlĒPj!9&[;lĵO8#VIa_>Ow0)w{| vUܸ.e ᯇl1xj9$Wpjǵ;fm&K鍪*11`MUIENDB`site_pro/images/icons/youtube.png0000644075506000000310000000072711706150746015427 0ustar namedPNG  IHDRasBIT|d pHYs  ~tEXtSoftwareAdobe Fireworks CS4ӠtEXtCreation Time12/12/08Z/IDAT8jA9N5A E,$E:+ҘFW;)#~X~gvam8?97y?rgto+X1K {Tinypz^71o):GZIRѨMFW%̝#Rc4%Fc(Ts**,yØ4]0B W8䚿5YV@~Ox\4.,ף*EHdtDhn.̹3k[}gU)2pX"aIENDB`site_pro/images/icons/icons-color.png0000644075506000000310000022532411715335534016164 0ustar namedPNG  IHDR4HFbKGD X pHYsHHFk>IDATx}w|%+I )tZ" @@@D&@(AF{ %H#!ғݴ;q~ݰ,_G;s޽[=y(?3f̘111 BPtH, &Eq8F#ׯOJ0!,l[k4l|'|@;w8k???^rƏxݾxطٳg׬\bJcta={cG}ea7n)SL[n&<}{L>*_}/0E&ð,NWQסw:]nn}yur|NoBӯAAAAAA0x XNJ <څ褤nk{xF#ܺG]w;-?w9Nc_Nm:G=l>}Yvݺu֭ޟ:T7EGq >nCGGѧϷΝ:U߿5^5'N8q бcǎ;ֽޱcǎ;;vر7owk7룏.ps:G*4tР+ݯb__ggrӧW={R{Rjǫ,--,sF9s<|al|Zg=={N:u/05d]]xnNxZ#Y80bD>},_^-^Ժ?pd&M*/u/$%:;x_o3fkjq8z)"S'qP< xq[B pB@,6z!1}zRo٭4y<7ٷٻ۶:7dH~啟U^P}TkgӼhDGc?e=fKw̙3x<.˕haf޼azkժnߋBPжm kį0׿W81<<'2'غu޼[o\pУH{ģTG2o>{Ѹ8w m۶m۶WKDGO0a„ ;%L,F?2ȑCݻP(D}GQպ`0*JUYyZRT?s k<*^㟎_ 1۷4SgЦ㹈_ms޸AZ^};DYgjGø{oĉ~>T(No}۷H޿{Эۻ+JщrР;n߮LI8ukB^ A띨!AlXۇDZck"?N,k< &N4t [: /PSQѿnݺd[W^JR*`4ӦcMP7DEEEAAAA?ܣGN:c1E9rٳZmZZfff DFFF $ ֙3x#C.yy!<'G Jrrn݊I.?|S'1j7v=:&ۻMN|,4\[ڴiӦ'{y/BΝ߼ ӧw_6]mۊ-LX۸QM&GдZP|UHȼyֳag[t*nؐ[TVOw&]p\rʕOK͛7o޼ٳ_nmr`QѲe8>(3wdI}5β ??Kv޽{5o߾}vwAe;wܹrǏ>5j1iݤIo)P~GCnnzzJ lڡûnB;?p`\37((,L,B̼{-( g4M&ʕC|=^ZbOъ8ƶm[R0 J%$& =ף0VvSԂMt&˚L:VQ(.+=>.]ΦN?| Vxѣ.\PY]ßm?..NNNNӧ:;;;H$bX DU"P(:^כZNh4>+J֭ǿou᳑nOd$C,ڟ{FA+PE '%|uD pz:qrj^$ruup8{6,l D"F<<\e|dJO߶!ͤR|OϾ};u2wР.]Ņp|@.(P(L۷/޲Ej򊋇8#kpwov,/s8;n=l@ sַլYttl,Bo``ݲ%5U.o@Tx? xf}.◹p!~T%>С> g-!2%ybń aaӧ EY(pE88ׯϟm[BBN{ ~Rg۷jնmdd`i3g vvaa[sǎߧEuO׳J~ɔg_ qq6`9kz.!&^_芊qƍ7燵ů믿VVr\իC6mRX(i|a zҴee*U6bګ#G,Oڴ=:էG ׮?u*jYlٲeˬg=Z>Q:@u͚5k_nތoQPtKJJJJJvط/66666vDD"H m7$,Y3'''''W_k3ps˧Msp 4r+* M+Wƒ7cFeaʐ>y3W$R 3 xH()Y xHd1_8|x;npLvڵkײlXXXXX:XZ߇ ݻwq Gϟ?Ldg"f $_a}~w%]'I.4G=dCΝ;w%ɓ'Fz7ߴa1̄mCBBB֯'N=o߾}gllۖfMppӦM ,RYVVVf2geee4G^u,XGLAMHDC/@ ò\.#r8]Lt^Vu$Ŷz=;6S'P*utti˖nhZdY3Zz:p#`{ݻbLf0ӧ?_.h跞qEszzzzzzNr`Ç@@133333$9s̙3Nzzzzz:sB,:cc_lvBpaZ5o٢ԩÇDp8&SEZ yyd2dz-4sshْONްaˏaٔ??\ [wi21 ÌW "AʏONNN&o{^spVoz}QwhhhX̲"Ζ(J mme7*_ۼ7VruH>}-]\а\Y.+|ܹsΕɾlx5!8vuw̙<9$V$bYt޾2 S||yy&ӁyyCm\eY-[bcBKE0KDGNԶm}6o޼yf@C:thϟ?At8ߺu֭[׬!FpɈyj|'q &'N ԩS7o޼H@a_5WWwz 99){w,}{̵aCNキukvv}e=woLӴipX,r8&`0T5o޲DR)X6==.y󰜭[[z5k\X0xK_}0 9nڴP79>t۷{w  =:))9h=3W_a@&prggd'M8;v;wst۶Ckdܼi2=꾳?֭o5wŋ/V_~~]vd}o_..|>F@Q@(BT*,0 @iiiii)*ToY-^ \S瓙YPPQPZVr) Y&bb22*+Nryp٣GD K@$y<'$OF۰a3BGG49{wKJX3ƆizK(}{ٲ~#цK0OHXMO?[So=Ə)a ),-E(!e3յU7lm5jB 5>//޽V2qaݺO?u+#c RS\a8dnZ&HO hx%K||ݝ ؋.ڵ&I\.}y#CQXϖ-..;~嫷jJX(|w&ð\޲q_~)dg[O +E$7j4f̂2ٽ{c9 ۷ Hbbn߾}{?>ݎ֬i|#=ڿ枩oF&;yr r˗ϝ Ǎ;| `ѢE-_ԩSN&OF<<9&&&&&mgg=mط =H b# " Z[LSkɓ_}eb=$ lnakhĈo6ϯm[ p8&V rF##7i"D99ǏZE;\mz^? aXi<кu۶\o9:kסkk뉊$Q(^|a22l2tB|޾=߷//u'd;FnWPU<. !!!!!_{<]̙Vhд)>~ߡb۶m۶mف .[8EQx v ˯ &L0OXZT0pRtu7xC&ۿɓ'_=pq 2?^^":x}`z6r\kKpe3ll|[W6 HB"%Xޯ_~L4'rT(p1׃vyVtɓ'OpG&;r_E^6\ٹs„O? bdfZ%\i% rjj<4T jrԄiӰKt3f۶xTWܺw̙{coo-[B!Dzu< ~p0(((((H --U ++RT(x㍈[[t1fLNNI1fĀM+WN|Rܬ3gpmgP(ۿ^i<^YYQQv67pȑ&x{;;(yyc>t(@AAZ..Ry͛p|up˜>qn@Vǧq㔔$0QIGĀEf$i|3ww_`ْ;wQ껽OHQ 8b"ЖEi)$Ձ_ #Y^Op#:;qCAAI ɤG"  A pPcQMIiϰ}}%تႦM&iDΝ YUbV.\Fj;vĻ҂۷/]:s{SPJǹIjk?~hG7 H,nq`̘0> &KI:w>5Vt+*L&ۻqcH,~G Y'':L4 6raRNM 0vl>69:Y{L zA/,xX^$'/_|7#"""i$Mpj\\\KX~vٳvvz}a{{D&3fXPآС+V?6`DQ~U͛D8dُ>:p >#gӚg,˲Eb2=}^KQ\.PȲNZ\w\|9х=¾֭??/֭Ilx֛7+*,6U+o틋3'Nl}. c2ܹNNBPlo/q8%%:יLz=۾e&Nl믿N$5w|zmry<g޽z..=zs2-E%'Xפ_9ozB}c_\=!6t|0~llD"EfϞ1eK??[[FҊ/^jZd2`٫={<=֬1M&~ulaþe7;vxsOLm2ّ#~O,hтhzf[{NI=/_|_WC}8ۗ 5kHϟkr|>Ç ݻ2|f1w.+#Dv-Y>rC˖}/ S^*P\ ZRRqo5iR\ܒ%/ndI|κb~oo''.d5hox+WH<)eo咣߹tyyG<憹oz:4'G5Uz#0M&dxY'Oy``F97nܸqu}.U$jzAF a\Ņk]5o_T:矣Gbvر#GoUtҾ}?ڵk$ |>ocϕ<<1}6X>|PkեK.|>F*4"X,swݿ?w.DG#<> ڶ-!P_|ӱ$'Onh4riiׯGn0t J35ƌyz-wII&n!`׮YBdӦ7Slld2aT {6n꫍>OUf˿_ڵ5j.$rҥryS(7aBZmFFNh4 @Ϟh`:uj5k} }Jh(b6mڴi^Q:?|Çy%%+Dz>?T*+692"B$R(y`֬pp1rle={ g={l}$[kJ Z-/j 0t^{1kl4gj|)ݦAӸCФ X,kؿ*!<%u:2/Ыk|fjAA-Zpt;~9`Rr'++KK]\|}B7ȱqcW]?5%N d|wfOnܳsժ#GΝ1ieM&XV+*zZNR@PVDe̘ŋB1]no߲ڵ5k [H:3sҤ_xly|bH1i_aHX޾}Nr/#FkRLIyO- mڴk۷m۾I{9bD^BaւH%%(Q0dH˖ܻWR@ޏ!CyeC1?)c=%%JJ%/Zzwh R?|`0tz=@xx恁3f|y/ZdI0]W1p[o}{dֱlӦcN@Q-[.\t>|(oQ(ɯ޻:OÅG] rh2D"| bHdg@ZUY  mmn߾}]ᇯ~ڵtۿxm_}:pߥrР^zz-9sL,oߛ'iϮ:>k #;:YwCQ(t:$T Ѱ,|~^ŋ C'#C8ᎎXު?['sBa]FٙZ^6*J,V42..66<syW`~FS9RiUÇj `28&Ձlؿ2R,l̿ ؁]ƎF"F<떮k=s#|wܻw^-Z(/G}F g1c}wڴ[H*mp zm}￿iSDİa~ q…}z}e%vpKT:ԩ&[g]e?D0fСC>ۜU1|nOO''K֯?|X.ouL&#풣Jv2ɓ3fl,G{\X^^^^^Ny ݰkFFp#rX~HH}ij|tK|,y<\oCлwVQq1E ā>h@E:{yu*{ !-[Vϡ:X.Ϟz_OϞ;wl} Kx]aV0' }sɌƪo` ڴYV ??"ukgg `v޽u{kꫯzRxѢE-=;8B5!::1q7ٳk*_@0L&/?W6mڴiY [ۘ,*w˳=ϯS'Wז-~z:p]:JU^.*j5n\LϷ2ee:NRUT,k2L"`}k32ҬXոqPX,r$JY~_+x<J$ܻz5E2a`x.oectz?Ь?RΝwb=2~Ugw=޳gQF1u-[~#7ox睧$%֯_~=\]]]]]&M4iIE(I>?33++)wuuq1Qɜa0y9̙i TU: rD"0 @N+h~=&iѣWQ"<|%eeVt)M[{uȑ3kւ fOz\2 t:VuwZ^x +++ ++777@RjBHhng'dhggg`oG@i4S}PjRizB; ^VSN׌'4kK܁Z`o@FFFFF@ii@Q5Ӵ ĉz ;RYYɲ:]qqi)˚L:@QU O;G!h (pR1 ڽoݪ k32\9yr77??D(Bߟwrjdl>dB:TVдJECE8$[ ()IIqr1e˂֭X0)+Ӧed \7ߌpu5˯\s'=@jz -.(-ЁD0bq÷o ш$pwwrHK{7.@&B4jq5+ ^^nnTHQXoCGu'۫WV$$dd<зob1ŋ/:кB1hЫN`2[<Ւ#GLt:`pvpt ݽKPsgj޻`=zWYΟy}{N:uz29OohՊ90:~ , @W o eg'pJ%۷wp/$G||Aۍ98%r?8hPbi{\r_3p`q_qB}?@z=~QgYeBqs8(M}[`IFjV&łFl> zf$S0 5|==45rߘ1ƙ5gggetڶmcYOo@>ƍ7~__$DEBi[[NF6=DUq[;h׭\RuæM'j4[rZTb.*Bߟa~},]w+f`2\޿dd^2Ͳ͛7aE.\dɓ<YpVA&M @޸Ys=*8E"H0PV0E9˲@P\TtRѣ" /8/cbb*+?UYǛsv֭[Khhppp0 L;OaԵ>k ,UsAEVͯ=,]߿ߜNZP@Ӹo_d$?a6nLJطoʔ ߎJJ?lI|O"׿5,՞;',۸1_mHOkWÝ[F{}G$YS|„#GD)4|'ϙ3gO?}H(77WWc6mڴH\y}NhX-hh4b֭}|N\A( ޽j݇ `G݋/]0zkDmiqv1> sw6m۶؇Ն}YI òhJ FS^^U7GSD"' [[ww__n߿e?D_:`o JeYFFDtQ 44(((i,bzx89y\ަС:d&Z *N@Өܫҥ+d+VXbYYh4F.?rdww + 0ȑ5_ DᎦQ׃߮ш֢K0gΦM:͜  ㏘& 4ݺ ΓYWUc|V߿K-8**G8Ύ1`NPرcǎ122222:LJ(C}&T1YZy2@6z uY/QܺuAACh d 8~F)4EaAj5 ãGj'7`Y$4*XFnuvB,x$X71ĉ3gΜbjG[-hѢEQ^^^^^8v$ݺug32h޽^**T*.72Q#__d(..)h$0ڵ7H,zg,^ p8 :r"n+yyw8d@qܿ~=pNBy]ϋ꾳E,f-aھ3D*J9ǑPYD:ﱢL&XrւVz:j_=h]"q[_V>a[[??_ +% òU WW_CM3ɴm[qqbbfԩ70?lŋCBt 33ϟ߽~=NMK3pw tqAb[99 Vc8AdfTmVu+'_u5`O ã@zxyyyyx88cวCRj}}uz*8qO?ܺ 5 jbذqNm۬С{mjzeLe2;Pdd3[<֧ςέ[ @Qg5<>[7϶luwJ?~ > ,qBBz 7:tr,I>rZޣ8G;Ig$]kf \)j\.B;t8x0-MHH#à=iXQ,?~ӧ_pzJKPXrXsrj_ccSVk-6mtiaYss?7~E]1K`J.\^"|rqqu yBB2{ òO`^kWT,{!#ѣ\G?{!bU=z#G޺u… b[h_vuEN""""Zj۶mWoh485gTV` R7 qq2p?3FR>WU*\YuܔWtwowmqe9ԟ **r?/]]͊ ,8}˶h1ntb%H>|DGoβ $9rPb\EE hn9NL66^RRV(Z-@iFSY PXXX <L&T./@|XOly:,ڷoirƍ=zB@:RK}|Rd"k"di# ;\.z> ˒uVE @QЂe \sݾ [d~q<4tÆ ܙ:uT;UuO7|-ƍỵUpQߨQe?hL&t횖̝ lgWK /^lD,8}> &MYpp|iOQ̳,cac\LC|<#|0p?޾mހ#00?:zeߕ\>h@,sQSfc@pЮ]۷7|G~~ w޽ o͚!!/,,$E跒 /[֫W.] fo/dyndRd `/KO&ɸܐ-℄{v}_,AN'7m)ΟUcW;̙g/\t)ƽԩS}2ٹk_Zn1O>}pT]tO'nhkmߙT*Jyyaa-[lX3R(JKKK^nnr\/ۉ E}J5p66> PYimLoJ JW0Gݝ'?@4?||5y ܶukrɓqq~زe> QCU%[p0@QAVk4秥رJ{KSSm;u/7޵8'QQ ьAu+QGe+B,'ה}.5##SSXn0byUbyLL||~>;iieez=!'EH$~j/NN>zt|CG?ܧ! ?--#M&GG{{s9HIO + qƍq %T!ò_C 1Tj5Q|}|x< tnb#ׯ''t/0%&߸qP(p8K(qqNN/N}Y,BB9s<^u`M:wް]"l֬Q#B3HM+W{_K\z͛ӹ3*Yy[|~ر#tgM"<;13<6a pssrX69ƍ‚E,J}}[HT*~`iC|Rڪ~C ,t,ַ9<|x7?fIJ #:dキw x(})Sw s  |.OРƍ%2F/*h ZJwJz,ۺOJngm 7s<;u (hѢ%=n+neʐ!C bfVPC8p/_r ԩfe`VWVVVT D_=wBuݻ7m Vc9֦`:@V9xjϏ<J% 6`ޛAzz}9sR>ZJoT Nngq&Rh`$㮆RapV PYTzx0 kcwp iIhB])\k<5*LCՎ""U*˗ѱ$rH&@+d1`>ߣkyr:& @N.a|qt8"1Ȟ-Fe XKm谜b gbx#"HV#llR1z&_}nݺu3fl٬Yf|>7'$$$&&&_rʕDjZ&Hl}T/&fѢӧOo3FAs`~]bluP3Ν3@ 5k֯y@O}{5k- ~0`Ȑ6n3'2rܷ;vƌSt thLJBeEx?llvG4  s8'۶YGόHHع_?Gl}[ P(.\xF |\ bc<0G AAM6m JDuk,A۷9:?~\ѸLf0 `4T *T{aDLv֭. r$Úl:X,<^m)wܹs!={ٳXRYf ng]AaaAAr|>:::db1@LLBBV:"AP@QRRH{{7jԨs.F.XFezJ(!"i7Zt~|.ai#:"/_qƍH,o8deݾ}6@.7%*2eǏoqVZpp~ԩkײ.|/Jb1ݻo  a2!1-%S0w;--[lٲ ZS6oiƆػ7>7t .h{^̛5+**.V(z|PP*ʌFLW;w닊>ܢ"-(`˗/]tIjzOgϞ#GN\hu: TP/_|5kP>H,OKJJ5j J 4r9[ĉnMi`2&^_CrHD5yxXL0jԈ#F,ZlYU9sۻw޵^bŊ+VpQѼ>%(,,,,,4GO矧O?u 8>!ð,M kETTJŋWwpTTdf> ԴicLш4rs "#MMMM0ߏ=ztР߿g.l;^-Ae|| \.":o9F.^vڵnmQSӧO}gEH$~U‘5qqqquĉ'Nx뭓' doT'3'jﭥA;۶9:ΛwΩS+Wv<'HVQˢ+ Ù>X=^3ɤT ӷW_Ttl04ݣop0@QB!9>*(b9!e2LڴiL w0}z7oRQȲ,p7jYY!MYBp>7X~ZBB~>{:N%Y$B{Fx1g=rU .yvvV*5xiih1sppttprNZe޸AJez:g Ҭh +c A/11%Epu:u&M 1o-2Au w^=p Hl&kΠA׮߾=@fSHAӦ}@Qo\ բu)ITTv~ڸLGQ#|v4o޸ @rrzzRIIжm#Gtئͳ[ }/\pW_סtzɴ`A"G=DzΥk4ee˗ k̘|0{O?͟ө_~ikغDP|ŋ:NkDaH`F?ƒ_^} G׮~r'U$gd̚5hPVm?ϝѶTj2|[ZNG5DDk*y ݺuB1cv?:=wCyy;۟6m:888PTuqs@􇊉AA.4eoߪU[hIJ/O^ "@VJ6²,K:BQR²"R]p<V|V&4m4itf"dطѣG#12k- ?22oܢRVV#!FD,\x,˖ Х˗_=knmBZhHaUez:, b9!4`>֪P [  I;aP $$((( 2rܹsZ<b0 àAD4*_yyİk s^8xpϞ3gM ۏ&%=z@OǡCxLWOn@+W+$%ۻ1 Lv~^&=|!@`mVNNyy99f͝z),3DGidg' dfA*)x(.!o@[::].l٪Lf0GJ0+*4>} kJ&;~|۷rrĉEED4wppppp~x,PBڂlr\nNWTTTTTy'4XCpN$2+*PJK++ZDfͼB$,g2~7qqomiwɄh4\<阎ǕͪKbi-[˓~CK2Rӂ}ӼO`pmÛ5(-UzA޽];//ӧ_믉Z^T:R G\!GEm2kVZ5=ϟ??:Egt؟2 :@дZ2 $m˯fY)/a6Ř,"۸p˲,K92TI,-Ebyj8>4~ѭ[M&$8qC\.R^o4S0O?͙cTΘz}x;TK.]tc~駟~*х ٷo6W_*@Ӧul&ձ,kDgU*,k.Z h8_{H$"@ZZrrrX\\X4{|u64|߾[Y,JE".J%*t..n}{w!ܪ%7Ri4z=MgdtFS5SFuCKHHxٳgϪIa^S d~oAKJ0 7뵿Yò!s3$q`ǪZ0aBaR0YY O?9: Ǐ+'NHa2w޺|rsiX@ӳEv|`HN6+UGab#"<.YҢő#Kl8>LgCWɱߖ-5jŊ>X "\PTUY VkF#M㸆PG /8p`̘3k=<ѠFNNnna!qu(OOWWwMIEƍ\}ޞnnHPކ}k7k@ fdlo2efffMzz>@Ϟ[WUd"DT톣U˖vv7o{J'N^Фɘ1`2uy3oaa^/o =h… ?~<wz6l4J$'ѣg$'t֡Cp0qqЪUf#Fܼ>av(PBΓGK,Z4fL כL D|>Mge݋MΞ=x_srr?W(*j }%[2?ϝm[}&LhcYeemm]c&pL~W*ŹAo&ѣFwjm Kx5caY[[''{{ >J?:NG,[\T zLƲB!˪ec#βjV;M&T|o@:+%%7oջ7_no3߿̌ |Wwkc&N|w}].AG,\+W^z5@v]t_# ?իY3KQx?o~UeZ-2|>zkڴmۀrW*'iKuZR4RX᳴~988888` Qyyϟ[QqʴiFc``Y}{[ۈ+>īG1::11111z`?X0Ξ|ynݻWT&X6mڴgYk֯_i Mnݻ_|qɓ²1)J{71@pssw\>_prkV$rw(*R(rsѮvEZaPT*-)Q( ظ8uV\]1`uVgg˒`?fR L_XXXгg׮]=z҆ ȃpj8 +'~!2U9T(n0ܿ')̻wߴϜC u@H u:żU"V & ^T痔DE/d}>wܿ~ErL'igg;v0[||}S3$/*^Łu\ cGk0ddddwkB& b"d7t_ą"2pX*6mf>|&eֳg9R,_ sXvmt& CG9мy͛:: H$Ms }px_!p^F6lP# <`Z7\f\.Eut?3xq}b$Tjry6'UVblǣ(#Gz -k4ߣ֭aYGGX=7ox@`k ak%m*Ua!Iur^-+{@x3g w|Ȑz뭪Zc?T=1|fGG\E͝5Q7{nX&;vԩtڵ ,䓎-曆O)-----xQF5rs(bW\Ds님e0`1#Hag'=[VѠREU]gJ˫: I=C08qBS*۵D"^8 R^^\\YIX/17\X: >8ӵoHϫ` -L֬2E+)ʚ4wWlvΜybclP}h0a3gm0 "Y314NÝq^ @" %۷KJ*+jon=;3}/0\p… dH$2; 8aT>ed9"@׶nMidںKmllmE"HgYz~9&,6X^Y_9[ @L@&C $hzhcD fouv&O`Æ?Uar֬qF.GXN'Ooͫs0&UʷqRzQQqR..66Rө #痔 1Aݚ3  e4Cfx(/O@V9TTT:Mgdgd{OC,'09Q~yǎ-~=/&OeY) m[\WҢ@PY pBAQO,F&6tT|ϣboѿ/ ̟?97`lyZ>3t9[XX6AAB.|ڵ&c&o231"#ZttDmUbE0c> 9l ;wӦΝKcdH0\Vx}JhG4zo˗li9(hhTp0!0zx<:][Tom[w&HR)sSN++U6؛NFL Q)ZP:0 &_Z _df`NP8@X?PoI0W*ʧ5qttttt4;v`mˋ͛ڴi׮c-[JJ֮0e(=xg`0 !IF+˚̉r9h;v /]8:D'7n ׫T*zW18]|yhX0\GSJ$B!8;nݽ[X]YO !:"rGG$bcZ/`0uVU ;v^}^^]]R;mȨiU^Vb㡟 PXXRxxbj dPTT<|X}y/?92\n`k `k{gee+BЧSXX߾-ZD%-\@}p̱s  òF?4f(-E%`Hbb\A{OEMcF @6 g [W;w޸lӮ0KÇYYzl;mN|ƚ H _Sh} YVW*h2,H=ކfYoǎ[$O8thxLuĒc޷*):wo3ٷofhm9qcӛ4r,VFɴtZ2) PT~~qF#ˮ]uDjjUO 7NN޼yѣxkW>e-qeeef88|>SL p{t֦Mg{٣ד5)M0 c9?IOOOOO(,D3P*+O_a}~ؽ@˪Z` .11&&=}jf\\b˥(.L07f/"ފZVk4tvvFRC&h֬Yf;ܧL@"">hg7`@V@n/] d| PTTTTTвe˖-[MXPPPPPXƍϒjT7x㍮]K.]xc KJJ**t:WW77^T b++j.7=@$hL&a||5j F#hM0ֲ7gĈCkkPTr2@.pF#6l9qXgK]diǐ 56LJǑǂ"KxnY>iO߾ii{MӁ#F{y-]t)Eyy=~`yX?O7OZ)3 ?h׮oоEE˗߿8jm aaP< ڃ'tڱcǎu/ @ֶiHXqymqBkDsLzefT_8G2 .ĭc:O AP0_11%͍x<2SyB׾={1(b0:;"qB.Y2cƌ I}̞-Οy\eeH|ݮ|QQ٬0N &DGoۖ_;UݎT~CGYٻ6kjUZ''s y ҸT*Qx)rSVVYlb]Y{-Zl\-̟.]@ '23W7n*/O?s%l[矛 ,X`Xʯ~~[YmÇO1U%W7d~~:\vҥK;7oܨjW | %Yg"HEE;?ކ AjLw͘CB$aY7nqc77B4|Ȑ7ߜ2es껝 jVL"9cƠ ѣU;qtmA!6tXڟC\\|||<}p܊u֭[ @,w8p_x!!98ݿEedLf?; I&RX_\PMoZ n]xx640Zmllaa>>..и1ۢM~z--ʲXmێݷ`Wsskz8\ߨ;}k۶UVgy-0//,,888'5)*''/hR(JKKK:Ia77Б};111Q R]~ BP^޹sίA:ܲjiI0y~9!:ޟи#F\f4nܸjՄ /Kڀ9h)aniBQX{wYYi)vv3g:92ի|E?pssssq0;vw;k Vvj歷۷;vh~/w թSQG,&by͛7>bTgVXxŋ B(CSӦayyks-,<ա:RuYв>\V`c#EE hPZZX0 ڽZnDݚx`M?nߨDT fFir X:Rs|pȱcǎ4nܴiӦ'O>}4*dG)ھ/_߿ IDAT+G&f;wYf,[~ Э[׮]^D?޼I""UT#eϡh4t:JLz㎵OOԔO*H\s=^, лk2Te2adFPp^eGFBRs<`cH!0p!ӡ2+XҩީNW^^RPXx0G8tĉ'}}}}@cQt0k}PYRTΞn#@RRFF#hdwdgk捩Ȃ7j0y @5  HO.|JKlm9P>( H ߼yU<=t)1qӦAx#8ج`A"J$|=c/߹M[cgcիW^a? 4+T +V`$]w?5spJqQ \]QٽY3{{ǻ{Wj~[y']/ 4m2tTԙ311EE$rӑ1v3 jO?OrܠbX,6˗-[l2|xժUV=7GEsU#W`>jh VHO?wnj>_,p es~k%zL8.ކ\ݸ!J$R)EDR C:~M:( OM5 oڴ}.\=/h#-qǚޟz#=}ݻ9Q#F} pr޲\k,_|'N#֞=o߽{O|ҥ<ޠA}P4@xx˖=FJ$U.,,)1NGjudd߾;6o DH+/(/@}vvbqF*^޽];ד 94zzR!e,Q[e&`,XLJ1qH*#y: & 4M,{kf@GmWkx / I`9ΫT*Jexk^5?X͛O_.4tӦ=Bhdhʜ|`p(/G˕JS޽QYr୷T*aLkzCZ\6}4iۖϗHbcGv oݺ@9 L&ZO˫ܬ220P 4 /$L) խH[\|6@aai)E С_5n',\1iTݻiiEE+W4mtLIvƍb~z 6611/Kw@\.@DD\G5͞=lXju\\JZOhN۷5k틋 Yd"sK]`<7o|yfY=}{lȐq*@.99'GDX~_]1qbϞML.5m@ TVF#d ˗/_^ gt… .\X}{YiB s<Ѭ'%cdž ΎÃVVn&ڝy}@=|XTәzz^Q\(D'!1`7D"<|$kyyyyy9D"H$sY_%:T `V՞_}f/>k288R$ ϗhZ14d(..+cYO&JD"!ϙaq Z0z=>>M֦|ol#G227FS.] x@X̙kEq"A<;{%K,Qڷ@$Bϗʊ2bK?h {yS.:t[yyvvVFӴѳ'goߤI&NYYZZZsgFcq;wWH0g7޽R&,rik V2NDza$uΝ*^`0R ^7둛`} Ǖ-]a}Uϭ+:Vo@̭XNb9![*ݫW^uZ8}۷oթSsk!0%iӦL:Rh}qG@jJJ'w 1 ?|(33#cD.Ã́R,rqi4b=7H\O.../(((*R ܨp<<\]R`琑]QDREED_(OVRTZib7Ĥ$ܦ?z@$uwpqqsJ_>}yӯq]1}BTΞOH4OL5rWXN@[ӉrHbڎ#S,Y6Fth`4u&zH^pGGid2Ύp[{و+../iN4p`nomQ!-6Z\#J$SԽ{xĻ<^hŻASb_-Zh"D@4%K,Yb&?r\e-[l{'iD󆎚A(tt%2 )ʕ t:!pvPnM RbfwEGI$ 1bjNMMNNIA4h?>pzj,AӸݺ %%T÷#ֶ>|iߟyW֭w=z!!啕c0:(*BL>66>>88 g/O_xe NEExyyllh:?/lɉ--=ǏPL&MBz6ll6gNvUcǮZe4kz{dd6-Zh~(tnn.@^^NѨVp8:]RR\\ֳ-8mیCjRťj4ҲH$}xoߟ~:pmS6% JHK()1/|6d``? A&;w@XWPiS\Ubgr9|KJ PasZmeZM?} _|Q߿_rM6͟sӦݻ@ 999:r8^^&F0:uPVvc+V̘T*a&4 >|Ѹ )S߿qƍ76N>s.(((0ZX,۶UjP?f̘1cTT 0`UC =#G9rD߹sΝ;f O1um||x<̎=R*iˇ _<9塂F yB(($`Rց*%^UsҮ=OL2'*̣Vڹĉg Km6o>jԫB0߱ɓ5jԨ(ܽw/@]ko7}aÉW"ڵP^*puuu ПE䥾lw~ѱG<}{AAB;? 2'i-EdY4Pd4ddddddaLy><?`СCׯ*׭\ꫯf͚5<乐 X||TӞˋZ&CL޺qWƍ76 aKΜ9sC]vҥO;wܢE~~~~~~T*J }82i/8JW,t:T^^QQQa0`D+ӧun,FG8q,d 0Wb)xF^ᤤ<|j4jNg2EEmdX s4 3eʭ[j\íc;IдNW^өT~~~~Dqc.7P0!1QCϋ3h~… |ɽ{[4o݁1EOGy{hC ˒b1{'@{ /f^~ȳg3::H5Ɔ$x<.XŠaL&24eiZTL&hdg\[߆&1ХU tu_ c= 2 9!qTzu QQw..\/>|17kǨU,x#/]tҥkvy/ z1-[fgvef۝;:Zm4:9D ò&S{_㿁%//0"X^SI&M4aXv͛y6ѼcG$>6tXۀ#܂ T C22m^^Rrڵ}͛W\JQQϲ-[a2&%%'tX>p̙YC%Lcjv_Zf͚5k\0a²e͚]~FENN..,"\' +@nnaV PRRZj0r뉬JQQ~o݋)=*jѢӧO~ %nKťjdY_>~-x<$s8:*'# WEEy9&SZZzzz:Mz껽 k6jԨQFII4(ُ0p^eYj͛}y5=gkV(6 |͛'O6JB$vx}޽e2//)(WdD.ծެjX.Y-0pԩw4}nRRVVNY]<#z\z ;V߿wO6p`xxEE|AADɲ'N]ׯ?|8>Y!&Xdbĉ?jX}1 ttQ{^R^;vNk:. ("w[5DMLwŘb#XPmw?*JK`\o32s|%Br'77?_SU*h\zǎk-c|ΜUbc_ر#??6ŋQv3-m޼ zt4Yn:mZ~~~>Ma޷n ->8]oL&bׯguf϶R)[^}v) g Ǐo֬gޭiR7^46.d`L<~׏!K v˃.D# t>_R…SLB'2.}Ү]wLJ2a„ &a|Æ 6l1Sj;> pm+Fc4LNNDhfߙ8qĉKzJׯ_~}M6mڴ6,000,4 rٳw"S+;re4P+]op\ƍ cpn2u2}'@>h8@MqȲkWX9ߏ|Z9+GO^" (cᡡt cz"KV(ȒJn JJw\:6m:u"~}+WRC ^.g ZNRi{XN { hْ;s$` d]{Ɠ'eR ަMժ5~3ܼy׮˟cAiժUV?Jo޼y 5gz'I]5r\.р ͛%M(ٰyޜLϟ?K5=,0{*eE*YK_y(? M8-;*nC¸qcǎoߋ/^ h4*F~~vTyW_UDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj.}۷o@2<믿'Lx_믿z @doرcǎ_ѿC9rҥKZh(YicYJuرcttEϧe͚IZ^vJLYƍ3*}*)/߱cǎB*1bĈ#ɻ-ű~ A*/}tD#"رcǚ7xd!C8@"JFhL&`h5+*ҥ͒%K,Yvzٳg϶ζm۶m#G9rX` "#Z&;;*_~_*Ǐϝ%!6jԧϢEF&[ ;73Ņۗ,==<:.,#"h;DG/ZTfjjE7o޼yUwܹsS dgqQr*~)&d2Y[GGwb߯[I|LV@tkWbx1{?Zjկ߲,b ]˛5pX,6ej|}]'R9 /x}ǎT\ÐGGg樨9:zn7M&inji̙5ϛ׵k.</.^ bzV Ѩ ݻZFP̞=w^RѿS}wDӦ*ҥrdoߴF D8@.W%+?=++Y޽ݫzlݺu֭d>,}|2&,,QF5Jߏ   HO|mڴiӦMfQ! qƍWy'Jbݺu֭3flN:u(*****HNNNNNxѣGafԨI&M4i۶rŋ/[׸׸qk;999xziiYYYYzG/^xiwԩӤI>U&NlZ&  VM"?2@.6m7ll*}*)[lٲeLF3*|ѣG=C.\p >sΝ-ox .v-B; ~3g4x iiok4}J l/c`m=iRLLYGj5Y޾MRRn/uG(_|1` jQ ;txY$r"0x%K4<Wߺ^f̈́BA,Wd;{?U*Q 3êhѢEF4I"短[׭vtܹsε͛7ocƌ3fߗモJ;v,=^dde21 0 qrK?_Yf͚5a.\p²&YZtҥKQh^yرٳe2 5HP$j5 @V*JgƍCB,o8Hݬ:kϺu{{{{:iYwҸYii.x 3eJV>>,PضHԨacd:ӧ Gzi4Z^fYҥk}Ec3g_oJh~X<|,/;ʕ<,-dZ Xtܸ7,o^82YhhhhhD"JR\c8K7۷'bܽ6l̙3g|{lٲe˖ǣᄆFd|z|Eׯ9p]\F./*JL|H.r۷ hjV>W^7a,Y2zL`_Rt yeG<}J֫~d~077=={/HIIMX7+w ?Ǐ, ƏJ%]GrOl*7j4{U^]Sgѣ[<}޽ϕʆ `0 @jZ=="#7l8|8)m[?>;<~dIӦ;u6kvxry|7j4{{{=bwd޽A`5ܼr~ãGgGƌ!,q},yy~׷mۮ]%kΝI-;֨ѱc}mɸqB!C.й5~GM? Qr?ow/޺u\ h* ;iS:X1cF˖AA|>/ܺExF#Ð^zFCT*^V_ݽ;#&(:t6{ի7o\n:-[6ommeP}T 11+1RRn:{vɒvZz}jHBaÈ '䳶?>2zu`;ƍoX,.xFg$::1QwNJ9=}ɓʍnzUDPN#=/Y3ј>|xR lٺ]89=z@QQv))ϟ_^$ XYWz7i"LM~>J$,O߾~+=}zҥǎEFGF}}Ǘ/Wt=>5b'zxt2jD2u޽/_u>jD[)q1cΜ)*BQNNYmܽ5dbC{[{8ZwwE^mԫc;V_BP(J"-+}Y,r^&&L0aBd 6l؀B 0&Je2<_/9s,@ݻw~Njt:d2_Clٲe˖կ_~N?nܭ[nݺEZaí[>;ї.=}:j;*F#0̧,;cFRҊ^^äI2hP<^j\.Vk00 @ABh4: Bl6p8BZmmiV=s&)W(Yr%1{Mm._.&ӌĽťvm.@"Hlr\0ީiiܹ/^x͝kׅ ?lÇWtޟ۷oߞ~-"P|O\ObR.ߐJr+W\rr2wc16"O>}p̘'O>5k֬bLF㧜GXm۶m۶*0niH׮]vZ_$߲eVVVJԩO;yr^kj:矛6?ERREcQ332]۷o2WWGGEƍ={8;kU:8a  &% =|#ml_?G6D"{{/90@ju:'._Ƞ*d42L߾kFRh2d/^\FǙU_`NWծMfͪSVZNԩi^WH\]jvmG˳oؼyРMuH9 g sDG=:s&X;v5ibeee%K$ Ca8.ɓϟ?k+a۴Hzb%qi@g-[f90&4b x{(&ZM))YY㝝qr*uD"dϏ\aL&?7޾=bPf_?{v"RYD teet /^lHΫV[窇VV+kj5g2`. ɜy*@BV yVV͚-[r/]ZC7OH?gxx^zeeUVZjq84 ͛7o\ Yf͚53gΜ9sfVR޹sd~4iAAAyo۷o&//////:8zxׯ_~==*<|Ϸ<d*'IIIIIId"z>rԺu??xO?O?u횞FF' #m+~LHJ$'N\_2ak_:>eC&4w6,TJ>ĉy44toi`֬?ur xN ZM"SHFe#u&r-h4ӧ^z{h׮]eAݷoM͚}Vad:??9] ?:D8FLC999999BP(Vk._U*Dp׷o>|> )q8 qNgyB>IS5kյzu4͚yyI$\nxرlvH/DEH{s",|׷(3ʌ_~6mlOO,11!dNYZ3a5**=ݒhoro5j4t(kmmc_͛ayQ-X1h|pj6ݽs#Esn=~~۷YynǎǏrS^$X#|H_ӌܴb DWPQуxxtfVV`g׬_[nݺ͍MJ/_|2UXXXXXXƍ7n8bM` _ܽKRQFȇa47*qX,[+u@/T~5!d*;ġhĈzիW2d6Sg_׫]~I3;FD|u&<q5cmM}nK;QÏg_~ r'N޽x<;;(XYq8,&L uJOo^] hx}zR*w]"!߿8777777"J>a $fwޣXPT4g͛'پ۶]…]dɒ%KgϞ={NWRQdd[ʪy@ŋ",_0z32<+Df>jsU&%ܽ{ĊGj޽;wgϯ:Ņ yQH)6Ut=k{G\N*}!8Ŋٳmۮ]||jnݚa0 \:u|D"kkN=f̰**JHx`ӧ, ##ss+ >gǃON3keL:秥<~ATߢEl|v!FchhF[w,ܾ}C@@-Zp>> keegիgXNB?j=ɸqVViZ>&.'2 eR׮Mdo/X1sf׮>>"QRH$q8*FyϏl=4ZܹO-b]&Nlۖ:juAAϞ|>k2|5kؘRSsrrs;th`?ǢCSϜvӳ~9szPjjV %;9\zumVt?4@Pzի-,/;99999q8|Ǐ?~L4   Sn__m@waaC 2du x&Or إKg}:" 3-hd4",7otn lml jR r@ Q(228ǏWb4*.S""_ ifg,?//wLڬYf͚MH O>}4@QQQQQOp>|p*Ёf$T^92T\F"g QjJV<{ً陙>4Í#@"HTU4,fXen!Σ~RUoFѨ9CrǿU_fc?1gϜQ5hxZ~eGzoΝ;w爈 .\+esҤX77++d6oCB|qrFc4q<8b .pjJpO'וJ֭`gظE%Kܸܰ0///^ {"DB!Ð Z ||PD&ct:x@PK aE"H$z;Cyq>|ݙN @$deeeeeY} ynVjnj!F7nܸqصD"6;(((((eI oVZjՊM&Z~YBϙF}k׮+ BjYYaayyaa&ӆ s^Ts;EE\nݺc=z( ::ӻ]B!T{ݻw@ 7$=߿ w?JHY^c6wnjȑW{r$n^dZ{|ޭ[+V :7zSTACS8(Al6MaaRRAc˖  <@aaAZ yyZ(8thΝ .\P+lܸEjvr^@ ZFYɩ^=.]9;ںҭۤI{jUP n=}zHO~}&"UIU 86muϞ]nЛ7+>:bXyQ>^š=ŅNjfP`   ȇSfu֭[aq #K.]t)\@~@,/-Zh"SJRttLϕ+~ŋDPnDaЁR}ʆJ0 LE n*(RiE׳s޽˗>~|1i$¾Z pbDIꎎmzf=K(d6EEeg1'fI9\K:Qŋ7o~ٵS'G Zmaa~>i/Kx3g ϗD ~~eY1%&啖z׏KJx}!瓌B͛7iRDbA\\bb^UڵBg&Mgdnnvv,…|SNϞ{wRRNGFNTnTu2w萝ARiÆCbݾM^+K~k0nf?fڴF),`b*,wwj[aTlBկۻXy{wjeYLTH駟~駷'NDGggJV sի^h4:^VPEZZQE=} s&H$mݺn]:ϤsRBBa!X Lj;p @"H$š+o^O4yUi4ii;&&eBC@@.DP9}F:zxիNN^^66} Ԫհ匿ȸ"4A 4}Ѧ `p…"?ѣG=O۬YE׿4HYf͚5s'v~+LٹEG9Qtffffv6@NNNN^oF>>NNu긹YNe33I滖-ݭOH(*PCwaq#jMz!07z/]1:d&t|>С=sܳg:tYyӑ@@DIY کSf$O0͘H6;42 @vvAV Tj4NGjFRivvV= :PRT,}?W^iÛ6][( MY<==<SR9LW&L0h 3Hh֬r[Ν{ޝ'JR ieI&"?u*aÎ;v1}۷p8vwwwwwg\!Y8r8}ӧPf,\tҥK n.%!=weƍY5lOO7uY,//WWwwtҥW9_߂DwPW9xdwa4Gǚ5Ǎ>a9]vڵHׯ_:p۷o߾4L&d>>>>>>%OOj5D"ÂTt 8ix"۷o߾}%՟דyS<7h4d'|T`^-x0-}/L&G$"K@V*hy?6ϟ߸dm~!Gu6F2%]\r򤤧OϜ! hlL믏U3flؼy׮뻹9;Wu2YffT`fyMBȩՙk{{xֵk7j4iRT/0̑#M,XeB}|J'N׏wpw KOOHp쬭ȸh`y<qM5{}Q,Ŝ< ]]%/|6D"Vڶr##oܸv`hҤYM\?[2g4…o6D=\ɗ/߹Sz zzDO0F6|]KeŊ3g|}=<'O# **hpX h~/^}zٓdxARۇB2K/澝鋘MbaX,"Dfdҵk#",繢DF^z(#@N=z R)*?ٳb+^ кu_}u- jHPd\]oC,ZΛ:˃d*0;oߢE_-G'FVP>haju;hoO)( +5ϟƍK.]=zWUVhy&0]P_fT!ɤAAvvfW%K&L .0!8i}rcb h߾vmfͼ$.7<|Xww6;$_ ֖̉I\VV_dW6vY,VbZ-:ԧOddJwUt=>ϟ_@ oܤIm &VKccT޿t)ɤRefQͮ]/w'rLbLjթ_>2_ =pt۶m۶m6S7l ڰtH2$^o0$#4WҗW0!2 QS[Wמ='N 4@  G<|ܚ7pp_@S(4:773 9y׮)S֝6I.x?4^C)^>nE׿46lǎWw1n]vz޽#G֫9B GLWZ ~),,,,*}?ѣG11Bu׫ldf0?8q&@nh߼Ez::i0g*[D,M`z ..dmjh$B<0!Gjܡݷ_Z4`ZN/X>z011IIFcb`~/_T/Z@d)W7 ښU(H 'nf=84T87nfm Wxu+K_ 0cƀyVa![TԷ/W`jUXؽ{iiS_ߤҥ'O9ӑ!KoeúukL)=?/O&KK3fϖJ۴0 $,,W(H+H(w: :;8ٳgϞhԨQF}[wܺuv,VKܲ\xବunj HO?yi+WӳF[n]7IBBBB*˙3gΜ9#o>vݻw^~GGGGGGA 4``IN/////iq㬭-2dȐ!CD؇ta==CBi^Uyu]K`h 3gݲg+C ~1'gW"#7m5x<d(*JN>~@W.UXܹ3w_hhꁁ!!StB!e `22PP `0RٳP{ݺ|cPڵ|>Y!l]rIYYnO|>7&(]H5D~^^dbv):/>C4ÐӲAAAF$ن $ZXĉ'NvڵkңI$ϟ?lDعsΝ;+qT mo ޒK˵ϱc+vqRk׮]j27-Z4mڴiٯ[)k<|ѣGǏ_>h7nK*+ ƌ ޼y7 gIFl7B.W*_w6;Vs^w.ƴZb0w}ڴ!@FR.LUtm.T(M˩й8&h4DXޣG;^*V1}ӛ7ܣG'4/k{Z9 db"k x][Y#GxfoIuIN(*ؿ̙gL[hذIƍUQBB==]\l6[W7 ;}QwÒHkW2jcݺ_hٳ'~^Pdf ɣGjt ŠA?6:VMѥbY[66j$~JE, bթ3h@f?T:8ԪѨ:Z=|xE׷q9cGΣGK$Ǐ?x )j5֭/&$z=@ݺB!@llJJQLҫ'g.av_?Ns@R@Az=<.ʡ^E"2KT<=U{`$&&F#ܡV^Y;p`$>B!/ś7>!W^Y.Yq̢Enn7kVee0FM2H?ItIfs6F kQ/LZV񢣣͙q3@UV{#HtR)+dFd{QQ^^Az]Kh$+(t,P(J%@ppff$&&$$'$'ԯQ.@zzzzVHde%׫&J1@dӧjtܬYZyyUf^fdh4W\YN16́i)A6m;ywӧqc776;!d :uIJN_׳5kxVtFF`-Z͜ٳ]ﲷ R6JMlɓ&NRbPݳ'H%_R +"!mm\.6H YY׮mepʽ{[;|yNNݼs'Dbg'Lگ,֐!"צM۸u֭=^YX[Ç>|S gϬD{NR C3p7o&eg.,  siӀExٳ$"8F" jӦm[.;wn6n=|TZ K.SF.C/kiEd.jÇSSkbx"اJb_" II!ۥK/\ӧx0VmB_QQjryzի<˳G\WIWU#J^ _`3Dboom PtF#'iiBaEcAe۶%$$$$$OThx$/_|R'Y~AAA*% ̩oof̘1c 5j5hɓ'O~[^PFb0HM%y}D-:x@X,2@AX#[YرǏ2dԩSNyu뺻̝;{%k)S5k&Mjz f}F bqllBJ`oocxKJLYƍo.Ny/]h$cmgG Uđ]h׮iSwwR>u0BOK5EE[r,]`^^=mmml,Ob4LBV+d"m2ѧIS*F&+*HIj/xZ40_R_Fp8%AJqloW充$S՛\*$ 9u{QK͚o_y===--3ݽ~}WWx{x/_>N+7w߷o߾7=z@u88噙/_$$x9@N={mڸ غuxpңGYY&$GvrМz{{yۓ 6lޞxC^ܹ}MWHK+,LHhw7l0~qȐfͬƍ#9*;}'vaYJ?BC/]v.]giWIrB|Q*J.RN˵4sɰX,փBLPܻ׬Rk|xX=D~7ZJxu֭[7aBEWC1Id4\",ͽzcL-- sMP3tС72jVK1 >t{aaaaa!Kڵk}VZi>aԭ[nݺ>QZ 2d„-%8 :q|}"h$FM#^rJffhcǶl 0g_ݺe9>_j75 >86zxh1}:@ 99ϟ=J9-1;,\p9@"5z4Df)I"jw<wf͈-B"WtmA]wg0HUEM[x7޽tż~ӧOE,O`^*/ _11KXzLF2x5k6jb }&R 򥝝FP F._zhE׷̙3gΜ9$9#ӂկ?} /i4VVϞ%'^}S|ŋ/~3xYhZz=Qz\0JeQ˗_T98Sŋwnތ;yn]mY1 "XlTv{!(pדur++=f]"oeEPTtK]99rya!\!Mj2 (pD"¬,@ hذ_?[6mr_>TH4,j-ϕX,d&D,*.0/I0^ve`4}Xu4HN֭ukϟ`#F ڵw>h޼y-7^ ?_.jΞLK8pW!K##_].Q͖ٙ*mmdIG&l6ٽ{..|?o_7ΥKyy?ݻWt;>Do28<{Dnnuvx҉r[Ai`-0p y ܩVt N'm99;w֯ԭ[0:]Xgke!G#"T*s޿k ]c\BbRӦUt} H$CPhhNNNNNyVTTTTTdO?oW<CCݻw޽_Y!nݺuٳgϞ=c{ٳgOԩSNYf͚5kB2ݻwϟ?N33 )HXN,_e˖-RNg4 _}e4j:@NNAAn.@~|>绺IIG;02\blXiiǎ͙кuϞ}gVVk{z%&xx4hpѿG~? /_|βe˖-[6cƤI={z{v y;v1 6l{Tm3fϞYFHgӦiӦM6M,?ϟ~߿Bwt`=ucG~%k7x7ܹsʕ]})|Xy9pܹs$͛4W^=j==y<;$.?syVVժyyԩӭΞ_Bѵs]bgg߿oרl9|ѢW'NLOOH|Y^~]\\.W&c0`f˗SSU*!xڵ[>.nǎ_yٰa'OW)*ɔ\[[:( 6X/\(,4:wp-%RF6;=d" *es^ܲ_jFڳΝ)SN3͖}x6yիP pڞ==z_?tK-[xѹԩ}xy22ti˖"r;ZJJ+]XNpttrQa^2 ;v=zNv1nݺOA$#"34 r\a<^ӧ^h`gG,GG?xyDHIIKKK3g0L:uo)St:IOjͥ^Odht"47ȲI__D"z݂PS>_ F#YY!![92nu7y3'g^RSzƍkr-Yvڵk='O<)ߵk׮|>~siCի0^U(hDޗ3-y2ĐM aȄuI=ܹw-x˸8"pspp^2? -o) o#G<3?z[0ZY3 ͹p>}+YN 󩰜/JI̔Ξ}L߹СHadZԯ_~'O>lذa~~TXHcǎ:KB܂zrF"9 ڵjM&HYP@_~ mۼy C山V+zСCYc9r uY` $(Vj5'n> =zl dɱcݻԪ#չ;@L۶GsE}L&z=zDkH*8@8;M@2T;w($N=yby= ɨn7orРn< ؇hT*kkK`p7oFEmQQ:}\b5&;[4:v aCC۶mԈvrlf/޻cNJCDe NyyO@<-WzNWN]$_!E5x,փV}u巷^HzLJXlm;8kā|w.^uk,>k߾A2F+9HDի ]hp?`k[/+:~4 G o߽hzZ}YպyG/_^ȑ&d4nڢEPP${<?u*9~ݺ-[ի/+e%!!!!!a $4C:t0Yrʕ+C 2dy#lpH(4|0'EP8l؉CtkcCp,@u::ԩөӲeoSPT(*}C81eVgOkTtK…2Hvhذi6mX,Ap22HҠr:u˸Zh4y:w;v^˛W&6m4H"\fڵkߞ˽{ʕK F\[["$|Ύ}ٳOfҥKO`۵20tdɮ]}0_:$Ԙ1$W_l;sfE׻4B>3݌ յ}{AcWj:09:LFfrɉ ^6__^JMdd^Ա[^|D^z^zի4WdI%^Lx9ŋLߗN|LV`̘#NHL$z bqu길,]z899zyyqի$CբH&Ht{UqTT&JJI(B,CtԢPNG\ RϠ#͛:Fc>ʋ9)¬L"3iB0EEJ%Sj}PTRiIIyyz/YJsoD"sr2 ݻ3M[0wzdWȑgWR_;!,i`zu\Kz3f̘v_~:l޼e˖-&L sTMv8zuggήfvF .3/p'xZMQBqĢE P<}*i4F3dȈ9R|_HP*ݼy͛fѣGqƍ7H8Aڴ1㯿;{wOϷ+VXb;ka~iŋ{֮(*3/޻P ۴@AA~JE6iyiݦd͘1+VLC3u }3-'PI6jRR /x8φ pvQ'Jz /ƦiSjZUv~eH֫nm=w_tNN1ɺLä&$$$zp == 23I<6Ɔϧ}79 ѐ = ▟Pkaj.XC2K3g8:J$NN5k@ABa2h4 ϢE/?zo@vvNΝ;rnj/ `#GɶT[[k-wf=sf:C+JG#jP( ||j?V(ʊkGGiSGG~>|(% >>)I(((*jW޶m̔~IY+z~ed\CC%D"1 ߿}!lBP(fxx<| #כ4J+vݻ5zu;;LJiݽ^=6{TA(zNK]v]zF5ZS мnowZ THj|JzVVd~L, DӅvL';PH0u֪em \RUtOy7 Q8}Ν?N|}V(HEM&nH@#G._G :{r Fu޽g0߼9<<<|*,'ecӶԩ+V8wYQ5f̘ME"kkkkkkN =={`Zt.Dne״ OnФI&ZDEEEm`oiˋCyx4l, KJe^m0PdrY,$_Q#.7'':.]HDnqxxJJffAAbqzRhѴ=K7nxz}n.g&?% M22Ҳzr2k4*B76] о}ÆYYyyÆ]+AZyyp˗EE?x˗D(\ya!N(Woe}Sb0zJJWW?)gsmm\\\\&6/nƏ߿oTzʑ#{;-[vСDҬY:pw\|2hDB! K߽e$bF#0?S^T(z /)iز\2&&+ `b2{nUa  >W'}ڼb|\U=,{&L .xɡ,֕+W\?0o9ϟTXf4Gxiiiiii'릧ץ O͝5+;;==7]ѱZ5UYdK kkh\5<=k2 ˍFܾ|QRT:nE׿&,jssJ˗W5ZR*}   Hs̙3g…d-,dLI}L|yǏ%=;<СCzre 7nZ6M\S֪UH *+kkZjܾ аgY&x_SiؐdpSuy}P^\OqV>z4* S~Y&2YbDrbd\P^iJi׮LB!sݺj51ѝ<"L޶UnޔI&F {{㳳\]Z"l>]ysjx e5k-[֭3h۶&x*J6>Ν0}߸1s>r^wg(TTr7c4O qLd|k5oޢE6'<{*/D/5]Q#zޣGO$%1ɤ*wWt}>LJ}E߾}3iXN$ DXqE hǍkԨSѣ\Q&{`P(F&m0X$Gaa:ի/_fgEE :jԆ ,,P!8qXdɒ%KƎ>}b*,oѢE-\.طovVZ?̎#1;󄄹s[Xv70Jpttskܘdp 奦egr2ehdڏ$BDuPf/,;}]N ߟn:| 77"U2I"!`߼ne ˤH`܈AzZk2gHv ڪt222222|ȓ^!m{&zoq8VVVVB!'N\P[n)/|WzΝ!t 0hPN^^99`?\bcYYX;f2L::&*}&LTyDG?} q3Hn"lx$!͍RRl\:N%Wv}J`jsѐ-T6e {dYg7˩(G왚*rBaoom={6hgggG*,ۼc`]WQkW0 @>>VV66=l٤ɍCZVV,=z4mZ0cIs={ƆЮ]o/dt˗ @VV^VN~mE}qttttt\7/_|e~bq 6vz ] |m兌'u)SL2e={ٳ]$h4d:yɓ'5z\"W:l8pj5wf͚5kX›0o|3~/oii^^moowwww> )SƎ}ży+V,_*t$)}Oěti4}Ν;wlJHE33S˳gϞ={k_vJ&,/~>M7UMx^lhol6йsp\xyy$N&$NTkMѢżyyr-ǾA%x4dC}|G۴%,,GF|,NTɓTVZj~~~~lU۶d=/ɓ'Om8wn kA"#-I{P{w7uI`dG|$'rNзs&2@`k[i2A\9yN9r2Wa_ARRjvZ^˗ >'GhVܔݻ;vJ\zN߾[Dè8pzBuǏkW&3|en從B3#(`K_pt BKPzՕXѭPD,>a矏ݻ7nlӠH$GDh `ggggcP6?{Yl,1a¡C+,}N2Dy:tro߾tE!(Y@.Ν7o6v:߯d@O?={F34lhgРDo# 'DT59OJ?e9CyI~@4ZV %i㈝`ŋ/2LƧ˖-[lJRWTTTTTD=|z]rT?}1{ur*}m*@q* HP|דD>>:ի11|~aaL̍O<9{]( 4W\k)   U믿n@V†>|p-[lٲE xHTNtI+W=k>~c<ؼ^-%vyǧA ˒(>oشi˖uzc>ʋ d2Ï=>9 ]1^ؾ}F,V@W7hlv|ٳWFIU*zȑ#GYK.]tٵ*,}G%er1رիzyq8z}JʩS#*TL܂y*))#`HIOL4I ݻe͚oJDđ`۷o7g4Q+/7q̯B38 L&b/b d2jj|\݂rsAҿ%0&G*ԤtUq [.]j33gwʫ^g鲲j&ܷ2~'/QQ͛7~&t;6X{ݻ7@VZjUro޼yM'N8q__D2\FEUtCyǍ姾^EQ\`ӑ {22=HJU -{Vڲ) >d,Z2n,R^U-dYɴZ^ׯZ5}zj*=Ǜ6mJZ56̤h u8n{ݺulףtM&X${jo%rcK`NQw=q+,Am4 [כǎmԈ#vןO1Çz5keȲ8rٔ݃ƎHIIO?pښ<1<^g 115U"oqѢ]fׇBޗbq$+ ,l۶m۶mt2cTؐر.{xxxxxqqqqqqb1 Mϯs _93iҤI& {ݻw8`7[LY.8/<^.0@,pt' !fyyݺuP6ѣOt|~TT^N' &% #"FR=֯*=] ΟwO.0t:'v-]j/6wdHMU Fgpӧ'N'O]ۯӧO<}qc~~Dh.wz\.3ӧO<{R5y#/,/ @*~…߳mvM"iѢcNܫWO>yF#18зoa!ڵ]8P<.ڵǎeݺڙ˷4˗ā^w`P^zJ׭c70̛F^)Q(T*@L&Gǒe¯g7J2e4feedT7RQL&ԫW^og>yy@IN0򸸒p$OO^0X۴ir?yI1iӦ#;re^2Y:!J3R*0$^1߷ze9o{ew3';3\b~H$z}@WzNNf{?}j4LzJunEOEӦM6mzׯ_L_}EUe޽W\Mwkq&%%5abc?t:R>w޺aN?^*UڊG~~駟~ ~8fݪׯ_v bאɈA"9}z֏!W5gsQήF vNWJW[ۂN߉P(('N8d =dXrʕ+ѱb2hݸqz2Fw4&B;ƍ{x?~cǮ]w<|xrv6@`۶sٯGCFC]y];vth2>N޳g{if8s{?|ї.Ut=Ko\ݼyd9bDI7o^T$[[tvvl6 jU֯:kSwKC;}3Ҍ4ɓknܸ^=>ݽV-.W E"`Fj >l0Sd $UZ^imZ5~'T0BoCtF,<|Ϟ9srrHy_Jw޽{nh(Y@&#d./'? 3g&L0a).]` JaÆ 6̘AΟ4[I'Οzʕ[nذmTdk׮iS8oߪU9rٳ.Gqq5Tƽp… ~!eǎW_| ɋoct 3hP||ZJ5r$֯, d|f VVoϋY*ߚ5nMfM&//>a^HIQ(4BL~֭zO!fߐz&4ِD|ӺcmMzݺ;6}:OM&J{`͂X >OS>icǎ1_֯_~۶^TY6n\R9'ؼDyڵ͛ODwzy ;kgg߿o2רl9v3gSښDg8tHrlIIٽg=9?**&f7orpTl DcǬY/dI͚;?~EQQX@0`sB!-oNӷLvv^FY|}Rz˗dot4Y;p^^ѵ}_zW &ѣ}}5x<g?~OS#"1sH;q%'OFDITAI|ǎ$L75X,O~(<]˗2NHB\>7 `E*ͱ BP%x<C.;ÐD\h$ˍF|- " rr2-yƍ-7`Www]E"y:BV%&?zdePxqvVօ s'u堠 ++)]\PX   ڴiӦMG 7nܸq*ٳÇ5"vkWr.\fjЦRǁ҅ L2+>{/I7:zTD0D?'nۦՒ_v:W(ǪŋKDDo?1dȐ!CmZpV/FcRRvSNNw乜9 Hc޼+Vp~mƌiӪfׯaÀV3G`ƌM&ښ髾5&nm2i4*RTTѸio޼h?T,/˾V<=Ey7͞=ϟ=L6t1cVpw/{͛gHL|YYqNd2u:hPd$UqӃX[5GNM-{\rYEη\ayisdm8)^h`j9w,T/ǎ\ٻa\.mp8\.VѨ燄L~D{=?Hr6eޱÊa#+oX&-YRVTj2[7{vչ\.˥fȲys&K''2=,?'Kp]"@Y.ut0{vV ecxRb98,@@L&R6rs M&lΜ˗,y))&߿y; AA4=!DaIENDB`site_pro/images/icons/email.png0000644075506000000310000000077011706150762015016 0ustar namedPNG  IHDRasBIT|d pHYs B4tEXtCreation Time12/12/08ZtEXtSoftwareAdobe Fireworks CS4ӠPIDAT810E`"HqREPpoU2$qD"xX%K0/M̛/C/fR8?VU%着*qm53IrvD$$>׍Y38dwM"BQ{fjfnAπƘ6I>1&؀s@ʲ eYbXw k-4p5i,˂iiZہ' ~֝ʲ nl6{ݟM[?`8z??E"ڝN|4!:PJYgYDu3rIENDB`site_pro/images/icons/Thumbs.db0000644075506000000310000013200011734375066014771 0ustar namedࡱ>   '& !"#$%(09)*+,-./1>2345678:L;<=?F@ABCDEGXHIJKNOPQRSTUVRoot Entry 6 }1M CatalogX25)   !"#$%'()*+,-./012346789:;<=>?@ABCDEGHIJKLMNOPQRTUVWXYZ[\]^_abcdefghijklmnoqrstuvwxyz{|}~ ```r {A42CD7B6-E9B9-4D02-B7A6-288B71AD28BA}4icons-light2.png.m,icon-next.png6K5icon-previous.png2Dicons-color.png0\?icons-dark.png2@)icons-light.png2tripadvisor.png( Tflickr.png, Rfacebook.png. T~ddelicious.png& `email.png$ W:Pfeed.png,eaWlinkedin.png*~ystumble.png*ЦLtwitter.png&&\vimeo.png*Zyoutube.png4icons-color2.png<twitter_standing.png8twitter_bird_2.png>Zcsg-4f3bc7207ae9d.png&n>%close.pngJ|glyphicons_207_remove_2.png>fdoc_lines_stright.png0s~app_window.png8 Jclipboard_copy.png(s~pop_up.png$ Jcopy.png.mnbtext_html.pngHglyphico 9JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?? EKiT{ܷ؂ r[6Npq?wMoپA=ݼ6Vb mLJYdY zoo>E}x-Yr#X޹x\{gk+;)BA JI 7$ImY*k^߭^h^vZ>d-]^pu*HSGְ<_3ަY>Iv`tl-S8jyw JFIF``C     C   `" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?S}A[AgLJsrʂ8v! q$QEEmM%!Gp<هkc!aB1`bHqҊ(/h+ x;z~梵'OMMP-w9f>Xp~=jGru W+xsO@?PT:L@[@ źctksXA$i'ö~˷5q$X,򷺦⩏傜Me#ΉO|{[ b.` 挰U+~ ??I]xbCIu $p1 æ'0-Q@Q@Q@XAf&Җ0O !]rOvPH{kXgʬ-@9@U|Uß 4,j\XEEYkhvK+j0cR3ȕrP(*NԮ Մi7kc NJFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Noօ3FyX\zI$ qp6 o#GXXxI٤p莭+*pNFwQSVWJOUF,JYp0̤~7|OxJ>op;*fXVlPNK/p#%._z?uXɞq ɴ&置 /JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ڭkZ֦H%]]]LǖVgvwu9W|W;eG5}76>6UTˆStQeK$%K}ā.Cy|Emkztv$ܥՕHY]8|i[z7ωf𝶟6{_ʚ6"-伬eQ'S {eyyy+ߛcuZ  JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ? O+Dm[H3\[#5Rl20Tm>8MK%Mom5bXW\ ryb#6v70-ooBT o#o6OɷYIu}=gYm.,J||} c|?sAk{um }l9"Q5# $NI⸈27mWW:֩m<7dX$̍4$zu SJFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdef51_61>71E81"|     0#$%&'()*+,-./1D3456789:;<=>?@ABCjFGHIJKLMNOPQRSTUVXYZ[\]^_`abcdefghiklmnopqstuvwxyz{|}~ghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?KSϋ=VO3W77neF]#<ҭb|_i-ޭ.M4Ѩx`v9eּVvVLJBL}Y#UxS+%gp@Th^LZ~,a/{46$n_Nѓcd ƨm\є^rJuv?0,=SWdY46 2JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?6_t-;:gz5Y?ӯ%vD lO9qx:%懨j:4|hDv`#:QX}ӂ87FėZbj,u[|# G I jKl4? ˒ۊsORJ|w{WUsbyirY8~Uyh5o w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?S(*~ystumble.png*ЦL JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?SO?.?oUQ o Eʪ_]G._[_*7fU?mWNMi)@(ӿS5Q@x-Yr#X޹x\{ns_113_justify.png0 ]play JFIF``C  pJFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?~$^em'M/W":./mx3Gcq8kz?6B5,Xں O!coڽ ~x:1F,t- ?okkD9ܙ<|֗n!_U%ݔ$ͥߴKT    C   " cJFIF``C     C    `" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz912o02 Ev12 W22r w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Mᴳ'?aC1!ʃ(09`-eDpH_1"XNMs8de#I1!inVwB[&8[p8U ~|1*Fkyq/bROlo3[awms̶֮临%ecN{qN*խ>B+[iw#rRuxn ë][Ƥ4Hʯ{2ROK҄ͯL~6o qؘ+lW2R8;}H烊򠷝H22@?6? ޢPڳ96KPJp.if `g:#6s z?9=1jvm%0I{,HHޤA+g?^j`f"o/'vzWSEJJy tڌ]FO,!7p046~y!Bx^1$ց }!1A jJFIF``C     C   ((" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?SSf$#m;X37uK1@&P-̭s(URN;=aTV1^@A"5xL+_2QIQJRKQά)ǞNآXmͤo-8hp,S :Ҽ]*\\+ ]Bp>9 P{يqup_^$}(ݍz,{8BMtz35c:UUNOvx.6F čuB&oa/%ӅUnN_${Sxw$ۜシg8? eKMC){m|zRR|m5JrI[_+擦ŤZġV5hWrr{B1TbTm x{?T|^&eYFWF( 6~SsZmZkf*OMP6^( JFIF``C     C   ((" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Sg]SQb-{%W8HԱf=r{P@8,'G|>fBڎqk!QdP#"!a(%x[H|'^+ڔ12j,y"@؈}pT$|+nux|3Im'o6#w揑 nUbW#p(o+'h/o7Z[haD/.73K,b?:,n#,UYx_1^-8\_̱BQ$ԶXI$?i:mce\ʰc-#T{lės+ƭ\=毥MkK#wygT\$Oz ? |[|F-!Or>>WzT6@ٛJ𥦱k4_*6D9$)v.@4W@Q@Q@Q@Qa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?պ_w9[ڟFǗ(/SoW~Bծ>b܇_xON`p##K_='ZGS1{ Y-֟px`8d>;Ѣ(?(?jr:xھ\oVOkyoF:kM.{ĵnc'=ݼV] H'3]y i;lm}kh?(?jr%uKX|k2̄k_-˺_ގD]a?x@υڗ\L y3^ 4q~}XN (?5ᎃ##h>?9+guOxJE幁e9U y_video.pngL+'ZV?t=[3@]u2Qkjz(ii>/Uр"h|e 3_ |#{Hx` )(bMb^0+'w*Е7 [=.}28*:_J-$ObhmH?#'5/]W񝾣u.bcq&GG } RwBג`CK#_vo)^z* ><\KfݲM#Jqi$&8՛W>EyY[a_z:E[$wR\5t xbzTVAc>袤gٓ_video.png w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?S(~glyphicons_207_remove_2.pngns~o6_ =9Znm(zXH}^IGXl6 JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?g!]'ߵ7-?Qkk!k~(h:cyΗKiqp=NK}1q{#~1{O/Oyoɴ-t-Yۨ6wg۾+l}[S:|z|6 >rf P #JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?KSC0Ѿ"AO]=ӺH%\Jǭ'VGVԧPEZޥHf43I9jm?foa⟇&m>{n|#5':\{F~ocǩ+61Bopw-|8## JFIF``C     C   " }!1A72(82/92(03!Qa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?-^jkA#D.U#c+dUw_?~1wEewyI*:ºӌqҼ?>fdoc_lines_stright.png0s~app_window.png8 Jclipboard_copy.png(s~pop_u #JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?KSC0Ѿ"AO]=ӺH%\Jǭ'VGVԧPEZޥHf43I9jm?foa⟇&m>{n|#5':\{F~ocǩ+61Bopw-|8##p.png$ Jcopy.png.f JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?-^jkA#D.U#c+dUw_?~1wEewyI*:ºӌqҼ? JFIF``C  JFIF``C     C   ``" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Ϗ-=06t}Bʵ2V|NL|KpGY@8}щMPH*+B@\ Fc+{;48>Y*͸r>ZΪͳ\MiaFqF}t{11.OU6zD%ijEij Z6\ H!S 7AAOx;"ysxO Z=w*{4L hGLCev4Оi?i]zG2[4H6@'W],/)5JT܈upzm$y4'OiG4'Oi\?n>/4}MaXKgwE\6r@A2 5Qٱ+!?5tBE8*ѳ1{L*=W' 4K' 4K,~ͿRz#Rg f~LjbOԿL<)/IdGki&,'Ue^$]|I? lςq61z\6481. yH֊B2x Q_xFч =ݛ 9Q'|tzqoTvO_胝8 *l(S<Bˑ~+?e7<#jZ凞"慠mDۂ!]@Bp'+H4/t_y崑EʤjljCNR"`?Uw?ɉxCT"Ɲ_Ǐ>9/|)Ӽ0c#PG"G\$g=?J/xm`0* @75ω\>$~_nrxos0jOd4 `#pANMaϏ;]sK*Y:~d2^6 *AW?P8ӿ&7!!KgƮ4?Ƈߠ?Zu~ғDq5;i|:_`[Ӿ]R?'w|cj69.u9綞1(3_mklO$_K#_?5|QO.Z᥼C\"Nr ?(=5[#`? _L54x+[h5(y,qZI(IW:.5/$3 n8#qj뇶Hݣ4WSi`ڿ4>7SG. $gtڳȩƥleYlO57 c_ g_N?'m\?!ȃr4oG;^Yd__Yxw9eixwQ-=eH[f.41(5vmH۔Lc?9wyw?ڏ/kqs>-+‹| |Iu;T^mix𒭔5DFXl6QBe'&h/~k՞derX2yl#<-`&xǫȶ?l$ǣ}wsy. $8gO%{k ]Kyu"/$j9 `gw5 7R,r=39qT.k3qWk{7%W/g~Ǿq}?O|=7c4?&#-yn+om|2@5ǯI⯟?]_UYG}[_S={¿$~¼q".A̜cH\ӄ\в~q޾ {u98n?/&*i{KM SXYam[9Ĝ(u'RPGh_?m>ԣF1XW6'=iO㏩0'<5%ިT=Oζw{YLJ$niǥR|7u ]h׵Xau4ӕS]/O-ִh$Ԭ&^u(GoS_Tri?CiewO\"85IEU 8r|s Ǟ:M&b4.'-oUb~ۗ>O;yoj]?k>|^Ck_ۉ0ow;t}Onf~~ w>23Xam{ ?1-rn'?CMuď 4jW/ee6$G޿%?iOZF+Wމ'ge,DKa;k̗_f7b$JI'|__aD2x Pe ,E^cҾ3Us/4~+Oz4*-gUɎv[hxu'2=E~ZXdž!5[3m3sF aP>M>7]ƯxNö͍D^t#\UWŬE9jj$ީ-bzt]9GH讋GGLU`aLz~ `Z|¹?#OF`1'&<#O'+SU;;$}i']' ;(޿BYfN~ѥ]-*!eH0;vdi9^G$?' Oӡf`hbYy~W(NTO]Ufqgqm/@ LeFq}VZC[ۤdzι+WbPl gmO +?%g(PFPtS 76ӎ?n㧋S[M`݂1u_8҉_)OĂC7mߴKlޙ>̾$iLr{Ui3qud$׋< 7[^5$3j]'lcvz/!|m{K~sq,-r9 K79?7VЯ-HzsII6۔R=,$> ΤZ^^}?'č"5~_ڿo~ m3z. /}g_rkچ~fm[K@d nCҾe:=tt?n%xTG!p88jӛNqI)&rGYԔuKދϳgZ䚻8ţlU?oN(whN~F 8SzǴuOTQP,yy!+׊qoxpk:mΟYy4{v7gQ_.F> ƿh.BҬf @gzWka w*wHrDr6*?➟Lk:VFs-ڽZqDcGzWw o],Mcg!ٰuXW(NTO]Ufqg΍a^"cY[¿*5w36Ou(f!F*]%.Tʹ4_CvrM͟13 #23 site_pro/images/icons/twitter.png0000644075506000000310000000122211706150716015421 0ustar namedPNG  IHDRasBIT|d pHYs  ~tEXtSoftwareAdobe Fireworks CS4ӠtEXtCreation Time12/12/08ZIDAT8MkSQsI/ikԍSЅbA1[7nH@[DnUEbAcH$MCZIc8wU=ڏUsbUU);F+ R3լUI%P4EV9rT] X,V"n\"&޳32pnR" oԺ"L`= 9>- wy\#g^@՚zPZDDApA*pD:|&xpֿ5Rwx SY/J&IH'Ɋ X ¥=Ax&{b0cEp: %$&©g;fP6t~SR>=xur&O^jJQDc0b'tcec8#zͼ>\Mb;<%4 0voV/b&g|mo"ݑ^N#)#.fB:t IENDB`site_pro/images/icons/pop_up.png0000644075506000000310000000036111720600640015214 0ustar namedPNG  IHDR;֕JIDAT(Ŏ!n@DHkˊ 6{T9GQqPRv` Ty}}m8n!\mg5M 㓤0 I^@H)$2J^J1F}pb)3,h^|vYVJ:[ߒh 2_IwIDATxuXT[75t*`(```]X(&6*b+`wvk\;P H|oGw g8sر+SF͚5j89)+++++())))))(0X n͝ hr}qhdwߛ7o޼y v60@ǩ0?o˗/_N(sgXϧN߲իW^ھ]O>2c=\[^ubѳgO>{}NupoDyGB?4iff7,-A}hGp u=yl`bbjjbb`wokhf:u~W^~iޝMB·onQp {`\Jߋ(ԨQF`YA{УG8]("Xa9Νa~o֯7obbyvGWp֫W~Ea}ZQQIOr2SS9=vvv00zDQhx{GE{Uh|E쫿G^u|Q=*]JJ{C ZTy_ϊDЯ}ÇΖ,-h"JO_~X:ԬYV͚kc5Jߋ/4H>IZkת5ck\89sv6m޼/_xry~r:νll89߾ r=yo!kiiiiaH$D**AdQ@ƜƲ}w޽?PA /.ŕSVVVVVc^^&&;vl`ʻ}M6spc))))))NNH$0NRRbbΝ;sFGgOo^_Eƍ;w__r1c&L7N`!e,(h\qqiݺm[ywưa b 0:>-GGuu uK`f,##33##00??//??!VƍSQQVVQQS{ǏK 8۫EED"ca XVVvvVcii+VP֭[L6~ر&4mûw>DYYiinn`'vܔtutuԔP^ׯ_~]CC߿0111Fzu+ @MMUUMLEEEEE7?~Gfh/|FVh} Yf!ɡV( [nck۴X |ح[7o޺}ƆPoDyϗ66fB^HƗlQ^`E1XqXffFFfِl=0p3g;zرv ug#ھ}e_DQ Wy_~kا+)UTrJ"a;ƧO3cm"]ڐxUv} vE--uuuuu(k /ݻ7!{?MN~/ݎBl!Om??o'ܜ܎OMXXXYYX$$=#+=OJJJJJݻw^߿_ o%hhhhhhy{zzFFzzp0a4y_ ;SBY˅ g ƅ9999hN/Oi?Ϙ΅k1_n݆ <1rr޽{ݟO Wq`!7x Ng*#?^*1jjjiijrU%5ÉX* 塨kjjhhj#ɌkשS6cQ.!ho`RUTUKG 0qq ------ [|ŊeԩCΝ1+WKpSNNcܸq|y| XܤE&G. b0mm--m+, oC%K.=|ٸ l zzzzݺC:ЊD"QP*!F,@#9B&-->rگj_qu7p cp ?~ܹsgxΝVV4p`|ʕ˗\il h|j׆ .$QRu?`9\PXʹipZ'(`?qcp@ONw{~5ˆ.cfrnM80bI&M4S,M^PW` m_E9p@>>^^={rNV~vvZZZZg烣t$zzzzzz%'''''sǧgOooܺwwscdÇcIIIIII?mP;=c2k`;'B=:5UY95u\0?ݻݾ V}ǵkikhТEv3gNPaժG:uԩx]v>ѧNEG3}m;v0&khŨhjBE`Ҹ18#vKvv\ 55LX nq. LZ66YWW؟L {޸!o9HbӧL9v ƍŦMaa6[ n9UH ,y-ЧV  YuBCׯG+C[ 5a^|ce#wU\\mlZn~ 1bΜ3upxG_G.[[p*jҚ=7%kaIrO#RZ *dwkР^6m +U2ޕ=ѱeKGaP~ٟ m//X~\v׮'ϸS .889"?0$L@<|uׯ}\];n^Oӿ?-O{ _}?}؁0K]ܾKH gbmyAd_=*Wy?s mE"ܯ婩塟G****7C0?? &OOLQROh z Гa)*~mczȑw?'O¸jԈU+/h'RUTUut`ޑwk_u+g U!c9:>e-[&$$$$$ླjl >oѢEW]-ȾQ4H?,3k8:KM-1٘1{ۻ]Gݞ_0|Ƽ<d `÷~wo߾{'C…XV(lƍ[zdbm[x֭IIhmN?~؉=fѣFq߿'%qZߢ_?yˡ@b M##% & `ʔIٿ߾уۨ`{琁zuOI. E7(O++kkKKݪ/x0]>4H{^s_- җ$&_ ~<?nܛ71111Bp+KW71^K/NL5j#ďСc?;888h޽O]q+b˗+*2Òۉv9|~jyJ*UjFFsժUVͻw޽{Wv vaʘkv;rF@r]ܹh֭[l'x^{/\=V500000ؽ]55/.p`gឃ998sz`۽u[}gl䜝 3IPЦMaa7[W^-ZL=۷o&&ʻ]*> kܸPPMV0y;q|CWӦX}0|W9|1i]ٺg޽}|֯߸Q_/O! ++9ee|G?~}6Z9;_[.-_~W[vӦM2}kW^AKzû͙3zzgϞ9 &TVWֶn uy@;+&0o___?qG5) ;kh`Hɇٟ %Kp q_ִ)$Ytee%%ee UpnuXаbŰ03o޽{ۧjp'=p X/*'Oxx.]lcX â?njӧ++{{{y#vӦpwŊ$Ⱦ{U^#dZ5j HNNJJNsv ,-A/8sNΞ8ۄoJ~Ν 73f _mǧG0hjZY];%2}ا֨Q^ _~o%%E $Ɲ***(ۃLss֭[n]`"o~>؇IAaр"͝?_AA BCݎBB# Ř0!߿ 'H?) p|Igqğg*6WΞ URJ9KMZ[ٵly;7n~+W8o.#*UBB\ p8hj(+(x/x(%KVX&`B̲r MIqNޭ-}`J~#?s@zBիW9?@ʕk֬XX..:pNxeGÇ;tH:vl߾S/>`343fԨcmlQ{T Vn8rr1551qt ʕ+VZ|9o q@f͘1{hӸ1<.v *VXQA?|Y3g dq&M7>w+׮1bŲe+Vp8Ȟ:Ssxw޿Y/[T``з/:J㺃ĉOhm}Ν;w4կsΚ]pHoz:>>G888888.\`EH'I1a%Kݮ_ϲѣ׵k-Xܼ7V ֭kP_:x* GF8ŘKk֬Z%D37"+i~'+ff%4?I Tluu55uu--////OO74HSVٳO> -FFuܡC.߿~^^f͛7kCIGG(0oYGIIAAIV-LTU\9-U:ԣGc> v^@fn皙D**"NF*UVRe| 큐'Nܽ` ޏ*+jgޭZj*U;w9s=lS'O7ys{f͸qqYZ._tf>s׸>|K22⌌Z~Yq`q9|Ѡڷ={b,%%99% ~_aqtD ·``9uBǪU+WegggDV*('۫W߾enn****qށ}}|z4 _+H#ӂW/kNy_`ϳwo~FS +Vs~뙂… .\Pŋ-^ѬMaaׯ߾}횳)ӦMٯ_+8>-o9X}fXGp~}{DĐ!KXdݻ'[[s AUWXHȲe!!8 yHYCbHHej 7b1ރyMɟ#T; 7f|$}o?_25,>Bգb1'I<-----MKKSS߼y9sO>s&$$)))))Ӈ]jj_/[O,-.?p 'P**ײe~zΝ{FD\zWl_앚@/gl)S߿O>P_PM2ַo~}2fl\1wGnh* wܱ,.A[7o޺WW+48???cG%|= 7hP~&0Y[oذn݆ ;(ci*͚z!^%cGB`~-PQQp~!JJH׏ PFA:w~υSHxB;쉈`,==--=~߿OqPWyYv=Rޭ.:h?-dv&yAAl@aà,[_ f KN2nWQe`=@ cWU֬Y{|޸qcƌolO?}\Boo(UU55UU<<6าdlذ# KK:tC55˫|]Ex%yXv$rruݛ7#"v숈 U9y~6m ?UI ǖ'IZ'͑vٲU,alqs m]]]]:t`ƚ4h҄m۶lٶ/_||6-[:;'%Bwԁ3ndؐYIలH'UXFJKBy׮n'O>}177OOΜ"sr6?0hٹ}{C166666VWihgj*bpbj '9߿}vUT`& 蠏nj0ۮ\LFc-[r)X_'acXԮ8VݺyxtmF1ϏqCֶr.7+0b{}O<~}ǏGE;0{v`ٌC>އoq7jpԦ)ADFEп/\![ۅ ,8s&$$8xɒ5@\oذ~}z۷Wa]we/WPT@MAp ~VuҗKJu +W64TP͒Ȩrʕא!: Ç>|i 1ZKN. 0psttut&&M" ,ӧN{?~t޵;X.= 3333',Lmmmm--삕Ƴ33ؿAW׼ܼ 6-0sg|TCj##WS!5`98uжkj*'tu bqgdر}5j@b 4ǀr~ɢ1''77''?*96lsbOժ%&~x7n֕+n4p=LJ0?DgΙӽ˖-^|Y3f̚ee%- 8éS?~`̜9pURJ*-Zx…o@ƎO׾};9jԪժUzy{=jdVz2 ޿>u̙ٳ`PafȠ/BGϟ?޲۷_}uttttpxٳgccUT`]cl# KH"e7QzMÆff ff̨ȓ' W؛Kye/ iB=|+J=k|JHyQAgϿ}O8˃$*WH%sZ5dȰaOxE!!*USTLOWTĚ2Æɻ_' ;i˖^gϾ}w_b+Wl_Wl?10eʤIwӫW߾?]] &wS#O}Ȅ pG )&h,{/|Б#ݸq}{?(}d*aPP!4B; ѯ@0?oVF[ʻr[׮IiJ͛6m;ܷfgϙ3kܹu'$O$4? -A {1֮]6ߔM'[l٦ W(/l>c=s,cVVVV >ra11 hhҲ?0 ccc/\8{_O:(H$`? / л?A2Y\|9c~KB0`_n߾mێW>y']@clرǏkf6wYsVUSY"e}}}}}P`/U3666fl!C̵MmV ]nƜ\\8+U$ \دʫ|p4 5D38quұc׮#[[pƔ Ȼ]ETf*BqG0ޣcӾ?e2cttJ_uޥ;׿Ửpp ..mۺ@>}ϭ]aCh(c3A8l׮Cv]n4`]b߿/\1{޽}|eU-{t)Sf̨Wzzzz+W7d}5kB `XQWWWWW ǏǧMw _eӳGOOv޵kƠ ?E=_!Fطy5B9m۶m۶m?}ڵk]V-nf}\[vqi&)ٳgϞ?҂l))A<r3PN\u ŃM;frsܹ}yFv$@,[]\:t8~+'-[/-ZHOuFSP) 0׮  ?{<`سg-RH#cc|mcckkm؃<|ئMaa62t۷C9GUVZ#$>T_|勢bxOTTMAKݸ1`p_!0y߾ݻ;ۻgOoo ?RR~PT^2bUت. T} h ؗ%'NSܻ&V7>xȑ=|#G~H 8wp")=====][{Ѣ v޷o׮Qƌ5 ;xII߿'%]륋޽/}=`0yISl}ӻvABŋqS5}˖E󾼑d/Ŀ?=ֶiS[[ϟ?ҹsh/zB~~k|^\ݻwgСb,2z"Vc 7nf@NY767ͽp-`7_D9gΜ?Ϗ : \`vyW!i|~֭;vlXϞ=z=޸.}eK_w{\lْ%˗sHZjլӦܹӻw>?<K[( ~?32~Ieg?~G6N_~aÆ >q|ܨQF-[hѪf4~>( 6l />TV.zAc:u֩#]|QHiY 3fq B1xK+JW\rJc>}ӧ;b7o^z2hWxpuw3%X nƍ=z;€%&~X׮:1wBl,H )/SΜ9y1p@*|şGF:uQnBXT>5 jh(ϝ*oCLO~W|@9 A {:cƌ7fLX?>}ӧϜݺuҽ;ccy?^wR0%'7&&.Μ6 %V,@G=F3&3 1ii}Bm^H'oDX۵?{ӧW/bj`"ϡ!F>X DD˿Ӆ `x2eڴ)S]SUDca6q/}9y/||FYG&~Uxʮ\E| M>P3A ԭ[UWji)p1|.>S2CÆ1lXz:+ {ͭK@'Pt)>,@yԛ-i|Pt}|z +ok۴ ct)7}***TPB+RJժUür߾}A"yӧo޽#-K۶ x)cСv$֩S.:},KoX?~ +s4kR>|ؽw2ТwpW37O+++))+}g~ǧgOo311tP322332445uիSgҤ,22,-----G7h?Qk^ 3f1c4454 ;kH|ؼyAAs2ִ]jjMoآCvgO>{ZZNA y &&*9m OWοl'*De܇b >?!>'i+\zիA.Y_֭Wn]_\}@hH'6ono߼9cWZӣƍcƌ~}hk0fnnnިH0)߾g=z w=]۶~]/*0o 4x`$YOu߬m˗4dK4nܤk ˫x翶B`=c7o۶iSf '-[|Ԩ\1qˑ?+&M,,7flٳg?{ixq_Py!3ݝ[X۷wumߞSN.z-/_)d^44 X/Y ' we?$@s.^L II|^$Bp PE"t,?uֵk8{w͚jլ)kױ#gCEc`P*/QAWW~%k|.d͕TրM||z)!FwnرȣGtw%p_=~<|8d|[Tn߿!=ɌlioߪUrrӦvv9|ȑۏx>}}8a\jiossk̬az۷wS?IWžeqc3&Mmm6w7OׯXƍ7n\>ݞBRZ8` 0a85kٳO/={"?_V:C% CQQIIAߗ_(H^x ܵ IXkY.Tw>{va醆`p|<]]32RȈ ,WQTTVEf۶ڵm{XA+y]𑝍 5""<<"ex2f 6mcbiɓǏ?sgɓ'Ns-4) `ҤE. NN޺5<|V==Ћ8;TT!ԩnoQ;X Jի+/οr(#U5Iq>F$%-tttuut_pcBjY;vTjR}Q~Pl>03udtFծ]NVV˖\lիys.]:u9uIH;ozyy{{y1ֲeV-[Θ!GG-Z4{p^<`7TUMq?2ֵknnAA(;}:V? ,,[] Doըajjjڸq:L {wySV dDĜ9͙۷o}GCżyhO;vc7ntvvqqvp?W@/М$b?2*ww튈صĄj@0<wբEfuж+c@B@$$ABAFFFF+܏?~89A _^zu/$T@tu4hРA.auѯVV66VVaLxDiҺFQ 磩nܺJ&M06bĨQÇ*4޽ekKo8;q\|z||^||S~`~'˻=BÇs&&̙;Q^xz47DžT^z,Z֭[lvB}ФI]txs˻U%? qwIQ'~~FZ FC@QAaw+8)t`Z\܊V-_+cׯ]~}გ0 _,* АHT\$@}9͞ QiR@ĉ=z,^hQHARRRRR:CRH"q8L0i҄ ?~|˗/ӧCł S֭Zo2 I  !Uʕ+W\fMWkJJxs0y̌ pFtpw+K_fϞ;w֬]\:tHL~~%'iB$eZZпlr?CB޽!`jwI8\Qߗ{*sgW.] ]ܟ E>0N6m~8cC>d֭0/'v{LbjZiH/ | "IPt[?RR45!ALnnf͛7k?7~ɓO@2=ر#"Apܹ*RcD_ A/.@;kW_____%K/ a1L˻}E_|Sݺu֩cΝf~ҥcǮ]8IawݸQ/*] R[[l?0<͜9cƬYr'Oz5^ w!vwĀ\\֭ ]^Uu#OK۽;"bnM͛7nܲA4(-m{\~ݺ A"#c۶-[oQֵ `ӧO>q̙ٙhڶmӦ];Ξ=w.&aV8`{:&&իgfܿGqݻӧN>W^|O+{+P.w^H֤I[/$X $qqqqqqm»>w۶[ooBsG X7^x'`1u?wϞ= Or˖\`ǟݺu[={mܸaߨQcztuuttu{.p`qW<{P(-Ò旀y%=G aZS(oy@/*7&1Ç70?VZjժIIK+~A_5rd\ٳqq ^,0wsb1&.;ĹCjH܄7?SSAn[/^| o`k{Sх7ee55e͡?|Ç)o;vѣX=;eZxР%K/^tjؗgZZjjZcݻ_m|I[1B8====Ƒwo߾{XϞ=}왂$YG.I`W߼ynq%cE5IZ?* !C 21==}}=_aWZl*Yj՚5x˗npケ۷m۱… 8m[8g^׷_6TV 54Tаgϖ-[lÇgcbΞUVdWSM5mرǏ6x!BW|@10ϟre%V&%?| C:vw =kf͚732~L}z>% VjB8pp6mڶ-,{WYjG>+U?ΜO9BHn~.J*UTIK P~e-[rtJ:06ܹAAݺyx|hg׬#Ǐ>6Ȼu% oCqa-Z~؍o_^iӪpgJJQWF)Xvmkbت#k֬]zuN#G>j*PP,.`KL!`TRPpP铼[TN8y̌H۷wAg̔|͛naDp̄ nd@ Q[wزAp=cϞ%_F}7nݺv!|=KȻE*  fI w숈X[sxJ+upHr&$PݲE..pڭAA8Fmڬ[nȑGNhy3cC :xpZ-45ׯ_vx"[X&N󲛐V|qphOnŠ0I rpټoߺuNfD=>}70tㆿ/J|yz:: ؿ::`(zΈ] o`v닁()&/ƠȒ%{fϖw{KWn VƏ?~J2lڵk֬[5ON SBqvs?g[\\ڴiۖ8p׮]z:cVVMX[a`Hh㋟hiԨQ#33{ŘOc7gȼ?WPbӧO>} -Q ?/$ */g߿ƍ3fL6md77[[K˦M`:V ~ڵ֭]1Ν;wU+Z5z1Fu֥K׮;zwujmmaacgΜ:uS:I#-x344444dښӧO<}s7nccb|| XZ u\III u֭[S^BYQ;   |SOsXYxp))pIG(Sj Woܸr];TUEK vU~X\τ6OKw.W͛7k֫O4aB@@͚nݺu֔)se u$N,m={«`Ho9StT.ã{cߐu1qb@?$ ]$$dRwwKKss+51.^AXW| ,l!իcbIB?ao;m۱ u q  &6mѢY3$cam\q<|ÇѫVYrOn1B *T(SZ]GAp>Yހd>~rSN=ׯ_R^0c \pP!aР al͛%\B]@*kI>飣s'T;5CPGe*ph҄Qƌ=*v6l!۷mڴaCx~^dbHq~(vqn)( ==--=$}7ͰϧA 4fBڷС];իW]x\8h7˅ yEEpdVRÇӓ *T00x ׸qi?%S.Q*FFjjjj+gffeefJ6 L0uԮ]NZ<֦ [ 3ƶNǍ[(M~ǽ{vׯ_^*VDOp8̼zʕW!Is?^Aӧo~ߍׯ߸abr#ǎ1vkׯ,5=-Ыz#'5k֨ z:8DpYm?--Q&.j5c *12XX72v͛7o¨_|nWQk7o<#uQߗ{*˨lwRM.hoޜ;wy440bС#F S^z깹IP/T'PIlٸ11O=52Ռu޽{` 9]\ڴ ޶m˖m&MjРA 3[u9(WW;v2֨Q)c7oPo5J@x€˗תu޽{3YXZZYYX@%j%K o144442;ar`زe+V,]`yayW tDD.nn]GpYZz~{طo߾}/7iҸB ,G`}ڰ-^ )AI+p[>ce -ZĉiӦN>Mk׬YVU""vعSSsӦ͛sqi%+ *YgdX@)&Q@1,]E--A({ǎ:.YrdTɓ~Ia # $)6T[~flPpJ5ٹn4:uܹS/^p%77+U*l<=K+V)&"m۷oƍ͛7m*˳PŊ+V8}:bE |vhh]gܸϟ|K:؟`W/(hܠ o3g⢣ =]]]]j׮]V-767ҥcǮ]-k;Ұ/ܼ8Iޅ0D(լYV͚bqs1ll5% w<}Bwg;j)Tq"$0PP`,#P ?6dJ;hP>_ہ ~~F ۿ?c:uйsS`Y3fԪzUkv ]>4gE_7}>-]>$=_pU ntPBϒ%˗/Y7z~~=zѣG޴]r2d65-BŖ7MlmeVXLx/td@rs fV;w^Yѣ?WoޤԯX>yӧB ,烁hПƏ\I`CCv ك+!_ ]:4Tޭ,=# 6/ߴ),l&0 0,Yz]fvv~~PsG=v'<& ǣݾ­ ;z1[֨QݐdZTCPw>p~=(*ȑFw)@$CӢE˗/]b߯Oh(HO8Hڗ0½ol\sDHCi@+s*0??zq߾/^<\Zvr2??Qpg}N,nֶy'O@22֭[~իWQѠ)oo-sׯ_~}kkܾؗLZl#U_օ[w"dws۽{׮ݻ>}j% ,?qys{͍@C=20r>W7r`Fz~T'NDEݼ)/-|Ĕ}Ȼ?| N}::ZEҹs.;c`ƍBT à 6|n./_| $޲$V8ztiӦLy` &M27GyǍq)**(Ԯ0qb@IVNN-[9v: >t*Uc[+fСCܢϜ[0b*{78at~ ꍐȇ1m]\s^Q>#.lEL A +B];ursKIA,y}8\cq.\QQA_%;?xШQF=c3yKU뗬Z?*zc˖99ݻw~=+OOHiS۶ڹ_t¯:lСÇGD}8ުӕ*O5k֬Ys&?Puk.\(){ TJVVׯW~ZXp :w"I|Mfgkjjjjj WQ_J ?{ǫVŋBG|wY^>:>tʕ1r`^B *hjFF?ŏӁyZQq /Y$J&爔G"(첶"gϞ;w,0x&$ԫW>zmެ|ҥ˗+*Ҳip~?'BrrJJr2:p1&G1;rɻEIv+7n\rFPмyAAvvo޼~ 1TLuuʵjժUccƌ7f̹s{BN~̓\ 0υ 5YXXZZX0֥K׮]DG3jرnt=j6x!  |4h҄:ueffFFFcZZZZZZw[]r dp84hРp… !@XY7nܶ ׇL[@\ߓrWvJ0@i?HzzFFzz-[jղ%C?o՚5?&&~תS\$OJbJ?߾qhF&>tx}}!x={ӧf]rիUldT2T^7apcy?`=WP $jժUV aEJa e|2|8$` kۻGK-Wݺݻ}ڵ:ƍcկ_W=y[Iʮ4454nތ>u*:I+V^bŇ0( 0`ѢE_((h"EK.^tiLCp+)XϗW!!˖< ZBEsLrܹKNÇ˻=2}z`i߾Zbϒ -)~ccǎ?f̷oݻw.o)H/7lشik QW ׯ_voz%NJpEy]H,|s?W-k|{DŽm^~?~g<'hB}WVZ5k26i'FF-Ԑi@yMSxQԴ^РsfsŽEC5ㆫ*)*C~㩤5=]/*|y%''%%'3fcciik cw_^@}_:հaG9r(w;c9^Ғ{CAΩy C%&IzX*WFMLW U$SL6MSگ8lFyA@Vҥ˗/Yho_^}iBGE+ { 40c߿;c?~0̟ .ŋ/^Lѣǔ)>[[K˦Mnju]R?+4d?<,W ~+J K$'hi9B+mJ{^}Hy`࣒&8uԩӧ55!Ś5+WYS̥4nbqffMp)-e N$٧ u6mƌS}[888$ )rg@aT2?&O4wn<=z@{V!ݾQ#7;z177Лp߀WI|"I>CR O͟?F9>7jԤ 1FIF,,u~ _q ;wB4 ڧ% ڏ$ɧOY/4=v٣tU*uL c?D" vCB>zĉ#G~]z5k >|Çv8i͛7o@]f&cq1SB(Æ8aaQuBC׭+Z†ɧ$8S@9rG!z诿C0oР~}Ɯ]\twNJ(ݺ  CX1ĤdOmtx8P؏ sg7iҸ1c`HVvڹsnn۴i˖o܀sک ˖-n_ ?ܰaݺ/]t%ЩX-Z06taC@凙3g ^||z?U9Nw{Κ5fcǖ|p.~~PI1$dѢŋ޽x…K]˗/_F.*+J&+e}G Xʂ 33BXJ  DMLLLLL رe_>˗O<9{̙st8h~`iieeiifVQgP9^%3J _;:j設=jȑϞUVZj{ܿYZ޽epc"ڵ6]tiHҥUU~5hMv`^ڶ̙m ,8r׬onߖڵԩ][,ƃ_ڍ^x 鋲D]======ɉǏ8U?ܺussq' /`;۵WN_[?Q yAV@^*,,6ΝO?w?q> @99٦pQ,^*4tʐڵMMԙ:UM."QFFFFFŋh 0}VZn1'$lJ(6T̼};wTU~W0+hjjiijrpJ*2fiieee#F#6t# }='ϯ$:a,==--=}F|- 7B:zʕ[rppr4Ir(̷I1b L`lҥ˗))gxWu{xyϲʭ[w޼y۷hCXO,q}H]톒ڼxi^ao-IttG!./ j _~d/?/aڤI'~ٽWŊ򖃬u:_ }\!͚5ong7cƧO>}aæM6m`)O_|KO5?l۶bŲe+W:;ioڷ=>^Sꅒa'C:}C6 c6L~og I_S).B ΝpU2!0-Y) dLZC\Fy˔.Og3f+b܍paw ?]]H8ޣcEG={tr2E%h&S ~#pdv/UVC) : WفwQ֯w{w^nh(\۵}nTUE"''_h-xWk<}gGF8͛ׯ߸8`[37oA RS΢ﮮpff /^0V^zu1O9l(yGdYd)<ٽs* ?:bëx]Z0yP\|O<}>_l^4h|8@|ׯ_=[]֨ajZ&ofA>qq !C޼y͛W}I>DYv:uj>vLYYIIYMAAA!X,32=~qW^zqQ\h***))*;μyɛ5jԨQ~}?0~LLrsrs'N|Wv,kt u<ZZ 0͟a~Fpv͛7oddȻD̬Q#3eU^ޣG>z4yQUvZfRTTTTT~˗/~7yy>];Xll`ym۰^> ON5jԨ㣤򲴄ufM/?_,Ͽzݰ_w;_ J"7An/ry:A./{*`?al +(} ` Ǒ#9999Ӧ9ח//HEW`NNvvNN*0}蓜~{c/^xVSz;LMML$%a?).\c WnG B쌯Ao ~??su}cƀ'Wv;_ U BC  B(XZZZZX|*Dx@A;v,*Q֭sw}t^Ʋ}w޽?PAނ()uԭ[X }?cϟ?{y հP^ )$eCC1'O>UPmV,VSSSSSc,33333[n޼uKAA 41*++;;+[7p|\+)~|"6R'+++++1OO//;oOHǣ `= wJ zz"c**ʌhksnn?Eu/u ą|ѱU+G|UUЃ^X0 <<^|#GݞR$5jԨQF088yyYYiiCc@`IDAT &(.VVVVw¾acjՌϞ{cf۷O߷Pq'$+0cfq(C֝:uƌSkٹuk'[jիqzVzzzzz'Kݮ_$ zUVZuttttt^+P~~JJrrJJZ0O/O_Y[X[geD" nݺq---y_ :uD"H$ڻeUUHUv/_rssrrr={ׯUUaQgifSƪ(+>ȅ̬,222332a`'/j֬Yf޽6p $> !lfMkִk׾}۶ލ?~r *T`hw˗W^z:))4t˗/_V AÇ>ChܼQ# s/tؿcmm γׯ oX֭ƍa~1~]fvv/Οu TvڵkwzիW?_>jɻ}e66)6VMM]]M~}۷7lظͿ~}@]]]]]1lOqA=(##==#o,DpبQGX]vw̙$ڵk֬[ةS'O:vv99]H> ţnݺu֭YXN]tXժUVݟ ݻ?cɌUbd4qPK{Pױŋ. \bٲ+1H9XשSmB۷ݨ"{m۶k׶-c'Orrzm凾~h(r zK0%c{{*$R^\ 7g;o7c'OFE%t~u><:;wnm[Zl޹w˖Xt޽_N}s'} !S]];acj -_Ӧ~6;[)zk0552}o~[yL(3Bp=tWS"8ZZB~mڤr+ yUZUn|''p__\=D]]M ao޼yf>syk逿ѣǏ9؀<Xnn³s!3>/TOyQ:^<-[߇s@r*zyW71^fM'z%Sހm۴|}?—Ԯ c`?!7i'VW.o]th}=%Cϡyy } gUM.d?$  ʸCC*2lؐ!9;i#C1n]Xdμt{V)kƿa8f,(hѢ ׯ_^='OB$20i(~r%}+{7MXX4iXv:kǘyF15w޿X|Kp|!~ >ƽJi8g̀^Wxpp׮ݰ+/_uua<&%a%4t^zpBg3ٻ`wp8uSbO\e{-6m'nVtSK*(@eF8H  Ȕ;c͚5oެ٘1wDrΝիW^h޻w߾}de}qqqqm۶m۶™3gΜ9z 8F()A Si x%ի([:_8 ?80 gp=<`hEEEŀ 0=0pڴK@ޒ`\jia"?~%c C0_08x,py%!S}ëU`:xp׮{wڵwo>}vm eOjիW&(+̚ .M"^?Vۃ}|<#ySV>r%s vJ_s==}}p8P+-U36;E 쨦߾}jj<8;O>}닉_eggeeg^ \ 0~Ar/\]g'6m֬={z{Ko nȇω;xp^韷nF]nOY Wwfשּׂ~/߇W7o{~|} M`A Cܹs`?4T[I 7c`9/_I;W erH8 >w8|x~sxWuZ;E`7NUUMMU9@A'{;쇘@#G`ݽG  =(A 74,Yx%͞8{vh(V 8l۵svnoD[ 5;쉈9n<=9w(/*2b`yz=w py +`0YTx|a6ʖ\60$͛7gܹ99NN[K0_`Ѣy̙?_E:ux{Vy_/UW O ~@_؄:?#۱#@n۶mݺ}cѧOGG'&Ba}QPlYVVffVYvvNNvvۺww{%zcqA[.4tz^x |ܪWׁsr@ :swо}*:t;߷wo߾{wㆼS@i6mܸys͚?XaZ$B/Pь1p8>sSh10# ^?JJi09(--??-M뗤vxywBVZjU%%ll`~bcY`_e *)O?|ÇCCQHs68޾ oߖw{e''ТEfvv8Jj[nݺu`q쀃 򖃬8`cgDG0ֵ[.7o޸q&Ӧx`Сbӓw޽{Wޭ+:h;aÆ|GFIlߵnmo䔑s#`VR>sfӦ W^|j>y_x^w8vD$~ ԯ,%@I@eE`fMyBÆ 6l$z_iYc CpWys{[n {`=t 'bɒ09v cǞ: w# ;6JTIzE+㾅i^^]tص[YTy.u|=zAt۶;nMM6mʔׯ_ )|32 ֫gf&{úkWw( Q^$f,0p3^c~Yg{06`@߾0ֺu6[=?/7777/gcbΞٽ[[t = 8ki}, H* /gq>&'tDr~ߧsD$!T҂sqSSbcю,-`=HHsXSSyˡR%%طEDܫw> ~ǎp~xG!@JG+ 뎎1z**7l(LCZLlGR*UW\bʄ߿ٹMO'N643kЀ1H(tLt3ZZ 0hP&zz׮Ae-j˧hӦeKg$4 p41^UINEE(n|9 G͛nݼ1/W8Ȭ*Wetd~{  XZ⼑إK/^YN~סkCϞ=XZZjjZ) |Z0 ٦M۶mڔ7reݺO<~}@PjժUV8uvôխmlr+WѩS.:QQ'NDE#!/^~OOw{J WAb^ކ օ)(@?jFA '+-pr)G 2hc-Zp?|9>ƶnݼyVyʱ^`?W^<kp $TRJ7nҤqc5.]v{X7l;zi'NDFܿx{Æ +cAkFyAP9ah&p}vi!Řs0ByAV0_y.X0zȑ=z̘Q>}3gΙ#ʕT\ydD c3pɓ'OzKXaկߢ $SS3555512E(Lj/E`^_Az1c`93iOʜ`9h}MM--MMcc;3?%(}쟁u~Xg+)nئ͌/mFMMMMUӧʕ[xɒ`55ivHL,1?>woٲʕ+W\9 ٳO=+p~쬮>p &–VV٫cկ_cnn~ҳg^={2ֳg>>/oyX,*PyJ]5W8YCC*-`62?~č----;upܹ  6|С5lhfְ!3qcXئM%%}ĭ5jdf2mԩӧ[Dy_WZehx7o>e# V7H`,oly_Vp\y{{zB@H\udTɓ;\u sfG <1$^Dg΀^(+hv3g@ۃU8%BAVrBOenn“Q:ddddddtOЄë1c= & Wq͛,1Q9hRRB/se,**::2Ν;tEʧu6m / JHw3p>vqiŅk׮^vMޭ*9 ,($_ eP~@Gi>q CDߟ_UUUS+?ʮݮʷrG؉'O?ν߽{׮~HAA^'|pMx-+/ pu`[>2a@ŋ/Sڶuuڅ/]:wU+.L;ƒ]Eɉ`;;C˸k7Hs~TMfqqÍ?~#wF"8N-orʚX޾EW'$WBܥKέ]}5l(vKi>yyfxW޽{dG=0hHy)7KK++ f͚3g,6mӧO,Oi]؎$\",sssss *TP!1q̘ѣnjiơdfh`oSN;wdaq3g϶hp—`GH?kתUc^zc{ٳocW@@eiWn:B咜{r2c`EG6mZrv XQmPFPhYfիYV5+5j\RppURJLLLLLZLXkG5j4p\9knx/T?Irݻo޽utvڹs.2323֍<~ {{8xDUaa&ߧ()ĥ*<=<}݃0ock۴---]vu=3O91'''V $0Wr~u6e|x. 0Z^^pt0~||Knt{ϟ 1@aÆ 4;̙OݳgrFӦvvM@-Z4k9'O?~DA*s5527oH,s 'Fv/[1 Upzvm7p΅||Sq E`-@z˷o߾}5իW^=XR #JM9Ж-ïBu k {}vED@ۗK,TY+"Vna/sӭ^_/m8;nرǏe˂/X o]]555445D8ϳQ~~dhhhhhܹAAs横6mje&wI<oi:wMQ({Q%n?FvڵmyAyoھ}zzLLLLLu)m*RJժU@bΝٳo_KKs÷₉Z__AAEY-R0VBFPAX́3AWPHA@!_B$ p0 *6xXJ4K8$ÇyyyyX *>pC4_.`8u2@GIw\ cqwTLɓҥcǮ]ǏGE;&S ₕаseFgau[;77g%B T++?zGm.[reM0˗/_?hP8^ B_$CM4iҸ1cs̟?g:BΛױc:Upԙ3'O~<{ܹfM:oޜ9绻߸qEeLdQZSڵcczy{-<==wscǏ{z͛`)3̙9ysy>ga 8?7aرխ[nݺX !4''##==#ͥK,Yt۶3gΞXAF5LM"iddTQv[nnnYXXZ6iT+8yMBƍPtt }X&M$%;f̸qǎ8qٳܰ! oHYgǏ>|i§`Es%%\ɯ,eWSSS1p*9PXQ$W"D1x5~o຦$#Hntv遁Ӧ99͙3kܹӧO2}zffjjjjjjPYJ ^v3;;p(pAMm3Nݳaف_QRPn_h59Jncm vEEEӲ`2Mm[gE 6lȐ~߳gPqG} Ai|Xut_`9kvp$JB#;B()A f}S}fRRRRR2K;wM+W6OS~I[[K˦Mu޽7,:tРC-<.ݻ{xt~6+;|3g޼9s*WB K33\|U5:HcIO={66Vޭ+9\@&uh`?hbccϟ?{vXHkCW'8*m^1qbv۷kW___Ə;v„Ž|0\/ܗ\~;!ӱO'W~zbI 3P^ B؁& N`"n97igσ]\@MDIA|Tӑ;B܂r~/Qnzur;GhNCB Ѡ:/뼽=hjZ/|~8ɹ?:tZt G$޽>`AP…y7ڳp]a*M:uԩS)SO2EQzJH[8$H#Lh@BMlٴi־}Q?Vy({-7ow;K*UT"AEC`ѥ}.Ma< "7]]1xXаbE-Zx„$,JC|$#66b1u/wPVׯOիUTD"h˗/]|km891z5/[Uwq07o85ݩuk|%K:·>o|~x,oC  "$j׮Svm.s(?GhqAh]]Y l W Lt**" g(GGcY#T0``@]5/Ė{RdkkeմiѦK6]tKw޽{?+u$""`Y^,qm۶m!Ќ1+ɀɇ.TCuNU8 v))0oK ,%i=5#$v?ﻹ/_}r|s$K>BAJJJJJJD -[hѪd} t}>}' \EpZE UUHUpW߷yZ2O?}yٳg^55؛2?իW8yIW( :t!;v_?pcӦAސ!IIIIɅ\ѱR%<;{7OLLLLL,udU!1+Wn޼iӖ-+c9""0߿_K?|Vdܿ۷o{BC% mq" 怄z@#X^Rgd':;߽{ݻ11021D ) W&bbUTf̘5kƌH;'v ߘ!CE/}}yRA4qcЋaK(QϞ{ءC:=fΜ1c֬?Ã{ga;ZY:~<Ю]1sbOXRQ*zed WTג˻ղǏꜝ}ƐHW^rZgn`~ iw>zKyDi~kaC=x{رG`6Hs{n17r1bqhkּx9q' 'L6mƜ]\ڴsrrph:<W ߽ʪIk#~i@T]xF'KV-_~.|{wЧZH61H nnݺuzhHHppH[WrS \8qkqs1AhH+t8sO>]fr? q7H d+ZbH 5jժQNWWW45G9ϯ<¢pCvk4焖 :MM(M6eʕ˗\ҥɓ'Mz22222*JCյcGWW-- .11ׯ_vܹSX_{_W*MhPJ(eUH2SB*A4\Wp(*d& 2\ꖟk,|Nr}笧g6NiӖ-IIc;v*:?'O7u8BO9sڴ?e |??o߮]T&L'̧'pwuwR߾}Bq))'JHddTTD!ښ::$'$'t%K͛7oPo߆UUUU,tꤦ֩,yegvtE:`OJ ˡ"0X AiXjUl,Xnn>@ }AEQDgss/^͍1cӧLQCs' a~EG9 ={ٳ'*ʇXIIIJJIA|JDZOڵk׮]kL40q*E>ޭݲ% 8t 9~<##=JsrJ^M˗.]"E7/{rr;FAAPAʮࠆnTEYiiG#!P( @_ZZZZZ*)y[oB 4\zAyyyyx|Dʧa]%'-OM^*& LĴ9  SUUUUUMtrv7w9sݩ@ v22_`GC蠵̡2GO9}MKKIIKS[ |c̘3fΜ1*#;;8;=Л7`8 hx󦾾^O}<800~ ~K}|Μ9iB<===׮m{o;w=*t릣CHpeڵwoZګWfΝ9w@QxT_$LEwЧ뗺tEK=!2L魾~>/_ W׷//&O'- qEGWPWQSEn~|uuMMu5؎3v>>YY~cCloa4l@OOoy֯?ˋϟa]neecꊁ7'i00l|B aY+WĬZ /YX``9Ceexx^$' {BSSSSSb*z1y^^ bo#Gӏ!$!axBF=zԨʪʭ[1kHHHL3y}'zիWt=gWWFrt=q|//?,yqcRo5Cgg9Eӹ99M[ ͕p|LGD"=n~VO}}]-l[_{qAexM?gZI]\ƍsvpu- /n]BBbb66Ç} 6o߂ߝEE9;ٳg:o(捱GB=5o17Ϲϙ3kVl,̌-xO'n.uQ9ӁV(uz*!#Fܹ  8u|_[*K8s%32rУ$aZWbaAvs_K'8= uR!11Oy=~އ_Df_B/(v9C&{NXo קohhllnСyI MM--M =^By{ӻ%^,^  _1zaK{w~~xFD&&߿* ~/)@짦֩8]7}7o߾}K.;=P1cƎe)7ųgz#d#njitfl߿8g̘:u̦Ǖ+cccb>|X,(($$!$\] ~ 碲~廪*B=ff bb볍>(2ĉǃãJJhL qA*^(yAީ03374W/愌y卑mBaaVVCCCsg))ܟHo߽{v޼w:$$=zرa=LOpCT=z?ܳY-tΝ={s=H?€?{{CX~JaЏh3T4߲eӦ-[fqqNKFCOWf y<\`Ν;v2\s׭GϟaP?ggxH|\ѣƌiZk;qQ~VY Uأȧ!0_?W \]߼ٴiM0>ׯ_`쬬lBٽ{ރ흜gQC~?Q+z=Ya,] WK_b"!h ~MW[#N66tdqqqqq {ѣk׮\vMU|hdy0:t~QUqgfB"IWh<~ر SS[=nAߐ={JHKH~n`H }}.$f̘5{w|ݢ`Y!3ĉ Bǎuq!2Z?'O~ıc {_*V>ec>tիW\ڴҠ^{a+"#ss#[Ƀt^ TSҢeg=EHlʕ;{<{-C}wx=l5ÇafΜ5khhS [nݺDBO&޽{WR*)))矊E-sJx.9667'%mެ`hhhhhQ`e0Q%\,Xpbb!Oώ99gά[aj:`iJJrm50k%b͛=.ATsJ]4'-rB, ^d^XnnlKJBC_ ]fժ'O:wܹsX෿}eeeeeի/_v~޴ ;wAɇt@`3קMC=m[Xowc"TaL0o,uv0$9sFl.UGc>И2ϟ?WVF3[ 0`iQQJ -8p~$arE/!#F6vxC^&66.>+ԩ ls++ݶmĠAe%MGɶRAPL,,lpPTVASL D.ƹ[wdFɓC@=!>rka~EE;t쨯 WW|9F l??zqǏ54`_oFDGFܽ{ݻ_ V*bTKOG~34a&%&nڔy3o9v3g^|W=$%ee%%1ZBF'$#={˄lVZD-%....) 烤$0&%}/tC8]{~ՐKK\QSSSSSO٘F0TW=## rΔ)>߳m܈==BQQQQA2ԡ%Kʅ_!6_aCze`?^t``saތM77dcS\ycǏkdDȿ>}g50ׯ44PF:29"vڕ}zCmmmϟ?B^חA~K[0h길؜@4/(6 ϻ Ag` Cȥ(l:ðaÆAX[[Y tf`9z,RQJ4lԩӦMnݩS'O<|} 8((((((}RQ1{FFpr:5 7oܼ9p O>~Υ[8,λwhGJ prii,YNj/\xQأw=y_@&=Z55huWU2IM ]_>wLƯ^|UI<{=<`|:@p}A&GxiJJ^^szyyx<~S {܂".n5k45cbWs8`ˠ0;g^z矢¢"11&*[G9zT.7{"Q45'ttY*:ȑ ;ݻ_أ} SSccB~YY;-AA\/g wrsLMϟD9mzDA$5샨'kz|;&sT`%o٢uoۆQ%(Л&`F6 {ߊ[n޼uʊng:}|Nؿ[4qdy߶l۶SWW[[Wg;tu>s&+ ԀՏ}ٙW/vK YtKOg{`9W^^ yL:udB@HRomDÇ>ѩSNYvO_ {-ɧO>}m$Ael"ҡ_h*hl 0We#HܩBBtuuuu#dXgcZ@أo>8!8ph+0`/<<,,"p fzFLL~>=رtf q_PaVQ fzNm-3?eV0хr  TV@4h*]fHHXXHݻrrrrrrc$%22; !3x-44"",&ؐU@ 䫨hDG#xBH۶m۶mK)*+uݛ7 ={\ww^_Vn2 i}<ڏ?|\ [==[ӳg߾7oܺ`Auuuuu5UGT--!vvTڀbllddbRM̘n} ́ll._66ƕVtڵKo{]NNo.`X[7`udcck;|8!G?~HmmzzFƱc9Ӿ6 N_l=w|ٳ'::66:C7}K?B&SRР)Q[`kkggkA%|oKKԀ "x%iH''sÆOA;oxKJVqD}8$%۴j {">~ݺk`]QBMMMMM +1Qf„'Lĵkٳ_8rNN#F4MA`̛Q]̬̦n^{ZA (5*6v͚LaG? ~l ,Gx=  0Uۖt>CAP_GϳNt`nhgB=|rrJJrru-!(**((*JJ>k޽iiX :TT!᤬,$441ΪUk֬ZUWbE}=={<-:BP]}}X޽߿_?cKS~x8/g*,]B|}}}k!e˗/[v)SD%I8л~ܦͤISLy3n!kʼnN`9X~y wxpmjjjiijRbع7WYC:@Ӈɯ0_SꚚA=>AOdϡhovtQPWP@{ݻs^a9p8m0*FS6mSɔ~tl i+C%ͯGT.!!aaAANUNnl5hkkkw:ztrrjׯ%$(+ce YJkj4MMMMMMB"### SȑlWl| k++}۷Mcfxq@@y˗.],l*40.L !!۷''SZjPc۾|edx<7ZqZ77 X@~DHGQOkߏ_E4lKVTkb JJAs+1UD…>>cǎ,l*KWwضΘZpup+*@?+:000.nk y͛7oK?Xb⯿B\WZZVVZz4xz"ai:KKKIIKذ!1q))EEEEEE tġq'KK++KiӠݱ>L a|,a{4?GUUUUUU::::::<޴iӧO*&fo?bW~L`ڷߵ+-m.Ç?|xZ sI :**7nذq#5/-A*HLLHXo *+>A- OO+ 11c@;T( w?;'Z<''<<44"Bأk9@o8mw㆗/n:9c.;˻tҥKB񦢢k׮]t=mzC]ZZZZVfo?qĉ&B8s`9+W@S qaê?}nhHJڴiRS 6Z'w&Ms;vXur4{fPP``p΋/^xAUplblm_|la~~<"22..>~+8xP^׷۷o>wfy~wO>siff k&$t6nq}GF {-E߾{H%܁} dx zyAg83.GXXhhX_;9AXqz om(((**(8;|#!s ݻw9zKIA"e˂CB%$= '#q :_}QBB{HIIHHJJH`Xz7T))YY))?*P|eѢ7mR.Ő!GF= l FOpDzu~uݺ ,G4wg*TzB+zAg4= &= WK(,|D]ȁ8p῁ؑ# ̩ `RWW_e&U @GG|D@M~EKyVi.;R3h"D.PՖ-9999Ι'Or[oC%Zghد!CfeEȑFEE߷BWWOOWR=C:`IaӡEG'%[RRH: *_n [(seQϷhX wM*MoСӧϞAJ .22lwTcZOL`:k-zur@ۓmKN)7syӧO )))..)Y a֭m!nݼy').~'a}ɓܻWTt>!޽{V #dԨѣG8Qr9خVTTXXTt)oܸ~ j8~LȌ3gN3ZYBT諧WYYYYUյիW\JCCCBnnii݂1ŋ/^dd@G=7C}$ {|-ʕ+WjkO2uɧOk׾}vׯ]s͛n]ҴSK|YTTXXX]vzsJ 8p_666116VVqp<5rrΜ&$/////y=o*++--+cѧeh-<~ӼPWjU9/\C  ܹa73{Ç33.WPŋP(aaKP2 {ЈК?ػ? aǏQQQQ}k։C:k׮]wboooooO̙X>a~4444//O>}25UWWWWW'dÆ#8^*ґv~~m _ )ѣGa!ϟ?{9!UUsrr򄨩a!ݺu릣C!zzzzzzm~_XT  [_W/vaðV~J6D]ȁ8pB iN-: J&b|ҺzMWX! ZtCEs8Ώ~~ ޾-GWUf&\aB|&&}w]AR+? =<iFؿZ[O?;sVSToal- ͛/'&@+ԓ%'<zLW⾍zCtBB&jzCOX\Y_a`%={P_zj 8@71@˿K]Ƌ Eިx>/::L9uSrr++{hYaOM{KL+5'ھDGϳO>/^dOOooOOiiy#r|40xɓ'ON޴i͛_޺u˖[ε?.2}_o]:b®`h񜅕[ޟmyy5q OOVֺu񉉶f~`9?l}A۳'@ hQh zC0* w:8:~6!8p tGIENDB`site_pro/images/icons/stumble.png0000644075506000000310000000113711706151032015367 0ustar namedPNG  IHDRasBIT|d pHYs  ~tEXtSoftwareAdobe Fireworks CS4ӠtEXtCreation Time12/12/08ZIDAT8kQo2)PH ɪhYn*`](tVJЕ A R ND d.Laid\ι ~ah.Y U/n5_ͤ' 0Ax6ڣ]x@}X ySc\{dbkLbzSXilֽp|91Ln6)EK,qz䮇dLpϫpC*4@D{jSP*ym\3]Nx]DDzI"$Mޔ;~Ih#IƬzSowTZzZ (vQ!g)i^[GXadr<nQC/_ !IENDB`site_pro/images/icons/tripadvisor.png0000644075506000000310000000140411706151046016264 0ustar namedPNG  IHDRasBIT|d pHYs  ~tEXtSoftwareAdobe Fireworks CS4ӠtEXtCreation Time12/12/08Z\IDAT8Ka0[jd?2F2RJ1 )qAgz6Ht"; )&Q3K!5-3-}:05I,x~1ߩ8VF U}{J0MZ3[Ld1-Tl3[KZ0L$"xr\^DcZ"jwF|>Ag~hj'x50w8奰 Z~`6.q8o]Z ҠƆy/ %LrZ X_:B0"B~J)9o4Mˉbi2 h4J[kYJelsZNgg'Pǃ"ݍSPȲ(:vekZ[[ Bq|>eaY>.S+VK\@ @uu5P__Tp8Lmm-jDAzO?#t:ill$L: &U}_ml/3 0>>N$!KO]=ue444`j%}dQ%"?̋'h% #r£ -!$bV6 H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FPIDATx̔OHqǿup3wFD\v-C'1%9!< /Cۂ!1W'Kh"Z{alouz}=PJq¤%htqagPpRJaX6?iÄxq^sNQ'᰺TgL|{Ǔ}`0=ЁGLZ\]]nrȶ, ~F,/AI^.ɲζZἢ _xb6[dr}1-H\gy}(UJ<=b(}]!$A{2ҷL&o@nފ^32ljʹH8h~ ?7\"ϼIENDB`site_pro/images/icons/55x55/0000755075506000000310000000000011734665232014014 5ustar namedsite_pro/images/icons/55x55/lastfm.png0000644075506000000310000001156511721526646016021 0ustar namedPNG  IHDR22?Шp&5Q@h߳gƫ} HRDYJR\^.&=z{{((𹢡"W+aH(DTˎ;_ҡ \?I[[ۀz1T*e=SGy'[\\̢)"4T$?1un7Ajд$n}Ķ&eΌ4?Oiqr<"dTWm==j܁~8YU;7Ps4H֚&֖n>ڵk!/dǙ:p2PZ#ZRx",Zz{ݹ۶hkð,7O/G0"&!udk?_scX{1a8[q"T`hOk)W] znZ14@H-#۶~sԶ>DRsǎ䷾ܳb//FI6I!*BDvJ!f- XK/m==noڲeXO?$4sK1n`Ԑٶu_Jb=-h,RIR-u0+`RD q8ycc we:Z x~:- niQZcR[GsTr?{!eY$"Vq1KSV=6%R>R9s$^;:CCC}䱣2\tKnY2xBlMv_lA\2~<Jl$j%θQ5^{64M ;{{{LC52ӇJ4BH]vufYvfj>Eh6  *d`s Uo`&f4ޕI6\|׵KG?98:T׀[Z,T"OߙJ y>@ WC)Zo`HECG0QbhFZt)< !̊2O)ѱx`~#Bc# :oi{K }c$Mz@$!Q1"b, ƔJ,jr|C5o(EvfiNlN|\.hܒ!6z|{zz(_'nƪ@aH%" H@J,k%&ѰfjU Rag/,ŷ!jD6a2GYzEZ$2j!DP:F-^'t퇏G@PPH=1 YxUl^gX 6]j҈"4u_RTLe W:]WDAFH\xa#3ﳴ?tdsd%/dCvzpjAa܎D.* ( ZSP,tuhŵ@C~BӒHR|w|Yc5!yz ZN5 yhjj:S; S=x`_X\Wfd(:Y:maƍqDuY\\d ʿ>JˣD wntO[{;i}|>#g ~85dU,S^K!TZnNmYh*=ouubI=WJ,Q s؛6v6Rdc{"GN<'> D/ 3[pO +Kk, 5db14ϰ̨&aqOSFOP cJ kƶ.EKK ՉYn:_J&i&> }=~Ώ^ļ<ڷ(%o&Jί~ehO$6'PH-Q.QVөT*YACm ah$JRpT$BldNty]RsHĮ!ջMcigr2](R=>_CǠBm~6T}-" A@V!Q4iI jͲ_iT3W{+z )لuV,R4MZvlb⎫fMytʁ8ӈCgjo*CEс6> JDI1Buo<ilPJQuOPCGlC)J$[Hohg>GV.feH~^#/S%GEk$R۬I`#hq è 5hMufq1 PZY7V%:+\S/ˈuSH_Q!z0cm{]7]]]8i[迿+xڲl;PiPZ:x_ AO/:kZeAHQ:z].#J>Nj~XH(Y],S{]oN c=?s|wp6Ck/ޱ*ɓ;9|@, CSࢃ^-yK0׫V-čD+X>|]K%ǎY߉wxdU*+IOɗ%|M;q\Lw{~~y4oXOA}iϲHP\n)ChS(F-f%G+KkwD7! zP7Pt?aQ(=ӆWLMT3T7|O\T +;py*BK@NLN0qJLSfgG_墝${Wzߨ͘CP=6IZ> %&<;hV)S ^a֭2D4q2}E4% %n:4v4r|9rnt[~k $єA,))et\GSAwrwMMNn74.H:|_?99(jpBsaힽQjUNuqd۶]V2¾ۥZ-ohp^9ոh4>+ha[Kïx Au1ln.ݷoEȈP'&'m*ZS>EtwuuYm>|)vfb8M6R._|~)RһyӳAa:b!eD6oV8SX,B@ +hVABpRJ 'HiN_?~^:t(Ӱ,P}ݼbntKF%dٕڲux0=8ݲotw~8 V?T+ZUmEj4jٖ;I|3bKy1qΠ) i &hRRw'=~onTfVPk57c/z{q·sw'0;4@]ܱcb@`GDE"T'&pd`М*k𵯑z"KowwX#bUYGҩÐGpG_-TVV:=K/%i"Bubu ѨFnCQtz+4~Js>a>c5`oRWUpW^Y>9}lݺ.L:6śRv\u!jǶQ--Dh6:?ywYV~ɧ{w=x:}zN`I\U7!jL @|G>zλ$u5թ)JO?s8Yl6ؚz^QK&1::Edx}.dg?#?<*֎c쾩&Hjh.4uvukiv}X/RH,8xާ~ O8 2:`cEz쥷GIAeg^,BȮe?, <J pd9 IA$"k~(Me郓PB9r@(9(w}{Sb_v]o4[KKKϝ/ϧ2:̾a@2-t%RqǾ{𭇏ԡw M9_9k5͍k׮멋@b objoCsJ{ _]))ԚUݸ/pKDS'' @f5z(o=:q'{t`_|Ǿ/>qy` !o Av@p_o፭^˛ |֠tSGZHĎBs0svs'<uF!#cw0 .]?/8}^`@+" 9B_ ~NG\]8 FPyx#SŋU0NplVke~H'AyO~S<45`;jO(=7tuB)P(P5y? }B? 5Vz/T$‹,,;zX_?;ĺHly`0lV<8C;oM?c|IE {y|/x:SZ J(ABP/}?A7^U%_PrB!TaP t)%>JyhtvVO=*d "xGgo QJD!Pj^pW1| bqZ8{qMHD Zяo?|7lk䋚RN(\P$ΥՄ")RQ Q)tT% WA}{r6777lV-lzj[o?1qVU8{Y*+9E.r~Hw& =F?4Zyx*!/$9?O!D58si66 ;;G!tխ!WcGz7ZYdwQ~B "HYQAP^ NA: p!40<, L.g mXCr< +gﻵ|˭ϱlv녮6rl6K+sԒ%rTtnۄG(٣9(Fyngp+1gPŁ#?0ADW]e~ĹH\1Q̮>K@__VmCN YbM AYXl|Kiס3qMw3::$IBa1|f|#ˀ㹻CCChg80hn,حwv`z>X^XB*Ohf3w?GnIk^}qhR' CF).% 2o!,U/PJ1<2zsQJMKb Б&&\G:++Li"ι]Gle|b K=o<'Jiՙ=<4oUVԾKj(SZOj5 )C?9N3YdviS tanyu)ZK^:"&"(S*ۖ@sH(JI Bq4I_`XUw ؗ%UE1LP rq\ĺzgZ{ LwJH 5ORYTj8Gp"iPSm Bjr 9j]x!}~R|U`x'|wO'qaq"S ZQZ{̶tB 9#"X%?V:>ʆ:f\Z$q&-]w4u4b(w `oV09'X|%}V6K3ڠڼ Zhq';0mYI&kmq tL<ƴ.ncf˕=A0T~{RrɁ\F9{Xdq,YSkPkT: %UssF8v4 jHҏ8s1Z5tBtҳRVjviDk(:Py hFN.|Fg-}'aH\LL>(I mJn[V]$D56lhn02*SlPmmۄvH\u13-N[ek=O2q`B`]wgt!g&.c;- %QTsuʳBEVǯAl82 RtO#;k%\Z\Z.H.ɞ$ !7 /OsDwi5OœE1qZE DIIZƺŸڳĦk?9kXX{(`]qL"m$aȅNtr2iK عk"BzuFthjʟ{8?*u,$yhvֹ^=j&i%K}gN.$mAdMVЎ>q^s*LRV/~Z lo%,cOoQ2u8@RG.lIlLbeEEiD (}v!(О}ӧO:l:h߷U٬Rt>щhȱFښeLb!d@l&5tI!}!M" 2L -iy`̌ JtɓW(VqDΕ]-. G\reanu(;Z"[tMH'4c]79LCtƤ/hӊ "f䡛w,_go/5$]|쀁4ŹFvѣSGfR<֜cIwq$&"PM4ӠmfdiFV 9G?N/g>?y^/b¼}w}<0\[3lMNN 흘,X zkc Ʀ!s'X'mR$4/?N;[ow.l./omm-Êo 312,|…kWs#7n~sWVζI\đ8Lx }y`#}GUkmq_|^ZZ\\Ll9{ݷ@I .F|}>thj=Aɢctz:8WyB?M 5KK'O>g^Oe[u$onCEtǃ#رQ?{reOHwoMqZ,9s|NZrt=w/IαO S'^XO..G!ȅm6|p`Yy21kkkXZ\J@nm!֑foEU(/kczwTCjtM(SSN;kIa{oveNSiA. ׸Z۷^_/IENDB`site_pro/images/icons/55x55/linkedin.png0000644075506000000310000001057511721526620016320 0ustar namedPNG  IHDR22?DIDAThYp\W߹oZղ-Rl˖/,,:@L 5U@ՐBjx摁* Cfa$0$0$!Œ,[[ܾ}<ܥe$9U{9<{QHj Lμߕ7~ x+ !W$\sPAP?hL0}憟hE}@k>X -UG%`i9,x @@oIRo hO`iMLRz;stCmmmdUr\X_/fN:5h țR%$4$ GvzǶm7utt iaZX\?vjg^z4xRrѸSs@Āt2Wzmce sjnzI%&uŦtf ~?~NY G]@ծ A֤R}/g(L_ᕓ8riV܅+ u{``g~~ԅ 9_ͪnD%B ?^S$ʴAh(do"T9D\='rv:: ==O8PfWɤd2w~%ˣԌ8*bF]!0E`+@BBMPd1[f T+]=191$BY`7&uObR~oߟji90wiG6bhHT6A:"A ߩn\zff\,рibS<~SObs :V;v?p[TN0~2*D:'QaoW/ZZ2ROOxվ0Y/<bx} Lx@2Z MbfKWW3Z oLDkV!ĚCh 2eSKg/%cD=dܠ CHm{oXL:BAL+4x&RkML\Β+!5ogND^Z.GKkm---i jh`0 +=9q1&UB5s'NO_[P^B%s(wfDX;\XR.SFGO@  "BaxP(B\^(DuoƯ1gG'pe*SkKQemrfaE:oHxgK`e::veXq,{)Z쏈hȎV,,/zտ ] WLh1c51Le|a 8sE޴at $6wQTmxRaXAЕF8NԽ2XBYǩ3mmm9+4rLHC85֪l.3csZnsg.sL~ |lmORU"ODТED3bhĠMph|^tQ*?$vF'0S](vvwNse.wp!&4͍qI@ RбdϻoqK?o~)`Mú@UZ]˒I^IR]7wobKrC:xf@tXL"5ixݻ{](t#|zP(,b{jveøH-/gD\LvvwrRp0/?{< -@ o@*x>W܋fp)Ph^j{#d +J \ 0h!QD`@./ AZ55* (*Ԏ$\-,]6/;Y38 -@`*ET@H*?Cy|Ǐ_(5~Q ;ql/'ʮm;399arJЂ/kZ3DRddYVsu]G4 N.$DL*L@ a/[ߟ<}O=3gNO_- ׬]jժUzhH$)F+ *$ HD3!b7N (7Ǚ]$n޴yRăT 4B@C`t16jUEG*ENi:a>%ZvWx k"5M-߄0i Ƨ.p cg޷I!|jQcS#6+V}^o$T*ZUZhM]Agm&3@@׍[(tRɌRP  @ 1#E9> l邥/MK1} 2DX YLLԘV%׏@fMF{V+人H$@5ѮyH)iu0b tŸJKDo+A0@oIFq5m3uw1QK/K`f/Ju#n7;um)%yzٗ ͏\*LZoD _xG#8 ֮mCzĈzk/a TUhh4v]m5F2PJx.ߧDKȕ _J=\ Rg)$ Q()(egtܵ)!R@0ChL&'M@^h efЌdRJˇ@ q1t~DjUP.;!uMh")l7 j8LCM͟.~QFW&A8 ƟzQt-RF3URy0 x<,E MUs>w X3R*\u%p 8 f05Ⅻu C X*& 4 0mru]MA`}ϷdKSxDJӶLB*lC)tv _@ +uxtvvHB[‡Zh4MZt:M,G;, " kG~LēO|e8]VZJBTT*yT^huΜ;,|Yp"ԕ<~_FQwϞ=lڴ+ض} &D\<,bphj|Ofm #ׁR{R@3lذKk&:DP*(8eY[\7_'|/ pEK,-,f2J)T(bu/֮o`ڵkdvvAزeK$ZPT(Mh4(WFӴ™S_>ǙEQ/еvLC*L.gff=uև֭crrWHoo/۶mkVJ˲زe CCCX'OkWP݉mPþ+SZё{ 4tj ecǎefT(M۶1 իWk׮@p؉_jU/ܰ?Mg%DP%DZ'zVvp}kT3k}T** z۶rl޼[ٙW9?O_/y6-ۂ4Ml᷽_rzevuu[.{ncvzav$t|4b۶mܹUVkZʕ+W^_ٹR>ĭ!*4%0~A >oߺ_xbSSS=<2i)!Rʦ(p4fEFJgG?7ŠEm S xP-@2e|]zw f ]ϦH 3'N89vE A[9] !h6KM)E܌Z-[rCY \uʧ??5 @B4rHgQ[eeL}˫mjmE&iQ'-ܵDd=q{r^ Ӕߔq9@`Pw=mIENDB`site_pro/images/icons/55x55/digg.png0000644075506000000310000001111211721526640015423 0ustar namedPNG  IHDR22?IDAThipq `y Q$R-#-Vl%XI%*$T>8·TRTC*Q+>IlI/IDZ")RH@ @9ˇY,(beXu{k|n~77 6zMǕP+  M0Z)g_P' C "jclNWW!4 !%`^-W $lJ5&,p(E q,J\cȊ@@[nַul#=mmmDyu^-M:yWc *PK{<1BWI% -r7nycww1fcj .9yO8{lreeeCfJ>;su@/ $$ 0 m?Og||qu F +)}")d\:rv,ɹ#׾V2 y]H%\c( }ݿ?@_yL,q%_b]+BeF0 e"l1Zq۞ñTX.=o>Ne eG%b( G>r| ,k<:1_dcڰ2yRH2g""#jtH[F-oΝ{_ ?) U~c]ڀO~Sݷ߯f2>OΗYuqۻyb4B(J Vqr#S`"vvJO4{Ϟj<}fbbU B#+u~O-B|92r9_?S1"],F+kWR*1X"α񱝟>sdCgyQ $XI`Lr^B%ϊm#F{ uw|#"DbѴd$cR}X"ˇ&߉e[&V6VXI+PnzȹeF l۱cG N^x,L+4bthl {_wUt#GB&MA$"015#$ VSU'({ڲuCAc(Ck OiIFgl򥷿T9zaO/e (LabFd#ZIzRf0FctQ ߵNW4::C^g;ƁvnVXT\T}k߷Pyf%c hB˄1ҤH_B1X62ThE `s'N][[[ ڪlV󻮻nЎjFe{ I4HәA$4eM 1WN"[[Y~|Z\.^;J6e.ޱ{m].iCxn0:$N:rK$xe-03DÓe+i%e:0Q||55vҮvK'H6C@Bj,Bap˖[kZTb.,`el}NtcCw 4lkjbVB"' eO{Gmr, #;uZaLn&J2('3Z,P (u \x4q+FAQ\hsqycln3l5ju`qۏq+4 ls#_ǘ6֪d%Ql0js"|M= )cJ)Pol Zm];K\V(1l(m!Z 6fv\٩RX\Xw¶-Bmgd#ur F=%k˶l-f5;(2u,=9@DJ_5A#qwFApmC&¢a3tH_,/"4'ְ̬p,(DX\opߡpbF1Б㣷"6|OғDdTmmmu$=1l!W*3ۆhDfn=bğtaftzzFq]WgQ#rm0bzv9arb j(8BTul5s^WE&;ub&n> \!,=R9<{P86"`)@GO:XO |R c 8,lZ1i:܈L6efj cD^KҘ6=A<ޑ=W"$@El &5K4%02q(,yּO-ߞx eQ::sGEЦef&奥{{{o W8nRFVS-ڧ5P;sDf›*L~8ⷖzJeJKR@ ;N[ oV;hm&O<T ;l.uEjx[mm:bYǧ_YuR$IeP/I|o)nm`;,Yh]^XNݨCzh˷^eMd{iGj&6fļ'+[Æ3O^'?C".}u]HU=cc[zmԹZx"jAAȤvL'7[*`M=a^ܳǎ :m5R*1.//7ߟ3wt8h1QK~MNrdhZ!\ 'v9w%zȑ/~~e |Qi Y35fnx~i{1isjk+ͶH|JeőϲfkۥQ<۞-/,/-ďM40'zr|޽#ږW)έkֱx*wމq nk-uKeCŽjuxSJ_t}Y4H3TFcrxxo4tSˮNDiBv*lLLr:.ʲ_r6>Zv'?].aiRHe~ /7te dnĊANi u(fmt>5ͽ. Ο}o|~40'jL jh[.$BPkCor}Yxbg2[,7+J\'nsCÞC|Ws*־1ɫ^H ƀ+$+P}[rΑ_r]C=롡ZBAk9zÏ?O&e%j_n4 $; nFҮ,Y-ɒe[C5 q„@6LK4vZ tL4-300P$;ı?`JdI]>j%$@zg=|:pZ)4D@*~O+w>FQ`@瀄)D<*Zx6P *QxD<`~Wp3Pt4P ( 0B'G8u~'5ѡaPh  A H)}mټe$&ɌЄfzQOO9s|ԩT\.#h*DD!;i$P䒩d_~#z{'"H m.-,P*i4Z-Dc18\ 6J25??/<9TY;wDD)RR==?}y5MK4Mp,RJh?JJR n t]׽j:}W7xcV ] b( 'v\wZƹs8{,jx'ϓfdY4tT*E24e33H)ٰa;GoΝO +~W0 0d"?gWկ\y-ms NNH$HRil ]u}x)Rvq۶jT*z tM Z??O?1ˢ7 g_H>ӔB8={ҧ|u]SSSR)04 ]>7g؟6MٳD#z=uhR<hki&^z%޽{X,:h(K*ꈝilrx"Ȟ>} +u@9"عs2m]\\hdd2]0 ˲8~8,--q׾5z)Gahho}[TU&&&0M!u]\ǥjt=SVOM, 8\/T04]wEщjJZ%Hd =vbxxb6mԩSJ%x=JZV>fuKۢEюULxGRw A \jEO{Cڼ۶V8lX,ikg/pt]g߾}$ j}}}ڵt:bEQd"VU:ܭL:1624YɡTxbo,(D fllX,~Meuo7D"A4^o`NjϞkwp̚u }emB@" JuD[փ:iJ),beeqXYY!tb[ ^^DFj5gl " FjzU.mr;~#$yyy8O΃]G3MҏN>^)͛5EnKTf7f)'Gx iHE%Sx8VJӱ)>}hY>ǎ*PRPiN`$'J)Td֪UK[GGF[ DFFE˗i:"H@7V i[H%ix.fw@؀͒'Hz+0*ϝ+|%uPԄtݕ5)6*zBqĞ=mP̬P?оn[oh7+*ʊ4O}D <{O'%D883Ss=wjphw`z^⣣ }Z@`[AVXQi$__u݅oQo̳Z0u# /-Nlڤr†DDXJJ\f6Kjl}M7!bW~>O|ҼRs Q0Â" oۼeMxggY9r xR$= T a27@bN J}=BekG)TvUUW&@AXمT__ƃwޱv֑H$R~aThZ,J!L)0?Ͻr~_LjXv ' @A(tmH]w߽}byC {SJɓ'>̳8qbA@U)BtT$}bA@F5K#b]D$\wuCCy <󖗗듧ϔߚ,&*l吊 }µ:PF4:Z@=^[7`ښIk{-k;' @vnVVn^Hg:IENDB`site_pro/images/icons/55x55/technorati.png0000644075506000000310000001176711721526664016677 0ustar namedPNG  IHDR22?IDAThip\uׯtM&+wDѤ˲XhDTqM*I%'Jj|Rc(`~"- RGF'>q7pO2\\]䇯'N>Ņ8I' <G6B0VBZVn6nVF0K׾'s@CO-A<Ȏ;x<6~q~ț<^E*TBb)( I:)ק_s/07$.6.O^0kys-o pEh;8:~3Cw7&+H;BR$ċxv88 RT ''Nr~<#}#jgξ#Ggueebdt{[6\[Ͽ5lV#Bh;CwexNp0t8Dc NLsu qq@q"s#pJ[%FFN۷oZ^>wܲo@=5[\dzl ־SG6v=j_ǴmA  W9BlmA УsXZYn=;ggg^2Y0[4"C !s?pb^O#zѨ9 DŽD̎qGs1Q.rp QM0(A;#  L1޹|jM@ڳYB@[KK}mm}|%LꟀX1ForpQ"R ,Dl֎:P,,A^t|~me"ւ5+CH9Juݻvb~!p'' "qsbN #aRH2i&E.F@(X@J,P`M2ödtoooku z^[۸L3ZMٻwGJ%gY┴VljԃXKOn:}lt2 PY.,2We>\l:][YFh'@B4%wi;H&Sn8|x2Bud`--!u`7-g բ X$UOKK 뢔Zk0R[թ9]:ɬ 6 5hB-ڀQ[8 m߳wEx`3t# n$ҽ}}) gsve~ \G"spKZr(yv~]hf14ŭ1d2I{{; p7ƓQb.a $AW4ϜT[3Lvc*H6”. _G]&2 H># yՠ+LexЄt&ݱC7NٻgD}>SL1+ !Wqe m}=\#ݒg]#bgy}\)g O%qMd6Jn2?8j +veq @;v fЉ0\" p VKk*@顈# t L~z?!<"h4u]YCzuX,nwBDpfڱҀ z|!OZmokkk7BGTP2&O ]j.C QRiD8 5]1LD4SKpf%DL&H^]G@)QndLŧ\+Sd*uQ"EIhM(AGL r^ 4{je}ojXk]KcpeLglBK*G%0V7u$\b)Q=J0DTYRYn(JlÌ&哀]=W}e/Qd=X[JP"LJ{F@D|G)q6 ѬVWgфTFӪwAwӏψiU.aPB*a +:g爊b71L?Z 6fՍTA#` _3[c_} uّx8₈ՑoِƜ`ؓm ,ݘ[]w%z8ʩk~@EFLa>s]ZJhk\^ֱvHoV]ADnop}X$c/-RZi8I7z~(<1\m~/ 1#∃4'0[Bi|@I$ܴ)o#!M 4uĔǡ1便.~+1Fi51OZFhqx^c|\)LY[Ӟ͊W RWE 6Kj#/O3?1 f3]1.]8J~.g?uR=l\)\f|e X'Wu|R  Ԡ'1?@CD1lI(Op#fw|mʲbPspU hq%:igkkV( L@0@%[T \nz(޸<2P4Gpu+nC\^>{#z/d^+(G)45zaxm4B@ש:Ոe{{#w)_kب7ʧVQ՜Ehx8688uq"s(T4[ 8";o"E7SBM%D%{ CJPֱ%[EiDX,ӵG]Z@@%m M&$4.Ba kHK@cw}{A0艇gu%kEZ##}#{34꼕_`s` 0@kFSF_k|mPnQN+|K "@3|Uɴ6|\Vg]oO9 rlj Gw- it+Ƴ-/◿J( 3uyK[Լ0^*80<7Cω30MXٗ z CCC[dbEay?}($/3+b1bUi}-??ޖ54(4Ϟx}5vt7rss/Ӄ~O|~Y o[uy߾hPFp%B"w|{?d2eafmgX-#C&a{z;CC?$cI{8q*777F7=ݟklDE 4wxw-絊XO_)֊M_D%IĜ":^yW|?zO?=5?7/o7|G@lȞx0x[ tgggso>ݟH$]I4Φ0 z_[ӧO lCYMϫ[oR zRY!$ )/΁vA*`yyx%X"t 2>QNN# p1&[1է:T!hPC5?<^K`MOy q])06H-YIENDB`site_pro/images/icons/55x55/Thumbs.db0000644075506000000310000010600011730433520015547 0ustar namedࡱ>   $ /!"#%4&'()*+,-.0@12356789:;<=>?ABCDRoot EntrypW ~`1Catalog2) JFIF``C     C   ``" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Ϗ-=06t}Bʵ2V|NL|KpG@8э~"R2U z@'p3co+J7q5IK^jaQ/tpC$/OU7'/3OUz֛IIc;} 1/g|8ϓo))"S"aKGOf|qlƓ' 4KKմ`cb֌lHO 8Jm:wMF^ '?ߒGBx}tBx}u#ƌY1KSx],_\]0N*Q?i8hOϴ4?.hOϴ4?.6a[K_u+pg% g%IOzO%8[I1eI<,"H$ Y&yq~ <{22 ;MMa,^sGs9F6KvIa(B&XU.?CiS|B񝿅4[yO J gWClxţ|YxPmE%-)o(+,,,q՟٩734h/#OEt˻刍-حFsWW(H.A^.Iz:7p>F$uyi״o^>.,4CP4hCcl ?O=|l18Nk٧d}Zr<){ϋ m{>^XxAԫg<#∼I,SI-`} |] 隖GZF7Fᇨ /Ɨ=g3Y' ?}CVS;) Txy_ES6N;V&S+HМe>4~E{&V4WZ3ܸ$2۞BDZ>!_xKz5Ex*< 7ڥŴ}N:ռDG_~UMHRBZ[kG ERGkNSyw_]gs\Ms#}wֺ|d«%.HҔ_C'ލlžҴ8l%I\b{oῊ_>F ai09OL8|,[BM[NgSu0՜vi;ocOVW67V} H;Ha ^ύ?+?]W_//<7ZÊŬo%DRr* }?“vgRTOZwh7X?Ei_8 W,-b^T8Uf|:Kc~)HkwO捈(ʨG} ;)T=ePE_E ᮷.^ͩk iB3 oj$QZ[-އC)Wy']LVOْH!/&~J&qgp9+fkDcܝ+FyT 5>hI;?Y>qhninkt_>$.bRKg]>(@ ө|`Oj}F+ c B~̳]jvMbM C=#@ށ5qlrN!XXb1*TOOgTie=e߲^H7׌^Bg`ȣc_~ʟn [wum>)H#׶޿Tt5-.trD|cC~V%ge6WInOW58Zhÿ~ iC^¿~n|QP?[NwI,͡ 2:|cÛO~? Z'1=!zc2o٧%˞.-uZ6z/kX QUFy6 !rDZqcq:t5-ھJ?JSBMO*M50$LWr=+l}%.?浼[/iqmo#vH =u? MVHk(:]*CJQXj1`x :k]?UyQ[t~9lfIO4H"E,7'r8FuqMTͯ3.HoWzΥmbo>nВ[7s\O3Hsgޯu>6g] o hv,_Ecs ~,܈TFӐ<ʸXd<` W.3eD~ψ.Sf@5K03;_Oc}è[Guky .!u\y"& %~M57mg|ʯ_ijl|HZ_|gi] brF$s1bٱ3CIk^'O|2m?~-ծ4ŧI&{s  sj(}~u'3=JH—#ll ;)ÚVf\Os}VG(2ǂ|Kk;d$T WxBෆ'>5 {y[1H AU^?Z?,<[!`n66ی<+̳ R ӯQU:N<}nzltt#!Xa~ ^vhKk-p? Կi/ZJpUs$vFX<Y?CE ]F,~LxQUec^6~f{Y/4'M/{jV=q6 r",{XEqBW'_HEj1yЫ*mO~;G_,IGү ~>/S $7 <oS[̈Π޻ oDORfm.G=a2:وarCvrL15RM5NrM]bՋttm[u䁭%Wy/w4t=6ҧ@R.IxlímgZ=̛P/xP7ù Sn wI&[yIXnkcY[¿*5w36~#qT=CjVgjW= ҄(2K^;*afqgS?^(|E`ntv;ɰES}oncMf|=~_K]W?/ÍN5jցG%3R~"zԬ2-OW#;$?›::,RTp 5rscãKs](Yt/k>[m{{$c7b[2 m[B8zs|")%$nQH+:i{zl  \"#$%&'()*+,-./0123456789:;<=@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_`abcdefghijklmnopqrstuvwxyz{}```+y}{A42CD7B6-E9B9-4D02-B7A6-288B71AD28BA}*ø JFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Smo*rdXeS|Y.NxSg;z'0G>/5 ;HwS)&4v cR9 ^Cc/ xo_o-,&\O\F9EԾgS!h#r?#0ʐ]ֳ7݌7Ў u r |v`"3j^fmQGO^jj->.@Q@=Ҟ5HԴM.דl@>QZ |/AA؎I5㟷ΛZŢ:t[Mk+t,kI|@t> ]+cI^p i*8}~;h]_e[xϖ*ᛠr&.y$|]siZu DWC++#A^*k:?.{0ȭ{r n'*qU%r[!:ܷN:hE"AQ^|qyٲ Of+G[ω$~SDO6Q_lԂ2 y/o-K;{nQGf8|ߡ|9w4 ?hM ö~լ;Sȡrz~~KmVjO#+4A^4O zs]G/n J䱷հ?kCqhkC[6vK 0y򯞎0 ջW~#LfmOcO en߰25FB*3Dc?z$3ncز0nr]o_ًÿHѡl2'Hy?Nv61i (`^ kN{q7!"+2l>'#oow"Q^aEPRƭ?QL$((,QEQERZr\ !JFIF``C  JFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?SkV$[|Qy,}xYCehz7G}BR}TC08MrTtj<\ueFK=8 GNТo5 Y&+txDBpiO.1_)Yx.9{w\\1y<۟ZOWЊ c;Bdž((u_7V>ɉ/# r@]tr,H o ni6cuS?q־W iw it()e Դkt|gd4}4QE{'x'] Z'| 8'e<#hbK2]\Y$|)\F9XM0tt\6#r;JÎ12Ч?K :? uKO5V %xO4 z x_KngZ$QջO\cq\px7Wom9CKC1Uۗ8\3נj>"_tEN:1pkrVqPyof~[Μwq*8ךMV>{+Ad#HTxoFgagwx Kԁ]1X/jVܡ?ym'xm>Uⴘ\.u<iiuOW3q9$?e @<1z?^Ņ@?i;xVR bq_|Ck|1d!2^<_D0yxym2!Ia7G*e+29O>$*d؟m~tgWK/ecI w_BY^i7K4s!,}I<|\8RXkk3ʫu9+-ϹQEt1/}6_Ybr>{>_ŦWr+*3^&:Q7?Q:^ Zi׮lw'Ï(σ|=-GpD}9DzG64iZt E`ʧj2Ü+ٓ_/K{[=/GTT5Q͒\qz~;ֵefJ׃QWZ9)VPzzymcucE8,jJj7$Ӕ9y`V%{VRmԴq^= (eN?ևTnnG+^MnjIn?Nr)P ȡH1 +?8o;3+O I//&FD/' PA3׬!-ڕ<3p{ןO:74%w^k n!ՎM)}'߃K4 J[Ă3MsxxZԡ,omHS̡;W·4W>4);i5 FNJƽ۲ZO>Z|2-?}?/#cg.߉'4OW~C8/qpGy$im>1}!a;w'W~ph_44χi@'˿'߅|,TƟ *?5{+̅Pr潫 p@Ax,v;.7=,ҕ?}ۯn#ԩ[gͷeOU5W+g畚/1oͣy6?_)j6L|APK19-g,Z{;q˹dP$a|d$^7İ4a~e'TG Q9ǨPA|4-/"vJV0J=^SO+Ε_Ty9_ —#v]x^'5%t˨K-t` 5~'_kC|-4ڤ3{^<&i\0DsM`h_O6-cQ`XYLN+5dI4opNRqos3[kmC{Ac^DzZAZ|7g~q9fMt hƟ{m;.$hOHa@ ;yTZq)Yzs7%(cB([P~ H1QQEX(( Vf>h>}igg.png( &flickr.png, >JFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdef7J8|9 ;01ghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Smo*rdXeS<[=I;=I^gk ge|^! [UŴy4z$fC\FͣYAΩ o%_fRUoNAN~Ǒ <>7o8:z^BG5jʍD:7དྷ8J*I[G`9eK_k]'[$p>-GO2ݏ*Gsy4ivV70ťm,L2^VsbJ{>F=*(5>ӭL,vAk1q Q Fioϱ Vg rE88:E~Dzg^>ͣwrta~x{ kt- 8C_;(u ^m { ]B \D$e :hk,~xrO1ptc%5w J{ \Tk-?è$W/P4 HCai  \I8:V}-@h,f^p'e %mJu)]u$& M:=2?`OHa@ EPEPRƭ?QL$((,QEQE--R Q@U{o1́ȢlͧIj;Gǃʹ /JFIF``C  22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Smo*rdXeS|W&<̍=+ontMݿ# H(azs]xl-L]OgOi`){Zuo=|>5]3EHb=v.Mehߴ\6~(ѮcM|-+I2911$iwn ,-GMi+zZGa faX:Au\Ggtb<lۈT@pk/>2X8oa1-ž$?_Zn IKTgٝ I-;(>k#%- lOs#,x=E|ᆣ.S m(=]͒O^lx~kGÚ1Apۗu<*#9bI15E:Uy}πR>1NdKᾑKkmzi=~fp7tmǮzW ~^!"woe*A>IUڷDMߊ,;-EoOv9g4ɼ k i {i/ɬ[\U>BJ׶}#*Aߕ=oxg{>k-'+k#ϣG吘/#㯊P^,/XԵ/fyQK ^[JQݺ*qQ峩[u%o÷4F9K[{}z#~9w"uLD42x?xfX7Șe[PUcҮS7toB9ǭ~R5x:7>L0O "{Kz׳SjZ{>w;ɩuSKge DDk~n5F$Aq >~ WJZ|Umh#'9](9gO%gȩ椭) ]nNk@8QݘֿBgx4<ƍ<)x,]?ς>zv`Oҽr->!"+3|ATG?)RZJUdv_,QEGمQ@K2E2cEPEPٴ FlV~^'*5{1-W?i^O    C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Smo*rdXeS|W&<̍=+}ZLoKq`=ETb쉔UٳCLoL?Ux$ sgJ}_|3kdc'@sի:+dבw1ii>8d&oz  J|2Zu{\z o>VӦNUCE/wXH(_%|1K^9?ux3W2}O4($n~l'|?֤趺2*>#xLIq/ E8٢S8!>ۀ϶k svjﲾJqt䓲^:O]53pg4[xbkexkFoixPeEh2[$E|y|R4|ͯHU\jho'fgxbĚaᦍ"3@r3_aeK3MW9eR{o'+7K]>9A˛.),om%Յ2xK4VT u~5>x/jH,rw> =;cׁank(%~ b08\֭|Ԗ讯'Ϫ#r)P ȡH1 +N~-CGJ&~ΙˉNj;i|j֓g{r<=|ɬmvXxC&6w_ٗ3<$!,}I<%ѥe = 5×Z4siOCH7qYewck}RA ?»l5SiҒZIHpZ kkmvKybYP$gׅI)jx:5=(>c'{ (l\L[S_Z-Ǜ;f};kS&~Z8$u?egďk@83ھׇ*[^$J D''<.y}KK2w$dm뭼y sS\ߒ-!K A3r1|: /kX|2*I2r?1^I'K'E-,>2M}Ғ*a0k̎HvnKnܷX3B7zhhvt?~miOKh"S̱(PO8g+g'FGd?6ι(s|qNK ڗSq֨Kf)0ZF># W~&YL&J X@]ȧ@4S" @(>2x/xbX02E~T|}%׎ Q178.H# ?ݭbJY]F)G=s yҼ^x[ ʏ#v]+iv,(i[jOV mWIǧjW },lrX `5?F>~%ؽqz[}P͖@ $++[k0Gcl?ʺi`ttM=m;.Oҽ->!"+,chя-8쏩rZ\%2Q^ !EPRƭ?QL$((,QEQEٞ*nd[ӏ+ JFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz    C   22"11 >-21+31>41 h }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?SkV$[|Qy,}xYCehz.|%s&>$3y}dGbF:>ҝwO_|$;qMn8(Tq2kvFzcT%mzŎ,HrUx~(\xgz~$mn.բ0R|/͞Zk71Cz{W/or t TҿBΨYT꿅_|mc#heP mEWam=BE~:};xVR bq__۪xTz}͠A[I|WEq, :w q8 s[́HVSWf2GK5ўv;m.Fϱ_:?~JlWR hS#v?'wYxRBYD~⸍# V>y>خo㯊q\ ?S={6(5p Rx\MJ͌(5ό:\GR jv43hHpÜsׯ <9rbTOv{O?i- wmkxz[_0vr{g}Vy*T^wϺ/NX϶]X[:~5A:\F6 G٠cc$Ydd7u>R6Wb{C$-Xܬ7"-_(QEu.#"{fk?a" ?.&>_s3-}?n?KoZmϗ3Y ǫ|1|S4]oN_ݸ)#؊5TfN1T*Ӧwz|FYx;H2L&ڣ1Z >&]4d+b_p V'֯~!Wb[R2XxnkdO~2N%XE3W| +pVTye~z}?קBS-Nd;_EGh1.,fD? S^kun=_C|6ZA%E*.yyϭ|'ďZ&t՛˓n|?T S\5•:MO+\6PJ)cQ]g'7uc2 |WUuq-^"[JJ7D }ӓ^FEs!lzռcp =+gBji\aך~KO+Ӗ Kfo*䍽 v+nb#9ᐣr+?|UM{74 XfBݢ`S P~r-hч2(o_SO7Z5xs*OO_~2ߧ{XHp{ eOᕅ !Sݲ3|@^6](i.i-i!93$s56 (c ^3}~]}M9T4_W{AEPQ@?~TQ@((ٱ'IO{g=ñ JFIF``C     C   22" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Smo*rdXeS|W&<̍=+&hM\IOrjG`9 B[n׎ɩl!EBNKu$Y2|"E{ZSĉKHh}/ fo A͒I̖oQ#q^?ۛ.5=Q\|HxM+\ 6t#\vrZ㵷"?wKk^[j[o-ƹ}WdtIHʌaZ=SQ M, dL='ՙo4#kKw cME@ \+~`\]>/ Wd5Ǯ.OMN.UeO^r_.T_ڷmoz!GFsc⾁"J714l56VVIQȍ ޜƯG-ĸxuT({y1LKV9w"uLD P1x?xjHn0+ĵqҩ2(GCdA2s '$G]<\u9Sye=ٟ2Ϫ_Qzm̶w 2=>/L6i2 @vz ~O:mK/0lsԃa\ld#+y5IiHdAí}oǨI2 x޳k`|y 1Ϗ}k˱S-Yk̰x5]3E݊ع5~zFrFRH`f> oLlZi4s,ԓɫW#Wˉ^4}]N_o>H7qY|pkVk9>]Me l\hG'#ӡkO>2W8oaxĶ x3}kʎc*z5tS/3+6>k#K1؞B c"59~:|5Z<n~lN#MgṊ#-{{=X3߿V Kg=(ɍ7~BٗP' s "wQ|Zs`,7 QwP |U|Ɂ" @ eޔ0=gU`Tz=~wj###bDݨnyĉtԁhw)D 8/t B3~m]swio߻oSSSTu u:#'?_/nll: ^(W@ &!0R˿o:t=SӇ -6":nK>aPV V ʑo}؏;lMKy]Ȑ'UFF'&3w|];o<ډV[ή58`=1~b-6MI IzgTݓ㌄Hl6ꗿ|;G}3@ &!!JUaࡃsO=pm~RLK֤  "`-&-vwSwG(jϜ>?|ky"BPR^#nP`:|p᳟ܧJ/g4#S3FRx$@bɣћ`C^X!ǯލY^)ScUڭS62 UAhl6_00y/|_ػo߽ґKzej'P+DX[%q-UA$(UF9╍&#ec~w'_qr,tL<"QJc>}~T ƏəRPH2%yg)\ɵxR9$JSVMvW^]sN hV)BՑ>OMlJ)M~X7 ** j E+~hK8BBj<:m± t{?C8B(_$<2Y3?يҳ=6 ( i Lu痱8q\x>rFI"֞;~Fti{Djƛn=7=ݨW]nEAS UG%X:|ta|ϘSgs @Zx ElsoYTG9hnuToRun2z~?b-Ư!ɜ"`^PUzN`yco[@*@bs)U:I̥Yoƛn?gl-*!r3_ɡ@5(ooZ*^9DE9^ZQF]P+E_A7ܽV֔BpfEC3|`vP ~@P'z\o+rGY-gH8ȴ3e=VE` C^ӣ5B;U6K,׏*"`[FjjEI_*a19" DN":7H))90U3k~_76M0g(m ixfY,|iœ<qW5[$7?gz,f~01WACdJ)FlhNKO%[ss[M4M02TQPbsHYOJv3IN7o }ݻkf$]vjtgDTJyPwy t ˡ/.D]c&U)KXΎKB I=*HgaHx PG369=8 t;Jt Fg:QxW- 5IْxC)Eo7x sA)DžU(4m"%z+_}'tƫ"[ֱKň_8e+qg7ۤ՗>n/m1ghm>'/v{|+◖~Z]]ᣨԤ'_<يzܴI7"4A(ѣG/4UH}K3zRY j[nezIA&tuus'Wί A*yVF7Ɣx]o;hK5O҂Bw/ռ0 ^u2Ŭ%׿7|7Ry ][ ׵ֽN1NIENDB`site_pro/images/icons/55x55/myspace.png0000644075506000000310000001110611721526626016161 0ustar namedPNG  IHDR22? IDAThyl}?7'XI$eڎN44pi&q[nH (RM6i\Imu&v|%Kʒ%HJ޻3.iɱt>A^ np NO)  /J5` >|W2ƒ/4OpK@i05h\[kllpwDko(ZF X̀i^*@ M5T$2eSS "Z!bX 78xWokkoOE@~i)S(rz{{x @1TǷ6#gDBL= xMCwغaddH$xxоs|~fԩǎ}ȑ≠, J>W' 0O˯3ĭ6 _RJYXȖ9>B\BX =fUw=ģ!Dz^f'ǎ}CFXcv%yK 4@SJk>\[n7mg˼>S21S\SuИ ʡ-]k:E{"V<<􋹹949hj(3o Pi$oOZJEx O:K18BHpiq]׮eX\*njtWZV8CI 3SA:ff. gzo}s?յCDxya feAX@F},"kE(qm7 sŶUS{~o9 CVq Jk "B;OO~S$S鹢|<%7`( 6hϹh"8EF&enWTkw֬~-LMN) p:I7{k I!$BH]s~3gdr_yp'˘VJ)_:Z;/d9}F<> VF1œZd)_b䪑#Ge2B M]J&uM@:Fq:}n̗}קT(uh+r*((bb|&Ϟ=Fwwjo]/rRxս(?a=L?ͷg~CuAp|M5@0#ZA4Z@ DgMBOiX*!}ΈPptv1d.( |箝C7o8e߉ʰlp}U_Zӈ{sMZ/kghmĭ# xH_ |UσA)E k9>[.3ZSZxjt:8?-21 8p+Ķlܙ\% nnfPJ'BhVjf4Z{v5!& vp]wkƎB)A!Fr"J%NAb8yf97ea0 ^<<ރTkβT"g}{򽃖fD7p>oqwؐJ&q 9<2r"gdnԽ/.UEƧf8t?wj^xmWxzY&]0^g/7.pcS,Y^b f2. *Tp*WIXSq*mZ!JE!>MK+'!~#h4 2.X!sZtxiWC8!ftx X f~>89]As %5֥hO/ l-DY77HP yl<reִyuCsZ"Ns˾EUtRW(XRؼqf=8h,‰Rkh+"5C) qAɷj\ȖѮLȲ%s"BױmW /)s]|LɆgJ&:1CUajTQhQB _|ʣL5^sլꎽl^DD܂#| +%eبa!%ǶkOK[ 檸.d+D:3\8>Gq )m #<`c\mAͻ./b$0˄ >WVK"^3`kU@Ͷ!ˢ*PqZEo["}Z].bs-m ZsM̪cfq9۶<0~z^ȮRt8="L_p( hz)a4}J\D{/a5ق=T#bbn "{yH\+ gf , &^ {~vsDGe(`R, -S&]:-є27;335-@6P߾cXGɠ#_uUĻ~W[R`UUaFՉhs3g_\Z\h"`^^""TJb&;JVK< _,Ə={I63WcfcPO ^;pg@A452jJ"uKd`+iQp!>!6eKx,J~)쌆_ǧ&tRfN?k։#.&b4: x|ۡLgl^:r`PTվJy0bN>{jMNn 3x,;wE__U ~o8> f57.$|aLx 0b>[VM>~С1 ǂ}T^;T*pxqM״u& Vk-jԢf-sCT'_GNd7F>eXZ\ڗ3 3hrZ 8SM@9Rd׬]O-b;v\3 w> p2U(ߨ(Q$gt]?30ju'=^?E:0/mrllla㦍uQku*3|5^e>_xjW:G=ms5熆Gw'n<ĜfhRu埍X:BMj}`Iwҽ)6 ck3w;z}!5gEds:xGk /pwUzotWhaMCmۥ{`Tʀ!&`ܥzG@0+Ĵ&&ܼeto+iZF%jM0JA_hvJV_:s;vڟY ܎NDxw1N⟀GLkT3qݩT*!J~zm٥G3|A{h%*ڋ5'ܷ{&iRdJSLMP wsQze'r`ʯ[K S r魌] 5<0H Sֆ|#ZIENDB`site_pro/images/icons/55x55/flickr.png0000644075506000000310000001046711721526614016000 0ustar namedPNG  IHDR22?IDAThi$GuU]]};:vv4cwgWZaVVHƀ8lGF`#@6Wpؖ8$dѮFaf9{zCfU,U]S/3_59_QP #(9;W-/ٵs 6kd$(kRhw|>;%j\ jj :@ p/,D)XA%^U^1];'AxE B!Pn귿W]cjpppR (t66ZS'O#D hH RB"(" . ]B,P+o=xvkedddJDz/pbn>yǏO|fuuu-)%`^<p4 *BR }edtt_U$IYoܤt "B)|ʥjrf_W= zKx]H_$(CC}?>~rhzW(E Cҍcqbg>a1@)4٧o>|YbV } B?,JQ'Kk A>PK!MS.f8ڤ^-3:T>PED/>/_ç.hBoэwYBTӻ>uϧ?P,כ--16og`N(B+R ) jrNUnBRVCCCj5gO9 Q krͿ$JQ޷zg3LM2"ŋ,126q*jn Ok|O{ _kJyAHVT`uATC+_-o^Y^>~M U` ZO)Jk>uϧ?qԡ/ъSF108(й==izVB!qޠKݻ'NtSK bQ$Jf )c[Bmhx芿}Ј bdJ=^<mΌ f5dyO`v9>??Wo8u51i,PԀ~}PίGJh-OF@()@9R[5&(& kՒ1}\CGX2 :u\w~Xkotd=2P"(Q`W~_twJ{訝 Z;3PB!KD;q]wPJg-5Bi=ɿ󻯽ݤa`hJj_i }ĭ2VV cEU,z =,7hT GN X㵲tR&j!vvN39D(&^DhϳX?>w }XFfKN5;ŐbBEQu@l @]Vk{M R ( 7",|?9 IJ*G7e4 j 1VaBŋnU(@]vȞuF"ҹE|<~&"Ikӛ:_;41Z_}tx'=PaEÔب!~h ȤW4I|\NM4MBB#^$,ڱ\G$tʆ/txniJ+OӼIҕ ȳ i#b?')( afEÃÒ:[8}95EŰDheᡣЛe`z:9}> ?iJv \2dRZ_B, Ӛ0,aЍR\W #U6֪*E{Ffimz!5~D6xUCWrqT[T%@KĘ^fYF4ɒ07{ĝ aK 3svy,f- diR!)sE Iذg Ɍu BegԞC⮳nn4Y_:OX,KK*h!c}g67gBVLjl&B尾%I-KDF$ :ϰv~_k3/Nu]n/=S}NKҢ3$R̠>ڙ<2^>FL_,8M$i9Qsr}…N?mbjrdddBTBK9繪7hǮ28#I ]LcV?Jc$9_qKTHQtE WU1&^Y^9}>3 TʖceVv/ $#(.TǷ޷mw^35 c/-o}Y6p$ {#Og`?%X]fUMLr;@6 s66>>yePiv[k ǎ#?xG9!B[e[MؿbIbi"lPbpM79P}I:u¢5XmFWyU@`6&g+(YA[6`H2 7`z{Fk;@%vu>.g^jnpbIENDB`site_pro/images/icons/55x55/facebook.png0000644075506000000310000001061311721526540016266 0ustar namedPNG  IHDR22?RIDAThkWuvOξjגXa[?lH>%TQ $TRʇT*Ň|$E@x8o˲^VVZIGO=ЏlNow9+xV fμ?8 @" @IٓoqHPL|uQ\pcZ~ (^ ୂ{@b1`</怜1P$( }4Lbb]O9 t+oͷݛ6o(CBWFQ]];z䷿ocU Q@̓yS@b-$ yǘoaM7ߴ;߹ub덃 &Õj쁣(x>lz]Ġ bĸ8, [cehp`tΝJytI +%RI9= S{vO~K_։V;W~~q\$11#X(G`"8n[r|"͖ 6.-.>qDE v.dϨwO/|['&-<LN61&qXH#c0F01īqB`o~ǎfcc  @_vYd"ßşrjϞ6?~xdr Ab#th; bc~ccc#Gϟ-fL drt(`oqd2^?;̏=z0nmF`i 8"1mIߋPjrq2\*85;-7`#>4|5@2Ybzoط|#NFf 1$gLb1g80\}JC'DhD,!~'!c??m~jax]9#8mGRmD0Vh;ވq2[?o0սaÆÇ_^YYYZ(JB;Mk<::vk?yg[Ld9E,5\SXgPsʤ;O088R;߻w*xM2qaMFw޵͸SK<D@^)5QFz vMlXu^ȥw϶K4QRfe963\!?w d3l2_HCްq{kZ9b^lKR1F " w^{H#tQP8ŸX'SǖY_\,ظMfr@ e{+ f!6Lm#Ƥʺ[GoZopnFe;r+%Fةa/h4wMbnŨnС#j-㠱RU(zR1Ȍ"3Ɛ/MO&'[Ԛ=Y{ pqLm&&CѼA11EP*-1q6N} GfWgwm_ Tir\~Ј*u*ԱJL 'IM;6G4OR{M..#s1o˥: x#;.!XJm"(&Wk]ƒq q_U"ϬDտ lf3K #w BeJJ#?o5 1:]{vC"}jG¥Rr35!]:RZ NOΤ1W*ϣkb--i68"Bt [[x;`5Ml&f<UXի _6V]JiTYwwg;ua-s!BJoRQpI.cyjZM+D~je3d,UjA4iHEtՄ`MgԈ碶ߊIB*Z:~ʁ+Jfk_<҈QlUwyMD%999sVdagGz3F;Hhސ%=UIIqW\v4v*VXr٬@M8~b^o[7: $,\+xB3P/8rs+\X :މO@v<sH_kuٗ/.Ct!@V-<̳?wdabg5HlXP03mH*Rյ ƿ{8aUE)Rv59yhM/5Xn.춓$um ]cH'p޵0ct衇}":WהL0u}z{F{6u3}Œ&DN"|kVXk#M^!_(޷BK/? -9c0Ť@jЮ]&&7 C⹆3 jMۑ Tq$'9o{w?ۧ1h_U9U9c׮ Ac'*fћپg6CRϥ'D^sc=-|1Ƈj=_ʿ\.Ѯat &,s֯bk6o9 &6CT}:@!=/rh1ayܹq}_~{s%\eW~HKE+q?Oޖ-7vuu ϜXab Mh.b=9 [e]Z/-.O~| .RlbO]ee@0 F"@Bwn{{<h6B*b*ahZCG}ʪ$Y\$bF@&0qQ,Y,r.%u]746>6 q]a,,,T94wa.Xh5[9eoxK@`61Ak6~$&?u5g{pT$7I+4E(qwVy6/VigIENDB`site_pro/images/icons/55x55/rss.png0000644075506000000310000001143211721526710015323 0ustar namedPNG  IHDR22?IDAThipygvvw^@H$e]Aur۲8VXvr8UJ*vҏX8QK,:()Y Hbs;?zv{Ǔ;fF(Ul41͒:;32:<"&\ #]Xw{[Y76vD"nM v OZ ɉǟۻw|'4@cys;Dn) }E}uFHUJy`dX|҉9j,RdxgC@Dh4?~^92TƪzCv-;0$ JIzxdd>\w:::0* d&^e7S:r^!ш 0%E .{t#+ϿB#չ?=?ɽÐE(932@F,$. }{޳k֮Q:ӏp|"p7&(Dƺf@*M)5β z^g;d#fġәyC .D gw޾-"ZZ l`g<!toݰq{ll|^-S@Ď4\A},\u!f 79I]npXw3;y,4 2G m{wb_GI ~t`A3V*$Y[DDj: >}ߟ80wnn.b.$RX6Ү| _=!իpSi ʍT$Dg;潠\%b}?@95ײ9~zzz.*d2%1&q:4[tg?■>%/ $׷$1cٵBxa|R⃛IkIa ]BXkX%M͚F4?Oc:݉Dbr}SPݥۚB 쳇ĖbvBwHωbU'qq-Kɡ:P^n2ϥ6TfvbE eC#! Hv(*^ p!k֮6L>Y)W2PvcN+$ 7s|՝tz5 'nPD&Q^((7Ċwb>"V"((AjʁP‰ .\cDH$slWg8~-K? d"Q ֻ?mpl_G2UQQvKЎl$Z掠'\ey_?3_g?om ˿۹ڑ_y]#Wm 0?KXqpBƠ[TӅE$bԜ8b1@ sGѥX=j)~܎eCdeOF[u Ps7aeҿ Z߱vJќu7 elD@bKh a1Or"&ZY?v>pw 5/|ԣ9{ИC}f'D$\ʀizDM8)A[X1jZY6Z fl2Ayx,&m2myQbnz ]Ib .;:b!7,Xg xI8jǠRS0 h5)QTRyO<e4ph=`T IQ%uC s/S?<T'bM0₥E!Ѐ`q0Hw\.{!@D%#RqF`$;S>a6i4ADںaKGfr#T1'7u%Lvqq׊+(u_~X~ƉX@&MQ|,W':Pľ2ȼNaWX0S]]TiS~yKQdՊ {v"ӷ cVGuv M٪mbbD~%FGߋ@芝3t,l/8v謁rT|XeMVvݺm |,6hi+5Њ1Ad  :a%E+s>W6@81=eNMQ U /*Iut骏K`J`*Ѥ6AB-5K l9,TTuj=࢛IǏ=W׫iNސZ5/܃{XjKۘ8٣5IH[&li%˄.YM58D>{72 F"S4 zfi1yOοc˼qGM|tÒۇCꤋ+6~oplVM=p!#BIyNcXeF߾g7CCCxC<[{P± H¶g"nղ(7n[?~APM3yhM1x򩃫V^v?vnʽF=9)բnl$dSm+&8RBtq/gjF0{]w׍Fc` U=3YeN-Q3<33|paU~`r%j ^m SLgӕxkܫnKg2=>wwDT0P3lH4_f>/=[T~;88?lrsY>)1 lХLyi5hxKv' g&K/7yW`>rN_V]m^t t!~۶]jժ\E1`daEБp\Qk"k6#+ׁr<99>x/ Qu] 1 6/v7nq]0akQpaL!*C^/NNL>9w]SSs="jT+ {X['0FH oK6|W{_,dEYڎngN:@ntT ,[^ooOMIh4#33}BP4v,BH]?z\п뙔 L2+K`m :JT `-x[@LEubi4Ke_^:dmǝ̘y5v،3[`95gm vjaBRbAIENDB`site_pro/images/icons/55x55/stumbleupon.png0000644075506000000310000001145311721526660017100 0ustar namedPNG  IHDR22?IDAThy?1^՞@HB `))l*e|ĕJU_W*ec6bB\n-J{=!aVo;3>OV !k"x![ @@40vԟ4\p! (5 4ה@x?*45KN4SpDltFK8Zr5ptI@B6D5Ddbƍ]VL'd4kUT*岹ѳǏ_pՂ֔$A0 FL1DR7lf˕[vb˲RiMô!MJ.ř_~~/CCP#{󞀄 LTOOϲzq7XO\ [R((e^ bEh[H%ۈFbqѣϽ.뾌oggb8uCٽ>2X(TDj@ 46^92wק>y|SdrX)ȣ{[c"DbQl4M 8U*2N%FZnzcIY\ZUJP`q~Qܹcܱ{Vs{_~o7@0fA {6D[6׿##ʷqqʟnR$Q;e)zڐi`[6XD*NʖMtezz s[ Z.wI%`#k֮wO{GޞV"SIH)TjH!1 ۲hlj%dur$LF6mذطձrVLkZgi]0Ch% Ҳ]{e/:%}׏xSt._FgX$!M$j !@ԀA8NU L$OrN뺴ZÉ {^TSہTJlID"v痿Տl۶r'<:8}=3Dm)`e&,RhH LHB`nI{% à%?0Pȿqȑ X]d3;* 6 ]{ xb裴/"FIJ"0hi2'ex? Y{_!%eҚNӽ2ޏv'zxHd2fi48yӇ>WfgbɤڰM!F]kDA(Th\+<.9!B; Loe1]]]>czEԉ)f]n@b˕[Vlxgre\bU"V!tnb هm<@jss1hFP`Y n7]W]}=)A@cV5jMbT'y^OئCr]դE}6ʎͼ4=M)"e:'bG;ylX3DKeӶ_ž=K@A)lԚȪd25/Č5K<藸nH\{Q3ײ}ٶyk=kfGa(|mwH)hl;Y"4S#V85?˦=ag,iHkz~UoA^z'fcf=q;^)Z(4)Hxr<fq)!.6Aʁ@*SmYVP-l,xiHꤵx:zS% k^ fT51nĔLZSpJ8fZ-[6:B3%ށ3y' v"0(sssQ>K8RJ}DH}&%wIƢD, iZ`h!AH4--;p:-mU&vHEݛDę̩t'vlk5:0]83BU&"es_'o@ Ial0ϻה"iαf1 <'@Z[\%"lua' }oP`:QJy-1n)QUbfdݹScpҌ<|t}3eA@L䑄\rYU1p11Yw@ZJ0TEYTkŎD_)@zWZXjSq̟fs%%HF\lo*ƚ$O0E4IQ}Eԍ=Gz5M:,Vu'W/8]z&fk:hG0:;Y4#ozx>7b01BI!C)%F;k+=faPcWEYjwBt}c8I 4Pz504\ȡ@jj] Q1 #n- %)W,9U=OMyR'M}Bڣ\;JU*PAjoz/fLLL<\Z(-fhkMk!UqWڮX=k; p^:TVZA~G蠣(WʔXm|7НJx s{f "_._ʴ!R(jCwG[4l}Dl 0PrynV5I(/(ߣZPǘ_u˻UZQ7QMRAe\.S[ /|GRsbZ."ۀ`t5 xTvgzX/ө_;Du4j@"ZJE+8K<1E_ɇـpСOT*O UBi\@&8fJLϺr!*,msH>B G>RT( 8cl}7l 2y87qM( KS(lة:~knvbPG?cnj0ZS!`[ <:l2`|7[b[T*?}8О%tGFP^;hK$vnYUt&X)Wp<8.CZRP)dsfpMߖ7_˗;o!b|'~d>i,wHT)4k™L[֫wvphhi3-ixGQ(4H6MkY3t S U*fN;/~Яv~1!Xp1~ƍK@&8HIt/^/|a/kSKKK 8bP"3 A_g4x SSln|rjz葧uD&7 ֨n]2LLnή̇nqu]z ðEHkİv}gbbⵃÇ}lnACA)ߩg jòeC}}kv`hxxy:ݖD#q4r0;;;{䉉=eDơq]o Xk5%C 6^jkª[PD<;');Bԥz_@jv6% fʅN5>V+rx:vK;P'inG~VQB*hSsykjj͒ ('IENDB`site_pro/images/icons/flickr.png0000644075506000000310000000072311706150736015200 0ustar namedPNG  IHDRasBIT|d pHYs  ~tEXtSoftwareAdobe Fireworks CS4ӠtEXtCreation Time12/12/08Z+IDAT8JP{;!d*Q Y\JF)nY|B.Nhn,8I3pW# `EUQYUURJeJ?vy틞㛌(g=2 >~.89Eq.?Ţ\Z C࠱cE|IX(IσWa zjóOɓ:? ,񱾬PKcY5Bk˵jlmn@S׵qe]ݳzp1\E|d{{ IENDB`site_pro/images/icons/55x55_2/0000755075506000000310000000000011734665232014235 5ustar namedsite_pro/images/icons/55x55_2/tumblr.png0000644075506000000310000000761311721527046016253 0ustar namedPNG  IHDR77FRIDAThy}?}=;;Z-)2HaAqclPr8$qIJRLIJ\@*0`ĩXH$ iY]"iW{>{gzյU\=~~=㑕(57Yy>yMy< Owe[j2_Kէ,}W?N{df˦OkjGk˥d!%b.U˦\/RRTJwwP9~=b}W:={W5}u.5]CCCg%qlJ͢\Tj(XXo|&; ш_ϵCMC44zO@JYsz >Y߸t̏C+֛\7=sW[6}K{k:F|v4 U;DCCGa*IlQ:-_՜# Y [3ewZ%ѺR0(KI)4(lݺm;wS&5#ђIZtk޵Lk>Rp?]`V*#ז^֚I-LKN)Qx,i>K~p2uKޙP E&9;9ٜ.5b,˦e3ɨ(TYҀ3u\fmlݱvjH@)峮0펜7pㆡЖIՒNܚIM@gj @x5QDDmx?d+cn1\+8#jHx"Av܃OFD :)ry^\%3D'jT{`)+-H>ʗV'O膦@72MSK*5 zpZGGZtdlchJ$΀J3fɛX#5FGjl c^ RSI ftG1\>[v- U=R`H61`wsEgf14W”)TjVz`hRbPm\О!bh1lկma'\gЙoNA1]2}z'Bʆׂ1x Jsj*IJ!TcO7w0P`hH)8nqWCuT٘.Nqxm]`xK8e̘+45C4u\EXaiۧӻoa5 QjtW-*CHy۟_CE̺DK$w`/ ֽNO$,N+f)IS"7I:bL9 'Y=˷t!RH|/qM0 sW|)I4vĤ}pJ!eM*A(~xʋgpۭ_{׶6R4P^wűɯ =RJG+BJ*!QK#XPE@??FCȳk6ap yH;7pBt !N|KU28RvC~4MT de=LkooZc,y#oڋi?YW݌"r@I H4_ґ˂p}܅|XK>1.r|vf6AP7Q!̨,kV$&X#7@͊TUwB BFG.tm4_:Ag%؎ˆݬ^*0FyWCRԹ?1 1')U{Thzc]R1tdİnhZ{b{ Bj_.!$bBop !]0煊eXK*!1N %lY'wZ]×%pBJ& wmtUޥ/tl.7^ 6Lez^G*U_!֠XіIOH/\@y-JMW hv_^Dg$bξlp ,oA y\5rC$GyUkqRJ.oys/A*/ {.+g׻]PTs>EY{dLx+2(%*q+XʣV֙ dBz>CXjh<Ƌշ^~w$AR>pf8/$-.t)Ǜ?, 5q TMl~gW4#pRF'zANzL{@]M3sDёޒl~|0I Z}l\ʕfw(997pw&~@n0azGHJ"3:u,yr>z>8mY pA&ʂş'/ 9 P.oq V/tTU1iPXd[Rhj)Dk4 KIdBX'^޽u`'p8i.\<Y5~1/W-T}Ire8:@.ra)~3sz" .L>Z,=?M}iǏ/5w5mрiH 9̝{a5zG[8Ձ2x.ƈDZ-I:H)5Ksmfn  X Jɍ^z~!5Tw󅱡@ルs~2ҒE8~$]|z.ʚUWY_Ü'olLx ʼnCϘ% .jN7ZXz64\`0V>~v͘^|n꧞kuoc'&p!pa,ʹmc8߿<βGʐAIENDB`site_pro/images/icons/55x55_2/delicious.png0000644075506000000310000000674111721527056016730 0ustar namedPNG  IHDR77F IDATh{p\}?S+YlCl)6i0L@&i 4vLIΔҐ NJ0`,LSm0cX,˶,[>}s]+af=w{>~ߕ~iW :=gz)kMoø=ےx4 %QSyhPxo>xkMo_I^$`[&y]<A*z8Gv(Z6S(vY%翴[ջK ]:ȗ[ӏf3۲! @ RJIz؎U)Z6Udv܍S?>O5{Ư]yO{k[2;D,0@+@kPJ pr` nGkwf>e cIkіt⋭D6 V( ]^SE@ 08<۶eKYX|-x}ǟp _WƝpS&%j6Xj.CiJ %}ye \˵ ˸ja> *_ pu<J6x8ߔG rZ*U2JiSؾ/P,nrK hv8É5eK;2A3p_kKt"vG: Qq; U Mu޵ܾF udx\2oA4o=H `Ւ?LDͤb 3@T{n1ehĐ.s/Rȷa:;oaS*?A=)\6/E$d~5T&& Vv5P $"&  :eL>5j^{L$Z*3zɴH%{F6r+5FTC5Mt'Һ]+M`;R|DU[iME8~k'T;`scgFSֺ*[R6eۥhAڗ,i/T[Jɤ4͔VSSJ{R*4JiVd*o9yr\f&n2߶$8^1n^pTZkޔҴLNLL&X}, 3Kxgضxn6^6E~1nPqey%s j}Gmi"gR)?0Mp03$t~xLwJW?GchiRXE4]4^U4=I$dC\;.N)TiB+1!"pxQPs h,D"/ yDDznGQY^JZ"0/G(4b40X&{׿nIT}j)Ri}pJsNJ90*Er/d5M +Vǿ֟9U|3[<xRc7J+ #rB3*wMV 37)r᠒1}\DKm8o"P~u=c}kl}b4˜Xe`8Txmt#G*Kcl9+)bx[ǓBh؎FBPJ)c.n]rgǜm$-ryx%a4UX4uGq99Ύ7yUk}\Gڻmc`(gKUFQZẌ́?W..rs 7?ܳ.g n !'Rm~)-Igxې SGsݱX?RT*=w?FD6\8r!! v~pdy`E˦Qna=ߥWju!ccc]- ;5P}e|q S #CGz̲l+0^ߩNKd;Vyl='z1 9v6 IENDB`site_pro/images/icons/55x55_2/technorati.png0000644075506000000310000001004111721527062017071 0ustar namedPNG  IHDR77FIDAThi]eg{OҝD@JEFAQkFT35XTM9bP*0Z. I qa'! tN:t'Nwngyg>sN'dC[ֽ?YN;_Dx;PJ}0Nyy3eoʥ9鉩ҶB {pU'tpw̢|6yCwg|fQ*@ix^@(\'^X^S*{w?;VN%>՞--6 Z\/Tq)\J A&]_>6QnޙO k1HW{[c`ku ( %TKᱝG/?X}[ kllԚK=nǜ-` č荁`Lgcsu=xhZp/泩jͥ?ٖO&[b5"FPanc( =]y}"PZ7rjLűI88&gx璷Xi쮗Yp @i ?Īặ=@O2*|6߱kdX/)~j1H'ڲ-c2-\x<1{.8L<Zhj|u Qq}D-r'~yhϧC!fK%=RDgcёKўM}x>gދT%Mn䂋&:ƭ 6h PZkeF4O\[>L%im6msltX4l*Yy.V`1o]7:apo/ LMm.`/PJ#237eֻM*oڳtI%b8V:̺ʑ g_X&ye- )y3}]bj|h6< t <%pRMPr,,ma`ʶ}dRqs9网r7 FG5 iB)Mo|3Hh\pbTxz%8H>dUxcZuC'oNJ;Ɋa:g)*t*y U2P%O9B)]*OT|y^/'dMʇ8SG[ o5qi.i"RiN@PR:t AS%R ]FXp_u.k6&k,$g.lx_3{cie !}vM{]ւR /NR fe*V(C\KW45̶/Ԉ@/nA42&1sӰ|an5ZizjҢIXI-twujn-r`׆H0nR?*Z?# "xfurR[0D0U(MWdP{ɶ8k){LmdۅP #7%{g 2>us 6Y(3Ci<ʐ\VX=x+?~Cʫu {}簻ߠm`LG5ME=qFRz2lX2MR63G2J㟣5; rt]upLM|mógyR[28UZ;*?c) K0$׉YLa FXտ_ߑ=#|?R-{'$6i\"6wI뽱\HN=16AS3U`ŲG靹Gk0P48Fï^}"Zjmaam>|P  c|"P{G40(q݀D/~8YTB\V}ηu޺G_\;ؿu oyO,/,}GX#0 hbEcНezIt`H4z_mtٵgӺtWw"oŢJ=t:?smtf{(8j* 1TŖH!6\Bv;O`4 (\2rn*csqY+m+YcqnP\}'jOKe4Hح^*1*PV2M_]RFBq5<]pKb@rdhP\ 'nWYKnTHkRVZ :^50fKy->T84![:¹ ҹa~@`sU0s` \<޾yjuy?eu8|`_[SӕDz,olSd> ghyО"%dž D1X/ܷc{c%|G5e[}R):Y'Vuc_\S߫< lu@*8NTJSwdۺ/ɴve$1fɂ4AMۭ[,W|{6>2 (u* IENDB`site_pro/images/icons/55x55_2/Thumbs.db0000644075506000000310000002000011730433520015763 0ustar namedࡱ>   Root Entry`~1KCatalogp ?JFIF``C     C   ``" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Ϗ-=06t}Bʵ2V|NL|KpGY@9}эMԢJFYPZHz v`O7UfU$e~jcSc(]Nўa="Lno45S{I45]w1' Q3N^ JTV=*J |c9v Zoܧу⶛?Vl6hqܩ0129 Bx}u_ lxEoRe 5ym }qf.`͉GR A+ O=IbT&\>ccW5ϿL?LXH6H? ?»"Thu0],hOϴ4?.hOϴ4?.7N%fio þ1H̖ Dr?[,7jW5?ŘОi?i]tX5XD*2ʯ .>m@b wKe)Z$JC.q#Y=uEЙIǦ㎦βEe1*[O#j~6vo~gw~;~g8oiOKֺjOc鷺L72E^u#ҟT֡]5F#Gc>A_nzMnc9\Wƺe[[lHhG\O<+/}+WYSÚ>Qһf湥j7Xi\^k|U?_P{gN lWU?^I^ծ%{gѴ>k 63 XD/ݥnw_$|zr+]_O\[j7ʢ9.{G>6xEu^s+zW[CK"d LvA?zׄEn?澳2rj>ysӼש]IɉxC|!ԼKl 邌 .E;Zhkz\^tRFU NKMU6IL XuFNQ_[P&sH»~ ŏ^mm fkۉ=3x xRE²j:to1-Ĝ{~&?GjR0GֿI|+uwnȱ5K*.nV3_~mK/x'EѬ/Ȿp^H̎mNs¾~\|.D!ݦu?3Pfsygh>C?wsz q V|1b\ɬKcw\ 9o/.Wz6|}!Q[#C7?(=5[#FiChԂ_)D| ;(ɍәNVֻ',!#C?|J?/ov-;nay={UTJٵftc_,i?=o6k |&unm;p6fٮk[|IqrpZp~1cHjdYؕBm۹ }pTIi?~u-Zk^GV=.jV/X#88#;5UkviVO$OG3>sׂuIZ@dbNx9h{|;.0Z ~OKalVhBIU%Ŕא38$=j,fH4kyd`1kWKx"HX3ԓ:WL4gFڗoSNI?GKxzˎK >r ? ՝y EҎa+ǰ/\.t|AE3%I==O j74(m2=>VeW(Nl}kXfkxϓD~%!2rnsW#b HM%FHcXlYAˀ?ړggEnƍl- j=esV_ɱ'cIkVhFg2d5͑:jQ{o$M [ 3oR=ǙF//{+-yFii !Q[𶴙9?Mi]3wgF- w1ʿk/``= OQ]w$u]h||y4C@|) B3Ⱦ>{ ?>in-,T`XNk.. x' I >_K|]&pĵQV٫vvH0xRnt?d~_是uWԬ.&wXYJv7d Wz9G$y W˾_^ C]ϰbSq_+{N_ O͞Yn|AM/@k>$[[H ~Fq";⏌%|1o~\L;vRL9c9?jOwhI2js L > 5KyUh~!M=mm-ơ ~ 8]Y~WMIuWxo *tҞ7ݶt} 5R^^h]|1Ms,y(Ik^ AZG1WBgOi;Ե+mf{k#۶(c  ni' yUWŬE9jj$ީ-t9GH讋G1WPڼ6l|w) r?dj4VPB#Qާ|<ͪSϿ%2w^Ь!Ӿ]YZBc BUGWΰ%R yPԧU(p2o7dQAFGN>נ|h'kOuʆ~,~lm+3gmqb3Z)N1K^7fqg[.|?i >Q_*ÿnr.}8 x:7WŖvVʍcf3ͪαxK-GݫMF̏ӊ*l^2`gVNҎ^~hw2i(e f#< |TUjw Cäş[?|!ţ,Y1{3&4_Cvrj :6roU$9~ry c8aQFWܜXK 3㕁^"<} 5n70I<2DnĶeڷ|$pjEӜRJIܢ!xVu%b```RQ}{A42CD7B6-E9B9-4D02-B7A6-288B71AD28BA}site_pro/images/icons/55x55_2/twitter.png0000644075506000000310000001026611721527032016441 0ustar namedPNG  IHDR77F}IDAThyp\}?-ْ|`06nHi.&$69C($mtz$&+M41BB')ub`BH8B0 /-[dIkiXty{y[q}L`_^s)8ۋ:q`q*51W Œ}_oܭmKG¡z{ڮooM-k|G0](Je硪}͓_2f_mQ۶.h5x(da``V%B dP(U=ŦbٹO}h|gpSi&hM]іG#@4BH|G ZSv782K7\^z?|jE:=RF FiA-DiLWO1P68TϮoY5:m[Um[ӉKZ 4 MA Bss%$˗#j(3R 0zT}A._m9)@f ᕘL/<囟xa,FP!ь!3 '>8%(QZB)R4I|_"!ŸmA6$'=mz⤒r_(do0^)ײ}p=Ѥ.Zkο)` B0V$ۇY-}AWx"9Rs= sjR .("lE%T |ק=%np3Wp(NԊ#W!5nP8OJِaKUZcܸNa+&'[[ %z)՚B١%W6)$e28Ra9\#_]1l\M}J7ܿA%HϺ>AE+=gaޒBQ!.50q$R͒RLT}L&U'|>GkYYL@6Ye"_E+M̐H)+*g [)atAwxd'J4 #VQN"j"̜KG>5˻B5m:A1Tj -}_>QS24U&0@as[*6MBLhq/yV/A*Dq}HNLN N)u@H%LӴk@P(;$C`kuB /VX qfA5W_у֚cyƦ [YӚjHYjy<`2_JnP*&mU?|w.`7LN.Z;@u#pҧTqIGLLWd B£;G#7<nzpx`6i9Wyp[2klHgO_ TqHE^)lO5C3Zqty {۷=s%N`0gLn';40ADCґ!qg$@{]3`_eyȍ>[_`ء5ěx3%PK3..ʳu+W=t\؞nl3$OsŪvuTzwl}gNp:lAO{bpRHV.}ba vg\aWbMKՑOfHky:) #N8ڷ3ܾQ*\ktҘê25us^wh-wmy꡻6Ve`݄dfˎXbYV(ٚdϑ,Y?MRm7{L^Dtǿ6:π#'8U8 0-秎_feۉT"DcUiÐ.}V޽3o4*m5iuBnbP9k.NI_(f6A+"4W#·+^yOoeG<lF8O8qp,,cGsV/OUrYB~]&W_:>tW>)g@ߐf3@(<շb~V4g Sǟ^2%O8q~ _X=."Hr3Upq6oi8A{IH^W(IENDB`site_pro/images/icons/55x55_2/foursquare.png0000644075506000000310000001020711721527036017132 0ustar namedPNG  IHDR77FNIDAThytՕzԭ]d#o,g0@̄IB0 3$8 v11^mɒR^ޛ?[j- W.z_]꽆>M_O`gR6 !vtT̀OMB_3MnfqM[3FL$Z" Vi(𼙶Ƨ.l>23m}²RR `Ōҧ|Ճ뽖eO)E/WG${W?wؿzp)e˺ kgV10G /Q]Uw}bwcª7㉫T|gOR"3Y! p8D)PȀ<{M,~1:{B_X^ーuc:,Jh24"GTN$5'~vzu?|hs=!x!VF]eVBGnm/ vSDM)W `E$ӒTښvT{#Nvloy76_Wc+=ݳo#b8 ;01Ƥ[M>C/TcZHy8nq)Q깋O}R6s.w4"X˖PuJ5\FIM)>mX~a.nҰL D}ˏq+H 2w!S &7'p#124oЋ7襪-,rpɜ|)Is3)-/gcAt (hE|1VbG"ݜ6B4uUqi嵸-72-]AbE( [H@KOB Y(~󊟿+sךxr9upi]Aiu)VʢjV5owO1~5?%KSV^ҏM#Lt rAl(F, 0Щq1{l̝SBRL(4uEkݡݬ>L8sɶW/{Hxu>::qi.Mϑvn}akXP$B{WX`&ӤI12wQ  c ^;'Φ%'h6ڶ?YȴYi9L< x!;mg}k]=ͮ&νB^|f3Mn[r,܇RHaضEpZ!-漆"}40njReױ㧚u(cXjzv3c-3 ?( q<84nI 2У*4KG04>͇ulSbbCwq: \\x)K<1qhoٍ%h&XɲedٲL:RmiJS9kCwb6ni 7p]KqhN$0hh$cIdZb$VFVJrҒ,Rrк&X:;G2&@cC\%-Zcdb܃ѲKQ :Xp[!0|\ +eyPqh$юV԰Mh4Jgw;*0i8X?X ]@pmS9*ȒNE {n[ф~'˖c* >!FUG[S*URgX<GڈŢx ?-$H`XbU[Y8,CVZeu})S7Gvrrnk{_&4YPY@=@drNfYI¶l]!_C8RP `h.T(t"`$g~igT"4 ұR bDn-(k"_kon߸-: n?;^Lc m۲IM(2Ē)@CG F6#sg3=x:8t1Tv7[ѷFX {`HGX )Ni(>5;qPr!Ű DH.PkJQ'U(9Gzbu D:sZ:LN0ZCmc߫>|o[syKB344b12-lof1Lxv>ě(-tQ[o{}-Qz_;H7L>^(zABӘ6Yz͇Լ%)Cg;gF1Bd2J1gz! <êl5egN˂yQ"^Lՙ>ks,N j '߶ 8usĥ=hf!cpGm4?FlK;\K ɗo},R`[X8t3@Q<3ZbjY$o~T-`0 e{c1Bj)]TGA4UA^?dfa66aRtjϚQPd\MwFY9Ƣǻ{el P+(WCh,<"A}Գ P_Cq5D&iLWxE)~IENDB`site_pro/images/icons/55x55_2/flickr.png0000644075506000000310000000772311721527052016217 0ustar namedPNG  IHDR77FIDAThiyw_g2Bm E2 bS.ElcRI*T c 6 [0Vf bh$eFh6vsN~tm$6tkoy{7mM9ix!>y{iHߔK'?XUUTC>w1]wMϯg7.;YJƑJy>Su\*l+խvj[ƭ өu]:! @ Y)|Ǯ9TlۮC3_n{{|pٸ5X}#3NFL@R H-%)Dc3{_xy讍[-Wteoȥ?ݕOwƢ0:Ak'.ҊBljiʑ~(pw=Ϧnȥ?ߙO/I&SZ[4!4Bkry.p5hJE"o@sKSyT0”ZQ h(0J&2D+N!I"BiRȤU y94>l>bvudn̥WɨaAi6FI f#),ry1M)R*WUAN8)<7MlL:|6L^kN[)$Id?8p%HQJ!U^78ȚaM4ܝsN'bH:D <Ț1 *U"wOkW՚ C{"A.#aWvC*}ݬYW}:GkMrh˶i"H#tf$g38N.ZHkiI;PUuH_5J>5KoʧO/j%ȥLU.TutRte;&uq:ekr$ctt@9TJ)O<-;ͤIC h `qO|=#sx/&60. W03>z"~U&/"חR q/Rϼ34NoWdi=?L[}diF>hE0k #!ؗxS"uR+5ǣbp\ZTl RpJinY:5#j NFۢ*"=mIu1y *;Z8&8^_Je "0)lVþCbὨ^}c]y@púpA'IZ3>j&KϸN]F$ L(RiR͙ڥF&V=T2AK__((_r7{ Wf8lo5Y(|t@E'B8Q/>Rꩆ+H☍.ug1W[,i&a |QWؤ71zs+| Y@93Yըhq=yD_yLpTJ7-R*)T2Y5+"21r^'Ƭx Ƞ($($Ջ:s=2ez^ܡ¨~4+UlÕrCXl>Op_n.kYpF q^/$WbueT r5?98)TDXsrTKD9S`DƮc@XQWhKIB#Q(d5O,euh!hRBKnh("C:;sZFhD+h,T~M87֡ 2HѬc)͸r洦PE(Uj9wǓ<]~$ڈRfފ #WoEoyp_yHla^w_֗R)kĢeۙ~k.$EUT+:y5aꇷ(HﻞeM1|RWAZNUsW&'wL౯,#a6|(Q+\SPTT Vxėr{}(<_PJ#澈]sJx> pOG5ƸB3i6-Aрm^^"8jj #S9^P[}#A3aIaҺ!2u©yz䂵Q c(|)V_tZ}>L֟˻Q^PAi֛GaG@P:EpzJJ5T+^Rm9tK{IXV_jOk͚kb:ST۰RiTknZ'1 H(j)떍 5Tav.Q*>m׆Sw?܈/@MtR#bm0_ f*9 UOrkofFg)W}z]SybWvӖbiK'PU Fj\x׬ƽFf羃/5wGe8g\{'$Jv T t0|&Ӣ8nKe`rbo^44P{;w?A 6X>u/i qԣ2N'}0Z%8jK注zՙh!PJoxIK>Oa%7`&~Q ϻ94%nl*-4~n$Bl Jkf P(V5??gȾwX^#q Nm(tn7l˲i9fSqr! v3ʞ/=4SS_n~>G{'W?CTz}ҧlȤx0ZnRQV %+W93"{R,ټOmg6hG'W}ŹC#] ih(TǢ-u@fP:gao~/C ^h elrѱ3۞ O'HSc\hUFXircÊ.61g7,0k7fbE?}W3DkPÓ7ɑ'|ӪBU\ FkMٮѿ S3El}۞#'5`ܑ ҹB ®[y˓VS-b!;\i떗Nu;My?h8ZG˅%+νԴuכ4Mvڔ2bl!M30007_zr@U߇a :X94:{uL+@wG2Ym?Ek|3!G7ny;)L? lƠm딌ㅃP'ݳtպ f$eD#|tv 161_7~Yk"Z88r83Yzgs/e2xM4lߞ 3<2j?Gl!NQmmE{3z9RO* #˯5W_O@?')3N4r!B8Sܵ3۳4b{ݏm^rk瀷9N`8UhűD\@r xƩ{xxcs~~f}9ޙه6iȑf4{>}sfkh.|5ėLø2ۚ37:+F ]bi[So܃מIՑ=rn"E*z8Gv(mrS,U֔+ΓZWזOt7_fv2-}g6z64!D*4x6M\dvF?џ^wx{F~šd8dٖAk&l&h J:JasZ8r,]7xa%`iG[tL2 uJ@׿K+>BI Ҟ?EGBFx~\I%5~6!7Bi"% BhF*[wXRP*+76?zŗ _ϭXEmMޑI%.N&:P% *@%C+ݕ-c Db  JL"m[UerG:_NÆaaA mP$8[ q~o?.<~2*!H$C*SSgVtbمCs}BA:![^TI)Za( ;ȷ<~zDi-]1"1(8r2ď\$Q֔rEwєgٗL_A+~*Wggx$DEC1"5P9}Oಯ.X֖I5a+F:epR=B!tl*FxwqqJz3)(a(t N<1ǛzkQZ@>Gh0D)gLZ!iǿ霎4m#d[b|WoaQRaokChYCԔM4 ]?٭ >h"?~S6Szp>v\J=}tۙ! &'dNV9somB_&͎j|wPdbBkTy9-!n_z.R JXqkZ 62VrNQ,ej匶!D0M|_av-+ĘWM,r덋LT=B^^#:&J , ~R8uVJvڇr8q #zrrZݢX.rqڙyau7bS8>òT]&: rMk[aἅ,.n)>OJe oh]O3R(h~oY:\+UD ƚH=ߜ*ٸE2F*U{h w~5߸R\5PN8)9OK[`j廖ScM_dln:.$4( lgæ/8=sCMPF2 '&1B+^]FmpX{Ck̐@U&N` 9IrMOxP=NNn"j"IJg4d-SJaW( &k 4}RAo.RΎ8Dƻds+l{TlWWn8{`Q`BkLEYi=kZpݭjO=T/VicUnd.~Ӕ,C5ߟƶݺr55k׷FJ HTwLU?< q̲x3iT͊էOsdx^jCqE"J_s7ٚYu=C)0Fî\u0-A:$0O‘u1B( [|Bk"jILd">~FrŮZTCPdg{Tj56 *LD9f47TM&N{O֝<)j5V *mQ̪dM w0& â\u`*hiPN,ɲ󍏯\@[B٦-FNlQg!<9ڙԔ_CEWf)9g {TM[BJK:\q{e𬅥V,PNkFm0"w>04oSqK+[fn0Zm.ADJ̰Oa"MͰa(V>7`a'Oֿ~[ϮP tC'[= 7(^|յæi'\i 3&Nf"Ql+/AKoO=G|rfjÎ]BZKG "RMd@5qʋSpeYV>rWRJԚr&påB;H~]5UIPN_tJS&XU,58v=v#/nW(0i9懏i]a^(m20֠=LwY*RBr7DR+zsƕ[}yaP\cPϙ.hÕ*6L."2jP+x7?}e?ڄ'pS7 #LLVKe !,kbc"0Kk'ze:T2p8#^*J[/ l;ē!O"LUKK6}]¨XaN.P@pqxϼ\Ĵgm[a6}` w"G^z򾧶~ Rz;{S ;eW|m,O1TDZD j2-_ѻ_k(S(W0R ޻K0CtK _xZb)ٷ{^ZvӋ4:f @q{ϼE]niIH +V w^{w?x[lqrk1S8ܱB{.xe-HG UQVϟ{w*!OO2NKR];ӳΚ;L:\8xqO?TKm00N6Nן$Z`N$z>NOg727~7WIENDB`site_pro/images/icons/55x55_2/rss.png0000644075506000000310000001014511721527042015543 0ustar namedPNG  IHDR77F,IDAThi]gy}l8&6! !@#{ UKABRJDJE&xmBLb/ؙx>ssO?sxxGzuν\<,OP= ueў5']5?0Ų[~g?|;']V~{aۇ\˦AQTTn-/>z{[s{:[hњP(T1B5aSu}\#t'W>w=3~|ұm@)R('(@1MhM/cJØe.91;+>M[m-,ޚ-ߑJ:1; #B}U|PXn$[~xLG[ǷXB#ve3ɦlPJŦ$DHл kp'9'BI_#_R]oܿ?`y.`G{cm|.mYɉHJ *fFbl p?Aϳ)d) QH}lKu}L:]4؉u|5MZU7;A%8 m<$0Љ$~_2p_ts:h/kgVDk|?u -E&iq, A:ZlR"fR  BX|o ‘6N.,>, &[Ο5 ̏9#V KzAFBⲅ, "8y,#BDхL'V,m,h!sTxӬMS:VufPg>-ط~Ԫn~oi0Y!JYY˟~7F0b0"2siTT줍(;taHӂH#jm,AXW @MK"Js*/s5 ̚&@#-v IppwF!HjŁӺGkqb+VjdJu"vJ`"x?zp;nԫH胑3Âl'巒=XmKPHcEGn֗21gN NEDJ)[E!5W߰`틘#sDXwF ߷}v}XS7C*WW S#r<7/3°z|ωPְ i*l-fpSS\5s=[ie^ug"o]#r=6} *tyF5`F #C.#6~7,(T<(4s@~D(1͕\v=*mnTOn\M1\Q)T W{ԯӡaz£V̊[ɿ6WnY@s Q7GԷ ݿ AHĉ?g[_+vEDU0_DtH0FP\B2,D܀W_yD9ՈRd^,.Aй~%P /? xViZH"j&r`%m'jvyNrnw^NOʶOS1ι6t /#g1'Һo$rH"8a8'Qg%ϛQ5ghTYg<~ ^"p2n(JQ S˂GFFLx%LmᜪDf_ݵ!vpODMzS-WQgϥ"MYԜ+(W=d; }!I}W[ Qy'܅9ta/]$ZJuR׾pKYXFM#"w s)/];Ŷ7׿Lʡ;O!<-) ;ЇcAPCthz|Z6L7Ũ8Y+ NRۻ Y O0};/^~/;{pc_\\kH#ZeG ]x^YSv!qtO7644 |;XJmi};t:`W1g~@\])Oim>eCx>:.=Nōf.B!8̣s lQBWԼ W[{ȿ>R>:CwEJ%~H`gU+MFˌN,}g~;PbvϠ, Bϥ189^`W<;?|-_4;~5wL'ւzC.`Z@. WB4>U8uGhn<쥲k4{j}=j^(̇sI2^i -"`&A|&\92Wa04Pc/"% w6 QáЛǏ?=.nk|+V 8Wk>_w2"|>CEzXS;HԘKֱLXs7zkjiElrhx!I {|`ЍoyW a7YU]x!57O1BppˈF߈jmk@+0j^ !@”W*,EDFQSo:un/*?8&[|yh+jH.-gQC=5u JI;b(Olm":='seޝݵP`DcL&LֵK%̫KP1'Im-^A us=(JIC_{ |R#b fd6|e}$<"y Wޗyecu"ƀ@ZX^;]\yB.X]Q7!AeJ6:k #do?>fږ ܹ0jo bGIǃN9j=UVs'G9q-RՔxǟ(G=k-@${ɬw՚pIJNm,h^|KV!` ?qOlnm 6˿'B?}O;)y`q )~|] vkrL|i\l0?J{2p"7֭:% -m8z*$"%4f }Dޭէ_uP8.(st|̪R1|>h 3Ux:vq6 f cژnst.$FyxYyok89=* Fl͚=\~n{s/XLޟ-_/ :?X% K mBXΝw6w|dd*h.oGymSfsi߬pI_гcR8,T ޮ9ZTA*bkBZ@OxR %E|< 4٬ܔn;AqWY!*}>22#*^+tV*~'aE5%hmLn71@p]<a<ژ $8cKBtfʹL454kuK#7L)Z:XZwHdRDS)wU2~Yc/kl^  6-O=Ad_:|Nmm +bĘ':55b8 푖ȣ2]OC̞a σO!]`2 Ұ@:{Po\N_i1Ķ?;tLgyp> ]vr\+P ^8'{M58(cxy}|br8=KH7裛$nѶll`_pޅy m\# %K1bbt6uvDb (Ñ- VT]W8ҩ/h$R쌴nh~k䣶Op`s*ಋ_o?:лk^A݃.䭦^4i~uC[~p ';aj g~u}CM1?8\#xP4N"Z?yi=n_əQTXeq("hޮxf| `-{+y3CPb{6ɫ}w y` fP tj?ae* ۸v3zɕ1D[7|ev?nُM|Q^6|"^1x+0@>ܡ1EkNFO|',V4Mo5gO|a8 w\u>/Lmí%,=[k6zjrHfFZz/< qd2т/ %i<`籽 7ZSV\•_F{7m=ɾ=*_L c `o:夊e PU39Z rƿy8#/KQzͱ峑؈xԪ4qK_|U#[*KxIENDB`site_pro/images/icons/55x55_2/stumbleupon.png0000644075506000000310000000770411721527070017321 0ustar namedPNG  IHDR77FIDAThŚypՙHI#ɲeB1>رa/`p Dzn$$YjJ݂", (Z`7K8R601–|[F=3ƒTtSwoFWjw -RgLlVz9L͕h\4cE@&"g\pZiehED "Ojޘ9o#x\ݸ/}L*E?1__/9?} 'P(Ȍ̘v}tY&vllh~Rpg}w̤q1oM3_uAE*x*ߙ4.A;/T6m8!#̩>f׉hqUPY NA˩I+H 岈l睲侾A˱²M,Ĵ-LĴM \=o0>61{P6ٗ[4uc/ܻ.ϝwʒkI6SUt@l4hKuw[>/4O *fR8!k4SyM_YT13(pąxp _?1R^l({ҷ9N Dj#7^XG_;]L(ԊiТq2tX4v.FkN~zYɑƜ2hD)D#GђlbZL,^1 -1u{JV,aA|Bcճ[̉s(~.#WKa7nf{Zwq,qs̢'_Lm/+V㊊YZ "|m*;9.d5t%LG7jrD p1}D7$ lR Ema-+*dAK;׎[m7w@+5-B@Qp3Rx` Ѡ૩RP_=%/dsFYGOz?Cԕ79pf&ko: @MrmL٘){YhypU8ue(7- 4qoОn+ldbɸrW$dኌ | 2{DLg?Y5]~LMZ:=#’.%yj'5"@CC~ԗ՛[yP/ݑ9Wp-LyrRC}PQ0̃nqW^OQ橝r4~,BM'PɦIos"t&#0wp,SxY>'f)QQ\[]YbEU,+]^.WRyfPڵn&)/ f+K:&R- ȑVV=QaphN5іneWpY@i͚qƱ.ю$V !B*Rl58EZ%S9{YLakrKfqYLDӟtvړ)7CA8`d^be($bDG nhs^k@hx8-S};A[pW:%q-2_]r fo5J '#\JlfK BX=(@[WIM&<* 7y6G3EŋQW::{C2!4~Up37{[L]&~D8[bY$׎HIQ {pp?#_Pė&D mv6%3T( 2=(a嘕Sq`%Z7w6Vw]ۍ03$(02+D̜0Nҧ{EeRl@RMw_㼪VG( Ut-hႚBz=YunX(ZhlMݾ`Ԧ49I]~$OxpyC%g ґJMoyxM-ӲpA\]-X;A-x-nѶm'8˕Ѹ~kKN9@^?W93zӚ5 #4~;{c@+yڰ){m,a*;z9ҸOLk)]Z_¯q^hDT iZk9Wq!l_/c0\:2?sxFlv)w'q >mOg"*)oï|чqUq;90A`B 4i%\rIR#owl8Ky$v2!='~߾A ODL[4*U}ks?ې7,dHKk[NZkGqհawu oo{qs*h0hߦ7>_=D6twrě+ ʹ61’!v4NzOyj{㸙G7#2" z1G^QF&+RU;HITndmt7o'nvdLޢAErF?'W#hcltpm(.InM&I=u, 8FRðp>SSIba$`r| G@5IENDB`site_pro/images/icons/40x40/0000755075506000000310000000000011734665234014002 5ustar namedsite_pro/images/icons/40x40/lastfm_small.png0000644075506000000310000000552111721525240017155 0ustar namedPNG  IHDR'(} IDATX{lTם?|=$`lhx$ئ Z%-J @imB*RU`Qi:PjQ:dbc<6̌c{<3׾c#tf<|wO ,G1Mm#fy#RĊz )fBCio~Hyc)懽!dQ8(fU˪+W._pp8{{!`VY :8Sà ,e555,D"^ L.|p?^}懼n Nȵȏv>{W7n^RR2F@Ӏ/~ '|omyG{h4xꤣCC  9@$Bt|MS~H JS<@n۾mi70iP@H$89F*Vu2v׿߾)̵ur2@Բ$@uU30P?W۟οj8͹SϜTaPj]'5 SIǎa͞5w.f }Ŋ|>Yk@gvԲdʑ|L2oWxWE1ٳxs3!M#h,Ip_90`&'246Fƍ>8?uD<{U~۲tY/ f8sIb&aMCed!O# $ Y4!eUzZ[pZ$I4Қ[<J//G-Kfr뙝nz ͒2 BItT M˗f,60??s%&,`O=:sgk펁8ou*IB5Atw{Ȁ*!EuzgZ7Gͺ'\aL:BZ B@O>Xii靣wuq݃U Qp\).>6-( m\jN8~\@!2N'?^˦Rti2DEQ;$!m fxs !BZA/ aB *$!6St]'՟*8.W==NhߵRUo~ݳ%/H0xsP]Pƞ O>R( yEA$ϟ'H]Aw/p壱Wu{h|k˿%VmL wt0OΧ( 8 X rtkd {pXl|mwneYY٭BM6vjkWWWӟ L_y tDgY'z}zL-U p>@| /N CO[Ѽ)4~X߼l__P 7ZA~8ByP,hIENDB`site_pro/images/icons/40x40/technorati_small.png0000644075506000000310000000545011721525206020032 0ustar namedPNG  IHDR'(} IDATXŘ}p}?s:aIX'Y 1>҂D:muRMNmOjw܉Cd ~i;!$&$gĎS$ #L0zq&3}f~=gOiEr.%ǔ+Ԓoc+&sC{- c+s7P Z 9V%ͩ,*]k%K3wֲpa{<o4- L&'S?~v+Nya WRn0/P;֯+/%J twz[t蜀p{\c{lY̋ŚL ?>@w g f9yV~?յ~J%_湞3>I@ db wv?H@ _?q-yԙ)c1QMbO䰌D6 4a[@ $dYFId YCCEsa<8@ѩx,fXL8335Y429px/C I |i $a;@S]&,ˤڡT*5+Tub[xn. gaJPA Kp=,lKX9y}U0MK9pEλ?6޺m;^AQ*dkhZ<5Gx,H bȎvpuqF࿝IQqx,~}~S$)^D$J~?kk0ofuXѴv%$%1)E*낰&,HjD4_H$cG;[H4zXj =oAR%$Jg3k47uaƕJ__5//` $CB2%^9 9@,[ث\\8 3t&a H43T q?+$ rQܶ)/Jn 84|`0>NsaJ}ry@ɿbkpVܳE#,Lu^xn1ʅ_3X L( Fޏ5Io^^5It]Gu.O_FH~ t)͟N } EP$cH O LgKRz=,qy2n,7yx$ B|@Uŧ0H0(`~y|'<5lEJV S>_['m%0ø}油Sa_:?u̮@$  |ȥӯ[cӴZqK^;8;t6#fERAhvLQ+36v::8R#5UCt0b?h/zZQ 3u:h1{^sTJ]ݽu#MӘKg(EzFeK-߮'>8uh̙ҿ,n]UPnTG*\1ǫ{N~.KQ1H>G;nֶ[ݳ;_#WT{ϯS4MT+|err{|OuumiZ}==M\pX8LmZ͡PhB0N/RCCo޵s}X |a)?t=T+Z j?\u@ W{ἐ.([`,}]IENDB`site_pro/images/icons/40x40/stumbleupon_small.png0000644075506000000310000000602311721525166020251 0ustar namedPNG  IHDR'(} IDATXkp\yMZmYF|2+撐عLM`P:fIːҐP$n2B`C\h1v5%@n jKݕsYe&3٣3<{\ttJK)Jx`^ȝ1pNy[|0h cΩ0A/8)\H-P`\ y `<|R/kP+  {&iڰϟM&EQ4qRf}Gy_x7͎OXVRMwoy|>߷W/s?>`(1T _m =(4@^Vxw}替ȴMzn9ّT 5B[]ܴ&v-EW oO~o_A>:B` 9e~ӟ<`//ZU^"[l܇Hh(!Iaf?fog Q}yS@. DC8O暯/{d/oyccĦfhN64EB>bYR(lyb|}A#5xr: p6ǟV3x2n~|::Ls D#G!DD#tKZH$2eʕsεvxX f| t`hQi׬]rL\fω<IΚF{$(}=|Kj#@UATbFt*VZOghhXvjD moD׬[XHstl˵mAΔ)Iړ3h @H1<#oP0(B`ht/;"Bk֭]\5 +W/㿣/Oemxיԁ*\F1=l PeUшF477l߽^3+W޿XDvٹ|lvhT2Ń ]+ !%=5qKg|pd YFi>-?y|\>DS-֕[vW?w\I:`jq:WD1K!@ MfVseSkMl$IJ&f0 2#ܹk0Ȼpin,`X7".q+sa='ٴ$f`:"$2~f6-ք,+ U?&kgqpB 2XHpCtXl\ضՙ@ dEnJ:7fQ!Suǟ)*^!$$z]xg%dl$t>pT*PhFo1OX4#âzs (O$$I"G( e -> "$)>c&BĴ({W^ Pdy84#jpQZ)$)Q&%) i`6HIlb\Bu\\nvW%IE TSLH FEdf;r纹FzY%\0%hy1HDe^Y|\G+$I`yj.TM-(ʸFf< 9t}ͩO1 Xz#Bpggfۈi1$IbX_"Վs?r,\նht.;sUM'kjMI$1aO0GcDt@tx=|ӛIFT,PÉCG`8dž _E'l|СgVZ4@i{y9X9E4CQu, !(i0 S=^>2xmR,qc08˻ȨOwϞgX2:RX9$K'M bŗ1b* e, ɳ\۪&ebV+XVfBRMLcW29JOc$Htbw!&㻲],hT/_مUE`:?)y5wǶLh\.YAAS5͝;}0Tpt)>=2cfy^W aT}3r}XBY纸ظc[VrLX 4ʋ~aAOw3޲ 8_"r~Ð=,;:;N_R QJUeRT)U*K%*P쇣'YOIF񓌡s_> ױZXM=NVN H?.]ڙ޴6B<6 2H,^u=?fgƞ_EQs{z9K5H'j*t8S}cǎg{jPAA=y P`tۮƍniih~򖭇jPA)N92_A Wrn_ >ߨd8N[_ڲmΝ'8߼il]\.@hp}-_h괩3cxZeujX {߾[l9Rq2I aK9YukY X!=Vz-?'|Ǝu/ k$"5\{*\VIENDB`site_pro/images/icons/40x40/delicious_small.png0000644075506000000310000000460711721525226017657 0ustar namedPNG  IHDR'(} NIDATXkl[>>q.K6u lmچcXhҀ/ vQ&IӦ *P5`!@% 0ilvl>kWzc^pm PojD̬}q=K@킐 I`20ݽ & u <8P~ ~koXѳ hl&sfP&Ϝ;ܳώy R/@T_ /]nZHl Kcrv?‹ڇ@5,NV+De?ck֮օjGݻ_q #A 퓓<:0Vn۾7`RӧO3==eG|~"p9>)|>>M8a` ]w}k]]wys!)<ǂ@ V,93‘0p (^/W},@7;v+c~׶0j^@s"@mۮ80ȑxU%KXhH`0hSOSW vC'˖8b ـ:hTMynڶ,'O$8ߏ(R'|=: j{ǪU,]ڌi,_|]>;xر+% 卶2߮bfdi>3ZYD|xSUJ :ŲB{_9rdl6K.S&/7f2i24333C!Z5ji#fB.hY TL&x׏ Rkr oJҤRi9hmk# :*>]Z.C>BAn's 1u~$)|D`+T e8H`M zQǃJ\3' Hh2 #P_l& &Ihmm% KsL)BP J133䀢;zȄgdd2ɺ W6RNP$rErzE65haR)JTJʛ8x0Ms|| PGqth@ i(J9mi èBPuWz\׊+)çɤX\*=X^(p--5{YP Lxj+P;Gy{tn˲Kb(GQnsTUEӴ>Uʹ`B֠<E((m,ţ<*tMޣnib(総p˲0M0( yfg<-oQ`Uӱm9רs^Uū4B'7q۶,˪@eJǎ^twwvp2)ة'AJzjBaxx͗W*0 0(JbXǙHRIp]Uɉ6upsss5fTUU#ƚ3drCca;' rKur9|CW!j  6U4ك= p8L?[n(81U8a0Ǐ=Mmh5ZI<)|q:_VXѳbH$b6thCCCRUVH$*sSv>k׋@s3zzÇMtvu|>Xf rp7n\188HOOO%@N&c? p׷wvv|>ٲe Hq<ꛪi&+`ɳgwϽӮj"4BÌX?Ѓ[6neػw/T2!:---M~m·~)Wr/rj/5C@oadkO/驿?nǎ7&5bNBμjs۶Wﴶ%.jfffbo>Uu W2h{~{WL$.b^EQ#ݹlL0TɉgǏ?C%,5*W4ҵ*ʦ_/&\_ 7%|juA63b0.TQ @r)^cmIENDB`site_pro/images/icons/40x40/myspace_small.png0000644075506000000310000000546111721525256017342 0ustar namedPNG  IHDR'(} IDATX{pT?}f DGTmZmv:PcǢ"vvBPm!y@"h ɲl6q,ߜ|w~Om=J@ٞ'm.dsS Wc+Veȓ ϕ U+zcxjvΜ9K'Ojp8eFbhhX,fk׹,[<*|e"@̳įΟ{uUUıT }@ `n T\tKpT*[&9غf=<0\>XH>r3gyepw_]e1pthi ).<{sZP`@?}~H{sZ,$o97};wƍk5;ynltf !UqpY* &nbѰVܽk[p90f Kgw-TlW׭_hh먡8RӑRAWq0LR!qw\Κ6 رsnу@&`+dR z|;'74mUɗ"$z$(R ,c!HEEQCH-B$xk>qiNT{=nZ>HdF/X-qDZy=}gA  l{G  TC8BcϨI4ql'ןc̎@PX=V&͟lvlvwXZU3c)m07DJS<y/'"N%L<ƀ?.+ X5&.^eC}uTLҗq!%Bj؎OpAAP@ReoΎl̦J&@o^˲|6t@C#H/ CUA_ku<7ι-1N9Xp!A*E#;l:9Jyƍ77\ {kDЧϘѐ/' y%?1Z!(kVƢ"1ɖ ϬƲlۓ皋T_O" ܜf֭pR HhaڑejM4MJ%qFS^$rcۜ`ۮ^Ξ^^ZfԖD"a.p@*CE̝wMﶵn!84p/UoeD૛i?OI~zq<`{a'8hl7{?sj~f0 WX,6iqG5*~ntH:J=HCx(R1j( BwΒixJ&OjhŲmŲ,zZnXl&ף*gHEMjc%mQ,FHU:;mYų _m)M&E@ƢgRL.R<|Eǁ[<w#VHפk a5+A iYx(6@a<݇K T#Oe\W;iM&$PqP̦( }Cpt0E) $"ùp8L8.zKXBsDy `>_ț}iQ9e2;$?~d=voD"D"&V A@]g*?<bsVO&KXO*XANKD"a~cǶ(Bh4J"fpT@@*(p,sprkP5%,~h4J4%?,gY!&$w;[ҋ\:&}%JXUT-:4Sfs[ۃֶn[}Ŧ .PWW7%ҙu_yoo̰+BpVӿH0{JPH'ᶧ/2Y]XyHzZe---_ِ׳*C6}mEQojk{Ww,nޚatjwvwٕ`}/^`i]EؖE.vʤ熩ucYVqև\g`u/Yrd2ruttVcj 6 W ݺt /Yx'Qe,c_u/PM2sćѮ?M1cf4MimϫVmcd>w* V7T*f% KZ }8ppe H,VcUѿ9%@6JIENDB`site_pro/images/icons/40x40/youtube_small.png0000644075506000000310000000554711721525304017374 0ustar namedPNG  IHDR'(} .IDATX͘}lTWvy{`۸+ء "`4%v7Tl7Ѯ6U#V+U[)RUxUv7j5Q٘hQ,! @ml x3޻̼`6;o=99 Q+_UCfGXe<5Ȫ3*`n G5,T3;"Y¹(W3pP (̎8-kp|Сm6nP4Mڶ]*,,džG/W.͊Kj#=>}]{[[[*\ ,RJq㷿=}G^>|ȺPVpws"?֯?wӘ7_Y Uy`-X?*cxxqr,i:PF6mDkkm'{f XK\`>%Pgg>ga)%gΜ'm@ @0k(RH.#ϣ( ;w MӪǟ;*t@ H|ȡ[wy~[uuqB0a:", L9nMO*g˒ǟyb1pJⱘhQ~poٶm\xljbxt:7o&Lr :;; U B#B0Pir à۶׬][8{W*fvE4@wY?;=eXɥKinip8[oŦM8v`;v`>00 ׋P5~<X,e477w[50800 *~j/ 4hnnf444'|ׯ_sy֮]ÇiooW_eΝx^t]`xh؊c&--O= klUT-2?H$455H$FB!v `￟w}UU9}4Νc``˲"FI$477S__χ>d~>M&EQx,^S{|>NI\k444ljD"~?;v`۶mhƵkxx<|>`H$B<ʕ+8:::;RKL&455BUz455؈_R>6{^l4MbLqSdj9ycT*E*bjj G4!W]u4M*vd2 @[[###hՀ ĢQdGgGg}n˹}:ff%N U0ǃY( }v^|Ex^y*Pp8L&i_;H)-P /ʕ+BsHGG+W矧T*zjEAU*Ҷm,mwSKg4*_ٶ͖-[[F^޽{ɖ;:6{<reqm)Sw Wti`CMJC8Lr>M@^ RRlA!R"b3r| vrGzW&׭ %y!HHΥ+ ]Ŕ].|X{0(؂Y[id ɂibaσLibuvPZ||_nU# {Ì-A!|7bߜdinᜊ<;40cχ#v-q˶mmbٲɅC|Udw3ֿg3/0y}["ЃD} GХ)9NmlR.n7T #.+TTT|WQP  J -)a3K^gY\w엿*SRHryxx}ÆX"ب:Մ6ss2 ,Hɂ$'$i)emm-J&oR_5@<?.vtv6A];7>!W, +6sfF4OiZU-~{} X,T`^wUv7n/1ucGG1YBѽxBAbmm_TΝ=kU-|cd#l}^$iM]t:=}|4K3txֽVu-ُ,:wx\0ޱ~Dba?gJ[n\rbݗb@+M].v IENDB`site_pro/images/icons/40x40/twitter_small.png0000644075506000000310000000543111721525176017401 0ustar namedPNG  IHDR'(} IDATX}uz]ۻ5 1.AJ4MHUEBԪ"?j*E"mҤ%iUR*%CN ik?^o73̼ٷJG3;;ߜ{=mW]O%?OP*eZQI+pk@ YC G*(wMd=5r`y o- jvݙ=9{رwgzL'垍 \7P󮻶ܷ{ύV޷Z׏̼7uI';W*@oqV۱zl|񥧾o r&yU#uJ@_~≇ώ+BM7A@s]gҩgʷ W5VP o=65=}]c xrڀ-e}Au8.Uk6OSP E!v\,.2~z/srmlᆻE7j艁Fׂ@Zկ#۷o c0᥷0Ln:1.0&Ba@Il hv\h4 kA3yXzC?  ̹^B0B5Xn D!L 2tؤ@Qu]As[JI!"Ԕ92dp׊ْ^ȟ}1j?sx;R-WH  01T0#@@4ccA|IMG>{_?y|.ҵ Z~?ztz},j_b21P[ƋLv. 6:LfA`0JJ Q&ץQ.W^~z} ?/[n"nKel"#Da`%/U)uL+8",@"ӫ(\' 8<@Rr⨲m , _B.1($T*j5,ˢ2H({g` ӥO7q"\,,,Pս3w+9ܱknnP+8ӽ.ĘQJ☩2K'hR v#KI lBʣ3w,i;|.f+zk&`;ڲ"l 1Or{vru[yLE<Lv]tuCQ&Hc6ڲ0#c{$U miVbH~lJZL-o%-7Pg$|RT](m``0"1iK1Wzq+TAysO76:}0 1(4_dFYJ8QBk% 0 $]LQv?Iʖb \[ JStI.dY$!:D (ePF\7DK8KuDi@Ѝc64J '@ uqՊ(Dl(fdX%#hCZOR4oL_E~vB+ ?}i=ϧ)PfFЉ, E(>^{-Q癛;GO׼`dT0sg2fqt pw}wGkk./TktcC`kE,>ZFV1F PDA+2   {"pC^l%Zph'ivjl햹9ZUw/NJ8?y# 墌3{r۶`.X-1iX!F"ccm5Wl!VR/U G~J׳8:3ϝ{,C޼#>^*v $V("Ĝ,KWg`: 3)|BL$ёﲲI> ][?V %A^H"R`dh!W)\-Z*A`Q G+?xdE2@]qk7{G`ʢ@RE"X*Я޻Jpu8Iѵ`2{P UZkFr8_wWYRu&It,[ôupR%>~nReg$>MLZ}.'B0+HKKrys:霁eDR BϚ.M 3aI9ygеaeYǏ>]k{;;:wz繼p'?:*u`0!me&5 A"3PFg^k_"_Vdjs(—}q*|5$VRGH 0C@ut-P),+@j͐acv|%B׭[9r:\oȃe5߽qzq(&9s쌎4L=PC] EZ+|< e<%0$ tJ ^=ܶOڴ@7Kss9ŜV{yRD̩q)ݐ iv (k&fIMӱvZR~ 2QQ%ףpeƳ/E 4] 5r 3ڢk.КBPqqeP0bɕ?~WRi蚆:Bk5_X| U5n& 3n$#_a|zǝ 4ٔBDc-VGBa WP %|+S a'Ef+Y^] =C16 $H/Mdqqb*@"] Q)!%x>Ge#X۸)% ܒK[8t\5*\e&4f;1+\'VHbQPx϶ml*535w!|dx_|p}caʯqmk+׶# v0W@-l#mh6>qJźBEauۗL&I&$BHZU>ZKoPP+c3'5*jWqU[K mD9Ң9p\םB R)R4%F \(;G?-yWxۘY@RBqI \#H`+o_cp%gnIìvECs fa.FIz\GFLX:}7*\5|#orCLf=Mxs~j:zᵓOVץ~z Y\!}sX,rp5]H4a۶ۓɤ&WӜʙCA+*P7^q|X>:273aIlfxh蹟?20.VE:ř醆[v& V[dd+ګzk&/61w};$HPZ(  ML$8qkck62K5s}=" )j>Ξ͏Xen%,]+D@:nkk|a|66݅˔"+Ɇ;ٵмja`s}ppVoxW,)=,oŮ=t:T /2V8EٛS4iА)վw=oY;.rxw)>G|[0ZA&'&_~}Y c|V+7=jOD4}P׺!|@S]{7m~\|K<=$P:ɥšR@lnaZ:\׭?zt箧Hqw],~=~,We šu$[հ\* xϞR,I-/[~ Ld9v`\ M`HpWA5ױ;I/|o}`Ξ 4!,jqj,KgFOIwAgA{N[NkNia:43&UH`u[[&^o?(,{uF so/}qWlf/_1st2hձ;4m,B5 )I-iNKҶFB '"j̦<믽6GV"`ŞT:P͏ʣ_ǬUfn#zIEδz8Vy$;z)Gn#bZ _v'evw*һƠ[òZ RJ&2&M"@ a  aIc_kR:;;K/Q[D"qUe2gAѵR$ .BC1E)44]h؝:23PqU% HŶ@"}_ʝ̇k,_NLF"z̰{1.ǫ_!@x0}:۷98W" $3$~s&Mj$C )iM7T3}|?yBhf@1\o soSՋηֶJҗ)`".iH t+ ~!ŢMjq{=sySB#D 4D)9<=m,RkN][,233CcyR]VFY 5@R9q(omV$/!3ՐBD9 R9 =v)7(-4mMTT*al͈|L7E3E-=00fA@P+LǛR f)Oݦk凋2\s_!'Q<ɕ[0++ Y6 +/_nS!:eMv%LS M: c.O[~H]Llydŭx54ک4iy !jk:W<ʛ  Vʻhc\8 k5 BʋuM!Dm9Ry41L9#!^!sbATџ0 0 txI*^!!Dh'+$bV DJC&@ ]|=_;nS=|vrGYko]B> ;K!Mf:;D,TCι`CC L7w j>*@ɵ[~0~9"@"#QL\;̗=AYǙnnHn()MF$ZS|5  Sg›x)=I,`*9= Iȧњ$I4M-b 2V|n_ DQ Zs GzH;BovT'wd>U\]%%hll`|l9<ew}ekHp uRS DŽ_/gYkrw A(+)m44oAL\|CԀSL&C&ɯ⶯Lx1y8>j.sF]Iwd0 c}MKŶ 8~Xkb6'&f6T B\AU5MC0ƗUq6aH$&uhNX; lpuzŭ^y+6l6 Jb\)koFU&'"x/r Lc\g|0 ~ LӑHj\RTunvzqo:MK1Bd͋K'O={%|s>ΧC{%4#,JعsW^qc}1U.}衝;vsI.2<: )"  2 z:3qw/# kpH4g{8cUԑ*4 va:.EuVw-MI=YL_0ƛT:\+M&; qд]4!5 ]hJ5*i Ŕ2>rrLErёÇST®^M]2<< @Ϣ8[; ZzT Du0R8.34Ƈ?bXT*X819,; KI ^<,]׭LG_MPa\yJ"Mϟa`6N~ws]0Ι*nyjڳ?*'e9J+]w3ӷ\4L$?xMEgHI4z"bIaH]uۋ `Qw)j~D@XT.|g̓kƵ/鳱8Zk:?EnTxj$ r|ȴ,LˢTDkumo/\⦋Ҥn*`fcݾM!e!,pz1ܿ096yXM c>sx|kNr,X9۩la\kPv95mMFXGa 8N;ܖ - w#. ETMpX󣵄JFA8iqFGF?!k :Nch;!@N/D0zjAӂUJE~N၁-$ʖMקR(J1U*r#3F0 ?C*~Lm[R){D-kѣ=͐f8vhaLFR”Oqg1Y(y~T+`a|:{{4^y6&:r8{kE)*^DQ=)PJ5DJe/K@Ɂ}fu uMߥ K*P,F>޳\.G.ɡcAH(E?$}&N!rrd2ʶwzXr kΣ+V0.Z¶-t)a͜~Ї0԰m ۶x}kہq5/A;oڵ]=-5MS*!ŗ!`:ؑiilߺG~xtJOU=ڸ~Î//YrCJl]`kM?HHiV{E !{>Eu S~P0}TsMtz3ZBhak3)TȾuY=dvD-hi}57r@s_fq_fKc?quL* ־s$d n[u9+?{vK*apԩ~׷hl5fp @hl%[K0/ٳ;w8c4v3 _ٶyژЦlJۮɔоom6$ auԓFu_Iڶ9R_>[QkvߣIENDB`site_pro/images/icons/40x40/Thumbs.db0000644075506000000310000015200011730433520015534 0ustar namedࡱ>   '& !"#$%(29)*+,-./013@45678:I;<=>?AMBCDEFGHJKLNZOPQRSTUVWXY[\]_`abcdefghRoot Entry+~12^3.  !"#$%&'()*+,-/0123456789:;<=>?@ABCDEGHIJKLMNOPQRSTUVWXYZ[\^_`abcdefghijklmnoprstuvwxyz{|}~ JFIF``C     C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?I5IX(< }CRt-sq;mLJ,xK[{[(2H3GPxQ׌&4m!CecW#c@=pv-~=82ݡr}8bJt]LjaUNcc_XxFцx:V;8廷t!sq71N#PUzoMx/~Ufz텵nNF ;;}ktqCh/QHXfI<’y8Wm⅞+nlv~L޷zt7aKdZx-B/s󯂼4|[Xx=:.eiwKH䳨 '93:\]TϽ|&YUc Q+V~Vg/|huM{o}cIdH~  uܾJϤZgi ک1ZIڣ?l+rxn,h,g6 %6߽x=ow⶝xct!'#-L!%˅\ (TIZ}C<&s6WK%eihwA~Z{X)m$>F}W˿ i'%d}@ ? ?Z+gFXxP96 Z!ɵ2qR't<Wk2L %č.W{ilXYۀ"$h=^QE%V7^nVgӴ8( (? RJFIF``C     C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?CtfW 5!kJ >W=KǰNs4cJg)ْT_OBJKm^ei~M3(}BrcT$ vڶrԬ%"G${?JK#ñP[bvcHP۽ܷ^eLh8` w[.6)OPYc Q^Eg;9XP0۸ E|!|m|@'G=HLڌn~FF8R : z B ؖ7]~msn#Ȍ27u>*]e|֧Oϛ=f(FOGqӜ;Oފ~!xK֣$ /|ٷf{~˿a#h\nZdǰ~Z 7wsB5u n>~q^G-wmo<.Ko4e6SdF>-^|<[dk ܟ.{)Ie,'Gkd4OxXN%窩aʞOoSF;VHA'`&2Tion,I&zk><eg6(`bw"nUݴB8'qˆܐxQcc.Sp_ 5m Io6\{u ,u7d2]q&*YZ8愣w)SYM+@4\}4ټ+r[>DbFIIv :GA6>qΰ},eW}0R5f-+~ |ּMppkA%,=52W֪j1ׯGR5A9M%thbJ^?+ܾ:š;Zv21 8Q_I6#X=kWխ9P0"YUVY:ӑt RMt68M)g jzG]ૻیqE:dw^QZԭVw0$#,c@QEbt JFIF``C     C   4F5]6q7('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?DյhtfW &[ZKzF׷҈^Os>&/mq$}w;?>*k|B+&j߹Ntg#{ 1j.[a쏹~:>[AC@8Uk±=m>k4^iIm(.m޿24>)+'|9s63_yOm1׊>|r~jiW=˚sm X3pFN2+d09wZ~|>jOf~YG{ #4W|$S XbCOlt0]3f>|ͭCo${C~~? U7R Fc?ο6>3|7-zUgLBmP8=*}9иV)+y4ƼUլϮ<]?7{hg;Kk$ảo\I_&i:ݞ-w^-rxDxqt򹘝\~a<~>"&NݱnBLn@9WWyIou}xQ1DrNJOQXsK|; =b]-<:oKC Lha;;sڽkuPys$IW/Tm>M[O>^UXT1\{?uy9uk’_|^oٷ!GF77wq^n~jOk>fvWЇW@V~\ǥU?le!_z1\R"3O>}_꒕t<7w[bfkqGʊ v7,s#HE|´V=P h;{ CIv:sQG{QE (5b# wօ Uյ'U`)sEpI-+V8(@ JFIF``C     C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?DյhtfW &YֲK#^~\ů0KH;WĝwOP2gF:RcNāyWTV[Tf]g<%q|-r[MaEZU! 8( ~oE]^4ךFmm2ۉ##kz#"<ΓUR|iu~O)EUR⤯moQ]:o?xCY<=4Sҧ`_y'Y`Ÿ \W~>!xVĚމoqc{s%!%Wq rA798v#u'ִ^>5 MBh&~E`8x|a&#eMKV6̽2009C,MSN|бY- KM'1mY?ɭ>N'wx#i鶊o#W#'>f:G*ȯ?<yi [d5oLOnQ@iE/ Zߋo~SnSN0o FyzcRuhЂ8*cV6^{:rvwvg* JFIF``C     C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?DյhtfV^}di1>c{} =\ſomN`,i(1񯋵;~֞:m i 8H-VU<3=yGVbKOd}sk7%Uk1^Xy˖P ] 9>'IƁo"Eds\|W.xO[A 6I<Ķ:KpFN3]S_)5*yX}f*z\"6 W|$񭾯A1( H@Cݱ`,8^$rs\7.|e"qrZ[xSxYhqzWؿGo?H?{JU-|yPJQNR. I +aUުv#:X~EM_L!n=qYh1`$E&mLz ^?jxg([;*U3 ;j*_ ;dc_~/ kolΖ&݁!BrYEoIfAuf |:dv?[Eq,Adq)?Oʾf>dj%$+z'?*ό0,>6r7$vf4snFKXݴխtӺg} iw4{={ mj'}ޑ}fH¾2I1_%xYt;MOJX%ٲs+"6m[x"$嘂 {ךоu.,t/0ܴתV[ ৒< (ԭ8Qq^-ݥ;-> dTWKf޻wVNݮm}.TGN^K^XIsʊJ|r}ORQ\5/tg&< ܇? QEQ&> zL7Y- 1]i.S2xڋQQ? N[%Jc( JFIF``C     C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Aut{gV &FIŗe횄z`:g''ZgeB^0s`NGQPCVVw:uZDrǖ#=1\ʝN<}? FyywgP3aO%'l֓,} ǽzV/m"p=B@1 >,Qi[]i {w;5C.k3ᗌXF,6QcrT6 1օpَ!T4ns>=B"A4W(񽮯%6Cc8sT#/AuPXi\]c,ҸUQ1@Nyo x[? ]R=(V&6S`q^/,X Csg/Cr=ŏ{w4&׵HL!eOm\Hp$X)1**ܒOKJ%fOKTϥ/^iryvfHgP~ї^T$y9=t ߫jrwNu{~?\_3 ..b#`qzlLj* ivG+iy='6ds$9;F{{s*[}mhŨH$L1PM|.dRIt_z>fk%ʑG9s > kooxt+:8;P<_`0^lqS*}O>e>eOCCOPYc`UF(+?k}n;eC?w𢽓>Vt{I86LWx|[៉nӼ_i!f*oFtDHCw 5_g߈_{6#,q%:2X(rU@9*sXt&ϛͩUSn*Iogɿz_IޥkG(/шt\ۊj|Aӵ/}u[%d`W[Oy ođ/|Y},#؋?TJuKMg.ۉtB1#_al4efmKzz|?am6֖m:G?A2\i&Єb׀"+BAf=h,H2 1\^)bnےISEPo,6`QVO.eN:Š) T` ( HJFIF``C     C   21 T31eCatalog*(41 6      !"#$%&'()+,-./012345\789:;<=>?@ABCDEFGHIJKLNOPQRSTUVWXYZ[\]^_`abcdfghijklmnopqrstuvwxyz{|~('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ??5tkVV<יxk:g#?X?~*i՚MAm#k<^_?~'k_|^/9{EdŸĝ8rƺ(Zn}kG:Bd-%HsF ϵT 9ñǸ$WĿZ xkYse!HXUgug14Sq=Bs4EEa|drI}=.+JH|d#'>KɟoQ@x7RApssAY.RHt0W֊)6;H Kx QE ? YJFIF``C     C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?FԵHtIXk񞡨,,vh 77/0;=Vi\yvP+M*/oz#Ǟ31%HoM%QKÿ|+3y|S­UK͟WZLe0һM7wv3$:>XseC@̓%,#X'ڻ?s}׆"/"DiRy +ۨ9kF7ݯ1%i)uȄ#4W|-tZ3@ W'ĻoxM:}W7i0rA۷umKql'XơT$#(Fw>4A;Vcv\ y.P+cߵ|ue4褌%ܶOʧq\O>>8{y ;ˌ++kO5C&)9U~o­eYt=,Ԯ]T$K>#fy1E{G?I֕F8Ibh{G<:E*"X]Ihm]96q(iIY|*E-0LAtRn?Jtj06BPcQYRѡeI 1~c5J(``6鴢youtube_small.gif:Gdelicious_small.gif0digg_small.gif8facebook_small.gif424flickr_small.gif4Nlastfm_small.gif8linkedin_small.gif6@[myspace_small.gif. $ rss_small.gif> Kstumbleupon_small.gif< technorati_small.gif4 tumblr_small.gif2 nvimeo_small.gif.arss_small.png> JFIF``C     C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?DյhtgW ^uxqg-F2$ }Hl<9D[FftzGit C\~xٖg \-V]m{‡$+z=.1qr7$vf4snFXݵ{5tӺg}}@nDPe}D/ QsG$mJ|eЭ5-+R`|{f_L}io +xb2O=yM ᇈ+_6Aqa Mzeii'9?{kaVbC Eqz:i]_GN|lOtmMY;v)@eQP?Z+ |=š9 ).褬? hPx"OMllI0H7'S$7q]hZLWY>< =qge9X_(cXNS-=( JFIF``C     C   ('"51M61e71}V81 }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?@tkVV ^c⯈LӟS5? 9!cr{Ճ⶛=IԤoiA8=q_ ǟ5Z-:Z ej7Ea8GHɯs,;IrSG^ъiqx )KqOi2C}aq[gԾ9Zo8]GNnc eUz}0{c٩ӛ;1*ӒXr]ӵH0#`7 J[rmZ-Sd#7׃w~X\~WV|z_mKNfή<\sOV^Y dP;~WTZk˖'Q>\k~~>4 ?tMBY[1\aV> ^$CǾ$D캉 wȕ1~d䏠˲>'nW}dZm>;e#쯽oGcC6ӗ1+g+#eb#nr瓗s"RGjtZ-kUt9w'=GQEAG)k]x7c!A;ex"tSrS+IԝMg&IcX- 0QY JFIF``C     C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?EuXtfV ^{[Yo ž ^^#@tjj3y(1zWŸ>$Zhw=,ͨEnϴm8F[C7A(7c߃^oKm(.mѐzs?~[۪*5?iW=υ.˸-KFỌ 8+5IH3R7:RJ}}K;aY#9f~4Xx`͆&*1Ezg"?p/ر?+E'짯xᕴ1, ote,+(g_a|dL 8_G>3-B=?G+$Z.qFDѳ2@@7#[zy![m[GPV2"u=Hz)aDr8!1~y?/[Ɛ[Iy-ׁDz)-F8`##µePwrWCۥ7~, Ey!teSkgh:mψ>$AdikuY ]F7{ges) 9Y|fox yicx;m8xr# O*X?d|.dӮo3bh}8 w^CLΥ4}>FCNNnXu{~"P?%bckQIϯ}7ozNjeʹ\y=WL F8zU,6ܚ=K 5.Sc728x8Oil1:1rRrnOvn{ŨBȡT ͨ,)d5oct9-'ٞ+eimlbs|*xtw:M2S5ڊ~EZZAQ@ JFIF``C     C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ButgW &IڽeBQ>ϵb|`JkZ_(^ NO\W?~kOYY:N}3`"FN9szb+t qv/*8sMZg5Ѕ>$yY̐f0^xQeoEYH$A#_3?֥q%Αs5C6i3៌ZF,mI(9DyU{ ǥrוhѭNyl*X|M>H0޼P]*ح HjΏ?_3N?h<=YGc:iMh1WFy^އ7F3 oo5ͽ≎ўTuExҞ." lc}F71xJFlfxVo[wIWt}[$Q 5T*SvANPM]-'Wcźn-|kop[=yz}ko"d[,`=JݰlmuW%g{g"MŝV=[ҽt'Q%~O!xCX- 6^x[MMYYGe ET JFIF``C     C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?ButgV gA]7LUյ{? hc$r{ n[mJP#:3ӿ|g5,4@>TV)a{#[ڗt?n Ǚ51 9Y[E}mc,F pH왪K.ekQ"~k@J@$O~NIЮ&uM&檞8$8̕X>K2:xr >=B6(,?{mr;A? ^*:u5ZYCxB+|Z/ iQi04ԏD.^dO3ω 7vYsn8G_|9xt״L}q%ދ{_hWFX+|guc2CD" vr~I8̓Y?w? >&j uEfE{K1By +u>>#^j5~amj)ut9󟅾.Uh#H98|bP6vGM>KA{&߳ĻoxN:}W7i n0~PQ'W? 562B0+x\cD0](!${0:Y,^~VwǙr8[m:%D,+U#'gTZ%F\ y ݈-ڶ<{Xx^MNH]j{98⸟ 5ܝM .ܸr;/  V)9U~o­_l:Zݞ]WIG%l't,ұ1ҲkuCo%[:ӐxE4UAt%zbAdRn?Jj )xm c袱B 7QvG}gg+(? JFIF``C     C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdef      !"#$%&'()*+,./0123456789:;<=>?@ABCDFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdef~hijklmnopqrstuvwxyz{|}ghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Dյx4fW 5ύ/%o7.=y"U+H 4]1޾G|KZ{KTMػmpdǁS1{En3!.^id7}SmW7~#h98@{];85o&6]Bۣl~qG-wx]hl dA>]5׆.N;ܟiG'z،ƛ s5 ĪuUW9snڜliNW>*k|B+j߹Ntg#Ol euL|ڋVq`Wod}kW$To HMA#*qfl*m|ͮxDo(=?էo__h|Uq ˠwFugkҮkG.8Ei:*roO^yij@QY JFIF``C     C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?HuI(<xPI,vk6_Oz{m?Tr6L`Qim֤0Y4\5 \^nllgv?Z[_ձrs>ޣ:,&--`%Ɵ+gϲ{`ֿǙϴy_7wWō۟ڪc_Wi6fvwc}>1UC[cҮ ~}]xw+TeLmnJM;GoxoI*X-_Z v7, IrF-z4W+D{NŨ@ȡ;j:KӤW9?geGӸ^Q@gՉy}ql|jRVA"ShIlwv61@Ơ1QHg JFIF``C     C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?@tkVV ^c⯈LӟS5? 9!cr{Ճ⶛=IԤoiA8=q_ ǟ5Z-:Z ej7Ea8GHɯs,;IrSG^ъiqx )KqOi2C}aq[gԾ9Zo8]GNnc eUz}0{c٩ӛ;1*ӒXr]ӵH0#`7 J[rmZ-Sd#7׃w~X\~WV|z_mKNfή<\sOV^Y dP;~WTZk˖'Q>\k~~>4 ?tMBY[1\aV> ^$CǾ$D캉 wȕ1~d䏠˲>'nW}dZm>;e#쯽oGcC6ӗ1+g+#eb#nr瓗s"RGjtZ-kUt9w'=GQEAG)k]x7c!A;ex"tSrS+IԝMg&IcX- 0QY JFIF``C     C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?DյhtfW &ZzNs^_H#@\ſoٵ9>Wڝ׎?kO]Eld4v$Ы*e'`+ xɻEn?XkE.i=շO h~'h\0{kMm 2N{*?t1wB2 APj߀c{~'R_iI%iGgmLE&O0O=.~Y^{ EywOlQ1 It{Y)n~^$}1\'ng&qogmmRHIhqzWߴGoʯ< k4iPJlӣԭ Vc I +aUުv#㳮zX~EMcL"in=qYh1`$٫Ia#@P;׏ڞ.YhVU e}Xʙ91={k?ۧ[_SDT_7`zS;~?5oERZ[-"XRNz|$ >9bqQOgWwM"3Ў )JM֋W/|t\;C hy ? i2M3'{ +;ѢRGD:E*w:׼ psXimR c4QI6MY}m?*\CC[ہh]qW>  H in#P: {cEԫɿWs:tiRV=;(V8j(5?: myspace_small (1).png4ENlastfm_small.png:dXdelicious_small.png>Estumbleupon_small.png6H twitter_small.png<technorati_small.png2V1vimeo_small.png0digg_small.png8facebook_small.png4flickr_small.png6myspace_small.png8 linkedin_small.png6oyoutube_small.p JFIF``C  72g82^    C   ('" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?I5ZI(< }+GyT\fژ}kǏ4շe$=@>_Ok^0Ѵh: )-b`}1+NBc@=pv-~582ݡb}0?u.fHuH|j̧r1kh8м5oqgv..>!@=B?1V6 wYQ4 ׬-Νu't5uWpt [:EyEC4 /4P_tyxp{bLqAvַA·1\X:Xϙ ͹%6߽x=l~C%,! =vŰyHp ` Ʀ"Mr}`J0eΔlړ],miV_k8a jNv>FEzᦒx38#If=X)P0#|ux&5}:C:En Ɵ'զ;d> !ed]>6DTF¬oWZܭݷͧi,qP8QEYng`48}{A42CD7B6-E9B9-4D02-B7A6-288B71AD28BA} JFIF``C     C   ``" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Ϗ-=06t}Bʵ2V|NL|KpGY@9}эMԢJFYPZHz v2Zg`+:6q5IKk%ƦPi>W<zD%ijEijMWŚfbz??³*G)&#?)/{CL[M@n+6d{8ThЎWi?L4JU@O{_Xi#qBRtnIW+pzߒGBx}tBx}uil%vr2=?°uXi /+* dn+)IV 2}9hOϴ4?.hOϴ4?.LNWK)b XZZWl5gaVU{#WϿŜ4'Oi]'>%>,( m$Ŗ$J$i B:"AWb+a>8]ז剤Y]g㎦g2MbFmʖ'}.RXz,o~ҩxl.nO2ORiU";j~/JKωE4JJ#$HW"v̱m.GI m xĺo59$;c &{__/4K5]?T3c2lPV$V=/oxܞ_{;R]gbY^xbRIh- KY̝(ԋNUa4袍(TSZ?ƫV m~t'xI /wPX^F^{H4SFWk',~{s)={yv:nҝg|q.zPF)2@Ӝ1DOsTߡ#~eZhWV0v=<(=(=FGx>$ۧɦxwoi]ix8H-w<.gum11u;gQZN援 S'JZoN_[Tcmkz=CZkOm N;Swՠ+Zg}t 2܍Cz(TƯy/)RUZ;E|AexgŶvM$V//lx p[I:b/ُˠAO jk'E lRG8"?ƲK]c]š ͮnʤ` TdV/ƍY w~>FFsp[iN* 9z?ToØF\MOzXbݛkʾ#h9)ᗸe)Y.Cn%v$) {ޟ_fß:t1=әa@_uT5(,kf꺌#Xǹ_ZšxmBU8 q|y*ew<3r.-H8+?*7.Ěp{I߲\pQgGn#_EWҼ{_ 4Y ?ZA"~ϨZ:?+2W`{7i_m&o JUt磶gmKGTQӢQc:)` ּߋo~(XM{E{Nz3ї܀dW u5 K2H\ Oa{˫_ Z5 CfDmX&/D1dk~ Ӕcߘ?TC3pA\M 'hs_1|nl~2h Z07dkGqIߖe:)eiOoD} |Qo[ՈuqmqjYߵY/cpڋ[6`B='yǠ?gm_T&ٔQ_|N_~)z;ūoHv Мs}7x.O 42)Vc1Y@(`%w/sڎgo[9ڋ׀DKyb uc%Υs]Gi$\sm't8˼1GQEFtNA֡9-!اy_Uib贪rw:q׻wsW_ _GgsķϢy'qN"2C<_ 柨x6vuƂbf|6kJpy8㸯o z4\};=C[Gv+ ,F0zuίښt_+\E%dTc+/ }95KաM-nZ}̪RtaRϱeO~gd֚A[nBbd z tq&A@TFBc gZrÛj6cjSxWfhY0G|kjJrKUwKGP9TS_j=M]W1H˖:|_?0_m#dQHBAA~+?ʍcf3ͨ/u_Y0M sf~XMl?Wd3Z?%g+|EwCIӥ幸HG; <0p噽IfթͨM69%R3qXz5]辏}site_pro/images/icons/40x40/facebook_small.png0000644075506000000310000000466411721525234017452 0ustar namedPNG  IHDR'(} {IDATXyl?؝cqp.r8q H !JP ID$Ji*G)DEi@B RDQBCJE-$8)QqWzwgv=#6UYͼ}ﳿ{y$Wq|l~d敾zޫf(NYJ4+/\lV=2{W5,Xa;8{b) ]E^ЊepE0.QTn}W~}ܹWJ t=|䓿? , B+BÏ>+oX .tГom_}m/0T p X߳~5wYis&2l,SÄ:fLAQ2=+*Y P ƻ1 rUW?)˲NKE:$pNWm+ !Ɯs`~@_еb;Nw^J{o<r>}pY3! IE89k\v):Z5]< L&+OmUKwj^6-w_oh'^zg( @(*I*lv; ztcKbp7߲$/י ̞={cyUU EVpT)IHTx.ȪIV8x_1 u潝;0>\8Pu?3g^mYDG_`JB >IV n$I 2B(XM,LҬʉ-Y.\FXyӍ6_hPbys7F .Ld@ücuC B3M?+Zf]wi<(# _$ 83\l`g38Sǎ2w2H4 #k:C/l5~BV/:3g7{,(d4?͇A,xX^S+oqY$} aӑVBiI$!BәbamjRU5hYV$GMմ%}}EC.&^gj *dP}26ǻ,/hZx/ܨl;(?R@R`MܨhhhUT\hZ3_.#$+U 0 oH&OW$! Kf8; @q3v6 !$Q5n<(ill$kaێ -i9Aoqk!Ĩ$m` Ć$G,vZ:N$QU(#;e#J' B$eY649]2b>I0l>n ~Mf fP7B'P$Fΐ;\9HR|7ZÑ8G(xa|F p,sSK;eg.\lQ&:g8w}Qr7DO JpY F?u]יm$AH yT]%h̗)A%M:Nutd,K Ǝ)?Юiڐaedy >z}$4cadҙݔde.\ L$> ZcD^5aCF&?JxjwΎKxl Vۅk߷oB(0|s6z܅ ,pڿsLdeԉcǻ:N\kRk ,?Zwf-?;Ʋ28׵)`W_}GHRiי<,毾Sha7a&irڵ\g^G^}~ٶ+fm-2K G[;߇c`_O= @H0>x̩3M董P8ܽd5'~7LeьGzI{K\{IiX + -CD1G3M̅sg{{/8/]xI *B` gH[E ^3ظba?( ǎƲLQʲ~o1k<̽mmwQÙ#UFR7G{n'cyjZ+zR5kZ޵vsm]]S٫4۶{vy_>V<P^mXiVZm2W\>}ojjihhXjD_>/[VXNW* fΚvٲۻT8V%p%,-j~n]]jeWRuRJuoa\^jp )lՄPn/ ,h"IENDB`site_pro/images/icons/40x40/linkedin_small.png0000644075506000000310000000520211721525272017465 0ustar namedPNG  IHDR'(} IIDATXy?gvfvva]ְ׊(!1MX) V4I##XAP ȡ`q,,,0=cg{gfWH~U7S3}{$FVS ^8qROA g /fӝi.+, sh|ԩ'L8ld~޹cǹ ُ,XgjP^}˧8sMFJ @8>Ϸmݺ;qz-H[">p`Nxz3 ,ZP hsm;o me*:pO~hx`U0-4#E˥ݱC+ ۥA9|x?&VҞy%o@g?re^eY'ٶ(5pl3$͠2w8M"yP(tn mx/sY2-܀k{n}KJ!t :K/δJ jY7sGri4_f3lUA?UT_lır G#PrʕX;[8FѼn/9)5R8d;f㩥*vww-cH q#YRe&Nnk~(i7I4?N"$$d"T7BvqbGN7q[}PUw#>ܴ"c+(WN@ӫY^]]}D{V.ųȪIå$ IBe/Gic:>oDyyC 3ŋԍ.^ٸX7P5$a] $ ^oga1f̚šN^zOQ_`U$7tx}+W2HY`bP#j<.!?׮U8sͥ|F&S 1MU!+j [x=haS~|pIU =sb#jGlL:So;˗/ړRMCfY P]4cWݭV 5Ř6D{પ:;#Tpkڴ6%jMbȜ|};x45 NHn8t {cH1. K )JiD|d2+6@JB .xnLYQ&[Jza:IpJB L-!bI`0HJ)5n1.tDYd:v#KjteyIvhyN?!L,^81jp$٭i idd,di#3\79NB= >; ~m9. JԳ^$$*Y{ZᳺȧײBYdYFR$E&ls cd i۷yyq0~0Z\ mMHttuDsC2BQȏ+QA<˲l(*K5JRPjAk=g*nF*@RȭTEQP!IqY k!PnT0SDo)*5P8 ~P$k͘i"!!+9;2gW+JdƕH%S-pF:;::$h|oTu_gڪ@IE͇|MYY'Iĉ[0UyMC3#o|rU`ys,E4V™d?jg$:WkٵP$Z"Xk-E?6eg`qٷt]Stcȕ`oFh?M34zJ~v7FHem*;1^4M#J5W^ [=2̋n7ͱA*;Oinc*6D& 7+[փS\EBڼߜ>u,b_M9zvcґÇ[FN3FUU q א4hʝWUSxaD<*饿mܸuбnXGڞݟ5 2cIsELS?@$ںt'7XGT:U?tkX`V8S|3ш9P9gypʕU@B=l"OY\`xrkEN䕗_~lCC39漫#Jy]Y={E{<D}ۻo[qn 9%YϮY8~NuMUU}}.?}ve/0κ]Ip% t}w-^\;i>/R\1m_~qZ(.:CpxXX jˮ/, o+X1@ߩX)|@( eCIENDB`site_pro/images/icons/40x40/digg_small.png0000644075506000000310000000526611721525220016605 0ustar namedPNG  IHDR'(} }IDATXie\k,1G,B ĨUZ9ī%j*L!P"J IsN_~]<>Ž2G闟07*=6g\C@D9+\ie _1DQm"NX:*׬Y;wٲ-۶~otPzjbqLXuga@^>z/^dB۷|v֭"J2m j7|Ͽـf^zgoJm g6ڀP/^uiW|v Lt\PwDғБX2/V3W_t _(FV P$c-ze[ IP4B*uH{zYn<";g `zX|s;oCњ-;y߃ԥJe4 *l&x e 6{-iV*C}~[fEqw_k~v ī);L:CRH !M( MMMpe}XFG/C ǀ`$:X+N `"7?*욇Dj|݄y>!5ҴPva0C | @*ĩO'r Ou H@auUy+:э,Pߴ P i } 8CWW2}X 'G skVKKR;AE.6BNyp|?Gs\OSd%Jg}5Q8œ筨"~A~rr-򈏑#- y'"+t!$´8ܩ) 4 c׎;b[noalC17Je n sRH"L~Hal'\Eˢt2u`kQV!%8.=̕P4U#C 0,ᵒ\jFqx3![!8V/2c# T3<0?2ms#"Bl&=+*}Fp  ݏ& xF4 =zƳ?8Ƴj`y֟զBjRRا^yC:NNN*EB,_U\1M!+XbE~U?}/gֿ0ܬ|5%ZRV ;6 eue!=* N65gFJp*+HƶA 24%Aj&bK`D6;mGm gf )U_Ѻi(7YMh?KBFshy|]?Dpgll6+u F+_?QP@HGܯĒw||H\B4@x'/Duh 'нӲB'A ږ3jgABo^an}2L} $Q >?>*F!㖰#J? M4TOM9w~S8ָ+ P^be,ljUBb|p5h tCauUT*;CH|do4tcﰫXQ&h#DpHHDm"IJVt H͡\"N#]VK 8_.&wxsPI/ɐOY,C e2B*4!ͶjBI{d22 ?̴X\=244xo#G#l X)0m0E:ftBƌ޳R /Kȡ =3^].\8vضŒNH^j3z62S`ѩ,,RtIG¶-\ƛy0pr9!}_>qKM䨜eX;;^XPFEthEim}in8>m#ޱu``'+Gx14o۹tڲNZ ?*EG|*n?^3 w}"O\5ZkM>6ms `l̖HalK.\g:E`Hj̱f#mۓ_{/iMG t۾gsΕagkkllloNjN;ধ'fr5 -;h\>?_|}#$T<(.UY\z钏[aYVІv=oතFhУsWF ŋNϢ*+WL/oIX2@0s +0(23ݻ<GGwea3c<\3 Qv2ٛ|Ľ$eeY?sߙUYB){"*j33b`%f0[A7fʴ( +mo_2$>2o96VG"{ :6zw `UC_5w0ZPU/[RP,kǘv,@$0^;ȋ4gc=)o_"ٌ yhs5>Ovw7͕Bn@F G@Mxurq y 6(~sIENDB`site_pro/images/icons/20x20/Flickr.png0000644075506000000310000000122111721523230015673 0ustar namedPNG  IHDR XIDAT8OQ?ђi 1r2?p4ܽx <z!јOkO^4DFJ햶p6ݝy}3#BfD*"B"[DījMDv faL 2.JOs Da.r9TrRymU5D9jƊsm'w{A^'"7bԛ1?by|݁XvScƹ63(?¿Z'Q]=Ѓ+gzî:l|}EA'F*?WoC~h_~V P (~3 ~m\Yh]`rM뻽9 S`Iεߦ MʥYf BAQȧ.Iߙ`L66!=afHxz" SL rcJXYf2Bؕ9sEJn941LB#vւ1&V|LIxcqܣKRӈ pR jm 1݅~A>KtEkm}UfbTz w@kjtF)g(RaIENDB`site_pro/images/icons/20x20/Windows.png0000644075506000000310000000135211721523274016130 0ustar namedPNG  IHDR IDAT8kW?ΝƼI⯊ \XJ\7M[(K]7.\-DhZؠ$q̤y3s }IFEap~9sZ-DPUDW%"NU7DdyvvI2z(eޤ.%I](0lys\7@#s,{/K5T5"(+a,9owIؙ\ R)/#~GXNx~ʕ s[2 S)N,htk*=:ҰA0[fX|BP7X_X8uS|o9|`mR7Nw4Y]Ý)BǀWcϸ`)֥ 90~t7p>O.R8q&*cs>{eyJQ0]~` %˪Ok0ʀ+.͕K-:Q+^k#"E* T4c?rtC2%@kfc`7YMml?G^)"`yсY!s熹bkmx$IX P\m+9P8ۣ;MIENDB`site_pro/images/icons/20x20/Apple.png0000644075506000000310000000112411721523252015530 0ustar namedPNG  IHDR IDAT8J#QεB*o + S/@l 4AfMȪ{`sse ""ԉx{ <8.vzaY]Q1$I~?{C;2<fu(˲e_ð 4yNEy_y^qn9'ZKE flgl `wwNd2ADޭ>3JEIpzzJeKqۥjqtts*NY-,*{{{UNATdGSa2/EQ ,WYD:|!"IkcCUumFf ix<(%:j򒓓aeeL^T>sq?[7ު 3<1il__cRU}@$wa5`E$jCD~l O+#Cy5IENDB`site_pro/images/icons/20x20/Blogger.png0000644075506000000310000000142311721523260016051 0ustar namedPNG  IHDR IDAT8uKh]U}M۴Mo!EpTN)(D E8RVLAБ3| EAA*6$&&7q~.8g{kkox%Ky6MT{$na|%K4;*ǖΑs -@)$n/d ,V-J d= 6v`{F8܀Q.B&x@:q={63A}4AtJt>) 6zLU! 1(gE;k7_·MQC7 r+9#4}NOiJxip&vG {?]}A$! < txp{#ޘ)i;B/}ZM혷tax3?yC?|<vGZ-l3"j*S3!.Wph~iR`oq>tlw;\JPYѻ 0 Y UݖE4UQL~{5Zݣpgx됵jv A `&1?] lHJ)FhWڂGO\6+L#8`PxIF/5fl*/;[<^ ȓj*J`wCm 6s'O{2I8.LIENDB`site_pro/images/icons/20x20/Mail.png0000644075506000000310000000113011721523106015344 0ustar namedPNG  IHDR IDAT8Aj@E_$K8$0q \ d=s x]V^EL `-]H#9AKSh |>7 oPUD.T5b^Ukyf^h4&|///)0F7cUU9nRU-1`ePybwʵ,;"+iUNEdm`0[qߊZlZg-IENDB`site_pro/images/icons/20x20/Twitter.png0000644075506000000310000000131111721523164016131 0ustar namedPNG  IHDR IDAT8ukA?ov&4mmMSzzbz$/wRz xࡽ QZUW<qwt`ٙ}7FXWLz 4 4 D,~$VXf>'w*,AA!7rRSg[ºnɱZh P{-\PH6:A n֣ 4,4}lDۇЎ # VeQUP"owiE4$ i/,P4,dDJ'ܡZ ci.lhm*[$}" }ܷt$qFX4۾Lw|ZK[att[k C g'GpmJ,Xy T6ų |@ul6a"꽰iV_+@9 gp1 z$Y,)1Q)kؙs1H27IY FD񛬵 % d!)AB.(Bހ *  }$PPuYP-Q <&ȱFlhU|il^Ҍ_*-.{9KU#3RIENDB`site_pro/images/icons/20x20/Stumble_Upon.png0000644075506000000310000000155611721523132017111 0ustar namedPNG  IHDR 5IDAT8}OhU?73f]4U$%JQ/z AЋP(S*% zSyŭx^,`kH&dwvyf6I }h`(@U 9+FÔBѸU0I3ӔLVw+|cnx[m#H:h@@8+.D<7~Y4dʡV[ho$Gg\"aCfu)V-A$]I7%-骪XXMwbKn "BbO0˪Vv*Tym}[Ψ (_7țͭfO^f׍!+3"מ`ew͠d1aXÝVN ʕ7yu2S ~ X;Pwzhqi $Vvuk|%0aZa6|>yvlIunnaЉ-"P(IKUe?Lxy[Qpvdq0=\0Q𣘽0&6y=YI,XAO$*]xnJ[{,)CspДvHbm` JϚO+E5ch"4 3sʣ"d-we9}Wo"IENDB`site_pro/images/icons/20x20/Vimeo.png0000644075506000000310000000142511721523336015555 0ustar namedPNG  IHDR IDAT8k\U?;w{ә$fT?*]T\.WsU*.\*S?H&؀2;]ܙfZwyq9W.o83% H_6`9h^Hc7Irr63[my^nv襍7ׯQjin?JIN=Vݯ;缰$3km1W. R #Hin3 `\n6 Y$xwʛ n .;BϞ㕹.g%RWcوӜG>8Qċ|NnI+ 9Կ@b%{XlU_v w`ێ۪7ƙ+rq@:%;0r%. b~nt'43 )4yht  0[ڳT&94sLyKo>oXw7xQ9P+=ҀV+?XSF{B|{EEnjAeqIENDB`site_pro/images/icons/20x20/RSS.png0000644075506000000310000000157511721523212015144 0ustar namedPNG  IHDR DIDAT8u]hUgκc&H-UТm Ҋ E-HĊ>TA M)XlEU5nvBfgݍa.̽>(ЯXi*E9/Q,20Nz~=@q$X&GafDGɰi)!NHsWM̀;*x,Ai* @!N$PdZ1"[A*ա'xudFInZ*QUݜC /P55UET\Xœ[݇S021;fBYy~za0t]Gر^bcmpz֖; Żp֖]=ǵv3)|tXXQOUPIx 9!WWg`aQ"2V]>J"{+x>E{3F ug3}b5dďgz ItKB$ K N|ơ[);o> {yWfلaz9 w?ïxv`v߭ۨ;}mMJHߘϋ-rfJ,ϱTd=$SZj˫yK/C,@ܩoHIASeAbo h܀H9F =vRD :cА& a@*BPe<Ɂ4_BkۥڛB) /7ImP7vaZ0;B>48"boT /[S/՗IENDB`site_pro/images/icons/20x20/Technorati.png0000644075506000000310000000161111721523354016573 0ustar namedPNG  IHDR PIDAT8Kh\utȔLk_xmX<CBaS 10>b Wo^FDFn `4Z3HC{wc ޿*/'?46Cc0RkjvFrNc,J*B%̛c:$ O ]˕2k[m:n-G}F'ȍܦxZ=,Պ3b $$ ?*M:hBbﭽkC\sowa M&T&Ȱ!CA†{.z|= :kz[bCrv)!ݽ*Z$Rv%{}&Jt^FۂW ogRE_K@zuX^?Pr1t#hXWbA^IENDB`site_pro/images/icons/20x20/MySpace.png0000644075506000000310000000134611721523346016042 0ustar namedPNG  IHDR IDAT8}Ka?8K.njTJAdA B(AAHTB# _!QwQVe[awY}:̺;Ӯ=00ϼ>?h n} Pv<ĈR'a?SOhui%`lLoo3#.x]DiBBыd!].8qߗt lѲ0 u ҠqWj5"DR;Q^U0*t Bqōؘ28yxQiU&' sxf~gb¦PPVVJ *߾Z7#DCJld^lnj7[ӮWSfy}\ʳjtyGBEHJv7W.]J25C_~v InFZ,VX_ߤ\od::S!`&ϟ17HƳm#pE(L##g 7zp2 ɣSss"Dv-)TXbyw_ vQDhf].eCZTJT@EIDpczDٶbۊ nL$)۶I^U.5$1䁲e~ r$X\۰Ẕ  I%e1CIsk,Lju} IENDB`site_pro/images/icons/20x20/Evernote.png0000644075506000000310000000151511721523364016266 0ustar namedPNG  IHDR IDAT8=l[UgvB>BPE钱!d SґX`P;"!D.-iU:q_txqgGwyƲQH@B(@ ԁ޻ƲL?AvlsnFq+޽W܂fc ۝VTۡi<%[ߋ3dVXUu2.' hc^t6jҊi4$ǗQuqn} @OQAq4; `zsY]\'|prvE%~;~}0M5171fV)JL"" i0ys qK85҉ӈ⪽KX Kn|#} [d]ݘoXϧ?]s.KTWW41QB Zy@J$C l1ufknDaO݊¹N. c+ Uu٩Wy /͝B=l{FS~oocjz r|t J`l犛 +Tդ'M[S.#: IENDB`site_pro/images/icons/20x20/Youtube.png0000644075506000000310000000151211721523172016125 0ustar namedPNG  IHDR IDAT8NWwac8j%"Đ@YdR(;oPeY"ɛ(+ՂbˎCIggnC!V=;3w=`4w my?!@t_҅#Eq<fiB['ίb<_* A!%A(t: mB;` 7X60891bT)./ST(lmmy%AE5lJ6e&''R zn"a8R oi-EU4MC)E\feejLZB@TBum4星gvvu< )hi&j&t^mR*j|eYT*,t]|ߧ^ dC,b1~g6Z.G=1d$6W~#ezj?~2:Ff'`i }w1$Ր=qEN#9u'"< }e Pȕ_ ˗ e~aI={FZݻ-çOʢ8 T:2 QA1, :ֶii )''I;;OF !%BJ4B(EX}~xoD&xu&zš%PxyoH gK*  ptjm Gx;QCq8pq(p)}.]s-$oIENDB`site_pro/images/icons/20x20/Yahoo.png0000644075506000000310000000145211721523244015553 0ustar namedPNG  IHDR IDAT8MW:3;, YB INI@ă(CрŰ9Q 6KrIP;d'Yz>zF!ƺUuJ* *8sN_#71aN~πXC{Omj\<JK*ᷰ)7P1.lGb]$HWFuH+!,#t*o;0BX.\=?yYMŀ dX.$нT5)"wU=WE(A@IENDB`site_pro/images/icons/20x20/Thumbs.db0000644075506000000310000003200011730433520015525 0ustar namedࡱ>   Root Entry~@1D23"  !#$%&'()*+,-./013456789:;<=>@ABCDEFGHIJKLMNPQRST 8JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?S^:G?>]tҵ_cw+#+} n_R E#W{\3:79?)Fn%)&1tҧNq$\WIꏢb%_uVSS̮EcsH1hS%ݓ:߈(O9<<}\=*y&0II:GS\ZI1&Kx8ºREu*M# A`AJ>GWVU$~b%)Tm xoOx&fy. *Q"+C,ڵYJRm>g JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?k~/O4 Mwqd$K Yk<7xK}.RѤ "6RQ ox^ xL59zs[+/_j3[_xLz[ӱg$$q UM lV4,v"JTRN[i-mOqXOԜVVmֶVVWkW[ZIfiVy,V4|(/𾣭ڣGmjw1+0F+|bCՔVQ;'~!xTԬvm1X_ɟs(i11jI%"YRS6ޭ~.Cpvŕ]rzQENRrgJ - JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Oii}N (nDUY *|aᮍC[O {u8X,a@{ƸfSUaddJǧzl#Z෻mm=g$xşޭM\,.dp876OV?ßE**+LҔ#k',&޶GO#=agSVExc1Ԟ|9Eƨ {.F;n#/|=:LSIl.@v+1',Dov}$# )JFIF``C     C   " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz4255?CatalogOH6b w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?irgY\Yp8RL:?#^$֮S4mt>c{*׌5Ywo Kbq)gg==OAwpQ%ڥT>Y>DcgKq!^F,BO'Qa~_&(/~joZ\^<1o5r"xf=BT=̫$|p8${Uwx;I%J ܀Izm|C-ۏZwšd*w>quuVQ1tMmm DqO5ZI{Q-(^R~G|nxn/n_=48&䞏o(3JP6c+Tʰn+߁˛ۅFI꧹g ^(>+*e՟rTn~'WC/ºYY# 9Q_ 9Wmr4ქ%e``*MYoutube.png4;qStumble_Upon.png,zFacebook.png$\OeMail.png*gTwitter.png`}{A42CD7B6-E9B9-4D02-B7A6-288B71AD28BA} VJFIF``C     C   ``" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?Ϗ-=06t}Bʵ2V|NL|KpEo ~>ql = 끞/ڧ4;E#B2Ve#&Q}+]oqPM%VKԖ' Uh;uWΖzD%ijEij?߸? }GǫT/8q?Gm7CźmS٢`cB:e_r+IM3q}Gǫ>pŁW氄8qRUgg_¯wIM3IM3k8|hkul#\-׵q;mvrazn/!?nBx}uxS^bLYaO+(*2H +c<'kjqJz煻?gp/|r4FQIǦ㎦*b3Ece1*[>.?V*qI+_ Z/_%Q+ҹq齓cĞ5HmkmqL`]j~%zH$1Ҿ(bqrҙG(Q a3[O82GET7iԐĂ ~?_5kwY#Tm>NWž|WZI>tx^Pd#Sӽ~ G)]B_O~xMxsw u?C{`.w$tF?^^˰oy썱pTn+j~$kw࿌ χm'ZѺE ?l 66Jx;R?E#Zʡ\ .wxXgR_S<%RT_4EtTLmmFC>z?niOi,׮Ʋx FDl3_!ϴj?/oj8*[f8;}K 'arLAomnoha1ln _O'an1>_;pטҫzg|o4hZ g07V@:)?~}x~u҈e??1Zg^HjjoDHkT?_IOQ\|_aD0j/a1?@RZ 23;^xKZɪi=N%؜s5^ն@G`;Zv[xK WilOEcqO]< ? ?KmϪ]}U v?§]VæiV_ 1լՒלa2|f>pq1lH =5sCm:t;=6._+A 1`8ٙ6b'<<95g¢Rw&״m#L]n[6VRk&ώzW _5o,v7O|}<6d l!('p+aV QmuoSίҧ}K[>"&V?iC~_/^eZ ^iۮ0IRq\Ƽ? i ,|6Ų!eO*FB+kY\D3?{'R1<.1aaɁ)(EuiQ]R->gu7>8mȾֽM[_3[6U}D`z5}-_d0gO{?⡊ %M&ci3?9kfh[m :o1nd x* "j%sIJ%dX[rq⸫_ڃO5-;!-~{Z 9̑ rk{_mgLm.r26oz_Wcv?"WKANZt}Tվ|r)CsK/h!?{O, RK@ׇ/ᆠ![^9hhiz6kgs=۽n _-̠ؖ·9<Sӣ ſI$rGaok(gsite_pro/images/icons/20x20/Google.png0000644075506000000310000000146311721523320015705 0ustar namedPNG  IHDR IDAT8oTeeuLg _BؐH #.dqX)ƕ`e]hL2. A lj- v:vb3Ġޓ9$ TAhLKŻCLFiU^ "=[,,+g'5\OK5A= \+^17,FRFTopm3%+j"*(Anо(_Y#ܛzBU @Qmr̦va"$._)ˍQ\tp-; BZ:dAhFBL*3K)ŀkxjc${=)/ɣT,-?H {,Frظ¡z!B R@+IENDB`site_pro/images/icons/20x20/Skype.png0000644075506000000310000000156611721523236015576 0ustar namedPNG  IHDR =IDAT8ke?̻;1k؍4iZ(6 Z)<<pY-`PRh+,Yd9RFC#[U-nsA'F~J?@haK|.UIq-Vv A Ӡ$^9GU BBFP A[-%RhJƊ aەxTP85oO)P K>|| AJT=r[i_]>GwTӟ#^#Y?0Xyed tY zCap _ 92DŽ!/{ U85|04arj F [xk=S` )V6`uI*"‹e3|p0 r?q߷<{xğvE +R!ruW%|ǣеuEeIE>Ȧ6!M3{Lyq,/oVIEAk1mAJk8V}[-Ttq2iRRڄb8]Tccx$סq:Xrb>v[u*0{7_ʍ1r{{-'Wy[͚PPD+ih_fmbVaws  1 PE[:%"_r9yqO"؅RtҾniiIA18JDN뎪&tT*i ՒjZUN֢J33"mmh{;*cj1"S_Mry afuc-xˢJ(O ^f!:(fxSokZO <6J809 ^l܄ ^\Fm{\d4t ߇=slyH{aiw~@6e2O|7 kYގ]fijjec "tn';zk]bH`aLᔈIU/PTu b)v]?ʘIENDB`site_pro/images/icons/20x20/Linkedin.png0000644075506000000310000000135011721523220016220 0ustar namedPNG  IHDR IDAT8oSW?q8N"HI*21J,bABB ucBDFՙ*UUmD;%yߗرr{=kśKNQ0p0a 0 A ֣7Tɿ5;>r+%,u1V7ZϞىU9=G%MN>FKB7wyKԍ]B~P.dgfH"Dݘg r%!uTWyq*%?q&8zA;_8=WEnC{vv !?^/8’tr4$Rur#s3[c+ G+:aJ1"\?wJ.f/,pmp!]:ʼn CK.?Yo)=fJ9lA`<.8D<2/ξB5-oHLe  tY7 1&;QI;՛D΁ M7-wڥ$xȍ8.$ެ&n|d3Fy4Tg͇yZ> 3}j#%+T^2ta9,]QOf*A |󅡚PVىr!]fA *@mT`ĈKO*>!5IENDB`site_pro/images/icons/20x20/Digg.png0000644075506000000310000000135411721523414015346 0ustar namedPNG  IHDR IDAT8KkQ6i&M4qڦZRKwu!T]ݹPp#J[ " `݈RP>tZLI2LIBx`{9s06h@UA]P-(5`o| csfXhF:^>N׏;Յݟ,;U{*5Fp4o-8#O- *5*w9 AvC'vUq,"*~#7tfN {"7 uqy𦪢QL DUMXχ`*08w89hv4$"Pcz4^Zg_k4lOz}іW>f%|'dҜ<ϓ[>V7my\>;Weg1>0fVo85;n_ WsM5/e{^-23>`|P8P fD`k&~$S"Ȍv[b;N "VLʶHRăGTz!eM<=VDk=F<ױCOfoczgr4ɤ`7 '>@LDQ6/b H<!۳5iIENDB`site_pro/images/icons/icons-light2.png0000644075506000000310000031453611715034654016242 0ustar namedPNG  IHDRtbKGD X pHYsHHFk>IDATxw`g&TARE " EDI޻^iP)] E }8>︳;M&y>d;{sLokaKjդ,^΅ R/yoyk[oIgDXVΝ֋IZg7|͇[;d&yyEJ7/_.={/!8hL\92*Jˍ7!HТli`|`3k}?H{[WOr~i'W]OBv,wk}$}Nn?aBc?WOJW*Tz vܺUc[}߈oXl魷a]H1)3,(i I͛Yh yΞ-[:F_!s .;οw{"k"q قÔӦI;5zg5R_`c#x-7v,W)Fx}-O$0vmȖ*ؔ`tɌX 9Z˚5e n!r;߾a?7NJO}=x:N&@Ԍ|w4ɳo 2:ԯla#[?lPZϩSF_WFC?3F+m%`kհL7rb9rdxiֆ RÎ^<: C}~i<$@ S >gƋ0Ç>[o2a< n]a\6>2Ϛ%֭ߗ ُcJC*/}O$>lvZdVT [|ycjsI&McO?Oϟo2L&ӍF'[o*[.IΏiիWlbGcqÇGjdV*`l_~㸞f][[_p)`F%_ڴiӦMEZjժUCB{{,(Wqƍ7RR8pk׮]6!36j$?;u3:kԐ- ٳgϞ=ԨQFY,5k֬Y+_~={ٳ')iÆ 6lHHH@r Hq4زe˖-[e… .T1x/=e8/CH{hfٰ ׮k5(iH|pR@ت ~ Y WOօd6a„ &߿IIrX=sg%p0 @GȝqP+W\rL#F1bՊ#<#W4֡4}[J8 GYɞbX,֭[nݢpdڵR+':o^'W~/"V-څ˗/_P[E)RHPDU+߹M. Y ~eBhٳgώ)SL2Eo<,&W.+cuǣc/?M]D@O1)|xnwޡi+['k? رcǎs`mB_!ϫbEG_~1: <-5SO=SO0`aaK]_= ߵŅ Ҿ*.M]_EƑeʔ)SLp˗/_2hРADGGGGGk-8& y08PBBw޽{0W[mݺu֭묜z[^v -&??23G(ϟ?xw}w VZjBB$^걱"u4vw 鷐知9a_qCW}Cg~ ġ(bsݻwb(Ν;wS=5"[7ٚ:U9 6lذ"j%[lٲen??62JHҶm۶mۆjaݻ"VMigHڰ4m*etR/=11*UT"E`"=DÆ7i78 uyb?' MƳIIQQQQQQqqHcO~~@;)Fz*yoh DE/ flZUCт~l={ٳgt߿]8B$o5Bm8%L/8> )t_hժUVtҥKV﯋wvY/EBBWBј/xn^B-l\J[ ?7nܸqPIL7~lxOS-ZhѠ3f̘1#"… .\P8gQ&Α5elu .\n_S- `A< ?(48 *-ZhѢŒ:J!&}ZU80(:*]s_"]EwO {{,((ЅC}Q ^ v׬ٌ8ԩSN._Ԍ GbŊ+!ѣGm9gJ=< ڷRhy͛7B~H"o_قëB~g;wܹsgbwW/.fM/r/ȑ#G&ӈ#F %,]tҥo߾}UYTe˖E }߿6_|_H8̚5k֬Y!!!yr[>3ay„ &L8G#S>OB~O08js2"{h(##=5;w~קLYrJ5jW?C>?."E|c\N:uͅ *Tk;U/K/"Zi8sxѮk>QQQQQQqqǎ;v֟kL)-,^q?kԨQF I2P<"o/R@=W^z~HS{ )y9rEYf͚5}e/AsPJ/C B~,؈0bADM| pDT$$81166666V{rS8qp7s:F5j+!v\"$0uv, 8pVȻ=8 `@c Al8?_pUs|/g}g 1cƌ3a ~c" 2 *,7Vo_:t! _wz_!RصΕՐqp߱cǎ;1FmHF8vlי5ppVXbŊ}1CxLΙ7O3Lj V]6f5y篿}aw2s(|_~wvx&߱C*UJ[v7n1цr~[ )9atR׵!U{\WyGُ>agjҤI&Mf?Ni  Ak/]2eUF5j@'s疭FT+)RDG}T??Ϗ??v}}۷O_Пu8^7q1 Ç~!?N/HO?O矗[Wg!$k>_ ؖ~}曆,ڵ- Ce"!~ߒav7;Yvh$ we/Hzp$3 Clٲe˖-je-=c=("K?C3j-h}˓ǿߧ(b?NOEjٹsΝ;+ʫꫯ }3˗/_?~F:7~& z k̙3gΜobm=Yx.zy zqC6mڴicA[nݺuPmH֡KE WRἻ~_|11LwE ?0ׯ_0WB~=իW^={炃aƍ7nLH$?~LJ?O>k=j׮]vmYIIw޽{5M)O791.4hРA@xŋ/}3y24NeM=|l9fE]lٲe˺^8pRK'Utɓ'O&'6lذalydQSO=S*UTRp˗/_bG;&<),ё%%K BA?!@VZjet-!M?|ÇcYQ͛7o<}qSKO?O|˗3!\h]tҥ:~5b# &ŋ/uٍZ@p!֭e=>6R1111116ԩSNV{~יU8f>k׮]vTAׯ_ P2n#pcn&{! cѣGַ;;۾[Dc[==7\ۥ]z>߶Mѵ!FaQwXɵ}nة%C0ȑ#GIJ߿H="OoY =OʕRb}hnׯ$"B_uڋ=oU|#bޕ`+f֭[nݪ $:hAP-8͆5YRzg6]l}zիWl^SRG=qݻwjǡ.i!YXծhZVO !s|vڵk*8*ӧO ҥK.]8mСC_~S?G-#kG$L%K,Y<>: 7|( ,|]9dT̨8̉^w $'{ +@zt7/2hO/' hΝ;wܾkltҥK0 aRU|QY2-?sƨo&C{db@X F=zѣGXٳgϞ“$S&l6ͦ( /_|*4T>wd(*ݣПH:Y#dP('M4iҤX V;9\%CH)5ܹsΝ o!du=K?}wNs?x6nܸqƄF5jbю[+_ʾ}Y{ĎnDPdk\xd>9s̙3#"d<\vڵk;wܹsv\1q\y#$pv,V?ܽ+Y.l9s̙w%*;$UfbtY3>̶O]횔+~2NeU<3}Ȍ9%;L[nݺuf+W\r!!R:cǎ;TH"E729wXcUu 7S?j8qĉ'e̘1cƌq_+$q\ FFBcfW^yW^q<׮]vZJʺu֭[вe˖-[Z,z;vر#1 6_-+c蠪6ux ӧQQR>4>پ}/\p…dXO>O>qiӦM3<3"RR$@@\ܙ3gΜ9( 7du֬Yf[hѢE Ok#{a=% r2t̐XQ{RJ*U*8^{?O?(KF߬<ז-eKu(Ξ={M&$Ͷxŋ3N+ (.~8p@R8ʕz<͛/ {>LZ? H,w">gJZaASw޽{ 4hfDBڴ-q;fDďW/$s(*G@b@Í7nܸ*uu{(JhhhhhhZH1}[od^ŋ/^Nj>SuݗtE)4iҤIE W~-A*SOi?߳gϞ={˔)SL-z:tСCz  ^zF_]E~!JΝ;wnr#ϟ?|gIp~sp?H EL?p… vn 1~As*PfE\/a˙SJK T-NWyJF]/]Q^}W_}Zf`ߖ~u[??hO<O87W ꫯ+W`?ܹ=~<ǯƀs$~ݶm۶mbP˗/_>kOH?~jy͛7o*];U /RdHp}Ɍ(ׯ_=c=ѷx q[8"P"eNPa*ځJ7:g}gUQjfFך֭[YjժUԅ"G7E1f<_ Us=p$GkFA L PXbŊxv|:H(QDiDsΝ;w&&Q ΒDV3gttJUf ěȸwd B~-JF5jE.^xŔ(5%S8AfٳgϞ=[uU9SR>裏>,X`%Kdt"AW>>âE8JYLJ;vH֞*vԅ={~Oaoy@7#`*䇰B~駟~Ү@t>9Onb j?? t0FEGGGGGk!'Ok}͚ED`؟իW^=Ν;wܱ9lJJ8Bŋ/^8>rʕ+W iذaÆ f <`o*Z[*u@O߾}[-]*{}cPzի0%{ؽ!T3שSN:cIXÇe8xy( ,*䇀.8888-zW^yEvG?-B!rjZ"+Vy=%~/~(!1Q{k .\pZKB *sw޽{wl=cǎ;v8&,ΒzѣGMJrw!$+!+A .\(ׯ_~߿vٲe˖-(ʕ+/ UQ!?# k0#o%IPy F_UfU)Ui8x9RO/]2~8P| a?&䒉W[j nIax8f={ٳgaf#8=b@IJ~rZI 6/ZB=2^`#rׯ:0euyq;wP?8XA7Ɇ 6lؐ+W\2>^9.$//HH;o;ر"y;@{_2=-v J;xeZ˺GJ>yGydL"6, Y.,@WUol=18>N:u)4%cPB’%K,Y twU+wRNa:x[q*e|<ƫίo_dVCȑ۵k׮]P޹n6o?޲U(жm۶mۆ6'r8a}duv\GM sUVZu޼3f̘1#!СCJJºڈ#F.iX)x=|Ça@v+mdA^/Ǐ7nܸq߹#%$IU`_!h)W2*Jg9%Eֻ`PD[.[&el|"~d$D9s̙Sɓ'O<"'L8Q|ݗe2*x[nݺujԨQF kٶMJUرcǎ/?uԩS0PWz;jժUV-$Dt ,(%2VM/vȐ!C QooQ.]tҊRvڵk+K/K/]{BHF~OQƌ3fE~|&|˗WC .Dk޽{UC,(vڵkW!{{uK:sLJM5ٳgϞ=zpk{"5/ /('O}+VXb޸8`̚LqΝ;wܩX/3AR\=֭[n]BBݺu֭k6#͛7oޜyn]Xq}߾}KJB?at #&xk֬YfCCCCCC㍆ 6lb1Jȏ2!:?꣏$0Aq T @Yf͚5+6Lվ~+&V!?WAnݺuMQ͛7o|ϟWE Я(ׯ_yI`!,,:wܹsgEY~~Ν;wa _ b0i=DHpΏZzf5/RQM6mVG2;Q] y_ l6DHat),N* ̒8%e„ &Lwu^^ >0:R˗/_w{u3I-cǎ;v(ʑ#G9g1E W^yW%{ٳg=믿rŋ/Ѹ`  'O2L:uԩqqɜ9s̙| -f$.2N\Y̑駵ljP.$D"~[&)RH wH0ys){N[77~AHV^POa}BU5dGpxĉ'N.bc޽{]mEA 40٦O>}8dw0!oH wXҥK.] .\pc1aty{h?B/_|_0`V ӧO>}MdV-9O?}3&Kx]vڵ "dxtHB`w^~߅ ŀ  Vȏa4hРAV Z0K8 ?L+H:B52+ Z :w߫'?HПV/{rֽyM5|h6&Fs̙3gu8qƍ?i\j@OQJ(QD EAd>5 mZ?!$xtZpl|g4r7v1b_~$bHƃ +h;F!Byd:RKwI=2|hgv_k޼y- L \ѿ[">~ʕ+W JrvOǎ2\UyB…RB;7Ƌ^+gV,`ɜ Sτ ]vU߂>K`}ߗo_\Vx?^, AUbst gxcǎ;vLOxf O:u)u?SvP8TQ"#####UUVZb'S*JժU‹TTRJ?6ЩTCe6߿B>A/ETϞ={쩖z@O2&iBl$GJ4iҤIE"`Ñ~Ϟ={IJB$F2*<f͚8w[/_H VMJ:1UA#<# Xi3SԫW^z/0͛7o޼z^աdmd1%eҤI&MFx&xƍ{~駟~:8XoqiСCZ H߿_kO8{VRw%덾S}d2sh?ZVd>^x^pt~ooiq24^~ GB!>PӦw)s@_8T2EDGl63f… .LAzn!߾}Ou&>qU1zl<{ٳg7ŋ/^XO85x^~}֭[nML?Y˒%K,Y׮wz$$P+{?{{_ݻw=,,>a%_5c:Z1H~=v 4hРY{'*W+DSYHQO8yRʑ#_زſwcnR{N"zo֩SN:IIWH/B- IpOߦ/fNJ_%jժUVF/&qvݺb4^se6 )7nݺu%$8?΀iC.7(;C(+VgR͓딎)RH"&[*UT~.~:UU%Pzŋ/^0hӦM6m;}b]?|`ү_~LL=c= GC40O `,(}ۈzB~v؈ac*ݸ!{^w5ndӧ0ɓ'OFj?ckEF d3gd B8'^\a+T-UD(e6wСCRs}#"=y8:߼)%::,z7pV8bĈ#F)SL2iϱ자 ddE9^Xv c#=WF_]f#G&XPB BB̙3gΜ}7:ʕ+W\KٳF [3ʺj2iҤI_@!{H_|zF/gxĉ2>8Q~+ܹR+{[oH2IN>@agKF5jd6˗/_|5jԨQZ.*:lߪUVZ KV\R  HFZjժUS h(Ǐ?~߿;W`cB~d˗/_|yEYvڵke޽{UK.] #0M{8>W8hɛ7o޼yϸgϞ={{Sۇw_ [ݺ%,-jlmWڵ _~寿믿%***** 2 9YJՑ6Oz+ ]XPE:*ydTc,Y,@ V߳Po{W~op-]F5jԨX,\zիj-RR޽{] 3yddizAAxIG7 qWf.$SrldHJ:}ӧ% YxxzCě@H"ゃب}KބdEiݺu֭CCM/ ǜ9=޺~]֮5NE"P{8+*UTR=ooB}wyEP~^dɒ%KBcH,Hjόn˘hѢE+L8`o cСC 80&$Pe4w.?o$jJJMӲ%Xai۶}3&A"]vڵKQW^zuEիW^^3?u.\pAA*, 똞~/+իW^=I6$Tq/P fl^m|_ԭ[nݺjo__*e~8(DAuq|q0PܹsΝ[p F .>|õD&zxyH{&M4iDQlٲeEYp… /g ɡ@w޽{l6y8:HfSgv8o~D{!:cҥ 1,4mB| 2:1DVct=uGv #ٳgϞ=<'P p2U m E2 !?Kdq 4hРA@8]祗^z饗f߿}DNHy͛7m6q43x~(~篎f ƍ7n@0̺(QPB )Jdddddyf͚5kf8Ws~_B<^߸1Ja8̫~W[ꫯJO AF߇Q2}/^Ohobq.SҺή;3gV\O!w+ ~L2a„ &Ǝ3f̘1i ݻw޽[ofҳ'cn.]t%4B~W?x6 "iߊ 5<HI ' $.HLtY&T ߊ|8 1n6ʕ+W\O0gOΝ;wqԝ۷o߾}Ҳe˖-[C]A?oJ *TG}GVkXXXXXX"W\rR `2,X`{h緰wu \O% B% H<_~_~1"{8>8p ) f͚5kT5jԨQCCߪUV'mԯ>/@&2hׯ_~}_ oԬ>|II11 F~DG}+ E'(] B7o޼ysb"ZocFIfs޼yO<d|w˗/K]#˟ 3۷o߮mw.cRb"2]C=dQ"0;.@X)Bθ8D"7Y!*}}TRJ ZhѢE\gz{0ݽkuwp_,&pRipjtҥKV3LL6mڴi" L$ (P*GJ Ӵ޹f͚5ni,;6HwoWR `jСCfx=SN:uj\\}+vfH 4`osiBF׏c/r+JΝ;wv̎<#G!_VRqq=zѣk;OL^& @c憄@/Af]ʔ)SLuH!?q6TR^Bz'YVӱ矓O~Ȏ;vءg5+&oa?#~ұcǎ;8qĉVlOVyi^uTKNv:6&OL$[& 'N?;h<ުTNIghǎ}36ə3gΜ9@"QxŋþM}ӧz !ܶm۶metɸ{~$Pz*!ކ!Ņf)۴2&FլVqg,\ VER$x"j //l6?#<{בuB~pVw}w&С ׭[nݺZjժUlX,0 CtB 7#x ,Ydɒx?yv|UVZjiQ:"J,YdɒT#G9rLl4BIZXNJ},foGpFדβe˖-[dgz{ݻw?8.(?>lpM6mڔ܁q)n6M'}$-h݊;2i_  4hOWJEYtҥK^M(`ܹsUQF5Jz8?u;NB^߸1Ji2 %KP;&BnjcٳRׯ_~˰Ѯ]v~ZWvvHluu~$Pp%̖글~cПϘϿ.1XbŊ jРA WX:tС8߶z|߄ F_7qFl؃恘`8B~zZ{X|`a\8? uf彁uHح&N8qرcǎ;VWŋ/^LI9o'HZدr?WTRJLF/vq:gٲF/m8!{uctXg )e& 4a_X6l0Ne秃Έ#F_zիW] Dƭ=ɓ'O<&MAoz*!]__t0Ʉi[bb"#x{ݻwfCĵ>|Pq4 !wif}XYZ%"Zviktp%$-ԩSNRqƍ7NQF9rH] "iJic]vڵɓ'O<96vZU0u&6*=ÌsI%i=W: _˗/_ӗ^z饗^2/ _H/X1"?|RRRRRL2eʔ)g1ܾ}))it,l M}w"yCJqr8ֶm۶m۶t-3ǂ ,X0(_߾JիF_!Izbgi_%pZ m8? _"@Ɵ&Lrwpwۮ]o_Iƍݻw޵ن 6lذW_}W_Xo߾}vql.r^8cq\hѢE:  =6lذaCBB˖-[lzbŊ+V i$P~ڡ>?pB/[oɄE 3U`'rcIo#`?"jO"uRF/sЧvIi2]tҥK))zիWLLƍ7nl6 /,"޽{ݛ(Љ Ƃ~_:J +V!F T׮R(c.\pBJJp̅kE&M4ibLG7|+ŇU_B2\!Flfu^'y̙t DL̊zRѣG AUɒ%K, "0k|˗'$ܹsΝ;6[F5jd ̣>+`w^\~n/y  dc 0 ,L3qq΅/J ' l@^.^xɊRf͚5k %PO*LXW=bŊ+V 8oxСCJNvϓ'^hN~ >:ϟ/B넄 4hlnذaÆ -^muੰߕ_?b/wʛL&ķ@:=qZ`6_f Hզ Sq޶s;&%/jO?_?p=./QEq{j-֭eύxx]<#c?W}/D4S2կoueU_ԐQw1BŌF$nQ{_ 2rg‚{ On6̇Mek6:vvn5xJ٠<#GwlAU˖5qN׮NW2&yUXʔI.]l۽iB~B22b/ĺynR֭ 4IIUR)3Ny:ɚϯ&xWЏ@/$5v`B oiXZ_p;B}Blӧ^owXl260Ѱ a/|M6P_,DQȟ6Z?ծ2w5HB X 4P@X;ؑ;vU0###ߧ~!ޛ8 %If̎}()'$3 5kWONd[o%J@ȏOqF)Ǎ\9GfR^X觓5󎔁A J Sk2BFE8Dƨ][^]JD,WηÁRn$?D(&FkVfR\zUJ ׮y"zGpU,< @ذ !U+lI71}[JoeJT }}F%B1 ij"].o}:y?d}!ƿ "~wΏmx-3!WdSO#G`5OټYm+篜; !yo/.[q2/=+=~oUz*%%_[/ԗdۃnvH҆<\dKN5;?0OsX_@?!ӎS WV-,bp)׬1OH#ϻn]B7o C & NvAC}-bA ͈3.7HPWPxh3IT:r$یW{$ ysB`ޕvu댾"[cHi)ط$#gϖێ{qշ"e|?d,'˗{v6m8x.8]A 0W +Rj#a`lډ6B3!NAAAAAAUi7myÑW/]fϖy*!Hx_<2:Nʖ-d$|i|=H٩'g,[B! ? '4Wl=OY`vAw2 1hl>0m{V-gl1>Q}G}db:+<7oᇞR?pB~ϯԡ8x e|FܹϭVj5^~_~9$J*UT )TPBd=.(Ν;wܱٮ^zd$'oٲe˖-87spɰUVZdjٲe˖-=f͚5k֤8p6[tttttt\=ظÞ.v%J(Q"(/$5 .]t钞s|iNDÞ7!! (Pw/wuF#dkJ)`XbŊrʕ+WVeL{EEډ>|Ê(IDAT׎ܻ'e^m3eZb<@EsңJ Z'?O9 w!D\E)UTR>|p$ު~-6EhËՍ,. nj3f̘سgϞ={VvVn4)/\?/e.bc}}_C1zѣGð q<ƒV!|||||zBA ЧOrs#gϖ߷AYp{$ ˼yѢE-cIJJJJJ@O?O"NJJ}G k֠Ào xL2eʔ :tСClٲe˖-ƍ7nܸX 4/] !$ḓ8v^A`Eټy͛āEnv }9I{$dCywy'4tҥK;/?ڃ+ylo߾}i7_Jd۵ѐnת0^z3w޽{0bс7sΝ;wn\֭[nݪm?.LX`t ¡T!pȨQFe®w "cc8xP/O[eJ R 0jjػ&M4iҤX9tHZ4L&+?^T;1YLyŋ/ ?7-ÆOVndkTWWPB ʕ+W\HHŋ/Ү_/j=O_x M@z /Edu̠$g6ܹsΝz, 3{DV<-JQ$qb YWiӦM6MQ%dޫ{$Pq%]vpvN}ޯ|%K {{(*uԩSܣG=z~ܪO>H_m>}':ZD;r~k!EH@3"pWmc0;9t j@od8R8A_}V -ΪpHw}j!ӧO>=:OCLÆQG"8™)SL2%<]G@e"q.4Hڋ}H;6Lԑ3gΜ93"XbŊsǁ YU9H;Y^^~Yɺx-Ev=s=,ga?3Uy =!sΝ; xbŊ+V&u_K Dֻ R?#.2X2bھ}knޔz*es4hll~(37o޼yCCVZjU|˗/_HiSf d8opW/~"eE6޽{[-|*v7UȯE)111111qq=(H;lZ>\Vȏ "+RmA8K]x^~&W̘1cƌz~&b~.WubŊ!N:uꔢH@KE{ݻwGHn1nf>}lHQu9W/ !w߹Wq=5Pdd1I}3Afl2I߰={ٳ/V9k(ׯ_~4nܸqp!$C2i].q%* &"VO,L]ET'X8vW:wܹsg}g ;vرc&ʋ~"&YSǏ?~*wח0J w>7n}2p\Zb0a„  3H"E ‚$kJAl쯓lҋq ڿ 7*,}x~͟_o}3&ow̨<,0ajԨQF uիWHfD&&c$adѽ,0>ٰGm-Dr{T0x%v޽{D \ۯJigR.\ i~}f͚5kb@):,d? 1Hfwn Hd6A٩wsח&UZjժU+WB~_LmڴiӦMXԩSN}>fΔRC@!AVHJQ ]#m~-t\ ]ٝ>|ؓU8.+Wt̋qbծ)>д7׫o(a m( o 4r۴='Nz.A{w!/eQ߫W^z;쭑D<)rD0s#WN` ;Dڼ9JiG.6ƭ/8[nݺu s*2/"5/o`vat} ɼL/!! *R͹ȑRR *TP!(ȑ#GG+YGa? Зkr'TaB~ ȂC1 ;dncj/ğf=zѣcc۶m۶mPvڵkװ .\p!% pG}2:U!?ݻw޽{~,A%rh'N8dhQ2 o߫?_ϯ(;Uq#jAg 뤪ʕ+W\QRbJ4s!cRRxϋ=K^tT΄㏵{j׮]vmEٿuZv2Ս>w7y=WW$B 1*UVZfE-Z4(HO߷ L̙3gEEٷo߾}y vjՒ-8iC 2dXA#G9rL20S4hРAlHgdEfEڴ(Orʕ+$BpL蓓S,F_gVAgϞ5gsL1ч[B~ @?w4@FE#Od$FXXbbbbbbPdLU 4*`(RϠ 2<2-8q/H^wt)3;wla矪0#{IYqh+`.crF!N:uI] 75P8D+J%J(2~ߕq> ?!0 *TPP ^}W_}lFAyOLf͚5k8߹#e6W^z5BcccccczJჂ?#p4bA !"HJoPDz]>q}g\rʕCB ۴+0@&幯YG\YXRwΎ =̀_ofXHs;=7f"vw=a9ۅ;@Wx*ߦW$$mƍ7n?؟ڵ_}3O{upH' P~o ɖc! W^z\ zŋ/-{pȸf @?.VW_}W_K@=*CX,;vرchhZ۱JE_vg~ 3+H=eځ?{~[$0vu$<+0=pdI}##ez/c؟vСC&Sٲe˖-(K.]  %Ӷ:\|it@q5Cw`29=N*UTRBÇ>QȯǗ_~_,X`AA/ /~_~裏>7ba!%۷~!:uԩ(׮]vV+~.]tE@'bZ5m] *qF=0Qk5# wu+RG&v,)ƍ7nx'N8q4lذaÆҺu֭[Q%`H rfog&v.dL؈pR8!L"$lY)11kZy:sQ]+.(BõKAPeϴio .ׂAzpH礤??X`З@1?i%y$RRҖ-[l٢w7C_oHAEDfV^*ԩݭ{g/p#R0Kf2E_~}H!?3!2 "%o/B,mRpL5w ӧO>}:9Y桉tk_| ;{yDz,%}ȼ|u=D;rj HH1fdVիW^MI9zѣG}Pޠ y&}27w}NOȼB_7U _xK A7"B3:o00nSzQ~MHWH6ypC#)ѽM'7O\F "=[Lh'$[6> "7Т# i=[b} dH\(P&(Ν;wIIA#;#4/u2< Op]H`(H잞"}0+@1cQL&ٲe˖-믿f__ktg8"}GDY.^xcerڴiӦM^েR/GG|7`?~!Gwߕ~~>.Ζ!yb|˗NjpU}g22,_^&N~|… .[nݺuKQfϞ={lE9vرc\͛7o޼"TP5:/Ν;wLӴiӦMB~ _Eqj}۷o߾,Ydɒ%y$r"sVo*\B@Azn*_<:DRӧO>]Q.\pT$2^7E/3 ApD!H9jk3A8b/Gu +^x_-#HJPHFD!#< .\pa|LnIF_ofGg&(GF#G9R_ȏ L$szVZjz!y A8 &;$r3+ʤI&MN[hѢE 3wŊ+VHB *TP No iELd542\Thn=0wc`#-rʕ+Ʉc/*UJL'Fl޼yj \N:uyxBӦ=͛7o޼RH"Ex!rdGMwf___]IJPۋl6=O.]t(e(??g}gqq'y܉=wǞ_K;W… i$B댇CHi|le jyο"ϙ|C]2o{M9& LBW^zuy߾}p9fo'!@ +ə3=uF"gݡsYGXDqݽ{ݻgI{U۶Rτc}˘ q*G 8"9s̙3ɲdfCFKWi;!ݸqƍpDUqPB^~b;C(5k֬YWq4רQF3hР &L0aHv`DPMf GP`½DNJ BUIIO^:{BF'ٳdN+Y-gPcFA͸7"ڵk׮]KI&iXd0D`.LLLLLLT8~1[c>!$sZLh`=:}'SXbŊwʕ3^Y@C/ZF>gDl$t尞SIڱ?CO8~w$e~s}B~-8Ώ#dRB~-+ѣ9͛KG+q)Uw][JN`_ Bo5u#8 i3u }s7#Ӓ%_2^_Qxܫ(+W\rc}&o^ɯ}ב}ڴiӦMUGǏ?~\QDx~0B@wW#ch -vڵk6!BMD%Jp4:9"~ȄL{|'|!pW-AM6mڴp Ѯ,4-kϬ@]\rʩ 0`̝;wܹ8:‰O?O?U# ?G1bEٳgϞ={_3.4 F!LGϬ/k{ v2nIN^dɒ%K;tСC?۷o߾=1QO/e߾Gk Ƹc̙3g G !5uΜ bJ 4h`6WȯG=zqpHkԱc2>{V̕;F!gCN?|dr.4nvmitH S=b`@w߃OfUd H"9{^ B!CDDDDDD y 2r.ЄM_ɳgϞŪ=zѣɈh!$0fda/!CQO!`Qzիɼy͛WQn߾}mE>|e۶m۶mK^QF5j(EsΝ;wE|$BsH2u?.%DXL믿r$SRp0\Qϟ?~%@UӦF8aԩSN@Zda~cq\w7ܽ{ݻF?#6dVΝ;Z|^G4(vP?"RxfqfB<>}'&d*Ɲ+]ĿH IƽVZǩEaJI1=I<_~_vו!~)r>jKBҏcm g6}-b{9^7!^=l(Do{8:Kƺ$OϜyod^ԩSN:f3+o׮]vZ^z鍋4f,Bϟ^-Zhb$EK/3þ{{{%!$렗9_f-BϚ5k֬YKVgСCѵ"i- ڐDA%If2O9*8iʔ)SL̺zSKv̢ݻw޽zG* 5jH|9"%<.:t!ԩSNR3끀^71$C-D:g@'53>&/Xzիm!=-Bk٪_elJ!oN=ZsG5kUc,[&{}}$aCr@Gɀuڵk׮<%P|.M&~< r:ٹsΝ;#*ׂiKo BԊ2iҤI&`0SYTaQMd.4 2'#2%3dI+ı>$D2^`|~PkU$Z֨Q>Y 9 ,X`AEQF5Z^}W_}UQygyFk 엀@RnݺW/ j ??P (P!@Ix1غu֭[Q}27\IQD߿$ xǏq)/rjo^d$D55k֬Y3y@k֯7}>G"E)Rē#u}g}6$D K,Yd`d̔7`A)W{eGN0n p4( o@d@&Vw  ϕ {0D 'k^$Ю45͛TGw޽{Dk[,bt8OK| n !!b7^ȯEPujP΄Θat{=1~>*VZjѵ … .\Pw 6 !#~9s8 U4a„ &ȑ#Gq˗/CO4e~`lzv3z@߿~?ķHϾwޑb{NʼyĸLŊRy!Ei޼yLr&eG=zpßU (&M#8~ZS=t}S?/מbh!>Cόr!W_2&{YJ޽[#T۷o߾}~;N:(* /o1$uZ9);?2*~eR/.m ߳x˕a?#y h`v\a~pdd(9Y2&BnU"…H;$a /qf*WS!>|DB@B]/BQ6o޼yfEٱcǎ;ŋ/^T /ࣞqƍ7V+2y(H^vV"}r̙3gΧd51ZQ$ ֬Yf5@~Xi/P 8oFnǍ7n8!C Rj-⸮(۱]h j{ø4******.5YS{w8##G9$_~_~IJJ= d, DE1^ Ab_(_^Z;gKd$ t' BzOzBCR=@wc+d&ݕ&@ġ4G6 P* ɌL_!vWe>!qqb w7Py͛ܮq0s„ ϱn!]Vk_^{ݻwXӉ](KAl …؃~//_{^{bA~Sٲe˖-=ĵ$nbv`T$nSHj5q6N~3'uJ9)SL2P ٟ'c!ekL)H]W"X֭[ndBH"qD&&ថh{|3l͞-:?8~&Sz=@$z# ްQ؟>JqH(]tҥeРA Rֺv+'ORz[пdUDb1}tr#F Ǐ+WYzI;d#ekc! ޝ MFb:t(O<O<(ϟ?*@9aĄzBT""""""2n*U;wܹ]?&M4i$E[nݺu]vڵS3˸V]@jD .\pߐz;uԩS'anBJ`/h۶m۶mCC%B@\~))9>ܳ'יxOr*i=_(˗/_tgӒgPHp#@f-Y?$t٤]ꅺܲ;FHVB'֧M;51.g͚5k,^o2O#?`'q^N5~f.tNH1A"{hm62k'7#G{PxxxxxH 4hР'{{}}  rȑCmZ}7$ ̑hLlZHI uO6lذaÌ w 2!Gr e\f-o~F% Ke T $Ȋ"6AƉƍ%޽F_oV%0z0Yf͚5\"c7C 24#71"$Ѓ)pX:瓓?3%ܹsΝKNFe*dt3&L0aLd%$+LB~PӧO>vK . 'N8QȑO?8>^MotҥK?|ÇyF_J/VZj*4D%J qPT f=# ;vرf!z~/$<ݫ߷Tf$v w^=-&Ž CCCCÓB2_RuO{~fy:o8xШo& cBR""'IIE-ZhB ;?NI;WT)قidD$r)Tp… ͙3gΜ9qqj=~Ǔ,YdɒxzM_Yo/_O$m@h# q~)s'߿Ͷ{ݻw'%f>O?tp3<3cL2B} yWpm{{L-!oذaÆ !V(E9uԩSqƍ7YQ>^EQϳsΝ;wyow񶃪dP3^Jv._|9-q^aAw-=e˖-[*ԕ矒HI)/G)bBcIFϔ*fsA?O3yQ6__-D8W\r` פnweTB҂?_k =+'[mHY8ةݻw=mڵk׮5}۷OII=sv>}UuҮ׮5>dV}z F˷at 2 [ƋV=ӿ&m6 ӚyՑu&M4iR\ރrtr۴;+!$##誰Zj՜Y%&XO/k׮$uaD w?!؝GF!BO=SO=,Vm2mذaÆ rСC)Jppppp0JYf͚5Sm߾}?VF^^ڷ;IJuKJ53g2ϓ'OE:>\n:uZQ~~MQ۷o>E^zUM 4h(/^xǎ;v옚]ތj=zO+ PxGWJ*UTI}/=zѣ̂%)Wryo=kBҋcK/K_"+f΅ ]?B>Yf͚5~<8l([jqƍ7.<\ح[nݺ0Gx{݂ իW^w 3m۶m6Ua] ú׶mqiWMi@ٳgϞ=<^T/g~Fߧ"̝;wܹjk@7]3ߺlJ !I+eǎ;v쀐_k6D¶O>' ݿ_JYR)v+# +TPBU{ݻwoEׯ_~%222i"!z%=}q29#j;~.]o=ͥVFwUABA=p_7qJ {F>,%WT\'q*t#/cEZ}u|hѢEc`ܴiӦMC Nʖeˤ,Q[HH-Zh< Kٶ[OLt [Æi?<?мL !iGfՄ:tǛ t -\qW\q9U8G̙No tL9z.*Y?t\bͤ IG r*_v-顧/K/"3%:.줞?#GJi$0."|˗|衇z衸8[{'>,XTqz=L;;/""aÆ 6deiq> Pxu$0{3GyG10n[4C^ {yЫ%DFFʕ+Wy~_7O;_>]lٲeرcǎkN..Y?5_׉ٳgڵk׮];'G#"Lǁ8K  j++| ̜9sfn ^x C3 k׮]v<L ҙ 3UmڴiӦM=ߡoojNo~ӧ[ A/i,~Yrb7N*ܲ79?yE }~ڴiӦMKKe~%J/))w<_{}edft_ӧE6xlٲe˖117nܸqtdڊٱcǎ;^yW^y%%ԩSN^inNR?; LJei4z@~XÐy͛7@ ?t@G)3K.]twF+#G1dȐ!C$'8p&@ث>BAЎɓ'O؟!+Kzn~4fMeά@IC԰>Ç>|%u֭[ntTED +@;G7X uJyNs`(Xi3%W_>h :uԩSSSwܹsN'$pBZ; tdw>#HjϷ~moIe+èQF _@ezMIo%  aÆ ͫ\9]$مȑ#Gdg9s̙3;~@y3-Ydɒ%NY~I` @8 p%Kd))I߷o߾}nݺuV *\=6'GܟMJrnxy}o{S};¥9MQΝ;w\`Ǐ?>%EZ}VC!dI<۶m۶mXŊu޽{qqxO8q ?OsYtKjժUVҞSO=Sŋ/^]`Θ1] y7~idf̸2ZF۷oߞ%ǏqĺuNMM6mڴ1g~e60_nO˒bhѢE?+yO>}v){vz!tI0ژH >裏>&L0a„T@~3fHi3inFFFFF㈅uN$pXK %z]fN) Mݺu֭a\x^x߫ LRowk4EN$^6mJ d?%K\2>K; .R/Vw+U/>]8;w޽{Yܥ.\?̜9s̙:!Y0N.Hڷ{{mdLKe<}kNgϙx ȝ7 Kf5գG=zI&5 ցEA{-_CnڐڿaUd^x dɒ%KԁK3f)SL2;;M;wJ3u+W\r~R:8Kgv4_r>\w>߱cǎ;ȯꫯ*#C%pb"I{s_+VXy#1erO`Sp [[oH_@@GRy>2}ӧIlWP" tWO2 :vjO&&ڽ3\5<zd^_|駟~iZmwMgv&HGO>䓴4-nn _rʕ+GN҈5O>O|\~۵$`#&A 4~^{TIj7?.yԛq@Qy?cFF cÆ 6ljٲe˖-?y&W\Oi֬YI2^@3kY.h>"Ǚt-̉6&Sisz իW^?@]? |m/oJId%99<<`}UnS{o!)f믿(QD% CǏ?SSSSSS _~Y[ϻ1CGzk=[f 82økZ//6'b9rȑ# /h)kO?O?m*Uޟ yaW0ʲF?wyAW Ce3ˀF=73Qcg b M7nܸqt?5!򇧞=hѢEf}^Yu`Ç>l??{ѣG=:i`Z#_g};<yKdi ~# qq~&M4iҤT]֙t?O}##%?> e{ڵszNߏ\ve]vKv:ٳgϞ=k܏S-M o 7ЄDv!0rH3hb۶m۶m]_;=k;#y#a>s HN'Oh ĉ'S3/q1˗/_]OK{ʲN,eZ$ LK~[!z?p…[^B *Ƹqƍq&_#'*fb۷o0Mq3~~3sΝ;:^S5jԨQFH'r;vرc ^zճҥK.]y};^ZkЅM@:.̎xY/N8qĉe˖-[Πۑv#XOo5_ʕv{LrW\qQQfu 7ڵ>}aqq:G2kki}\/n}뮻ΜqzK{vxo^/zc׮]v2I wJTTT9vÎ_C;|2y>?yɓ'I"(/QQ/N4!̱cNobW4Ν;wܙW_}W_% ΥONNNNN~??0-}v;E\_$*7XXO/e ];+O<xE-ZdmpUT>7Hz(E; =6l8Ձ#G9rdJr%\r%;@eƤ}7lvz} v HC]V403u}夤,<'ňk[Wŀ@~?"3Dt>>zۑv;jX3gΜ9s%@*&Fqȑ#Gdgzz;Egʅׯ_ /uYYgܴIvM(\<#?O?)ۮۑvÎ'c;~y3iݜ9NQB;8 }~gI}G1cƌ3&%k HJNցNIr:M(jgg/ram0A5)j4+KE G?: l{ D_;h LD W+W\y]~5pCy' iӤ˄Ob9cƌ3f볚xCh\zKu,4GcftzON_o4/#|ڵ40F,YdØ? c„ &LP<#`-.~w޽{6^wu]wa=zс_tE]taH;s7O:ut~Y~#sN# 2qTСCrLǩ))))))99Owd|]D/%Eu-LqzMڕO~G5_|_4Ç>wΤe.]hQ0I&z{䗎_z_^7nܸqfBzիWy_+z=.`zٮ_vz(KY*yuF*yٳgϞ=;=];`^@zv. 엥 O>}'K˩iS);Q~hf[ou": ׬7mڴiӦ:D?wܹs禧[nݺuv54؄n>r5\s5I aꫯ*EXeҙ$79YiiˍzV6PKؤ$3Vuv"w3W+u &v=@v #p'GPn&J}Ǝlj[[ 3͛7olw_3\hX&(xn7F)7G8In3:%<#ȟ\w#zgΜ9shO tv"}f@IBÐ$qԩS: ôw/ CAHjjjjjNfL, :sFJw J@f5o./81Qn?ÝEg|{エ߿1s`6 5vzիW.W^g.(3jԨQF荥Nz6},uΝ;wyNɰxn߾}50A-fֆ~ iӤF~QqXfHL,VXb|'<'G:32$s ;~^̞-Kݧ)vq~HSG^JA2HL\wĔ/_|oPǎ;vXvUVZ9o޼y楧~hڔP,`/^x񈈏??.VL8()i߾}AhR~2R?t9W\qWWrٳg@]vڵzٿ_oݺN/PSfF|<3q\#C 2d%:%h PIMv7kR/-hR*e} pn8M;'G~~.Wh_!X^h?5+CjſQA~+ԩR/7s$^&\'N815{1cw3{s 3:tPVfd֙2.\pŒ/&0(W\p\el{ՌzpzK7׵k;~}.uOR֯[|32$WVdjv&OIc 9~dzA澶6HXܗ{@{﹗&]/(;9 hoͽlD'_4]tE]taH aL4iҤI r]kH a u$3͙3۶=Sl)v>/fkl`P/_'Jy~d wkVw10WFOo0^†zd7 Żi{I\%SOҨQ ~z+4p`p>q)\9No'BCޘylӿ7:cK}ԏg{HYn@i\Cs>wv)e@Rhp?ܸ7^{MZ^/wz׏CC=TL`^N~[nqz;R?~X| ^ȏ@;K;tA.Dz D* םyU#}jkRTIyAYDU `7 F_˒gZF桰 jt8y]毿N~H*Yz)݁'x2Eڷ{vkWIfzr={J댇̇VI9q"cTyO' B4;*ʙ8Oxz裲Szr,zjM:874%diX)ubN)bkTQ/P5o.Kzfz7pNI+5i(-rz{UȒv^{bVrY)fNx`A:w}-+jýqB'B]_4\?} ̽(o`;"URO4qvTzf~) zdkE^w&)X 6/KY#NS,u^{tM`%S{ 8CGvvp =Fؿx`" M0` P/\r4#ȍx=Qd`Bڢv ԛrdIPiu}@֚XTYib?ڮ}~&~hb&5$H/\B< *^?$ @:pyѩ,iBdk~-:#h@0'lBJ].QBJ׫6mRQtطoV4^l*]XBp[㕔@~z;;tdkW)[Q#WY#ERN_~))N(x'ongÆRV<(uRY#ig׫zqイt=Rj(]CJ=̟/ 8^4o.KKj`}_|_/n}뮻Μ={I[I*UJzI)Tr.)WrD}ϞuzO;t%]QQqO'VJ=^p?!S'YuĔ)\GۼXH=IJrz}Rڵ%}lP8o߾}>k֬Yfўܯ'֮#\oR_ח-R5kJ[J/_77͊:k˒n])cc\ɛo:JXZ.E됤cI@;?d܏z=kv$HЀ(pR/o3)R8'*iSϑ+Ȓ^Gh1Mz@O?Wʩ~߬W,i@&ɯ瞓R7v OۯG嗝^sקmM_[H9lE{ ~;u"?F-h2רP/ P/m/.ˋ?t_c=&{zظEtݼf͟(hG% H)lJݷ Ε2XJs•{_JYnĔ_o"*U8Q>X1 /Æ9z|_tzO 4?)))))駟~(QD%{tҥKo zm :W zyNo=_O].0!hfq}ԩs_z,i{Oぶ`iBz@>(K0pWzSRnگ_~  :BM~ƍ\NDzAj/:GIg|φ R%}<Ytmӥ.-s7wjJt`+ \F{NowaP/J7@j0]|puNoN~g%@~׃;Jۼ2?G{Krz+dL+WJ5kJtC9FEםzozSSz 4a]`u"A_VD?Bwkh}dɒ%KիW^㯹k|~ׯ|~SN:u*'[23xu;UgD<| *Tٱcǎ;^~_~yTE]tEE=a?3;{׮]vʚ9s̙3>|l]g9ޅ ܫ & h޼ycc+2&&11111ѳcٳgϞپ}32.]t3gΜ9szPw-ҥNu"ŋ/^xDD6mڴi۬Yf͚EG-[lٲ/;vرUVZ*3sUk~5ZWL2eFϞ={i.=zѣ1qĉ'__wWrD2FԏmeI4Eg2sʱcRWK=sg׫zP,>`|'|b9??g}gjO>g y#ys zΝ;wˬ[rʕ+32Ǝ;v*UTR%2RfmРA G5jԨ7G:fr-[V5A 4Zxŋ32)d8oG$ק2v_z>% lkH~o>o3Ն RuJ G_-Kљp[tz Nv׻vvڴYf͚5G^O猴v3ZI#&&C~_'/}'OkҤI&Mׯ_~hO1+VX1*J/_5++%%%%%06o޼yիW^:3zcƌ3fLBn۶m۶mCԭ[nݺ:;=V횾y.ՄI٠9r|~Bء NrOmZjժUl 7p 7DGWZjժQQɓ'O%%=====jM롯\:P9Y2h?ϻ\ī >>}3BM~OK4)1QoѢE-bbzѣGx=+=N4iҤI~~$)Vz+PÜC||@?_??8%8xP~pzzHfFիW^=*gyg\?^={ٳZvkMX D/zo{ݻaL:uԩ!x^x`oUNh{  B%*8^h`7!c#G9rdW:v Cn cŊ+<߹zu#IgՁ5j}̔)SLRu޽{ݛu饗^zQQ瓓srzAHs׌fZ>|pK[P( "RR֬YfncH=3;3n6l(UJ3_DFիW^ȯt=uu;_۩ +@%J(Q"""J/\.|WUt翜/:̼Ӂi7bJSo u;_USOIDATv#0={:F5j0J*UTlՎ(s% X+lJ{|BxpǕzꩧҙ쬯Ri Wp-&ؘ:UJi̜͉ W>"Bt].mɓe:tpz?!0ի'K:cȯ @ ޿m8-@~ }ѣG 0l>r\X/܏^ :ը[:=Ǒƍ7n8:Z>HÀEFJ`庞N/\kL)@~NԀ I@~ue]veQQz]j ䷮ 0hРAp_R ڻbc6lذaCsfl_s~z) 7nܸqno9&{?{La&ل + ]̎SfR2X7 oǏu\peuSjŽ^{^KHk W^z%˥^חzQ)\ovDeP)}ۑcbx7x#!A7_mϸ>KQ!S' w2c]||^_}xwiL8W N"y~t=};(5@~:F~Mu]=YS۝^"߾}8t\w^'?_]yW^yuu"Ĉ`:^A 4K>@`XG" d}^#Pߧ#]/ :U2[8-Z<\ O[C3xrz}S˖Gnn!66Vz ,X@3* K̹3BvڵkRJޘvvndzΚ.C/eI b~x \7ߴ>/1+7P11NON\vد@?=*B22p2cZJvA_ɱcNsM۶m۶m[t%K,Yb|7|c߿H2+9Ç2ck *VS8_ ɓkTc@G$!9î|g3['O#KӦ5@RyD99r:TwQQQQQQKzw,^Ao@X;|}'z&bܗ[eoi%4:kɐ!C oM̰ 0.KpL#rߚ")Fɳw<(zv%-[~ ٳgϞ=|%E:hy{アロ*3u[??&&%%%%%%6V7%e۷o@۩ o]iup{7 O .\pK9ӐSxM `wqwJ;|:wR~v7$AgOOj˜ ^u{O ::䥤رcǎL_2z 3 vF_2̄rʕ3ճz$':@qHޘ7=Z~ $i865'x'3\x#yv&M 焄pH@.-o[n%&F+vNf}m=4.&I&M4XbŊkǯ믿 ƌ3f 8$#.̑~U<*/ٴIڿuzVk{kIi83_;'߾]# 7gv|ׯ_|\g$@~][kWS: }?^J z)S:C@IbH~5+˚ɑ C?v!w._ib^͜^2 lYO~ }}۹馛n馘]~ o?^8E~P/?rXL>#VZjՊҀ~}ݤI&Mj-NAN}oB=Eg𕡻};<Qf͚5k//ˍ^}?Kddq>""\zzիW^IIO>}vLW応^p'{eɜ[cJf6ȯgҶw1"PuJ9wl׌R tF"ԛ-[lٲl>V$$Ȁ@LQk%C3z yN vz(=_;@ee˖-ygرcǎ 없a+...:A %PGgqz+|lw-ߎO>O&%_ԭ @^ib PRJ*EFu嫽kժUVO/_Դ{igRN/ -9v K*5#X udHz(ײ]>Jb~=IC\@7nܸ0O+^@D0ә5AǏo(1~裏>%\!ߓ/.MIWH-^xV / C7s{{ŤIR^ylyjoEE̕O9fN]ޏ'N8qaLȾ_~3BE~0y#)Sd?]bc;wܹszA"-Mt= 5dŢUVZ5p=ش[DG/\p… /B@HjժUV|&,{୉&^ڎ}/.}ZUb}L2eʔqzU._O=SO=eݩ sݙ7?rٳg8m#}j"? ^|7|Y/}vP/lٺu֭[=R8# ǕoڴiӦMc?пk jݺù֭}H+W\reÐqW^y商qСC!` ??? C= v֓TaN>h]"B3EJ?_9AԷ/a?㨿HzۍFπ~g(,V޺ ؚQ~xfQF5ߡ3[KffWfֆbQ¼Yw:uFJ\gtn.*U>Rlٲe:7M.3B''{[7)i)h /BB}S~r{edL޷ㅝ-Y"KKݼyFlW /eIivvj=zѣvkvm"O(\yl8=c=-}1bĈ9rȑ#ٻvڵku IzT ݍ}G}d2[_{ݻwƜ9s̙c&رcǎ(ƌ3fosG,˗/_<=■'X9|Kt@ꫯ6 ~?ɳA 4!(Ot`@Li@d *T`f+!?wׯ|{{=O1gΜ9sL]nr1k\g|{h^$s Z%咙_񢠹7Ο/r\.Mr[k?"#$%=pBiQo A @~+M6mڴT R#yD<R;u;s癳_>ӨݻwL n5u 5)\#$3[GF!>^ufT:3ިQF=ngNoG᠁z衇[>aL:uԩf`/vJS`dI@uƍr]Y5@3#CtC5NHDDݻw2÷wh|F7 b/}_|E3}C 2dzk{NIQ8W߿M6mڴ 7;[@;Id-yt\gsK9't`?6a=o!4|Q,yMHh ޳gϞ={۷o߾~ t=G3ȯgҞf׏VSugx1p<:v>zիWFիWN5wܹs]έ)Pt}g}kvno,Kg~7%K,Y3_.]t0jٌj#8'H蜜I&M4)5U?t=z#>^]í[nݺծJE3NΕ2VeX>,Úh ͛7oޜ@~+ 2 / ,Xn& };ڵ% ~fǎ20odi9̞7]}:RvnI Sp[3ݣG}sᦁT>'|}S,[I<)UTR`kM\e0@~2 Y/YH'ݤ f 6ٯ~ր54R: y͛7ѣ$z W:@Lz=2tСC\+}_-Zh~2#5U_$&+VXb?=na>w#?4_~q]ڮ iVb>xxw|&_@eqƍ7.%s&B%/m*-|YSJ9qY|'|b;VMY8Q|Vr3D:ѣc?B]/>>kVZjժNm޽{5Sy.4x<=bp)@~+q}QQuԩSNTNo h"eO?Oھ))))))گZ^kN?[*gCu֭[)? F;4^;vرcGxw}]CP/BZf! 0`a{ڰ( 7z 3и\%J(QCR%in݈rv痜o].Y[Wʕ+W6-ӧO>mSLm>d s; *~XrrdLiNM~7|WgB@~@~rʕ+W.225dNﯢ=_{k@@~+ YtҥK533S7+T3TܷN_N2|CgTwL_5ae]vy YliO}֬Yfbc`:v>ҡC:J"w_[[$at֭[nQf͚%ԁǏ?~8W $4 ID{ˮk e˂"uP{Gy䑸8/vvm'e˖-[J[jժU+7RGΒ3m69"V/ ""d`tN|JHi]hѢE;wz"w:G|'N8qk hP^ݻwq o_#z|;H"OJ=;wܹsgVܗO?!pz \_}SN׹= )C=0. .믿/;vرcc] / /4ƍ7n׫ufpnU@_K& 5GhdMM 5ѵ/z?o0yz'|Ç>X4L8+ e\._!I3Y:ddP:~Nߋp!3G}Gif^8?|u:^(iƵcǎ;vЬ#3=s=M7tM7۹sΝ;;7PXEDHX$g>782; ?w޽{ڱcu`6UXbŊ10|^"dkgBwرcǎo߾}4NveG9;,@~HD #111111"B:|\.9(ƍ7nܘ / ))3o e6R 6@~>QF5֙T׮]vZ8yɓ'~:s$44ۼYn ߳gϞ={ȯtrOKbbjժUV-WgЕ@#G92%E_F@-+ 32N:u)k~񢨑q\Z/^^~4=u&}`yC1իW^zT/ e}t/9O:uԩii'0@^{Nmv)6V@=zѣv=sghi'5A 40Μ9sǼ^ذaÆ  7x7 L2eʔ=rk+VXդn'nnr_Zpߧ '|I0.8@;0㍴}SG4o㎶WԫW^zNo%p.~{G1%E].9~=ۑIw澽w藆#GXׯ*J (:4(UTR O>}1 w}w5=ӬYf͚i +U/ X 58X """""""#tzm ~;2P0m۶m6950RicG,Yd篸+0.K/yk+B۶Gti32T>| {>oo*_~)e\>l RC h/g TRJNIPi^kQu@$*3f̘1c򩧜ޯjf>3ڵk׮]^sg;vP)]+\h`]קĥ> 孏}B߯ov㿪V>+#F!? #Qdɒ%KKvT5iT)CQQ??l .\paNΠ(""+2kҺu֭[Κ5k֬YX }VTs̝;wܹ?R߮HS믿4:tС{[n#K?gll˖-[lb!A=5U23de?~ D7|7oo[o[r=!rrdk= t~{h{Vʕ+Wڞk<{dFk-zo#v4'G%RSW^zjӧE#/wz :@ܬׯ_~}fSVZj]( \o V ӧOno7&Oxʔ۷(uΝ;w ݚyE-Z0 oG0.J>"R?#:vyyg  99rQf͚5k}},"Bn߾}} @k_aεێ5o cҤI&M W//F^ze͛7og &p_ع[Ld}QF5ܹsΝؑxiJJN_裏>裞+ۼy͛335'gŋ/ȸ{X 5!Νr\= 0>^z뭷zax7xk{_HիWnϡ3kIIR-ʕvsȑ#GdgIJJ3kKh߾r~غ=Wx~W_}W_ed{{olZUsr$nSX0DsA\:l4̌3f̘\'m7={ٳgik_ <3<Ɛzi \E{L6Mjt$NMxbW} J'99rK;u<0]m `ڰ;a>/2z\u(eഷ.g0#{q駟~iXhѢE C2{OXtu]wuѰaÆ Ƃ ,X`.ȏ`jICKfz|\f@_o}Gg *ڊ3W@ 87 u__ٿxŋ7{NP58Kdɜ)$6666604hРA!7￟ ۷oxWv4aӧO>mgR@eUjժU?_3p,K߳gϞ={תUVZQQz?!C 2$99؁ھѬYf͚_hCvi3eZi?CҚy\+Cf20X|"3i{J}@~hk_BOO4{Y#v]\.) hiv'!]rrdKD'y!?$ ~Aߧ&& t=mB}Dڙ#"zݻwoZ*UTRݺu֭[\Μ, $ӯk6:ZE}O>}̦M6m4&F׬Yf+ځ޳?̈́h]x衇z!ܓS,qGߺu֭[ߟ~r9ʕ+W]b!1z:'m"ڵRN"xE5kdQZjժU) SN:ujZZJJJJJ?T-Y"ۧ)rn4F>͹1yH xl}q9v8?s*'?C֭[nݺ}BBBAJLZ˗/_n'>^tر3r 1gHxȑ#Gh+W9EC۷o׾:9pQR;:{? Cf"0lh">O>Uz@}x AdYuFPK`oN>rzv@k`6o Ϟ={/ꪫ**JfZON2؁__oK=$ iСC|LhR۳<Λ7o޼yf;:7I3 [nx23}@ 8vܹ[AgHa4:l.ϰKP_z_ȭǏ@;vرcvC* n-KRJ_3G &,\B{efy@DT r-yvAOmk[gQF5@ W@~>k`?a(#vϜiHJ:}ӧsr#"a}O<OիW^II:Gگ}G}3gg/]׆ Ҏ1n{85nܸqƆ//}͛7olo`D0r۶m۶m\m_@~]"2a&.)rWzoNڷV_3<XH ~HIdg|!%?45Ѯ}Bf@4 ':7t\5Njʕ+W4Sm7Pvpa @jbL56KGA^ffz:Ns=> ~\@~W,Q#ZL:[k׮]v5`C:޷~xˁE9Rʇ{ ,̔bcK(QD .w\/K/! ?ctHĉO=%˃qrw4iL:S҆?}=((!`tҥK.捔h~ᇆ1{ٳgܹsΝk7tM7d@nݺu:#T8獺H{ݻw=RzvXkDz_~h.t ˥qjժUӧO>=Jgxb: $lؓ v&cG KiUӗ-[lٲ w~;믿uF; 3f̘106nܸџ_EUXbŊyz}޿̄pڮ'5ᗴ+VXba믿vԩSNQf͚5k:ȯIZiz9Yg[=_k7o޼y폳>//;'|']*,d?of5?7x7RSoo9&ꫯꫣUO`Ϟ={Fo~}`XMf? 4}*TPaoaL2eʔ)fB=ׄqoڵk׮]Ft9B38p{@gO,h{MT) M@ @䵿R3BM~3SI믿zj{~ׯ_?:Z't4v$.+R9ӿ,oޒ\9O: ccO;0z뭷z8մ!@fІH1bĈ#ۊ  ,X`AFÇ>l Ўe; vz.:МrrdX vCuaۑv(H2۷o}u'y_~_~;vڵk.g=JWvmvaz뭷za|[YTl.yj5-ܯ_~}^{^{-׀ nْV}4I \nݺu23TRJUVZ5*JQH{Ir$emϠ '.%%%%%0_ 茆y}\ʁyI erttŋ/,qF ܑ#n}Y2ۙ*KvM6mڴ}3na7j$Vرcǎ M eȯ[  o|Q)gK\OFΝ;w\p?!ooƚ5kXJʉuCmI*}Dۭ*UTR%7i}O?O?uz-Ph?7t(i&6^+gxwSJ}/L/sr/3SKy>-zꩧX_^~_~9%ſwiTi!w Ґc4nM"cc2oo13'nٲe˖-f<ц!>P "UVZrҥK. jٮ 駝6M{۷o߾}{Vwz J#N裏>#sٚ \rXs2C8kP2ʗ>kF*6g"~~dsxgUVZȼOf /3R6YY@% 5GY;&`rdХV D 0`K/KO 6l~}M`yVh4_/ݳ /m۶m6Ø:uTF^g[Z7{F coN+ oo43d37:Zxdy=#祜iHIvN~=r~|TGOj +0zS?% wjebB}&%9({aUIG~DēO>Ouy|9[nݺYfhРA %@jqv8A?aڪ0^{^ Gv kvjG^7Vw(K6w:BÆ?9xPJ3t_g*W\r<ߡ5ûy9{E r%rצ,yx':d<_goݺu֭YY{ٳg]0_<#0RWZĈׯ_?tg 6l0:zСC5W_}W_}3gΜ9@~g|A._ %\r%%{Zt@Áם0x7xu'k]={ٳ2םw`!W||n@>Gd@qfWdfua, # ~t&^ݎܷ-'-MOgHzݡqncbbbbb<5QO<OF *T`9:ݳN¡n]K$KL[oVj:W ཽj)51ĉR֮3ZX߱o߾}egk)Tr_ߞ#=03_pb[K/K/4v 4iҤIҤ"*JX߯rt{>L(lٲe˖yN#Tkxd{yi.ߒL˖-[l _/w$QYdd~gOSexsυk˵_~)FnEJ]]?~do%e:??=C/%3_5nܸqy|:錈W+R/ۃ>LJ3uܹsΝk>|͙zuZd\k@i \77(Y= pu O?R&r_w[}lٲe˖?bUϘ1cƌ__M.2QQ#. )MȢg fL}_D t3Cl"_<++++L$( 5I'֙}.@ <LNY~ކTq7]4:c]"߿?ڐ۴JoWO>3i '|' e&guY:ȯyD~-ڵ>ҤI&MDGw͛7oެNv3hxȹJ5_Ǐ?~<;[tYIuNN͚5k֬E 8}ݩeSspu'lwM:z=eԩSN Ѕ/r+XW^y73u+ۍi@y堁3_}W_}enl 4߷o߾}۷o߾>*UTR"#%dD&-enR}Je뫁z8tСCoWvg-fvdb@~+ ߶m۶mbr\.yȯGyGәqu`D'O/%Q|ˇn˨yݮ |SG;uԩSؼd}Ҽ_['睢0-<]FQlZ2e4Ѩ_,wJRjTڟ{03m۶m۶ 瑿^z38~}:P5+ݎܷy 43R!P67?O?)wݎܷVr5g֮^Z%Wb}ۑmgxC֯Oӹx{R$0!2bc5W D_xŋ32tHwHf͚5kfϷM6mڴ)3sȑ#GLIцy֙$%@Y3ᄙ&o7 q~!, Ç>|xr u. [nݺukVV:cfϞ;occuf\aם@)eZ5qkhG3B+ejv322222 ~5Q@FovN:uԴ49~DE 8\pv~i\Ilv>_vlM&3ED}Cb-[lْy5\s5fϻcK)_0МQ3qj-WN￟ ҿtM7t?_/޾aGY~3(kB sr4H^?Yg}~Ḹ)SL2%-dɒ%K4?W+ݻCgDhx!2pȏG>EKjjjjjaT\rʆ!'2E(h@~&3Mm :tСC\k0I$e dz)pN_֭[n]SDYxayt4}د,zb< ??dh`Ϟ~(wnn!&F&}ZAR:3x ;/KZOWϷ>+_;۴rns/3^X%@ ^aoG^5kuwYGi o$wz|?C=avmv[~Ӳ>x.ТE-Z\{^{mtovjj|P/"?BW/t`߾}[ ɨ%#G'?^˗/_>2aÆ 6/ @V&M4igzE~s꣡7NJ}I}~EY̙3gΜ1 2 3$0V^zjÐ!יѤI&M̜?fB8p0 4h 3_URJ*! t=w9y[Xi8M;5SW#zozhuZpPzkJ@yщ^|_|1%EǕ[i7o޼yf~P ꫯ+&K.>!3m{6ic=cٗ`4mhlJN_a! Æ҃Jy7x _bŊ+ӓy޺n7KLgϞ={vz8w_d(990>=ۍLu_~ޑYZKR23`*&Fg޽{ݓtr`)˗N|-Á5k֬Yh_56Ib#F1W`vǎ2_?  엥>:]~iMH1{ Rq#N@`ε>2gΜ9s椧:tСC: άUzz^Y3yTw޽{̟]u;^ >}<~\рy<%e… . K.]4#cСCMN~&%3aȑGtQiHNP d6mڴi m6{lذaÆ YYvڵk]@?#+~3 |A3u֭[o 3fX_wj" &L0!5UAr@ &B *zZM _VP%u f"N/KSY}k`$ڶJtz{ '\ T3_D&V3 ILu>ߣ ~~st"IHCg'K[:S*}ŲaJp^^ ?Lqz ,)&L۶m۶mُ2.9Y]lׯ7[~駟~ܽNGNaO qN`eVsz +?ݺɒP4ի۽OfD+V,!!!!!!˔9:3Τɉ?wjfԒ((WtdTJ Lڿ_Kp'B;kǫW^z(q2, 0)){ٳg^)BgxޠkC|,!|uzм,y +^x#"ڵk׮]XI]tҥKtf* 6]mHXܩ.>U"Kzcoeʔ)SaL/7o޼y}|ӦM6m=DAo:A~G__2 &ЁҁzCKYg4B7| %;[7>^q`HGR+g}ܿFEuܹsqqؿO>}twOKױ~,gD}}R>.7vu&> QQ׭PWQAzj,ծ-[lٲĒ_wj}$]ߧxo 7W]%Kz_Ruk׮]vTLWZjժ/5*]P_RGM>G=ztBx&9921)I.o%K,Y&"1rʕ+W0۷o߾߿K/Ҽ'ڄwR/X1}|֬Yf҄a8۷o>=+ǁ; P/MAՋ:t>>vP/OeKԙσlo,|BC',4Y 4h++v;O?O?ri"dGJhW{gPП8$dYYrbKJ@XsywyݠiƬ[nݺ5#cŊ+V5 i3ښBohzիW( /4HwҴtzG@UAl V_vzM NtÇ>|؜T#"zݻw襤:C3No! VZj"#u! XIKәO:u)3/J9eԓSb7`د ,""r߱Cʞ=a[Z#"4`^7۶m۶mۘƍ7n8&ƚP(؎;v1j޼yKOޡh5@.]@<ڹ\sI1&v۷o߾=+kȐ!C INf͚5k,:N:uԉ]ðhLrrrrrrN&2239ՄvIL~錢kIKS]tM3@5EY`77dx?`$%qwqGl_GGKRT>믿}de-]tҥ 83l{P/9o*ץ]ȣ%O>}INzիW/:nݺu֍*UTR"#5B],lMnݺuٌssJ}G~6lذaÒ5_y??0-/lqz +M'˭ʣ'JYw (ر]ϕ]Ðݻ%!rWinG,X`ø>sٻŋ~j뛤}UOu'^^ oqlY2xS M0( 8G^I}~Vs?>1qݺ:SwzTM(Y&F۷zxs-;@ (;jN˖No_Q%KOM~߇7tz}W/O6R/x@@A%>5)~\)KM8>jԋM^J 7Ȓvԙ a8P "ԤwH*uȌ%k69J*UTԁBڀ{ۅH\.} /ڰ;R?ftzPfp:)םд_3ցNɹ*8 :s:epE?'|߱,qre)u`ϷMN,n-8fF̘!et&8vLJKq7 ԣqY GuױԧEޮB~RdI u<ٳesI˹B~%3/0m}O~;C,\w#zo=Q/ +RǃwꞠ&gzgj_oOubk^mfYpnwA+YD[ug&A{ͱ\X3zy'7b=OԎA7 /]]/(nؐ*g~^ߧ_O xA;nA =a)[&(2g/_{N5^4kF M~ gM\w"t.I;S5zv;]- '.vM$42NR-'pz)SOI_z@~w:cu>@ood錔(CP旞_{LGw/ _Vq?ð>`>edCCԙϞuU/=0~޽`A}םzozp`5v~_Pk^C_ȏgMJg1'c0LY~Hk:\}*g߻m[Y̺{_rk̝!ukY^)^/i֋r׳\PVrDnԁE2YgB#?\z}R}z`&@ AYҙ-kזr)zn jEQ'KYvu}Ni wj"Ml膊:Gۭ/wz;g8VR_~4o..(!^*M/Y"wy#2*JSVSToo^hkė[Jf &z`>Y37$֧/L)5|¢soo w:c6ދqVMsς>ΌlNp?oEC @ywyg_~;w:CP8I}jNuQ#)5k2ENoϹJ~GKvuk)T-Z$ԩ8—g{L4r*)?D#g::7@ժ//(^]wu]w9]{HON﷢ν^~]'eήݖ-R]+R/,qv`N妛zP*k~)CJ'˗KXBS,vZ.\K.) 7;ަ,͟/e^g^͟(g\1CJ o`yIٲg2•{ _jXyNoGQ'd/,lJ/ݷ ^ <_/n$OH@~בz<y#߳ʒ& V No7䧞QJ*UT)'8x32#o8~̇&q7'''''0"""""vxiM~%q0:Z/Ydɒ%#"zիWkk1_~33~~;5ԩSNqL)oA~ϭ[n{`VAϤRڵsz?{ ΈkGGGGGGF޽{m+VXbalܸqƍv3kt=+wjD->_xŋGDiӦM6͚5k֬Yttٲe˖-Tv;vرUVZ*3sOO?s̙3g!ska?3kZ/6lذaʕ+W\ٹz믿z}2o޼ym0{~= uؽ^'bbJ*UTgϞ={622999999"⯿믿_x^xa\.˕uǏgd9rȑ#Z/l e>Ro6ovz;O~(Kwm}^ADD˖-[l#Ǒ˗/_>*JUDĉ'N8-#;33-[lٲ̔ƧJ= p! /X1bĈ#̙F9rȔWeeIyU2pw‹~_'-Y"K *TPBd?ϻ\K.]}D<>lJÇ>lM nv#8+X]vڵ<HWNNǎ;vx#Jsp{ތR3zk o7nܸaƋ//_PZNߩzիWzgy?#B*;'gԨQFJIٳgϞ={U)/ѕ+W\*+}~W &Q/R Go o .\paȌG`A `n׮]vbcK*UT):ttv/τ;vرclywy/චꑮw۷ooW/Hl\wzKJ]Aϑ+VXbbvڵk{†۹sΝ;##UVZb$a4םޓ0 5kΣ=)a A[ԖRQUYR}HTjphbQQ^Z%K.tQց"2D< ~iNL86g}NN=nܸq煱߯t9og6o '۷ kmmlly}@@@@@wtQe4*330V^h@aرcǎkkkj 5|?- A8ƒ#Fa}z|i>|íh8p]X݅??cYYYYYDi}۷Yf͚5UT*J"rt}Cq͛'nҠAI";wܹsTgϞ={L&rp`j!b7h3bWW*ǎZ~nf3gΜ9y ?-%%QLϘs`8;;;;;ɷgO A~hN{X|||||<( Baιq7 0';:5ki@'glǏ7_XXXXXcnnnnnn[ocAAAAAA/σz^b 0؟߷ appppp-yyGXocj1 sw]}EEEEEEGI߾}kgV.<:66@2L&w-sqvvvvv6={.0-;wR)......ɀ `cӿKׯK/K/Iٰ5贵p}iiiiiFsΝ;wh4w޽{nSSaaaaaFSPPPPPTYYYYY'?1c~!@a3VV}`I|w5W\rJc#s M6 w ccc1s15ȿbŊ+V0hi~`?/gxfl۶m۶m3 >U{g5F8C.X;& |۹2F0F+tܑрvv4`Zqgfv\{Th4 c555555Zci {PyLga^֭[n\N7:>/ iʕ+Wihhh0u ͣڧM9slR`)*?ל?j{{۷u>O bi-O3ڮZjժUrABP\ )))))) /c7o޼yϳ*Xc:: qwvMÆ kh B 4aÆ 60vڵk׮1T*J%c.]tc=zQXPPPPP*__:pGyk4~~~~~~Z@Cm0Di~-@g 99(_[[\\\\\l΋G;q> R]a |X\LKׯz `_|_7? ZMMMMMMڵk׮]uu26._lA~!쏈h-Q9c: ]Ç>>>>>>P*JRflݻwfO>}i~]]]]]]u]̘1cƌ16d8pW ,_~_=?.R@{ӧO5k֬Yfjnpkx;yqoŏ74o[]š& ׷ڂ|PWzyyyyy}@k k*+++++ӧO>}Z 78pVVn.}uR|-o ޽{]:ooog[o TTnB |G=zHZ>@T^Fӳ'bWGybZAF]h* :~Q* K,YdxA~JRL e[o|]qppppp#cА4qYYYYYYju[Nj}t 9C74P|}~~~~~~Skky0S8?>cbqu}$(֬rȐP( DfիW^zݻwhx@.rGGZ7>}v>T~ő#G9RU%SDK6w bbbbbbm--kqqqqqq]4ӧt>֦ /_ +VXbcǏ?~.׫#8{ٳgZ:#u֭[2cy######[.(((((sΝ;WwJJ)@NkkLٺWϏov :׮]vZc={SW {ʕ+W47[8(ѳ';~UNNNNNN++|\nl{T*J׮]v; 4hР)更lFT_zJE|Zۅ5|A~EϦ&jj(H^Z 9Kaʕ+WcbbbbbKNNNNN˵n- c˖-[lc&L0a“'A~H80/-cƌ3f b~'c_˩icCH~&օuO @MM|FŶmX6~Ü?IR딞",n@ļyt0{믿vv"43-=JMjjjjj*c’)tPQ͜lHaa_,+KJJJJJ>S(_X(}|@"3gΜ9s垿 lx3666667nܸ1RT*M.[lٲecu~gM0a„ vvÇ>|۷o^WG3x ' qSnuػExFh4)9rȑØߟ~駟~@BCCCCC Ge쫯ꫯtJ?ȿape[RHСTTVWSy/Sy4sK+S*;==]9rϝ D99.]L? ?)+2$$!!!!!;+[CXo\aׅ1`//8'|'^.ڧs;U"1k~5knuKa Vi4QQQQQQo ]?ĘcpΝ;wh4ky8e 6l0s? TNLTSP ?@ ]"geeeee4]e%/ou^?]š@[[ *9:eQZZ]]]]]%\#T-?Βszv Dy}Z|A~@}(Z|A~zիbXXS^^^^^. 2 1=Z>ㆿjuL&t~>=kߴuѲ4ϟ?_&VsΎ>hi2[nݺuX|<=====alΜ9s- Qqﯯo~Kqwٵ^SDKƃ+W\r ?}lkCqm {{ k B1iǎ;v쨫{ݻgz`5l'K`>d2[[[[ϋ۷okZVkɓ'O}-?A~/_|2c[˗5??\|cˬ,heoO3wwwwww7>>bX$z^^77777:j5S_eoAf͚5k,;y2SR64~ayɓ'Zm o'o7?JDKEEǏ?j7nܸqڪ*]c;{ݻ7nܸqܹsΝkl'}}WPl?wפzs55; pƫꫯ3gRjE_ *9s\}STD2Ģg ׃ω(v{:tݒ"=====EXZYl *̑r|dZ>zԼGM3''w`,Qp[*-)))))1B1IzONKC>t]̚EK]wnIgg-G,siBZڴI}i?CdK-20zq&K>cÇ-ootNHo_a}ja|;rVSTNx6_~)v pܝG@$J?vj'E|tz'z]GKZSP6S l}5-SYP vڇ? G=w⸻ ۳r^*-w۩8Gp=e޿ܱcǎ;fFMLgr9-͞M%1e*j,vwtާM9s4uLpb=Җt{23 T0!"""""ӓ,22ʗ^ݻTv Ixg{*,@.T;+V뜖&v{cu1s&-gĻ~Zu<}J9-n늋;uJvu}SDK\<˯O=3OGFѴ4n:ٓAKT1+^GS AAH%@ȳjnO^z9>cHIENDB`site_pro/images/header-line.jpg0000644075506000000310000000070611730726152014763 0ustar namedJFIFddDuckydAdobede !1Qa"!1AaqQ2 ?[ kkXco)'Hg8qGh%KSR^Fdֵ}N1sr`rɗH׳Ԝ@(~yja\ "V$v4…jEG뚲#h9 B`_Fdsite_pro/images/2page_img6.png0000644075506000000310000000721611734670432014540 0ustar namedPNG  IHDR:=z pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb?H0B@`Na Q#+ xgٌ1c|֚1Z+!۫ םkUJP~!5 NЁ7=^lw#Bd< ,̣ A|q=sI,,,`߿ d>Hp߁+z!œ`?v$21x* 6Ƀ Bo@z?P^>:,Y7xX07< PRA B 8Q*? 6 @f sA4,БirqR0  =̓4 K 1P <r7g vA2f>,P XRY@liXg Ѡ y 6JiCJ*@|Wa$\Ab >Lnp%d.>u )@E/z 31yaFχad6 3MXȃ < @̠t Irx!4⯯)V²,B9/:co XhPb aIE.eA4(xw5*ypb< #@I&(L A!U=8_AO_݈^!דHcX z u3V@LV4#56nU#B 7`%S`-Pr>8n& @`qjV OsD'¡X[:Ȟ%B?ČEq)TB`-P*ja|:R=\r"74`4X#Gi- MG5xpgtV r/QXsF9(AkXAw,;@4ho#'UX`qRb:CE0rVI-"k`@}?z-RVr#%4̙3ݻ0pܹ!`n@OYDo `( 0Oy$س(ښB |@ޖe~dƆ!qY?00͋ JPs'Af%_6brNPk!zF FA46 ** $$İ~z0}0@Ç qqq ߿geF [la n* ih@ +,ѓy=/ 2X0ZӧO?| *Hh օ۰1,faUrN * ArXXa߷oA;AܹR8^@"[ ȱ Lׯ_Gz}^T1y ~%,[opz 544?~?.[g%  5 {=b@BRJLp}ի俟ʰ rUO0bcc_t ã֭9ӋJ`0 ĀbȊI@ڿSN GߺuOOO"`- d3@^`x< ¸Zl8HObI 4$LnB6/++p(`c͛Dl>yyɎ_PS8-{!p>~g#P9 +ɂAns +@ `}J3a{"@10ܽ{vvv y;j Z`9 l,6cH- dXQ^| Ϟ=IATh566b #2FmֺoVw!wv`# &C ϟ?ѵ Sjb4ugˉl @(o|?`1S]5p PLS@m[ػw/'a@Bwi(e>l yoGaE;>*HprrP@M M2Ls?Fz#  i=sX^G H`ȭBVqTthe @#5`ȡ sxֿ-'@$le Fv +A@SZP46A؜ !BS'A4@Jȿ@])A^]rkG.@&5rhid`#em:`m*R6X` 9Y7X$̍@/Xc a;h섾69fIq| %3R²@aab E\rwX +-Q0AvS} Е0~b9:TDXMёaV\H0;#O0 TtHa`y9y"w`Yܕ5Ъ)haT @0G X 4h hjMı1$Ï\2C=Vkf/bF#'#hVd1AUbiؔ?y 8dOb fhwǰ :b-Uy.s=%WXRշ&"J!'{h/# :X \*B1!Xޠ@ Q_4(OG_w- 4N9TlS󩤮C\&@^-٠#o1E32H ̳@;}_qN8(b.CVIENDB`site_pro/images/arrow_right.png0000644075506000000310000000100111721757660015136 0ustar namedPNG  IHDRXtEXtSoftwareAdobe ImageReadyqe<IDATxb? 0 gD Ftea2 Fڠ4  @1$fBSb  s l@b! mG"@.K vP6ȥaAt H2@^{~W?CpObY p)L8ϣ 2bISfhUf"!G>bix@[aIWJH!q%! &Ko Aåp:@R q%1jI5/jʊx Q`#%!|XKb%q&5~f](BK(ڴtNB;IENDB`site_pro/images/layouts-img7.png0000644075506000000310000000031611715321352015144 0ustar namedPNG  IHDRtEXtSoftwareAdobe ImageReadyqe<pIDATxbLKKĜ ă}@ǀXB v%ppb3gR@HOOD>|c;b|w( v eځCd.`{@IENDB`site_pro/images/2page_img7.png0000644075506000000310000000716111734670430014536 0ustar namedPNG  IHDR::J( pHYs  gAMA|Q cHRMz%u0`:o_F IDATxڬOA 0JSv=׽*KeAHDD,u5nD71Z#nuN֚R:zrӏ?pB) C AQa@]'Z>7FRVE o}w+2Gbf)y~5e0 ?d?X R qs@J sA4)@_{pAc]!(5K  dq-@O,3)`ġY(gx< Ji 9B@vXr(,T@l %U \9@WD@&P/ D=ڃϬPٰy07b&@`HaI7A >P P<aXy GA|-O0 r dA0?3 YX KRR8 #2f> 0{AJAʅ$ XѠrd@1b d,4ŁJ2#,@4,@0G¤@MΧ% KX@̰yV8P5PXa HdO+`%/r!G%B >Q[`@1X)2PM#VY H%8m'hYX bjc|?FJ \ʂhPB VxߠnZVK:He d(R 0 N+ȑhaӀ/O"'YR%@ȅ)7P#@n^ f!H(xR a A؄P[AƆ!>>A]]ҥK`}f$ MG*ϤP9rcP^0atɓfff k5+J |p ,Y #:P< #79s0< 50" gW { :>"ؔad9`%/1#GTK0~kk;wuSa 1 ruBo W $Abz# ' `aoL]*** O>ex1Ï?H :Z0,VA`*1 t8˖-Q'Dۃ%m '{>Aiߴiؓ]v߿s츸n݂'s:R<%(,IXI°P5+`,!!?==~{1'A򜜜$ `@,@ aۀ5V%W,--ɑڵk .dX_VV5ѣG#,Y`nn`ooϐ < C@h@ @X&rC. v*/Au'H?HX6ɱݻw}6XǏ$$r=\; {gdϠ7@|Xۖ-IPrq``Ղ2ݻ +‡u$ |;r*NDV s yTẐ[Gr=<+Ⱦ [3Ya%5 ZE: R8>EbúXX _w>ČܧC^ u) dOJ,`f@rܵFk&e7X(X kcw`™hMs[ӼkƇm9a-Kk@<{<ñmQ,W [RJ-QTJ)S0{dѭ^Ǡ 31*a t1Ab\_i (X0#3S ?~3e෶e8x,Ú||؁I@[`( LB.KSp@W0AtV҃ԣI/{M7t6@v.Cv^.vGJM4B:xIVx`5=+]i3z΄C_/tF|0n_(r9DWXdBtBys I*~/ wg@{j`@-WJ=#3  x@-se_``KSb13OB=LB@Ⱦ<'$Ya9ۧbHrL@ QF&F1cyH?p2|l<[`52ZG"@O@ !Y -- >ʳkآRb?:bm5b QA{e6V1?In.nAY?E(`4,?j<!0M=Y (f^yIV ‹7ߣ ,ex GE+<@ ,IPρ$< 0@?`a!V Ւ,@1)+Gn y#V`eflC`̌c O @ 4@`1A%L~9sF%EP3 XA }iPTQH Jv0ǂ tPfW_ *L4@I (aP{?$/)) kcL<<<5P],>@qB R jj o^f`pr%%t<9>x<5A-{P^5P} 5A1 X =a~`lg0a2(= >"f-)0pa'Pr:@,?ms#3,s[!{'lg_&L@#%h(d8 qjM0:Tۑ%AIuPZAb ԣ pA1<R`jçR6@?BkC,@ ]ؐ(SzĠ4KF0&($hLH Rw& 숂G 2$V(@I€ 3ư$W 婄' >Y`70:8rϟ?4d6m1e߃ӽ<֞v  3|``1P5,A JFX3 DԀ<iϾ{.8A޸qڌu@# B  4%e t0=֒pc^D#F`6u yXVJ,PJF>5[b``\<즃c rTe.&N`}8c6 LA((ad1ܱC1`A &zT` 1PO- OIY30AF]YT`@CW/u3ǟ6 @ACR&s0uN'@ax A-e(,5pO"0H#h ܕc0?` Xz2pےdc=)޹s C`!% 9( *]~`g@14A)*^a`>k` X7--A7="w>KGP @LD<PX\rk׀f`v%mm! 7ϟe W^2ܸ~ _9d-ib WJ?P#S⃊kPA-)TJK0<f ,c`ز{i#c< gDL1 |C @,T`4¦@TÃ1P4fpY=P x۟larZPf .~?f0u`_6]ߊˠ1ZJA,,)@1@'X AMPc0jK(`%ꇁXNe`g7Q )2 k  slIW9 &A%9@VH. 6*{{'w38T͎f7^0ܸtALHA91OVjz Lr8z2sF6`\t@mTnӢq @P!+AZ#M&`$Y L`4×?l[* [2 g`8&~` 20w>w}@zܗcdD> n9'@M$R,UV Ř _Þ\8u=-'7/_x#gSc$3Wӂ{?_ {ظsp1Qe+Կop\@M"PE. c7@g+ ,E1'r$ÇE1:.`l:g|'^< %d`Z+ wby~&T2JujecrA,(O !P;ܯ$ ,Cmoa` ``<[_D៸o+/ÓKdPgmL^`s j`{00| v@P + *mP<-(-E9Յ m`{I 20Ex)j3s`_ZALX6%)(>÷~?ᳪ  Ў \6 g20z$rԁ4/sP*%ā#gM10p! w10c?z K| f@_?0 Sq63l*e#/COcPQ/` CGgA'ɏOHC`~wAqΫ'_?eP3,]0Ve!1FЌ t,4m/80`(QАh샟OA\V၍/}zr#ó@vh Lڤ TMPqܠdw/^2gX\ J" R%ov3yw 'Cjg!`e PJ6&?';0 Cx!/Pϯ>*0pj-X;@5@(A%(DEEE- N4닦TK{X| &00 - \@؟ߐ[$OJG24773ܾ}VM-_\?֓lްޭGcY &F ;>w!^D0@dظ"uY@- P /(pk|30N`tfY +g0WՇxۄ%`  PLi/< E8H` psMT@=*A1pP# I SR_^1<F|o2 I @5AOZZXl޽Ҡ! XŋWPfݺuN/(ER-8A &EPR 2 4yLKK \ P9-eDYu rA&t[n19raϞ=शl23DFF2c+++8`nnPTTvGww7xXNB  6JArIP>U Zeָ @v6y +L`6Q Ŀp85"@M3P \P,H0P=ځEma &c$CPQ*C!F1³H6{ယQt(AΘo(0g )<^U_G˩VeD=UJ [kG9cD! 4E9XSk +~i7 @n[E\<[ ~qi#b6.pܺp2 lUnؚZ=ϣOlgICI[Þ'ɣ1Tsԍk+vpOn&l xC4PqoIn-QA%FTUhЭ0=aIrN+4pv7GoŊ/X` A>f<A@1k< MNLC@uk@Id@PڝPJ@hkkÛ2 !(ـ444zӠL A@B ɰ lKpq PCgYl`*ZcfwB((Mb 0 0敎 I7KCP H=H',e{pcݼLwPd}[N) DnúoHc߹6gY+:زKc`i/0nP90wԨc#攦n$b*4޹[KY^>׶ٿⷭ2FUW=wn^c`QxqktsrR}tWI@-6cǷb5_[cs?i}`Zf\W\+ֱ@jA#ucmɧ^N~Ou~` (FGauw(<$'q2xJ{ZCG>Nw8k(O!^ueq!;qPxR|~++.nv/F=yn5&2m̴:3ZvYXc.C]9ݷ[\b `WH_[ hǣ=+9f9zۤd_>N%ǿ>cg1Gs[%bt "ZNE~>-?Y߱V>t20:Cn96{_U#6gQ⻰VMGϡ2|l6k{~gȩŮΤXI[6=^}W@9}2]2I} ?}޵ SX=Mg2k]~-۽O]*UϧWwUK+ǰkWco ^}]/Ks=3;>˛akV#)nUup/ceYt:v]~Sjzuݕ ] ҮX8>mZ>.~.?s7DikoZkWwPfI k}\'NAMcD]&!9{dbL cÄ'SnpK1@5ú#Cj2T+#_ ka=C"Z$q c3]}@jw5ݷpmXټ2b%h:{CTO27ͿKoU,hNʺյYU=Qya<@%n׸!i}gȻ V~Y [{CO߳fMs;ۘnګ0i˱ݷs[yYc- <95MUeE/¾,>C@;F]k}LV_af;%?~6K}"?6oPlz8Zy}[gVm1udKwӯwBIc\nӺUNvCr%-y{*չt}6}tMt0>}~WP2,^hhc!GGԱ[D@h?tߏ"8srC~(`A>uq.r3''nOpS?֪9:Iԕd|W4m?D~'"qf-"z-hO?gh/&ݷP_O"w}I-龴}}vA6dKv5/OWR[ y+wlCڨS>vDSÆ&tlݏǪ:Y'h_y{Yf/31=v1u,zg9%aXǽ2~Oz E>fGomn۞7OCPe͌˳Ӫoo#9wتgӽƎ?UOvٻ x!.-߲g=/oQPOWMê ֿpk#Ciﻟ9j{ {~{R..gwE\GkN  DOo k1j=)LPhotoshop 3.08BIM%8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMAslide3nullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM ;X JFIFHH Adobe_CMAdobed            ;"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?;'4%Ff.D`2F'#Px*$O;HNlu쒓CAu>',e{pcݼLwPd}[N) DnúoHc߹6gY+:زKc`i/0nP90wԨc#攦n$b*4޹[KY^>׶ٿⷭ2FUW=wn^c`QxqktsrR}tWI@-6cǷb5_[cs?i}`Zf\W\+ֱ@jA#ucmɧ^N~Ou~` (FGauw(<$'q2xJ{ZCG>Nw8k(O!^ueq!;qPxR|~++.nv/F=yn5&2m̴:3ZvYXc.C]9ݷ[\b `WH_[ hǣ=+9f9zۤd_>N%ǿ>cg1Gs[%bt "ZNE~>-?Y߱V>t20:Cn96{_U#6gQ⻰VMGϡ2|l6k{~gȩŮΤXI[6=^}W@9}2]2I} ?}޵ SX=Mg2k]~-۽O]*UϧWwUK+ǰkWco ^}]/Ks=3;>˛akV#)nUup/ceYt:v]~Sjzuݕ ] ҮX8>mZ>.~.?s7DikoZkWwPfI k}\'NAMcD]&!9{dbL cÄ'SnpK1@5ú#Cj2T+#_ ka=C"Z$q c3]}@jw5ݷpmXټ2b%h:{CTO27ͿKoU,hNʺյYU=Qya<@%n׸!i}gȻ V~Y [{CO߳fMs;ۘnګ0i˱ݷs[yYc- <95MUeE/¾,>C@;F]k}LV_af;%?~6K}"?6oPlz8Zy}[gVm1udKwӯwBIc\nӺUNvCr%-y{*չt}6}tMt0>}~WP2,^hhc!GGԱ[D@h?tߏ"8srC~(`A>uq.r3''nOpS?֪9:Iԕd|W4m?D~'"qf-"z-hO?gh/&ݷP_O"w}I-龴}}vA6dKv5/OWR[ y+wlCڨS>vDSÆ&tlݏǪ:Y'h_y{Yf/31=v1u,zg9%aXǽ2~Oz E>fGomn۞7OCPe͌˳Ӫoo#9wتgӽƎ?UOvٻ x!.-߲g=/oQPOWMê ֿpk#Ciﻟ9j{ {~{R..gwE\GkN  DOo k1j=)8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:36fe53a6-78b6-11e1-9a9d-a708dcdabd1d Adobed@w !1AQ"aq2B# R$b3 r%4CST5&' !1AQ"aq2BR#b3rC$4Dcs%E ?炜kƠR?_5aA;| rRFױkTkQN+:'2Goz? BH'*ӤSxhT:Wл^͝\9N@@5tiI=,08TՂb/Lj-'U*mK(.5i.-1%U$Kr*HT--ulsJmcKI8'#C_YK[oa[-_\/1f,6Yw?N6ԠHBOW1 XiS.9O#=L66+zSCIzKhgb341v ߨtCt݆S$:{Tn$Ck1X=G=sԅ-hnQn^-Ý1c0QtB`𯶟s'MOt@|| zm>(w;N:7,Tw,qƱp5߉iF SjAV;4@ao,/uW˗&¶MXSa`M-KkB*j*kO8I*R0,6@R>^vRG][ȘWR꣹-!'jRtRQ*ɒp7X5Q)kmńm>AZRZ֠Vs .ojq$qt9ƹ+nVNP!=>:BҦR΁'L;?',6c'0;#9}:TdڃS*'\w[ȼd8@#:zۨ03VZʩk+unJ=8PJ#8=6y;^=?R.*i<_8l*~]會{_q@܅|ic7j6DƤFD0KV! 6@KQ0 &!JϹC)|h;YGD_@ 6+%OWCлZN+"㐤S5k7^=c,1:ulJqs݈}*^)̡"dĂMD"0A۫ D", gp&-vw}UcO=mClʬer{ַ"+^)A LkUk얅r 6m=D:}p_q>qU3-mK;Kym5+j!WU<*5F<r4l%CSm ?Rq P*./pttW:o vQ$U;>QXPL&J|2e|*ye|g׺ocת$8I}1)KHȻ*2fVs"@ "&Tg݌d d T &Fvc[X>ݷ(VkﭘaZE Ș3X0l8 Љ2l$<& ^ %fKj%rBӼ{8$0ĄEu9RP%:'Z6[H[ߟ q77".:AiiD#$I{ِ-M4Řڢ˂TC+, ӻj4jbmQ<ǒ XVconFjAǎuچ祴.ZWKmuT9Ӡ:-,%lh ~H?Oie@@ܭ ^xMiRa#T)9%&4*:[ݮ n1ulg A^hV5S7s"M" 4:=%xE\Z2y'"P&Ň2E*l714!%l9T$@:DS0.d9\(cԙ"h򿃬߈:!.9ϸLDTnMm8Ժh7ٹrL.jɰe! Dɏ&\YղO ̇D ,řcl%m8dawdJ4kSXp9g᜗xT.LDuIW>s٢ŠM{G-DSLY]͠ărtyڪvDƸ "A! ch q?q/$]Vȫܻ?ʸ'P9l$Ts=dI>Ւv!HjgCJ=[@ъHv,,=`e-f]ru-Ȳ6$}q3_k.ۧ(>_vQܤ&fnX/hyK sh5 kӞV[QNbK0ʡaY0v>is"d .)SZ yE7ʭ8x˂x|;o d>oqXX[5hbc y :Ϸ`$DIL ('\448CһDZ$o&rW9w-uUuLɼʹT*V\s m}Xh-gkhxٓ}4LI0t4*2c8!ԋ6"dM8UÎ7Oi̼;:U` mO񧐸݋ D+hQRCSgFoUoAgpHEGvf>[@R ;ܑU V ǜ,<͹Y2=126fQyO>Iv4d JlmKn+iqaO0^J jNkߨk<#Mxqz2bQ&$IL8po#r˕V޳kߏ34SqJH]lۡM'&e=܉!IБ \@&,ԱJupR,K\^GAgcُCc~m!z=4-{<UycL24eIiu"Gq>EǓJ]K(@قI9rc:>5{>U9Y i7$ pIY<حOS}+`%qʖYC,nђ@gq/X/5-*x7w,:Xr)"j&LJ._zµMFG$w6%#KeU]m T613;`'S/ pE朾y<Еia w]UsPT\=*dž;Tn̕T\^Įw*CHLxE(hm eT` j%SYUENECՓܔg%đlk} ,#bХT;v)@ dp3VMͷ! 6#af2/ΐ z[is%BN"izJK @Vm#1+.0A:7!cRH6EL@;"5|>u W6Q ڻƛ1Z]FfTgX9Mmi;wb'cRsv L9QzI"֘L] [ٔIϹqE_*4͛CG8~2cٸݗ&˾/rba59S[Ki^؟pޛ}1*;=6EՍ"[>|8zP@$m ?kiڱӣXe{;kL~=[JM-BS)*YÓ&bm9M]ʰuhAb  4d(T%h5B+ Zd}z߀cU򬀓JtqQ#ƕ ΰHpA#=59=<0?IaI'$aD p1I36SLn~4N4۩**9>!RUL7kPq~wp:Ua6xiEHh1u递Xdf1>^<|m$kFMW֋ 4'=R0UGp;ch'ס@bt8j@Ts0t]: b~ NOǿJ8X;c'Q5)V{d_˦#t\>OZ js 4X4/Qxd{ W^|4>TےM=)$I /JC*yH@$` ڜztmn-Dd±s} Rqۧ27]\FrtLʜcgM)*?,͞_oF2 TZH'Clk*ǕH(8Nq듡Flj # I9@ƃAE֜-}8qQ88*OVdLP6@#0>$?Ӵ1HNz}A {{zH<|)iʊrFFѨ$1;2txjVu:`͟Cۥf40$‚Ud`JphzV7S=.oǝ!ZN>O̡4<|*'H '8>?* i<~t3*$5? ۙw_P;n?>5w:j=>n|܃9נT W:juzdc4Z Ό4~n'9#>@$BIeGnMun:ԙɓ_W%%[)W[,"+ZY-J /7P.AUͿ*caRr!89&Y4gyEӹ u@n XQT6ʍɼ mS9+qil8츓}RK%=R -ڕ0%PMZJ/QF؇8I"B Hu>ĬBuVH *GW})9uwƽ x6q Ɲ/Ϊ, Õ|JmI9ʓՈD1 VNh0pp@SL*;Ќ ä:@K)kO䃦n@`$Q$0JMZS g}:%vn7 7cNz!LX$k?OLJi*vν_m&2lw&Η$f@.!Ĵpê8jN(w *0ۉVYbqTR'/Ȑ[S\!KgSjRAgN,BmMFڿZr\^Er$ږ#}4ʙMEţ(*m8ll >U" -*^q w\:G. żesuHAq,n9J\_QYM{m:m(]yͻ}\=u=VKl >ák5'Ԁ2q ^Bk*Ι5VWz#>B(ą;|_Ǘ 댑qD6颋C~<Q?f`xv3= (@T {c b* +\2ps~#=*юg_`Rz24T5$U3ȑIQO]NbsgrkS)T=hi RwSK8w g =-®;rTYB BJIuّ|8,mM逤zRzf`v+qvSa^kmRI&7Xh,1Yn88;z@E>33pFAߗE2%+Fq6$hVuc885ňS&#/Q gTR?!m^J (ܜdk8׫,`U@Њ,Ln4'9j>h(5ogj' ;A蓏5RS5JmhP1+}EtLpSJIHV ŠZy| }>3^I?,}Kp&M*i>d>N9+y#?nfy ՖwVu+yjKv)iW:qLLUQd;,6lPS[vjZBmn$0,̷e :`BׁKKK+j\°DW,Xn p.%+JaF2UEjuǖ7cq1D3m&lU3-QbKug֯6J߈r7R^?;/F~H|%qP#2Ko.zDF&6v /ǤuCc ,<|*.Js6)I+ psCNEɿ\G Җ0V% B]uQIJ6uuu O;|L_$[<=f--q=gMr9>'0hf Xy#Z0о2qdQ $Hߍ +ĭ?*BJXV୛2R{tAOh'LSGʰQ+[eԄyIm @2V7'io'Di|xUe||ì@ 3>O=s2cnO4^ E~kC`WO}7+E2\{ǟG}üL-HaԿX(PdQeU2I&n?g xF§ "j A@*T;Eewo8X[]L1U+xuP~\ 8hKmzKC(r 2&8Lxr`Ƭq#n ,:2T==2Y%L8a7Zg[o%Mnc":&LPH-1Wgs&I D̪\JfÓ$j,GlWj8QZDFϬ,DKAJQXː6`fFNqΪ|jqD61p,END=qx3ùw]U _gqNۍ9*lH~'Je[PZVX8`ҫ-CHb }$盔Xl]T^U%)Կɏf0 i**Ta518yrcwA;Xj/1m :/h'qI10$m- b?~{_XosZL-Wב_ph43$<Ϝx֒iN5qr3 }:A̙B;km_u7 \ȬvFTqqn0bVڮ?ܟ?rnT[y⇕rں"cpqO"?zqZvZܻbkŋ"duɟ<.qid RӸu"3&1>SvVf=31ۤEsҎ͟oM2v<ŜJmG~[mR$>ZPqwz7.M$/`WTˋ/"ۑ6*ϩd7_6No,x5v×BNWʡ- cËpԋS9:{uh}ܻ]2`I,/@Nd̪ʦ ŀbKHPN 4[6^nSNU|مc=W|F+~Cˇ#R# ELcB9VPq%7(tHSU(}>/[XA88z?G JZ U%nzJ#;m NDɂ"+Gq,\b`oTЙ26_=nD9~+J0K[3mroE]4 d.ifo"ȑruiƮ&;m@o"53(ѩ#"pS\.:ʦַ|#Y1| ZtrBv*X)L4\,lb ?q7nQGU)zh.0O fcN\\PNq䶱M-׾ޭQRX;u.7j :M D [#ٛ$\-Dـ͕aJKwWxܹû5 ˝?v>.pCulLx!-V%oV_Ȼ&'<ʇ\ٱ1)J=rU܂&_{9 x,W|_.fi[ZHYH:6v.E$,U,qOq36g`+rmi ~|Wg7^(༳pp\rY>Zr G] WB I߫2L *N۹Eɕ2ёHpvͦ$m+C2\Peŷqm ?P.RpYwqeyMdGț==l$k7$3V/XY8\>m%$g \v4%#7w'[j(BhТ.&Qc"u1p,cX,F4U}6$ 7n TZ|6Y3q{Jy`wؕnJ>Q)`;% fc\M u$s7*a ) 0I@:UNm+0LGd"Rl$⭩Lwz4GhKN&FIa0H6<2/B ^>V#OS{ ^!$k%{A8J@תHi<<)h69QR[dr3)28-$`9Ndhvc&T/0 jUIh^J} QJKedd)a9^Dmvdk{FӸ'DqӀcgZ5b!,6dIuBRR:Ai'bi;AM'@cHwokDRmsQ[2a"LIjgh$X!qg²Mr] rMcAS2dZZ:qGr@F"A!l"xϋ.ݘd7 "d e}m5reN-aן. 22ֵOPӪe648unI1AW3@[5g9ZOɣ" qTnAƬ.ٛg mT7c;!+i׹).ų6#=BA f`Ic5Gsc!TdMX0Lʑ=J"$qҷ?G%sk WnNW$2uշCɒc£VId1^zvm#x'fU]yas 2f} v$ y75A' qg'@~Ri,|(A]O:]gm*`?Vt0W0|E|I(u` {tCi%@Iǧ1zx X2Ƶ#vpAԁzIM$tdYAYPR3=G| ;#@`i0F2QZoXn$t# Ua^A l"35%9'CGPnIYc-+cDi듩}Hsv8.+ XNsۧ M7iDqƀ:@zƄcT8ʰ:P P>,#NQ_G˅!ç0@ِwz`g$voy =nG+9 (z7(&J9N#?4I0aDg#қk4$5ˆ'Rrι:;5t֋tJA8NT3u?=i)ws}q ؿmͅ'p%+մ!u7XjrW~4RIPt#]àӶƁM0~tR,8ƃH@sI+T7TB1I'LeD zR@ TcX Lv25IiҝTv?‘8'?v`:`o<+EԙZᦥD1_Ǣ)A3IOdJGs\vVMz#rT?G?}>;@faI&b9S*bGz[M-lYJ5' ׇJնWXsKk,8㴭m9* *,UH~ STȚښܲ%@|x֤ɕjh/:Y"o&&WFZaѝx;wn1ެHeWʬ*/)p,o,maS n3ݑ%EOɓa%SEa,!:)(P<d@ԧ p1twtj5]IyНOUG/B"'_5QNt4u`DuQV`$Lk^FћnOF}0uΧ'qI^f0~5'8L{"zmL/ɑ s>$LT \6ֱOLL> <}5P=R BC$eZnQ G^N@{wk&˘켶ۥ+HSmMKmGyMB7 {Dvxjrsm/5W"+oRUCB[R7BZZWK@:"I"uM? qʋ!]XqS%lƐŒ3^%QE+$l'T-ZP ͶD:̅Ŏ)q!m@%Zt 5aǶG=nO@yA=CHs ^ dsgHSQ|r{ q>ʌA; |ni1Ptι@?>#8I<23uqՆe ~@RzriNH1Yb{;ױ[1+R|~TJ uΙۜt Qy%)F=q=>o{ÎvekmByW%-*f(F\֊]ajR\)( A3e@?:Q 7=}/+ -Cm6!-qK+J} tNt *"KhB[JRhBRА! BFhp)B;|tu5E1Ǐ:F38rAѝ)HV$HkS bՐ0;t\gL KxvhN{2~,tHrEA$16 ""o~fLgq*}}dɽ^Fρue1Wʧs>[#p&]JjCj^O#<۳k+(LAI'\Xu$I,`@+ G4+9մ1W*KCĂ8 eMǬladSY)m^ߌW fn%ML*ʹF'iEMĎl:/ q'Km Q>5D—2&ew\Kn-a<mqdvQ~Mg獨킮`HsMTW1>cXx䆌JqE#, '];⦃y祾PDRdq*:\DG/vP)12)ډci(:қalS8 $iJNKap i@hm?A`E#w71o͢J 95L{|bv,} ÄG ˑ& )QK\c,Ψ}K v Vf9#&Gr'[i0cgqS ԗW~4wHVMES|ŪP@LqrK oEtK%;)kܭ.2Dp_>^Zգu(w*kkd[ha6N?"2kbNbdV($=RO &#(ti$ɻmn [ m _> 9C0]GE$vquZ&ꩶ Kyhymyq%NXmCm\ʐG{%1 uycOm<m:9ҒFeǮQz,Q_e쩵!ȌURQBP(d>fKשm;cr`p,Kǖ^2ޖdbҍHKa?*BrJY#8 -!C[Q.c>V8 sn ť5ѡdgJKوRl `akSc,}E@%MŦCOlv³<.-8¸|{#bdI$DVOŴ|)1j]\QDLkw4@xbDI&%thE{2+VP̶]x͓*I{g reKnK4NJҠiE%-| jAUƹ8)$(OOnCe 0s-"YK!֐ܔ 퇜 P%̓&6I_YN!LNU۫g`MnծL;(0De<ؒUn۔ȵeomnDvy,)9J"5A3l> & KsDΞ{6 \/?9\8O")NIՖ\N .-{g{c͸ U/&BKP"$_&1J]G7Q߇9"!Ɂ Q*Keoލ.:'1YzYzf ~q2oOq*~ d`aa(nk||_ܹW3q/)ൾ/Ϝټq-r?|{;mrl{)ճfk/͓#;M&akA Yh`ՙ;i20bKwx8N T^"y7'[>gH1ۿ|6\D9wWn≠ \١Km-N)"[b UgqZ;>UC&,*K.El͇cr7) g~!3<3_D|e^P5%lhTuKz8+܂XLRTAm,r@5,f~UKi,oVa;v`Is]h;Hy>[ZR⺧Xύy g~<6k־Lv5ulM`\fV g8)Q'XZD9iKem$ 5hAScd0^FE&UhLg~1䑋.Cu +HiZ.v1#&P7!Ún Ul]mtpN6\dJY;qIg- y2'.qZ%yưxU7ax܊?pYfz?n4<>CKvmgFR3`,F먛d+ f'>0w2qS;2iVeSwf?%\OpP3n_#<{8ȝamcȮx ċ_E+1pSg,ωef۸>IĀ C6'9"c[jC*?JLjI3 JVUdO쾹 T+qIkJq!x67N´m|.Hdi@NC@0NVGWe5:N;u򚫙߸|rjkʟ9QƊ//IZmRcg~[Hn'1|)ȣԨI Hk)`6 oaU9*.OO#Cy}\Z6cAV*.˒hb4HBUM՜CQF d5x'y;qąJެ+ ^PAtC͘U9qq7|(f:!S-mpm!8s҉$19Hf S{ybG/+*Ɋ(LS!IRlˌܕ0YH+q CIPtBq$|FΨʼnf/@CnBwTFܠnQWskцu$$^/XW.`:?annun)[FJNIݕ1Anl?@d0If#OpqoŒaV76,K)e) RҠTzxʁ &pfA'dƯxbmkN͖˖Ց"X3:eĬ43YAr48ZDv!JZG\Rtd|siRX ECwju$T\E1,&:9*e*5Q)W"tњ 9jsbmŸImwc\GϘ˶XlY-:Ł| q8D3p~SOo_ʼ y$.9b&U*U'w>JDz_i؂BGO܎޻lYq&|a۪D􍰧C r')V?Qݏr[@Y8'NӜ|;u~="D|xXP#µ0N mygX)ОNH1-;}Z>Ԝ=}zzt/Q@IQLПá PxE*Nprw?:cV?M# u= ;v=҈ޮY *ܒHd A]JJ><J,w#:\(׀v?q p-RGK A>?/c5*m`D*Gld;^)oqÌ #q eHE8:iAF@va;|xvm$U 0qN -,*[GD{NPs(3vxEhnʔIH# ѥ+qÅ7XK[M>jy4┖V+ҀW:2#o':x*ʩO"]11k+IL9R -lGV])?O K@eǎMeOq2}!k>EC4Te)B\JH#W,v#Nc4 j{jd-4E+:8' ]@l:ͩ:r~$g/K>tJ#r9UcH # J~}ԍ]J~R IЌh|GUIΒ{5ݸc8׫iKbDO#QwLY%Z:#5N@#gעkZk|>^ACd1gr>9`ìEO)DuN--%M8;PŦ3ĚHoS.360@ⶲݱOr$eXl [>bU!b!cnַkSd kUhih % (JBFNTvOJ < o}d3MNã)AL+'V^<8@Nk+`X6l|Ǐ`g ~)vcLi8=OQYFE|F6COeXHkiF[;W߆p2с=SiB9F>P[N/F Y5 < *g Pk {*Z"$j΍daИv4i1ݾM`@'5陿Rܩvc=Ǧ9J jH =WǷ:iO "xP0t9B҅83:=HX9H]՞ \ F;c_3 }ROhbr qd?÷@17ƞ:v)W`?:;A$$ uAkU.?:,d2I wӣ<ֆ˹u&`ۜ4lDI9'$iS ('pnsd~m4Nzpx_jH8䜤Ijߪ!r@^s)sHz[hkqp~c@:hѻJABQ'Loq؞dtLQ}m#8`=Ɵ.~zEYӷh"B8=|?n`l=-z[N  |xH.M9$g089$y> fm'E('OP (  EDczIƧ "%Lj;pƆ$nP}>lqIçR@Hgw> }䁃Z`󪉻ykG9>>%?7bEfPFEUǐ7tɍ:4o>"#]ewį=+ٌyțQ L>FUBZHB$@;0v3XFe&$?oڟ>ꊼ~w'|p϶/rF92Kn9ڊ sG/v9ǺṆL8",d% w^NF+NXYWBf˵1XY9jEvc. c^C9~/q\>Io4F{`lRkQXk8Jg~ `*)U!}LD )ǖJ=!)WrIx|eU?  ę/s%U/!{TXqKul)x)%ԡ-GU; 4Mfϛ*StB"b,hu VO0*,e ] &pj@v a矑fnK]mrSC2B<!DXRYJ'Ne8ݑAY xpfq˘#$Zgm(#[YbեEkku\8uICI)Ji2qIV\S* Ì[M.񭸙ug3f:.7p;`n"54m7Oic>#vWU,c(}tA_r=M*֙*J5;5۷rRǑݮ95w`zK]'GapA ŮvJ!J V`@BS. CG%(OkzuY"4j=\[`h`` #LO [3-ZqKm?L˸Z ǻg!j9O|Y; ;gQZ ' n6ofϑ;měNR$ZEnBy%QTb6Q? g okE*EůrI&="L ^HnsVk74j`mdș3Dvƽi"伂]L^w~2 FL`)aI-C"sȿgr>6 ?igsŽ5Ƹ.+-ǎ@ p*Ό5!k ,dϵ 2c8WUWs̮QmËm+|(g)^CL[ .>}yVRt<{1Y?CH-{Ƽ~{ʸ_. `Lc.I%G|S.-du|űľEO&aܥZ֕5"4FKiB A]5`8gVB|Zzm".2dl &cxq[;,gx"Ig6qJW l~%it6&: 3\Fvv1.7:Gc{̍OQ핕E+bM ܻhWI]o) [Zk˟:rXyוRG 8Aqyy}lya]ԇ@c!2z 1YXDڝ_f90bߺ):2(ɵ F77fLaQ'n$5|*<斢Jf'f r-YB )CڐT21 I&b\#js+)gc"! ȢD3BE Iљ~‹>%{%NZ{gc9o_\EFMa`,oà&rb@mu{B/K" w#3K.4n|9YzvtnEkH&}#blUNƴJ+dW~KtXVIYd ˖C(mͪa (XA.-EpuHec:\ ,yhd%Bm1PCnEbv,6J^2f'E\iV63qB+'*)5W*Wd3\u">c)M+|H 1&u@i0Dd3c, :6Mm*[qe5>.p^GT2SN^iGUx4ol_R!kj ޶PPi3:5HEAW)7X'B&A / `فU3f%/vO9 )|=miqRXWBT3qUEAf \Á52'StY2Ei8#=_Uay`!,*E D8, %8=RğU{1-" ^OHt%6\y[f\%ZM\)/; 5FB1o\qkkI\H F9Q8:r{b#s>Wk,_'KqVw,ϢRǨD r:oQ8vJؕ`+J<\hr}+;70 yiaWU2SjS., ,{7%W&ժ*^>%s}AЈ(lVwſPPŬQ2#mܤHWh3I&HE&L*Kv몛kY[سQRh\gpH  ($ʼMnDv:($ :q:~kʵilp:5oǸ'Mwy]n 1KɯϦ<>U!It/a)Og;ߵ&%*e6Mrm,cH YDǓnj&YA [$bN`PX{ !m%gl)eraDm'lmW m1v܌Fԝ5 HڿFO?_Sie=YHo +4cM: 43+I{rF`U'ΛmyC Nw ~}Cnke `Hn3(J*0*\8SIi*ƫHЉEXX'K6gh#'Su(LJ+dݰFAHk@P?)(:2:4dj)@p#:~:ۡje%Lxkp@V>]޸1nTY$H(Wn27w: inTh$qc:q0'Z?NxQ*Ig'Ϩ? =+j Ǧ}{zFUkv7\I;'RUPJp" "O h~]2uxPc+'Z8@ ww}9נ /EGJ 9G_e!ԲvVPm 0TBR9Ho΋rj<*}Q"R}[tXz]6^a~|m*1Ձdhh_>uyy<_R$}RqǫMtJ][R-O(b@3m??A ?J E^:N#;eYκà$M(}RU|2rO $ ~>dO?V~}?-:'PH JRT7h>ZI9Js~]YEv1J;G|EףOH2,E={!`{nqqE6{;O~ 7;Ii?)虛@hE|Ss0рވ*HsgOOHzO@2{LF?>"L dMd\NƠ~z|uy4ƣ\R@ӇϷ.` 饠:(BH|ƘOcmm&cp=?9j{in?W xh'񠔥HR hU0mA)yE^C훓[~ m_jC%$ZKp[;)\\ ֨& S0;6uΠkn_έ OH=ӎ4x cM{ue9CVNq8#B^$'w|ΟBwD0#[v!_kH@RX@ Λsؒpp~d?1Xh22;@OcJt΀gmNsum+Y Dڑ;,t6 OS5d>oO@tΠtBǎUbn'H)U$4ZOƂ-ƀcP~9Npu5=5G t(_/A~Z?ש,-&;z~?ʱQ5\A:0:%B%@0; өoӥ>#΁S; :7dyNgҠ0éP2B:,=H#cQLknH ރNc ܯ՝ 2&8 ݀?+qcLשlxVT9tѠK)h+PN4=OV#lSHvRyQJ8'nShN8>u? fP`ʵ#P3ι@CLDn$1A$Ϯ{J0:qˍ$`>-;G?1'9:76ǏIU=󯌼moBUM$y CjY\ݯ2Jp96_.\!exN@cɤKJw*Vn[_%?#q% 9qKۋEbg>/䏷gAoO1WDH<83-̓4,N,9!peu mZVB[t,H"h^cC'_[l*NXM\:١e#3fʬ)bBVwjz5nk_,'N=J2o5S}ʽxm֩{+oFfJ*~UVHdRR8yw{Rfɐ X#eL]lh,Uree$H/<UI߇aPK!GW(la>Aĩ\J"L>7nO#l)L.|#16zX)Rl?ʁ@ oN÷ ]7 CI7Zć`VF5)>MN; WfKZ-6COnZ}e=j|˄G2D$5n緷o \`<b%/}& NzC; !)eyt1\[OI|pֺ)+ZmS ɵi!EU vPl8T$abr$u׭شRAIiA%dw!(2V#k u?*;Kyif`ꈨ$Vrڶx+ܳ6lA3$G.[>ARBǘo1i#y$G]cDCmC nH!dS2 DD/ScZw/ǕyP).hM }<[-b&} n 0 -O2L`7һ,n8ү`r"|y1YonXf oɜ[znºl:%SQd~\} r*[2OF;c)8ۦĭ'thҕ:Ã@J؁Y*`usFc3QG]>Z](5G!շ\w؜9,a%C%Mtd#eRE0ݧ{H?)[Z,H@"&dd H DV?e<%T׭źqfH8<{c:tkxS5F `&cpv+>ZGwϑ"1/Kmn4V֗1n`̎f[jCua 0i.){dSu l}%kI+n7;kT?J{ YQc&Kf#T.wdEKO4ї+rV2}v}4 a;.܌|crC0EcغXE@%בSn3D,:19:ʂS?]!cPe ӽw ۮO6bMbonc;ԍKPYfw' SI%@9$oGrܓAIveXvSpj܌lV6Kp@hW;S'c0FNtIJ4E䙍:JZm(ˬPp9gQ OKOUc 64{y629RgvIԧϰuNeI[@NH'N&奌Mpʎ2#ˋdo[+OIbvJ#jmov&% ƫvmܸʟ܏^κd'@Dz b+k<]-GڣQʟ&>ɱ6E!`܄ ưhcVȇ$ ZW:^Op?ou|=[L.C7٬"K+b_Z$>y\Lu3`ٕ@A*1Cwr@K9l9z6&J_UhI qr7ّAV킐,@#V598VJnLo}#q1#tN$F)8:d@8TO=7Pu-M6ё&kc#*:cNSH412?s*ٶ1!ʁX:\T*$*;nv1p!)ZRRP1T$^1LcZc׊_:)ҟCH!r sА 9F܀d2|}t L(qOڊڂ^U Str$c:d~CcbVGdϩ9Gcm? B`{`R:VE,sY'#=), HP'|HЧMu02wRְh3'' #Rq?4Y#aE( g=9iJx΂#㲽OשPL]7$64aOWI?m~^>a*e!: ?IJTIp*H3#^ Mw7&"~H2s т7oIrvSc\gc=1Q:ÌWG9ƹ_4":5,7΀xk|NpsW r?aҳ k6>\{ 4I G yPAONqC锺X\Uef< }qt>_N7VH7|hrI#:cNJxcz%:+| N:~h1&8ZOi?ONcj@ȃXOl`G냟MA<-Yι㦃= R2쬐)[F:dMV"F-{` kcRz$hmx|rw8cN ކ;^R?OBODI [nSZ'i: ‘&QV4NNT)?}DГ 5)郩‡M GCnsPBli9Nc\t*4?FRn5$'NP.G±s'jq:'QKClRwP:v:6JAc)GG`큷_LǩiǏX߻'#L1B1M$nYtWЌ\_]?<s}s I^0gD!|Gcs1Ӏ:mOTZQKY#$tǦr3lur 4BgՕi|i6pMmJJ܀\ v`hU6thd8qqknΉu)hu(iwq PmO؏GkÞ'u! P!mοĚZ ϗo}y{_O0^@IxtKMI]e+n|>ϓ+98~ -`)aAj3dc;&.۔P**hBn A¨J*&.A ` |,yǓr3Q@ sn]gƿ|V=,nHIeEk_DS&g;0eh,@RY 6Yml1l{!BKJUZ6D9 Yȱ8VVjL9OZ)fB'lX j-O+>{ůZ,bB眆׊+tYrE^jҵAe3",įwXÏd%R;2 ʁT@GƳsE[VL]xET#Fy˚iV܎҂HK d%i*꾑]JM1鎒nE#SVgy,-*~ϏñU=kHy/[{E~+-mɑTffS!'6xi5 xDbqPn]QJȰ\[%)ؿt \*(kKؓ:$_Sۏ,(Y>'( $۹@K`gvyXmɘc3vlWC'HSż tfo aAymδuuv2&3 9 IJ6TVZzCmG;9c9keE}&=m8^Y<"M͍m'JI 4ooO0 QZ;2H&iV.uP#Q|bp'lJ2Oȱ{B拤8j8tƙ@[0gH[1?&H(,X#jH*=@wG8MNq`예Zj/`V3fVZmeR> V*q)NSH]%@"A6Hi(LI_l&$G %L6.3)A;֭ W{35[<$c򏞜ȩ2̴ACm-l4Sۨ:͔<HAa;SOF}ĩ qPY! ۧ;NG7"~SD}M[X&Ʈr`f7:WTذD*-uO1|P4lE٘FX3j_ψie)<^Z^S_cJƿmo PAS)T8P2f]=1tى a t{~'cƊaV` QSO53P.ikgrژu:+J#Oib!/6c:5d)a vJ28eV-Ɩv;{ϼC="A]H2o/o ˳_DN3ͭȆldVtóPaZtDgNQ9S$7a۠Fl=~ݏHf) O8=߆l&9 {d*wx$*׬fqpiSV^n"_o!U`aARj h@1YbUSpZ2 nCH1Z*>B\9斊ˆ ݵؽ\/_xؓ*P:No;lf/[a 7/+ۻmډ16F!"];@[Qi;[[64X-rujQVbU1KmNZ%-2R=8IgS" ~U~'q( ܀zO M,Xˍ%k-]@ioq mpPeA%_)t{ 4"YUSv::sM3UqǤ%A}Hu8PO"N IO}:x}R@$~h Ɨ-j=>H  pK57640fνx"XaLgDq*q C 8PPQ#8:^oYEEa>Ȓ A2@^qyzU-oD.Cf5ju3*<%6`ʕ=9O'AnqǀKPcH"9w&&5-Y-0_[h"&Tek[iHܔed NuDGZdkLƗ@%iFp>Q%:jGI =>jlKOu.:úa6G^Ҡ= Cpô>?kNBZ Z@[XhI8;}uT6NVCNT")T,%*YH ױ/ÕY"ǒIο74l/t9jJgUX%,,6oSʄ˷uU/ǟPTY_Z*ƽPJVԐc&f/N nd5@)VKRR{gh÷F*%IPθϮAP= iԡ!&: 8NtGH8Lt)F'G8`'%Z'#Մ(0tʰF$`zvSKEDm8ΠL1Qb@#qㅨ V5s];3^U\WU{IBs )3LVY<yںlDi澯mmҀZ~hi`!MW̏Ϫ$ՉV~TeR:?ֺP>2JJP7z JagP~~>T.~T_%krj+h)KLx$b3, 0ƀbI,먘&]ŷlشNƋ%l)iM/[t5)IHܢI&l ~ 40a92@ѼҠtǕ(Tu z8wc^C##jPr5$r5Σ=$xQPt~(NJ=tN;dՂ&PǕp?pNrd~6l>_ (8:Ӧ,u L6A;`'D1CoDtm )C򒤒2\ B/(򀝿(m%Z x&yxʐJq-K,m9 T${+iPF:I}j*$*݌ր) FBXBѻ+uJ N1_7awNͷ+vO*qsàHV';#ΝMPR.ܨX:8$uz_M-+ 94rǧ~AsEUfV8Ӿl~:h{O|u?ϧD`.< |IH#OL:fA#h8|L@tFuLP0 pNޚ4T( ^"Pp1 I lZmV`#N?׹ 7juiYPSdi1YXgBsΘQ OtWvG?`8#p1N`P(*&mAƧ]N $D}<ߤkA910 $: >F^r1GKTIn5~`LNt=@/cWAQ#kMD5'Lc9;H;ƞ"-? l#^!*qV)**Q$ߤ~u\s$LyrDgj."KUT:cyЂWTmP.MÞt/eTƑ-QK#Ne}ߛ4?%_K V}FRI:R,PcS99s5~ttHroY#|A >g;Aӣ(E }TqM%L:,(8jX+񌐣C@JIuUU6H]_B.Z o-&~< d^Z6dMJ jϡ#=IpdPIrА$XR3c) $QPER8 w"u9`a2vdS*DpH*%&E6FS$\L$`7Ly Qjbxs0* (,roXI6AnB- 7"d'uh\ťǗU=BINj 1:,921gs}d%sArJ`S=b;6o"Krqg}TFJZNFՂ ܌ ER2UAƻ$ &wj> 4spNmxWxW-ܗ]M,D;"]r(PJ_&x^WUrfOᕸK^>rfn׸1 S$$Pm]{wgaaBrX`$@`L:pnÁJcr+n>V^RTz܋?m-Mڷa'B` l/ IL]Ph\inޙWK\- 2fG!3R_ܴ1.mpTf K2`U!u %LHWeI*PH5H P?*8q[[4IrKTjD7$>oqrDL"9ܹН)kZZ8WBË JD@2&.SֺcWS8.%\nJL7G&kDCռ/TlQwe<'ZY'GImgyD)1tӒRI'^l^ jPI&.D VpÐ\"-ϐ&]Ы=2FAm2-8uY B +pzHVnH[_:%@CiS̃'AS:h~ޑnum0KRo K€hv#'#OO0b!p@bsxR+[ZSvB]x#sRsY +S 6/i330&6krG XuEl-\kJwi.8\;ΣIcV\8.@X2bDq:*9 ízYx-O8J_\Vv*Z @ݫkA:MP:NUߨee%EJ KVLZPjRv99OJ`MPJJi҃錋%$@muz6}k4D婔%*Cs- W#jz!9Lk}Oi KC-&;L-ж᥸$2 {NZ *c @db~Qv۸ęm2:g(f;Z0Iq Zeab`oĀ%*War՗~p}"UUdMMiJiG#$-af,J/q…)Ŕ dXl h"bb+>fuLP< #'_38Y,>޵0E3m$BJ#*+ժw<Rc@6<@6F+ T_q0 md"I΃. gPjQ&T)$oNE:&r ّXRKfJԨ!WaTZi[i/hPB $O ŀ Dzs7}f:, %$Z& >7E1֚]=[* -ZqO 7$dNUĤ*,,$D\$'19ɝ)` i,DͮkUWdy22Z\Tz#s\t N/)BQՀb,Q IJ44&s41?[h;vmQzrd%(4 M\q1ɍ}/1mw[Q&r ,WśۑXqV[~UcP@ 'p?@XV.D`2mo!&7O*!7",tZ*3[:!:XRFP=a [v$$#U0oG[}V쬬J׸ N{hK6öʒ&\iCN)L+Q-IҨƛW&17IR`kR͐+Y=&4R8C(q$l"2kA{^\#R$e⣕UdAY$ */U[)RPN5{(5A'*mD~EfoN0F-Z[>\FRS*Jv8҅9&Vˇ 3DE~unFY wp%xP s+>)wm?'pSƖ&q.S=ܺPљ.ȍOT!SsNLa>YH}jc|H@đ3 6'k})fjXp:+^SA~[REKQWψe۱ ICR_S-7ivI,d( mLQ/ e`@ۄ6+hϝ ˹|oi&|Qp*#;PyrU.ֿq 7ɦ#dBaHӮ@ur I0۠iH [+x$GA6f3 U{bVHW*RЖ7Q KaRfCw}R Dp?\MU)vL]i,~I=LJi0%kJ/ ="BgzI&<^T*wIYrzzǍ<fȐ]La.: $ŷt[[ql6C(RӊJBVSIP|:J hIF2ѓJA{ 뷡Lt)'hFtD$tj/N98:9DEazItQTĖ6`#RFмR jNr3I''שD*:(zuN RO+f$ QNLj"&mUį\@PƉL"E@b GTB@nhCTZƊkMP"SYZejruNp P1o'?LTުAn>NcWX2 -֤(N덺RnFnP,P5q9J)+$<ÔōgJmD6*cvIm)K$cR0@='#F?  uKttX'tƀ;ӁSn?‡ I(G]Bq>o4 @#~c3hh%_)u,|iA988#h^: @]Z +)$d1v13jS>tR C"[ݖyQq|#UIy䤨*Sq#pef(Hµ1t`wX1k?>}C J;|${WI(nR7MeDT 8hP"&Gy*Gtg=F2m(b<~ꛚ:ՁGɯ5:=Shs2u8ӱCuI' AqHD(XhPǮ6\ N|:VA*3ԒI9 |4Vi4 *Gm2̜tA!!]|;5ƪ:kFԀ.5U9 pqFs`Q$DͫA$ YaSBAn,%9RzGơ\Btd71lU5n(1ُ)ȗ- *JRN4Q&dTX^>$%6709 #JUYTȍRΧ(C>4Ԕ;^i3T׌p8,mOH| j1)J⾶hPPApܕg9{Ճ*QK"5TFTŨY$Dcs"U>tPι F:j3`NˎX.AG'zoBrB^ N2q< @JZ(JR}  z" q$(zTH?z CbdFѨ*Ƥ>YѢ&R2~n?DBIb`AԬju݄r}r?MFfc(s=,;,@:Xn?j[K[[_Rc4ӪJN8%eA*YJrpRUưKQ",UŖ52m5!.0Y`{BV֕tmI iXq4 96'řIڏE*RuiK. BbP,}><|㩭UK.,,g!c!U”8JIiV( )+?/4A8I֋_Q+4ދQI };dF_:*5,Hh‰Q>N9pN: ğΨk>^ԟ9, M*ۢTⲞcvFmHOù逴61+)_NpBPۨOo(o Α/oඍu&M.ON?Lū5xWr j"Gu)K=7\93ȨXʁ%,Mv탥'n1cSd7t'tLW{ qI6-dp ;)̥FGcm8~dvH>GCxoO Lzld-^[k_n ڿ~{PnR^5hS(fUǛeޔ-+zH ܅F都bIC $=nqcڲ"bOS0#&շKOUEUÁPydi|p"s9wP,~UUd5U锲++ܲc@HCփXc`m7 N.dzm|HeMmqDFHi6@9 +MRu#Xτiz׍SL1`I < twaK?"Tg?9?ݕ[3Lt(5>0d,2^Nlar]]Թ HKػv˴/`IƦ BKh*3K,ljɛx•RfXMIf;6S멸d(0{dϛ*QI(':qaY2nۨ*.A730@&;9)1 i !--] y3R9KD/. 1έM;,OGzZzꀆYKik- Du)!% iiP;BFD?,ߪuԞQ9|ܧÏq=2۱۵Q|p~`pϵvENcYcV}IS{릷(QYIPa4i 84 K)I-jCF|7Eh~#_]8, nI7I`Mۊ m;[ZZӱ2 ӎ>Upcd3 zK^YuϷ j 4;|9iUT ׉#r[q$J~܇KsLiHKCc_ $`$r;"6Pϐ:ô+nmI+!)9J ֤˾mX[N 0d)`n% ֜K鍢T``!GXA"A f$6p$pM}sr”6[ P*Dv>=HRw%):3L tX|l*F, l 1cAahiQ)u-MJKvZT{,@7t:=eN+e"6Z`ȋɍ)kaȍZ'ځ*ZX%+<@]OSl`1t(Q bl+;*T*$2'I~qk*pܦU+JYծ:n,]|M}K 8mz#(,"T'{7m8qc`O$nU`Yli*Fl,"B!"#ȗ-uU*nIp.;Y2aRh JcˎHnтWT;fnqlT $TꛊEL5IUYBXʗ[ Ǡ";Hu :wnJY&P1DD`OH1*!ː):`7X"dQG L!}BΆۆҗs {a ZnQ]޴"x0d :q;lM!bMW1ӭF.!Dm%Y.VBNe)Jprd\d\ 4$0%o ]Tʄ{)Ȑ؏OgjYٿt;?pǗd:̘,upmP Zx= anSTˉIſ\9>d73\ګKmq5}9Sȹ7(g($=ZʟlgY+v,uInmOխ}\XKs) Tj2TRyG̅A$tQ*ؐ]l#C'cil &|M*S*WP7f!Ιmag i)S})^gU\C\k7b \R5:F:1<\16umEX%ߢeAs$7`_o8(6@XբU>a#y8X*g'OR ʾ?_rU˒:Ͻj)֒u6ŕds3LO +ܣ ĞbA<5r9\WǼNOIZ>ffאyQ6:d)\ݗaDiR>DW1 o. ng~ѽgp IZ7FI7;K]V՗<^W<8 CW":%1Z-0 BԾ13ܒ>~ֵ YTĦwgMb:ymq Zf*\y<[ Ka'5*^1d>Sy'Gp5`A+~MuY %gDR7dk`s=-0*X-@R=J ='zt* %$d_\'m72688rHg1P21MN u*-ʯ?E6uJ`$m|9;nӧR'uUݟ7CjV➑6=ܔ4oD\q̥i qN1g Irp5OǪ Wҿ.84LDrT4(-ϨvVJFXE,UL]r RKPin4iDP<˒PqjWGh]h>֧(aWGxZM udt/@h~ДH RuDz߶F?ӡJYYHhgSAY yf]uqGRQ3܍FpI⟔MH]֒|hN zIʭng$`jĝ}1Ǧt Bvj/D(dL~tH֤B}4΃)B[r¡ )ڶ2BEeDe!Mš%,'gT5b`'T-Za.P ͠`ޔY( QYGD2w>KG1a_9CYC:?yhGN agN5KN_>t^UlNNǢvSNA*r1r'?ۥU UqkhV:`nDpLf1ݼ%1Yy -N)Q":wBH7'.'iSi f|Tm8!UqǢر-qĭUXvT I+*Hh)@nl ,2`F[l 3qP%[m^'aXvFiI=%x׏`AVb]x.Rۑ Կ.!ғIJ@K{TU Q6 l2l4,,2hJP $57"tޟ$ks|>oONqE5}D#Q;uuz#NjUu#vmӧa=LAh<(%]Ӏp3~$Y~?Ϧު;Aq?‚12F;ԁj&gEA8s$"" :N6i!K[CMոRNHH -(Y,=)3C$m `XHӿݸā ;Ifb[$J 15:ѪzuҘ:xQŨľO'ƌlҟ{\xs{u'RY̖bl%[&kv6[ALꈑ vB!Ro9!ĩ<K#hqc!JJWWU9l캎G2d}C?J.ni>BH) %L!i'8^LF,8@df[j?3Wcy֘,IΠܤ!$)OÈ}) -$8 @Л ϊQXm 4!f0 #di Ff,8i1Z*X JhkR H h PM}p_ҤŵCN5 ]u/5ހi"m$`.Zj<zoT$jibL~F֢[|$6.6ʖ[J],eZP mLaa7>M#jަ"u u ÑbSbo8d6~C*y\akIܤLe#&nꮻ`wMy/[Ε*Q!vguGH3kRqPVWeser$d)$=)KtÀ $Lj &I< m홭 -+0)~[im1# mmfGo{Y!A|jXH," ZӍlL_s!43,V$*ifYYml݁vSSrq˭BL`8w pbAIQ TnL0 jaQ)6ŖطAsnx G͂RG"̋1/:׵{L7_*xZ⿔%J r1mY7*@a6l  f}`; í㤍vрD7$W RfYa<ŢpqjB[:ǟ-[ ؒM ]0kf [Drep ]:I.'Zf}O-* yFz:IfZ]0Qi 0$SPAUeϒ'p Ȁl~17'\A!JI^cAD/XQ;KYWW2_*PHclXR8=Kla'ƪWtk&E B"nvtn ۯVCb.6T=5|]!m%j,%nCʗ mUmI\l74pM̑ 30dfe7DDM )x,AdYI~ <:3 BN@JU9ݘ r7#Ŧ57ZQQ:@Rm9qZ*Rg+yX"oߑpfAkח-8*㜞C-j;߷Dpb m-$Ad,}tD5ԪHWpvd;8|rۅ;~)k$7Y9$WT9e)jok/%b\9̭,Gu <el1cb#"E&%T-=kwg{c9̸D,mi߹12cTH f̷սBX6hLq27_zDX%2$UK1GDS9֙.::L-%LC[#ùz*#u$FT"- } 8#8:vqFtё@Z'SuЌwΧ N1E`4k { q5IB>)8F05;P:c0 dBAw|(H3zms4MukHMX^5#L{Ɲ tj(uN={dGR8cuZxVvJ uX^7ܦ%KVIi[Nmܬr:yi[E-$rTYF :y! Y?Es4#'%Sm~4@Oc?/S,4C1Ț!g:d GщQ2f!G@ Oa'@DM*vܛii#0C6!kKju(U/j =1 }%J=)[Uo^Ҡ4S9v v9Hr!C vªufcQdLraeKy=) CDK )Ki?90gS2?5ǝY18:qz##C#mBfȱ. Zա w!Qj'TXQ2 aewBR'0:ya~զv#'VuJD;oTpb?=ۑc$ӧ]HP*:D_su8=|޻IF?\k~[Jư~ϡۀs};u&55>>]y Ug9 h?9FLf68P@ Ae“(d}-UPsJ{R3CъjD4[jJJP@H "*oWdFܬ|g*Zby WTmLi4W\YHJ@=uP/S&#jǯR] %67J!!J!)) :IեA2v8 CtDb B2p9?hϩ@4~>U}N@ "` FPGg;}:S75v*'Ms?uLiL/GְA'$`m8c4vAtXUx?-bP&wa ]N6ꮫ1x~_‰*r Ή:zAXv@N2G~DM%^6d=zfU eqnXl!g{L2]Ce!m!ԌԠ\d >#Z-a 1kA!_.`F"J~LPOo0:+$LԉO4Os% e_8 i0[wVgK ۷ȦFFn5sYI'Z-.=oqd읮 (S1w s IfQA2^qblj:@;6Qib>ة--Sз=IOYrYQj%kFWmb S-]mE!K*Jrxmn k B{[ͯ^Ƈdm+&I1m3aj "cNEmXS$.ŶÇK^W-Jp M+ d'{-طM1pI1xMXP-^Rn>q޵*HL0 9_A5#+%e08pBPZ&^⒥cV$Z2 DI#Tdw `;DIbLNȑ_/>]nFԔQJ)}ͷԂҐFn硚qAM*uamn {ǁ$,PLvw9;NѴ70 LIԍ#ZFџu1$ihҲD[AjQy4i*4mq ~5s-}la@ RL ͤ<M<^IbxcȒ=''F-Z;jLT)JJB=X] %[g8-1H7V /7$ Rf4[ͩMegI]BPa5'n.6:7JRH# 8 10. ʦ.XBH]71;L~+^;2yN9CBYTM؈t4[cp9qvPzp$>߇j3cf!Wn$ Oֶe6Z!*6HJҞr` J 42J&lelq!C~0!#iǬjma+2ZZiJgO5 .#:QRbzޓfV4!(<$\F f\0S%ƾ=$2pK[f Ju'mmT=⵨.ӸRۑ;n7YL-&Mˆ5Ҥhe;` r6|k=J"=W;"Q,ڥ|uڿ`nvH3u'h H:V.qc_SP@#nXA*+IY#H[9`q#ʢXhJe^}7FGNN&L:u@iQp!-5%3UN#ǏoƋ G 'WԡOZ}Hhv17-h o$Upqb Jb`/!H)n9M|K-6^Ah/\7PN1Oi`4V^"32R c4cNz[$="S0XʜVV{s3G+joZ%"J;&t@i̸7S!.6ӵ/F.mPԦRևub!I`740ys1|"d(0Ŧk YuKOz4rt@%+lX.Z !-ERøp {zy ݨ 60Rt$f\erLFì WK/H/ K.ڹSu]y%ΐ£D(>G'goQJ Md,0 R hǙzf@6X l1^qO:Q)YjJR#*Y Z^`S.'׌kjY9o/`#ϠV;zϬ!}iȞ|+2hrTva;qИ;CkSkAڭgvܐ1sp}6b* xV냟鑧:u_*9xh $'\89ԍ# _!Zᴢ#ۜiCz1e/Œ :RScӠ)OLZSE\$)6VZNӨz1)KF/U5i΍3!sFIּ]o;SٗS6m()RJ,_UIe_'@ȸyU1 ;[n7!w$#-+6],aJN&LvPgdEX\^|n=}‚N.A*|p:e$ ({3TM8Sq)ON'5bV|ZVO`rt(FsԡG*@9'RwzUN L5cE'qy ~'  ug4CBV_*BF'Zi +&@+$(cS@?(ƿI0z|iw f:^$AƠc\c9νsЏ??N='$uJK@~g'MHVk np>kV#j12uG*dh%#Yy>n%;$Q JL#﯃8XQ 5~:kѹ .4cjE:t:CF IFF[ڐݸQ,_wO~?m UE qOmecSLIdIMLˎR# *JT$ ,_y59.ʫSId!\S ! ZR0II"u:bΧiE 2l9fY@I@HV h `|iF>rm\hs`g]s M*JCG|22\8PPĒRNH2q~ZPp_LsVNw 2}ut5GH2qku5VeƳ7΄+$tPyq'm@.rHc it >lL>'L((r4iYx>"j.m>ʌ0ۉG05J QkjGͨ.AcAY3m K#BO#fPG\2[mii!Izu\I+>#H乱<#I|/R@oqm7Rނ}ӱ mgTcGNI}g<4MPІ.mh1h:F--V$$4mYjB){h{h Q:fBiO!ZQ+8^Avo:䵕9\Ӊk2D#MxVjSKEc *9(:?iExWllx,h&$Xՠ[y'c)snYJi´k1|x@wt@cA}-j}ٶX0*Zۭ$JF. jrz826IR~M^ ΚەRۑfuO &4rЈȑﺷ!%3\gV̤mN i$* 9$rm<泖Ƕr8 iX _Rl} ri )v֕^6BJs뛆*-by$ʪ%@ǣ&^[FTXNC@yqJ^,Twe %JN"jBTRTz5VD ݤlqO}B$I 8҈v{MJܔ9>]BSn紨Iq)$%KxvV֙i'[SlQJax߻ȩGXK$n1ʔ/(}h dq yZJ']&FwUX:F[XJ>D@< )Y3TL Fpaq i.}IL:ʛ`=P80 ڡ>mː/RO0`ƴD 'K~ fy]no&3NRqo٪KlIuIQ(MH5ԹwL! 0j|Mh;`.":--ĕ}ZgEq{C6SP!NFvhf:dXb5$L+~cU&EȀA0O:gq۶zBbٮ]&z1CY峾[ ŷֆyhyŋRRoBAKmvc$?+@IJF mec}W3齋s;oKfrqW1"SH ,.qՅiM}fɐmȻJSx & +peɸ, a 4q`Uӄ*$vW[fe>cI-BAi*BJefƪ@2 `cDN"H6o`qS>הpQp mN쭋l%O{JmӥLWf"fn 'YQ$I8o1xH{J[<KCT#6a&cul:bC SA{!# "90f"D9VT_2d5ȺR mh1p,bVaԮK[\?%Rj;Kp%+s*AYdpc7S(Zp&';\J(q Bi.">ne1ݏԫ~T2J|8|]LLh$[6 sX]> :;&;%Jhwq %p-*Z+#q#IV[HsYfuүa"aLD@i_gS%Ҥǖ*ߓMc-7Zp@U 2#01VX7 #8Vy=uC(S *fh+9|bYRMs7̬iqi)ŷІɻqM7ORLj, X$D L66My0?)=zi\Q}Qk&ʣqqYg)KvnݤHC(+[{iϗowdcb-0H \w1j2;+u3[Եf{3\\TNu|n-=d 쯳C2WaɥJDt:{5ɷ qZiOWl n(CqCH)-JrD r֩9tv+qAbrkK8qڗ5*2@/kk.}^ӎAR~l Uw \#KbG"co6iƱ ouu$.[ef;}ISL=6K*@= &y<&t*Qao(qy5pp^Y}*%R)<3T_VW=}.!8跌܃HeH?Hݦن,Hj\hqeU %z@&5ҶSÈ~kWoO./qUCjޮol٨bdJ`ݸDϿc2+a)2F2`t6 C"}dlnˎI 9Z@ج`cg\Wg? _{y=6\vw|y*x^9UgC ^YaiSEa[2q̸L2m vlz7q wH,0XYt,@9_+ CLG Z"5L.L֘i}ɔz,p N |@]&:[\/7gic`? ÆVE prr0@YVÅB ><FA$z|5r@Č|1{2駯TĈ4${w@€ ƽ@ATma4d4X_rǃL+be-4jqJBIWqj=P>WTۨr+WeaQ"ߎO.eGJyJ(%J2:+OT155C)e4Oz+U)̙=(l2𖐂”Cf<|Y6Ҽ*g(@na$7p{ƒ+RM?:}f,hL3vcGa3%YH$!$!#\R|E `n$jǩLI0r?3 Rw%*) `r= ˆ Ts|{ dcLZ1<$gD']2;HӦǴJȊ_Ss9(@ :Ҫ4/+ CP!TCN-+$zUct2|-p|ZPHlS ҁ%?_I#h%*ƂӴOXuոzp ƒ5ǘ^iUY.e]orj& ɭD')ZF(/@T^k_m?1i\ Geۭ QyUSL n:P hﴅߟ>SUlXJJ$3Vӂ!9 NڢzaI7b \+ qgGHyI2]p 6= g k8 Q1 xt̜n'24 wzZt! YRBGpBuph,yA#_W;TjADMJ6RxMZXVAJQH=Q]PV"]?l?f=/>R34rpgV7Tγx.ri^@\GH2b0?QV㎬-)RP'XҬS@NƥjsuwFzYM;cB-+9²4$9:th\|}r':t qҋ G wۜ h4::`#@ 07WrnOB'T :'Ӷ'#i~#v0cđQŤ= $i 8騬Fxܒi]2ZU$̖JքT)XHJ{h$ƴ!_P GzCޚ%3ҋ*ThRCeZ%J Se֬q,p}\J7i'u>Y ;n*m)IFr0H'8?ө&#T8 vCz5UjQk?z4u/|Ź馄$) q%:+p÷4cmEAp:DI8'ӣa#Ɣ`RU=Π;ǥ¥%S`4N12OVԓYjTw#ĥ?L׽ $>#m)+7*OOFڠbmMkm?)\i ac4m˄ntm3ɸ\4n%Pر:}`HNJ )N8 |)~/R^3SKmrp%[nYemC^c;L!@:p$ƛp?O¤\$ HϪ˜1mӠ?Rq-8:7gQH)᎚Nj;O-=2NGéKF XrrH:dz?R"& '\g:sGmSt~>8LLAMPXE,?H>O\|I1{z4+"Y8$w$g|{`Ky/V>`tPĞ:kXM)m*SBTjJNR 1ꎕ1Ũ@q_),#U4Rkmm6nG?jռvҕa^ڑ8 thhE?w!sxrbs!-j\tˬӏlgܯZٔ[N{YIq IF7xԮ7oWR\[Cij\(Q_[QV康FGMTKr«d!zw8/μ))TNRז;.,BjU֪J={Gmg`c6s"TmK [=3 2c# X ׯ08Q3t;?G )!.35- 2ҕƆc;!JKhlY&2@O$Z""]h8A>B*]WzHD 3m,4Ɏ-67t1H2Kr[o,̖mX1h0]k"xs7"#])k.h" @i̓EXޕspLz}(jk!;]^Gݐ6$+ R~B jf/$h-kn!"thc~VX k]mݝ%ӳ"#krMw9h4UpE2lލk.?6 ;e,w(1$.I0?e^rbʈGK@X$WP|g-B(s!D_Lsk#Ùʯo>P)J_cu3/qlbB "aH,j.[t51K|b 5uDRc} VG%|=.ZC :@{ߛx5 x]~w 'dyƺ庚<Ccj*l}*VHl$ *_OI3m!U'0%w@76"t>q[uϹ 8ZWo>’젹V~LurBAy1iVZR@h*YKJQr2ZSN4TSHڿqDOWbm>` oP=3t " u'~-J4f3'o,D٪`KTQjttL.K))Eۋ MJ0^Qqc]`ä2N$EXqRVd:î:+M:=>U%?);:d;8H4 :w1A1$\5i8N6Ji[%%_JAshiܢ5 #Wę; 2&ւMP1I:4E?uǎ\q!ۊu`G@G󧫋20 Ht^T.tRu,CN齫(e\Je =bTdnBP\\}01@\ pK[T,h% ,(" ak0uŽ KQt銍 P0*_Fz1\&q.f̋DZNP[u٭ jxOŌԸKum&\5qdS(uƘanQJd܉w[y+ = ֛)$"*YeUw+`Q܅ԀdHy!\Z[HAekqM)m)@@Len@'$$X>lJラ:1x62w)km!m,fZej !ʽ6VwpI1$ѮCO E\yCL0J$Ia{W(AD RTn$I%EXRv2 *^҅Za}Pe-ؗbfBVԅ::´(%? iFRXp)!SIH$} X7#xXiIud4+[+rӮE QlbʀLHBA Zv@2Wȕ xhp֣3fSQ˪Bd>!J[%I;qs g̃"<7W)|M>$FӬXXΤmKPRZmo> K.I;UpqAbSq\OB9+u)-O!&9ɅOP3lY0F2Q+}ʒ1PNԠt'fD`02!.l-=LлAa WwY T6{.mMʕTEI*X f6TTu{$ځscR$}&d&W|cVmR@ffP\3Q>#q=yuԥ:'Kbɕd)%pDa)RTvv7IB]\vRum\%ДAȊd 3b>ynhc$XL}@OjqZ~[*3psg9wQBM:hєՔ3.fith(zJRPqYE'(:HG]  -,dvo+q`Ö!wmGaĠTu${a߻km9S9O+<@_yq~t-!Iٳ]d_z`i/uZ[Jdb-Ʉ;I0H"Z œPιUu?S_X %$tQ;Ԟ4ߦCPκڎth_< 86Sd<Й 4\w-8ǒhV>`2 Tx ʬ~SUE]C]>F4+P =zwe6w4$郸ꭠg=P $d'9@=:lhm ^+chdk~%v:'X† tЕͷt:iHB~B;LBp4YSS!??~4s jr4: Q*@+:d1c8^Gkmo?U^mMn,'`IڗM1$ ic`(#iݓ鏝<O]74Ծ; ƎH"(1cxJW``(+)ItV ;OVޟG;3cz~+&W8J_Ȅ\mϏέ*uR$~Ʃt#`l!Seҷ|H/;[Ѕ+c(mM`-W *ɤ┼| : *KQ€ʈbPHR [MIR=鑍2u= YiaE$ wZ?nd`0#^024j0;cƃO^f\z%K4F4x=b9NjQD0F8ziQh@%[ kFpN:|4:v >1O‘:0Nw^I~-7-g+9$Jӫ.OƠݥR7d!!EJ'hR888܄T:^1 Uo'-v3r⭹4øT%;۔[Sm@FmqM c㖞U0apa9^ 7.\vu-J ߾RO[I͖"XJs53cfL<  --+qn &/m2feZmXJB[i[Jm#:(H|4 ?0/lk(YrHpFutƹ -O?mBQ{C_uVb8PDs+$\:@050tOF$jF1 gLu5 xfqwcLFzRcYLI8 ~S $iJna4(v:j3q8J]+ңI Olq4D\JT@}esd^ұ% ~L(mx0dqIoIߕ cI6(h ,UYy{܁ٯF!XzGMcgSv6 j@QijHYDI;`"nneR%po#iZ.Jm)Lƴ[q <|*}Q]UImFY%N+ZicO0w)$Ds$9Id!Rn܌(D8-;J$`+1 +-{um1$Mg~/R14\*YNE|],lƝ1m {B"Xݱ3wm*>SӬ3YveU5nM x^Vy &(31r: N!NLKp$e>Dq%+s:+"X83pcKNdȋDKz~DOiE$))Ǿ]&k9*mBP> 6bd$&& qkBd\ Q w 2fGŜF7-kGmDoUImwxvK ,*.Som-HN;Q)lԙ $"1Ğ{Y) {ۨY 1؏KX*4bV. >DfBrC~Bl7Q*H96$:iyi^1c`-&S"TԻk9ֶ0lWRrs&446!()ʁT2,MGml6" "55>!Z;4%D(S-&5 ɘF)JP=)#iy]l@]gY7 k`م)N+[ 8`(mÒN$c(PmX?;UN[|E캐`.>y^KM{:Q *8@ulvsYJ$BcZFzDFe?uW S]LaP%z]{0ݐDuHRuE۱048yWqX:'zY\Q.ܕMiŃ'͖yu2C?5 7)kug]MP![20mHtdgmwAnu oK[VBJY\_r3(mO|X JGMd'B8@gnXM$Ԉi[i+҃Z%ueoZ#$)'x=jec[\,`\dׂ"$H8 G+Z{MqVO(6) yj+·+u68Yq:\D{MR`;B |k.{eLr&NyJHJ:Kz3! VN2EK9ImiI@$DUl3 7ci&*c[)Ե>!m${#8QX@mB`$Xd ,dlt""F^K&^Sm"fZbӤPkz7h";(֦H3L* $ې2rᕀ:HL4kZrD&>dm8e۔⒂a ޝv; -, "d:¯PF 7,Hk7㲋kJ$U2!(y0两Iإ! Oź#^ &oë]>@f6>EbÈm3ƛ*uZ*JZ| 5M'n{+&5$ %YY ;,*saEM|SXU*5ZT naKCiF_\ #V ăDŽu LRHDor,K DTV`YaCɘM1SL[M2ғٿ%g,܀NacSqs?Um F n jV $7m UH"Kʹ~ue?!R'1Y'zŠyx,DJHQfU2UI&z87ZDIymp↚KS6 fmڗt{c1C`j]r A#Y*q&4H$,Nz<$dLM܏R UX9C 4@X4`u/}VvRQ:[;C䧂,ӒR7q$mZ1l ɓDcڦ#(:CCqf*mn;-Lw:?*;q=Ib8[66Ade SdDreZR͍n{)3*ŸcC4 yPYTPB:ZZZI@)YH"G#3nUr9$Am FH[HqAkRuv-";$pIC鐝 hf4eT]_< UR*TZK!շﲄւuC'z@P'Ѓ;8܎͈4oV};F4 @ j@?*6HeCgig а2:lǎ!,"j/t--Ƕ[{jlQ(2 A(ƗZUC]DVy* 2O1f!Q`4Xr\"'IܕnwP3X>"W% pv{y<*܃ܷZr*(LBv< ˚8fxD;[qȌ%qrܩNrlP:Cm0.MI b@;bHY #wH Eut[PƱ_̣w녢x\d\ڗqt#-节=#ڱ!ڱȥE7Dn b|Va}6V-e9۔,!4) $X VfƋ6&{NM\c&2%H2,g3̆Rҏ{ ݭ$OM=fQ!V̠2V;7QL<5-^W^ujNZeWK  zMĹ>G Z +ې_ &ܯe^\" FM"P6n@d TOZ9*-YH~Mv[ִwp G̠$ [l$Mop`VL{AeodqTښ12jl" Fff[ y%4w^{Tȼ"fE܄"uo37Ƨ# nT/"uvqÍ" '#w }w"d;Sl\~t6 L@6nYF o9ڲ@6H&fʫ铕D I>QB`=2@`ΐ7wq({*ËUYCJ#S,XyOLv4b%߻0r`%vXLωV{}v$Rr`"4wAo3~(NDVb^cϒ-Zn%R3eqŗqz…v<"q6޳;نB0c" 2*ف&];ne%PtZGU@f634jemelm.8HD4!0mԡ0$ˇz{2=\ V ͅ}Ѹ9Ӻp3I>q bP"~!Xc) Ǯz;GA'$릺OO˪Ɋ H_|"$Ih=h ƸNN5N2JGFӶ8Tm`i=A$z3߿D] _CMѧ۰>d^={6 ৷BIʳo/csS%1mJ%.0N FH! H@!X#ʉۃA$06 zS3mb>T=3r@DD[JA{1m8QΟ=ƃ]?":]Lqi"AVHF1!`k 2E黰Y: c9qtbP>҈XV10;҈_ThI SCF1sPuxҊBF %:GuIe$m#ao.Jֲ1nRI8'wLSxhgRu1kנ~PODdqT#RsdM2VDq0{,ABq8*#B1Gb0gH$ tұBv+HI׹FAJ$K/*spYyx&u) ZHBsqqVV"GF6NAwݷ~B"%P4JGA?IpgTc#.?GLο7|z͛C@??~Δ2 GS؜rNOn4%L4 +}{dc8;^X*90GRVyO ߉&^o-yY਒IFI'u)jI>gM;۝C?_/2 gSqq[ʉ|hք%{ P~cd$6u?Ԏ5\nOn.K=cIEp18\ivd4%q{7aLTnj1ۜ:DԖgbD>Tv2f;vд(@* HXV)(vkY7lĬi/oN֗[J{h @ f6|shm?|L %!#@Rx〤c6$ڨ F1?zRstHCz z IΚjdIPI@_l;f|iL7, '?P;3<$ZRLCs'JMy2H'S$ >=BDʏJH?Hv]$1zHΣO2p{tBfBPejhs"1"&W|UījPҮތnuCMpR[6I^ᰰ]/U䷏_&O+Husjb޾o~ U%}>bX$DhT(_.}[7N@-еa0 <$d'nCc]x]bQU-0crs˓):kN΀uY Tޘ"&FŠ~xJUHvu'˩;;REQw@3pJaT m9I\Nԅd:qV ߘ ݤ|O:vFhBM0sàAuDT_ >q 7iOp1@QF 06IHΘ$pBF?-zEzv ێࠌm=Sc*ݠ۱G$aGLlL_X*ߢź(i4,4qԷ0ZHua)tKi ;c|u6aMk_'+{ _dζUu|'>Йߚ+`CK)}⸏*l)$ m-=}Wǖ !qݒ Xu{0!:QEI:EFLee]HM[v jގn\Cٌ.)*#`ּ8p#X Ɏ|JOaA'jN4oL2jaƈji9LqJ~E69Xc @ Q=aĪ*7!<@pQV#C]Ǎ*ŰF%&d !]q䬥 O|r5 m zEy.:tyjb.d-CO9[SAL(t봤ec*͘d&0A"nMUIƅa~?*?qaAy`ֹ3I8\8aYlHJօG';Y{A6t Ha$L4/RTnMqgϬrĭQO%Mq gkdlI Ү}xڳ>a!@x2TƗrOMt9#KnޘflZ>tD?#7PmłT2Z[&O}X2f]~z8:[CFA\x֐A K˟`Ӎ5%\KR▕aD|$XY]&H,npLI"d~yKWKHs#颱&8RTÁ)PJ񣓎Wxp稐꼊}]&ܑ"ZuP8 8&K,&Nu0&>JšS V Y +{0CKuyH:PWnN| xHP>ΫbI!! DkcT6&CFƫ ư&9[h ]a\X}-1ˎm#ێBV*NAbH^Q.T &7ZH:\Kp0JCA(%HJW"GbF[Ƿ-e[ŀ362Tc$X65 A35><ʥ{+I.s"&KE *a2B21䵺H^VVˍ,KVmMjm2t.:@nLڈEI=$#ڦB{ ez@c^dN[$X|A^p}LxCZu DFZH6Ni,Q'B?ͤ[S6Q׽0f(0`@n&D#3:LZ#CK!ťheq;H6䅺#+J[ "GS~@ ymBWO)6Kg퐅"$W*L nh' xH+7Jt0" FAZ/ ʐܦbHЀLARLQJd8RBy-!+Wc;xh) d(ʆ ` F/n #aM`Ha}R)GʤF*6C!:Rڌm:ˣ+ (tCl@c\1$؊8BEEm ,fФbE3ڡyjiZis"}"AKXNJ\^إ)V )\A$U"GZB3dh# H6Q'c IizTTz[m!AJ@JuP9cVUfSx>D]r+1LmD"KTU@[SR RP P=; d ^ċZ!FE!IcuѤDEN8܆ uzKqx4s%N"d61>ZH$K1 HMts$6};ZKO95!)q`߾XG)U|y"ۆ660݌ᨷh{Uy-JQqA>-xX,*4q(m*i.xٴgX`` ǖ _KFdܪ 8&! mMV\@SjBZPHABuvR3$Hwƴ5cn??ߚFDڕ"{~Sk"Du)hpZ܆m$dtc\fLIZY..Nԋp?\o(X䏺%]qIMKֱ$8ZKK.~$E&9M%rLCz6ckmQEaiRvln ̈#t^g>mlKg#G1U6eWPWVms*2g\ʹ.:y1n|Gx%u;/b@ VyD|xJ>:h8 cȷ=r3kdHK }kz-Jwi.JL?%ˋ Bdz X^d99OIOY|9U򜩦Qą`'c=ˋ6߉:ֶ˅xK}L 8ǒ<-޹%uLd3Z-"%/nTtQ=^ O3-k_Crژ`eJ*_`#P͠-rMIʉ!p/Ae<\6dk`VC܃xfx=3񭜛ΈokKpUE}hPmh G`q@Qѹ R.Cd#h& fQz ;ŋhv"S"#VwQSse&kTK &ƈfn*XTX60Dl*.%>qX*ey+RZVmO)1Ǒ2TxPTi5iqʷ<fl7mR#5η O3GD*uMY[eJy ع=.os?Uɓ6 8b {ϛWssH L91x?n_m 5mP,)82IJ Il[ Hn(?>?L AP> "G;dМ }}tuE1jLMA#ru'oI9ӱQ=[@t9rOu`F7XQ%8 1YA/8H~nQbBӮY7 t8?^4qG3Eg vP:w:[Z9:@&C3(g8gM*> s€@ NHΧӱHjT k--a]}ٮDw29jOpF3r3tihT0:@IIݜ;@NG@*H|iD#$IW 2j2vI p׾$##:@ ,>a05z) co`r A= zC;M+dDnOlWoǣ`+v4: m* ;NH$g); 䫹RFЃ44:i)*\85Di@c:NPQ@z i$IIMzH662[qk8u~[lTe AxM{W(-;c$gC(PukGۤψK4g}2> Nh;?V޸׫u*!LuA#{\_81EwX^YkN·_Ğ i;r9?>[^}kۿoQQM1Oֈ0M6~͟n!EҲ`iHt-x#<ϕc:|s)7}dؕ:K!Hq2KM K @㦆tҦ6?U uv-J@r5jkPvºBTjCm+Ft+N#:YVX"0TJTv"%0۶nGqRFYy eD x.JS:iWb7@]ʬ}RR2CM9)Q v‡ 3Q ff[o j|-G*Yʔu'=tU +uZSu W):jD4HiP\V "/c FAKZΠ{59IQ[SMiqm=!(C5*LRq$Pz@Ru8~a#QkᎦ ۠<5Qc/n SDuNP JŃcBBIQΊ8Ӱc Lj<_.|G *m}2uOk?ˠW\ _VDn*`FF :ROtJYN1Gf2ӎ8đCiKe(P5*J"q##+'Ltɿm)P/KmP(6M˫V$`⊎u豝ʁ eSDv)͑zVV>>>4I)^CO*ԁ DpYJHj)J p{ G=j;RϏ}kQJ,&1BV3&Lj_!R[nRVC*Ya I(8IihcyxC2> C.7*wMqa'H*)}L}YaLJ28*áTq ɂv˝<ʪd0nAmW Gi +aR}LԤ:eKZo$' zGe9F\ i@B¯Zи6On()rfܟO (SO;*#Kl <J4Pʙ]NejJ&~w4xSŭ8A2o|*og\E`-Kns0ꬌV>k]K{?|{7 $yi5j¸=A4b$ K LHֽyzSv\c|Z-LXL~c}Lϰz:j:q,2vd6$ix}+xȄ$3:_ &+~{iқӣ[Mj-Z>ZN]7NDə<:s'-I<#˗ +kx Xo*KIwېԺYz"TF m^)H;BN%==Ep#2wD>X*O_yϥtD4d1 n9k!PJRS u#- +@,6Aת@|n54*3-/ vZdF,4)R-I$0 "Ǒu"̈́$|f8j/J2#Lg{ ;ʖ2}߮um$6% NrrSBR~vGiqd 6HXA,b`SKP-&`?;ec<\JRީF̸"`|t˄ LQpP+{κӼW)mϽ.IZԍy[Cy- %풳] .A$kضwaAҤ͍KoO"kۚ_uֹKP\vD􂔀Tc $ncƫc1zwdg0q#սZf#fŮC~?%.<gϐ$ T Ga(q9nܹ6&ē3""Cnݠ@6 )cNIyn KN:f.!{ߎ@ѲAQdm- HM0n ۄLP̘acpXR R]LĐ){>R5zD1ִƻ0ob G0NCamlZgc qFɎ ~r (&1Wtf "ICiPeu}n.Cn4뫒f"Bt)mDoIQJN;;<S?Y'$ KGQc:؇L&9mmORd7cũRtT>|x@v$Ǘ8[q՜t=c! [MnLw7ZpFRJr: _ǎwƝZY~36 C5nr1,Jѿ}@%I$g tu[Fy}u^JeLe+ǤlknW.-m7hl)zRJ)'lmG;UwVF`"ְ _p7}Ǡ;Oq9$wsȟj]o햓[BUIǬ\vdIY]✸db3 cq\t_c[~%H(Lc5ԓ糦Y.Aܸҩ"ʥ'kk`r$X9"zN׶O{u'TJIP$>j=2[wQK-*?)B5 AI+c @=ђ<$D(rqA4P.|xRo#eN( 6IOrIcҪnk㒐xbvY*zC$9-R6P'PW4LtUmnҹ-s //;.J㫊Ԅj[I+e+Z74r2a ^~::B/bcZiЙM9"$RZ+)TsRI;:g9m N>u>~ur11Қ:N}H`/6\VES9g9mmK+IR~o#C~oƸ"ǚ[:0m荿BӕnJ]647P)B[KynIuj|'c`џ#=Ve?8{@ cp}OU7gyJV5Num.K4BqF!ÇHz4QDxF;wǨ\A|AJMq^>`qzz`"Y|iIVH$549VèB$ Zעђpr=2:n9]K 52Mr X\ޅ!q`FtMuԜD޷ &4?ҫ!Y@:+diD2'TK1ߎqH' @ԔB$5O/U]WDVo¶odL͗dv< TP@gq@3ÍT :HbSV &X[j% 0WT!85 ̝v$8pGˍ⼏ϩQUDO/u3J4II?/u$ԫO)TA|\ ':U p*hvFN3NF1D߫B)Pʙ:x[BrNAө@M#9n}A&F](I'ƔdT8|ǾsߨUo<֟MnX* v@N$ӌ{jOOcNv|x4LFBԅciЅ'8 +89R}}:5LҐ9ؒ5F=1D/C ӭGtLo* 0F2*ܐH+'P,eX,?;| w$? ' $+.(@C r [L|?*D$(I9I>OBiEָ}xqr?񰫧 _U5kg+cɑqYMxPXyv4G* hXWaa}UK ( "V+.\moMex,& _7k䨯Wss`?.u=DsEɩf—I+OV+KJ.'W5# :0Z ̀&LvRf-:)VȒ뉮L튔^jqȑLϔ-j /q'fk Tq&bm^¾Ԩ$oIک}UgJ,cmU䘎yu-cfl(2܊ za-O ˵~&t|\v ]ٌƘɑ28oIi:pB(DXˢ.H^@ᴰ9 #M}Mfr _ɡ<7MrY_C(~|)UבlG}_ +jeس&MKb -Y2n4xಐm(ad^%OIX9p ͗|g# lp@p-;ֹ ludWD$žu~)}`j"`*J״rbG)&@:m5QtJ@ @?=)0)iv.Gӈ#*C qjiRk X"D͆@-!k;Ldk cH&7E}JڰЕ*J Ì\mPU ZAZ W, _Z〝$[c,`,{fNpi%m)2c%M8G!nYÄ8F6Ae"ckkmDܠ1%ټ熖S܉j*QqaRhiƜT]%2%-+sb[H ݯE Lm2" ΂D)Ҕm$D7LjHhS9dd8㍹춱 0u.%ZKBCWzR'0ȝ<1q(b=LO(LjjD/$1jmNMTFR$̐Db^ۥjH)VZFNEfEFondk|oΠ-ɋy`۩_{+K1Ò뻗oHa-m·!'Jw'')1znH>S+[4l$ht62A`δ7a+Pp$LjćCLiTlSYl̰i6r-DFb $0ZDi.Im))mE W[`%\kCϨ8\Q -ScN5ՍyV@:c̓c /ދC@ nKSqDgTwB]!K ऐk:\ҡnݱR>g֟mGHe8{.!hiېdlu4$zTzи[U =]3 e,lM$IE8Fƣ HKzckwrm(RbeKHR{,/-j\2k:"Nx݋s6IR."`̬u P6Dժ,Um,uKtMi1Ip!G ;q )k[] `a& )NAw2)Hِ& "Vi!NN40a~`ܘPfJ.:oyZc/)fE!$Ė?Hk"k A l,LvM vM+KL- }ߌIA[-!YJ"Bx:eb] iXځijH#j ="tiBS% @vw{7 Й24t]dob]p+(wemOQr@\۷$@p MTpC(}N/ڐcV$III(LF/hV% -6ω$˜L@"Ov{,pqAe)҂B܇B`uBA7$q ΢bc ό2 ȑ[iiRtq&.60CM mRpZJ#)$$(ɴ!GAjEv<@;nOTBK@)uJҗP^Q+A΁Hd||V : 𨓩fHd͡a!N,!BwjN4Sw ӧ~|bV$s9IzK/m$_-jt]ցyDe2]69uAj9S~T#*=PI@kf['S0UT\w.Bejmҙ.8gPd+~I9 z ~ciX[ |"5kg'b֦T48" "+,8Gm) !op""HW0$  n68\|U\ڿeã}Mƴ⏡ӳ:w9C&!7"+ 3uE̝kwظG bN.Di^8<)1xj֗1SQUUIs]RS:_0?~ߟvrw2zIY$XlcE{\IEA,,4$XmGNЩ5 *E˘ѡ-*} 1.y{Va83Gg{j41fI FG3F5b+d;Ǭc1~P>VRోH6Hi0sx*-qK*1&6"bN}Ŧ& 42U&3ލ,ȑ&K, ='b$r?#O$]㥉 ڀ ^qI颰 nIURTw'.Mxbm]@ T`HP~?2# a A ]9zx,yxeG+} KyDssy8?05o'8ėDuLJb╫u&g&l/KX@*8Ux1e)G92OP (4kߣܖ&qlluaǦG&ɇq2?\w^*K 68DdxC $r35HE^h1:#ܨIhi{yV᧚RuJU}BZn)nYVQA:HV/74$A)' A+Q߿KѨʌMsF@88O@AB I'ot54nemP)#` : _i lg@s-PXǝr;~8g4qD[F6s'9'vܳat+X#QNtG~D'7SʂurQ {:F5힌ZW:e| ˅'&<dTC셥_[m6HiV HzAVsFx"O%vDeWbT ˑu~Ke Si3 #h2;ƿGUu6>uOni9>Ӡ.`kU䁤t@:dG|'ƽG$Lqǃ` u20?p u5Hh1XV s@ SS5P59Ι''=:Ơ0X_EϦNs{d])6P24Aps4pFqtvFV; RpX :I(Ђu]KnMv<"hpe: :hЂXFD Ω u"֢mZPL}A@fƈusKû.zА :Hb+Uucwt(qM?J]j:Vv= Hʕ $kEpY!%Mtj}=njvIL799R!ӵHgnS zjͯ?-V%mtJhaOeu#:g]a*v_LzW$>/C;'"`M0}{1 >< 'c1# 9$Qc};I"wt1k}R4#^ғ ue!D$dzu@OH(@c= TDg8HA=z $[b)*_#MUk“8Nr2 z:#AΘAH}Id;w{;n&>qqig=@Ǐ*4o|; #dϢ߶HP ̐Ft>t4 ڝT2͝ђ45YVeD5!})y[/6ښX-HZt wSM) : fBe4cCcMА5ݩ*Ԟz;1eʷ;$2QF>8i<9ڑxpMn?v2r2u)+s}<|(D6}7='G>9t/a;ƿ e~VԐIͯʤ=3hOM9:k7%@ 'z/`'GZiЏU+rݐIO ş<ZQ$+;ݸz p" u~42 kܒr͸(z^qFQ!ph8M1: Ϗ'oW`NFT\nxhG}d+rvgNxhk׏|qۂw ߝAB oT?_/E$ ;N~=iNjSFa>?Q{TS|ˢd4k V@I‰>4#:|ߩ1(RI<*98 B{XABq]* R)%8Ju89!Y:(+;Z*V4OL>vU&Mu4HF\C}ԵK T58*6L<,,$WY)f:/ʴ+b}yKQ9hr;=ͼqLr_qABS1a0o{|y,81L&DPf k4ϓM$LToTlu~K{9Wȧ E|~|ń$kZ Ba]lE]>vTmv&vJۇL䒪-ASԀt$ۄxkjҲv;bK"O9 r&YmhFK[RN@5fG鑽R$4ڋA'*/V_tѱ1fNU.-+Ծ5>$cCB t Cc %^L~ﲻO}A;ȷ3yWpc0 PĎBgʁ7sƱ4o\*GKz̷TS%!U5Tv06lO˒cBnwnPU[ ,Hrfdd] ZT ^t'tE.hzG"p&iܝø\[ ͘ްu% ҆ko};8pHoH9;ы'}#&E 6 LV D >$y| 8< ~9ϖ/n7kڱXZ1;m$6Ґ\!"ی4Ac8ɼytvB@[" :UDUW譨~@]jk*dy=3СH3'*sRc?W Al>ӔlY&L麰:9Ki:V&evy]=lYTᴌgS-#[+Ax9ۀ6aqh [uT<O9&bʖ(mBMđ.wYc2e[ V?NNߺFM1 1'{y}_oC||.4?fjDF#ȉˎq kҘR&ƶH-M)wLw׃&P9aIxxpd8?l#wrO7*tR`I'}x_oͺ2&"5zjn]>D{(WnRV%2fȸ{x;ݹKy1%k~ {m*Q3#L ԉ&Zվ*2N6}bG( h y̾bywmMf!?>pLk?nAN߭1\(Yu1ݧre9ao?U.]:@۴و{%j-y|3`_+v+wy-)b{M-:K)vaN%rFF枑124AoM9J0A%QƹETsDDgBC#Mkic蟇Se*32v,鴃2"95V^?`HEkTbbaJ&Ev3̍*[r#`MƖbSs_)*K@b@󪱻BT8#:4 flܐSi,[Ԡ:o|F䐃ceN64 " 2n\m797:pLZt;]Ge"U9YTro:(v1f89 "7?&JD6Չ((Jm,q Pu CCزV2ˆV05.xl!>BV,7d -k t#&i͇y3cΌm =݈8iizoHRBJIܵŽ[sUnc 1r iLAm,)fsilr#3"ĎqjBzWf""` ( K{adw_,H:Wq$[$6P=—r$.:${czmtFvhsRms& junLm9& ig@oDFeJi 7#[ahf"VOoR6A%{KfHYZ>&d멝):&o$I^`MHkIe/(9)60:;RR!;BGW,.z0 ΄Leݔ@n:,gnȑ34jc y.+[1ӌ[Q\?J 6ӋܣCnB|2s$L U kUƬq54flXi׈oޣ"[Lpt),zV[Z.!x@V΢}&$H$ JAh^նx1C D6-zLKiRDT- KTX\e h!%%Cݧaf7_[NDqp8dNrY &ʔbCZ)[m{tTYFzv"7b@Lŵ6Lk;j$΂x&撾 )\ibmnL.J+r Z0k!a>ĖRZ6:h*qI$@ Ҽ ⠱<KnK'dmFqu9Ɨ%1YeOIθaāQ$n-pk6qZm370H$hvp̩P䶉ǝJmaRDHmLW y؎RQ8J@le.ZJ!1e-7Y!|j!)"I^JVrAEE3ȃ^ZatH{Knha[r$'5 (]h-c>+#:Mn&[|'Vߣq;In ~* jf4 ss#r"((na[a;Z[Rq- 80O9,D ӈq--t"AokjЦ֧YKRqR)Sjejm JAKFRUo &s"11đ)> yiiC oKJhZmu)J ǩb S3 ~7[1bXܸ?qJqHmԅ_uWi0HQ'q0"s~L5hCH1U$ڧDW;_q \Й!.Aݵh NHКj-6?Z٘"XpU<9qzE, rE(ԒInt'2iDrHBlVƹ&'ϨLrdǔ] 鉃N? CZߗ `3RZH/tfl8Qe?10`1#S4˄jgQh&#θ.|gc"կ47aw>y\Jrb*T:ȥg% S&S>')*P(Ă6(No7nF=Q@ v&&k5HdF]h^rS\op4]/9 &jR%}"f$aReR4&6L\գA_7uaNsiw?ft-g*ˍ(Ux{i1;9Ծ ɺ @ȕ W?~\zrz9U1YU1`r+xh X<~Tq+LpC1W5kaS"36£]_Ѵ% =:B~ ͏e^uN-yќs9{e1馑2mXYL,̘ԑ.Cv"}Jޥ:8)ț&Y'qVNjj` A$W0_i3a/>sn*yz>ՌMV>?#]\j^@VUcV!ppڒ׎˛1aǘ+o9ݑ,IV m:W1'\lj0Vw. ZZ;1"eՅS*jӍKjK iJ} N KpZ#d?x^Wq{1ޤE9F?6#UtAcD z ;kۤ C|M;M'd8NUuSf>Q'~8קbbY$: +g;dPNRukH vP:*̦ cwj`kHK):\Oéb cv4R8#9,`~KCe2f4hqמ}hKmVkڐ=On~< 'p֠ժKdBv5ɫjuGtʼn"WyïG\X#j@=8YsKR V?FZn.pɸԽ %km؏ s B qaEEԳKHmfK312|[IFЦo9 ^XJBH@ܔ)*[AClG~`t Nƹ͢RYXʊF3p}N ԁ3ii| ,{钯B:cQ?u9Ē ˨6x܇hjt'8=\P #Ǐ{Aa=H fI jA8$zc&PH_裔dgok^Nu# k%gAD^NI:AOЀV:K)*53TĴL$<گP 6ˎI Җf>\%D-H"TH=D4ZάD:bˎeJcB-%+~Hv$~^-ؐ\FRJ Z"YMfw*叶ͭz^}+OðOѽ<ꂷ79vrKiBk*ȋPCf2ڥ￴ %IBVFHתYe 7(dR4ǩIO5D|xݠ۝ku^Ƅ$}<|6>|BO-xws>8WA$wʾ'^$.ZwLWz9b>9zgeXU'd+ms3:ڟu7`NwODpҧԼ=1G⑟˩FxMs`=_xRd1QdONSɑJ 8~1K tF=HSt78i6ʰ=afLq?ڰ5VF2FpsG(<uq$|錛@Fٹ(V6J.ch>T|d{:tH\sL R2gDtAT&M,ەdc'ν5#ONjSc#$Ћ⤀>?m6:7/~@O:צ0|s0N5+wu:Q i>&w|uLHQRz.߁9g+6ص4b1Cq 9*0LoRhjJ48^* JHRwim3#'=uN >~7cvn2r '#9wzt3}:@GᯃM< O;p=d~x1ҳ)ןq͌ث7:w;@HdƚNUF5Us߫BZMsgƃɓ(e;R[8Ym [qR5QWFhh~>T:` 2t'@>?ǪsI8T]T*NNM錁C?sAۥ(.u>>H'*r5Ԁ@g?àKt_dX?O7$?6p@: ʲw r<W*C' $5鄂8Qי`*ƭ $#`z*" @$I~S F@1!_JS[i_ug  6׷Sv i41giƀN70T$>F#9ݟ]Hs,~hI9 81RJoN n>ԡ JS~Sۓ#lj߈^wW}>y7 %_;qj~74;7 ʇ9PY8]޼cӻwmfڐ:E,FgLٻǴ&G jlm^2zHqNC$vۘ,YUϒNqMd*oȅa^խ°elmw Nk.8 :vX~~a\XS|{Hw rts4\d5an$2)cVm2p!#9Iܝ2L΂*H$߁3Cbfqfr )@0X@a=!?+L"S1c59ǔIR )Mn2|Q .ۍݲv`  4/r*d%Y`z9m”% 82%$:^/ndgBTF<)6c '@[4 rLyPkeTJde0QceGl 㙗?Ĥ z,r ax-Aq{սYw z/?}c oȜ[qRZ=a&*pD7$P?x8 ܧ'k~ njYTW :p}Uyþupn5L1ĬTV6JTkk%Ame C.GQQ*B[ "uD7'Ϊ?wmB uC} Geżʣ3*N]K 2h)xE敔=6/x혨c5ڼMpocH,9tʊEuKL+!KC״Q9Vdg2qi֑v]Df @cwXU{2:I<؅I/CA& (+վAtGD L.)MՀIFh-<3zCۉYBoJ 15Juf:㼯F#1*tJ }eqƜNPV\jY6#Uo63sA^n5 hwIcly7]| :H_K-rjRؓaxTA< v`uJx2eNJeoiq[;o{b{1BZUr#re$}-p:}T5ή2ê*1~Kr\eϞ|Tw'V:^ r1c{V6e3&͆ҽGk^ُK|*X4t-gFSƵt>7O#~ZJy Fr Տ{Ňe^_}$VVO^s݆ NN( !L8 mϺv7׎<㷴kGɦ>ݔkRȶ7.3SӞ]POy{\b(rv.@lFBbɈKq@e6j=|I[t,>!.C t_h;>p L&T(b s ,򏸊OF詯8^M"WsT=(ǦuOoiF{eSZ2w1JM ܃"w !nH\ pv$LnS2HԲjC殲s  Z FUDe${",dT(C΅+Ec/K! #@Wt)b[`vLn(H ƴlo)̲:ĹߺGlgjmim\z`݁ aK5%nz(ľ1~oòiB:ac8Ru[HMLslƖ`&9tЍMTPQ8F,nGzXhA.YnδZbz$82Z AJB$B Д=PUbsO4? эzfsco ?҇VL":[aա^cGS> )v 7B7rM,wɛ>1T6a#5.je?2Y׸HP\T`ҟl-IK8 z&pxb327@=h\i^rd8 }H ?U"qp.+ļ`UqZ@N?lghȎj.c[fߵi d+ܦeٽBTDԕ^w ˽L.1x*Gvr]CpMW+f\xPf!ؔ%J!ܾʠ雙1MFF)l%YYXșԓb(.S;䊷g:r@/ONj "713,ղ$ӵq ilHb)X{n)(w`r+ʣ! k p{3$wk\7ri괺f%MKXNVXAMWV#Ҭ:VUZ/2.2ێ(=6>!$h%`h)I#pIԕ S,+|h@_E~4/Jӹc;PEFQQ9ϩ!9*9 a:tZ`.~^5{e;W)"좏NF! Cc=Z ԛXVH\BHL>_–ALE/?Y'#: :imD@JҐϻdmU1!D!FSJK(X@Qn/i8`*:eɹTKzm+y;tR]ćAPT8.8 'c_[B Au3{yc*y2^Cď&Q[Ƒo<"K :oE#8x`f͗?p]%8][{2ѰC P 7 )'l/:N1ԅX:(`d :XaRE)H*CsvS #b47)2`a`w9N{cNTGR-R5I$;?LH҉D5>TW'\FnWNu,M~5OcׯCkm^>05F3ƣ76za 5uBOjkڬhGUWZ`is<* F<8'T0?iО"7p({zޚF=:EDoʋ'?5}쪚Ɣ`㷡?I#JlHno|9JVAsL X`DGx@tm2(i֌Aaz%J )9N&UhI.kHۦF쓜7|wc i%gAr1 z`O:{ϝ7u$ ǧH\ O9QiГQM7Hvڑp1?8|xM>t={miӦ~_5<!$quMz2 Rz-iCAJt#$OB\x!2@~cO= E)n dIA O˾* LM7( w98=ӫ kkRJM0|Vr ð~EHuL_L>'>9I#'餛hn*zH|9)QF9'_ϩ6HZ67-I;!#9 _èH|nwƔ&Kqu6f^qBAQ*qxu?˹c'TmP[RT+Cnyz5zb \tJ.)(lJ)<4oFN/Y~Qu\ 1lϘ|WYEru)KWK@̪?k9eU[&t\]dn'8'-3y:Myn>▧&yT=ǖzBʲV2I2q׬0C@Us_⠇;LĖ|&VNFV=(JI'VTMj BASǍyM,[!(_ N]t6Xح^pe==󎳸?ᯟxUUqLG:|UO)?FŌ4T$j@jpr֤6iP!+{kUNJTˁ4f'dNOvf>Y13tL]}<5j|g)8PMFk\95>e5*rBhAAwPt~/wq$06rfIE^vڋi`mLI mU?mT:ŅMYH$WqҥTJDX;㺂q~mh"0Dt+y\M֛$Zok^Uaʧ{mF?X9N}$5 3 K  F'C}Df$O3fdvlZ)Zyk<6-I;+1dEu+2pxRRTSqִUMM{ חWՍq{myE"WFmm RM(R#͆42Trv.d;I3$<.&(UmScn|_zC.hm@ڣS ɲFMg k۵d(mJ8DL)'RZzOfؖ<y 'ۣT'PˌVGE痞RVY;,N !?V8'urP"ֹ}Ƿ,HvIYy?UH>BjNkxW%xK1ʶDn**Bշ )Aԓ~c#©Q=rkpiҽ!jޤ@m{`bJl% *RW:F?"o6}aLpziD-Ǒ ۥml<Ғ>O ^Pv uF;n\+pxr 7G. ߫B#S7SzBNN0%Eĸ˛wc{iQPƧL@T { L'\`4GN50$8)Il& NBH}?EK%*HF=f"GA U &H$?O鹏#y*ҹGs1%rK#q+ˍZXj[ //z*$nHeli1P BQ[0vɇ"[n@KG6 PggZϷ霣4 ɜ_JqUή)fT+W@ ľcW+bz,\͇jdnrfG6ܩX$Txg&n61޶# …KcG CI6(Vg<ǹP" GܪqJ \. ~ksq{%(FcS[hMF?hU*zoKw;djdUHVlι}ĭ3 BU'jH^ \_!]ߑ|{k͵W w|Ѿt588̀ܦYJnB0't,DbdM*'oՈ6_o\d}TLz $6Or|2oSݐg1TT j$W#~|!iddW˃۸0`~1J{+/ihΌ̔P qDP s09,"ŰT\7娿m~Pӿf׉FygqԽpӒgGðPn?eƄ"q|lZLݸI|FȤX B-itOo:"'!5k9UKˡ:qm*^|Mt)$E8qB{g07%6X+e`ȪwUrz-,@\.o,^dM|Gxʯ?G2k{̊6w\4P+q} eOypw#>WN]R /}y7T'yʾDTc}%[-aڣbfV,_ӂ!Ueaɫ޻v,GSx̯gqyY..;YeYOYr+(DIǙ18$ b"ۙmTn^\T&BҖׇ};FF_7r5|b|ύyQ~+Uķ~+S&g2uTZʕ[~3Ctš*òCYcRUK X.Nѭ0M{d)AHDʼQ}Dws'QښNNl97 dйDCk]eD r!nZb\;h[: R7ctFq^Yq4Xw8P>R5!$Mul B]#vB PBsҢx~&Ԡ«bu.i6:5cpʤII3)v:yMhx1*Q-TbñPHnomUVnR Z0M۷)x ^c5]gjɻ؆6lTcr#q6\]a-.$DNu"zT Ǘ | N73ֹ$x9kbRxeZjīB}"3j9Da!mIN;i\DUY0&(%Di?]A cOMX:hw8H*V8VSnW2QkH;適װc ΀^/E39RrF:@i, ~5Dx3lJ-ïm$q>q#6sjH #QH$pи<ꤺVtd ~'R,/ʜ= 5p>~-D A5 @Rܘ_}ILd{(f4y*LrRs\"PAS QΚnQʉdHR>%@( @M0סꪴERvƻI '{y|&^0S j2pu:wzHJ6['w00+;H=:'w m "9$j 22s:JֈUsG (mnLrgM |&?&7Zg Mƹo^_- OIn̻g JyݴΘq y ) w:M:mW d`t*)=&>B:vP@$mijʊs'{ґ JU; &@=ՌA@ҬEsݿ1?:t93)Rn r0 D43?P@-E'wm4Wϯ@ sC {qN?м_Oυ gͼ Rt>",θC#%O!Tik2 >y2PuIJAQ uiH:?*ro*oi7 X3%)hZg iaٌ%,:5VN9[G:aaN~:' vԃ껁%.'M9d#r@'GL ԰k^>m}rFIpϮL*]o\uf4 5*{@ lhwb j;RGӫ*bh]WyB'QҨ{0b,KK`Z/!%Gpq#TP@ [xpzL+YSuB㩉0xv0q L\Cm) BYFT|Չ_>KITuDim-.TIVh Rd ZN_RПA$J\]Ǒ*/"X)@Bމg]':i^? F*;FrR I:cJ"P<$:k?Ď+n mǪ\'_++!];P#::vB/«fc8Vt 3 85iΞM,|W hHP|6?:F/L'h?(' Ԓs;u&#P%Ը0N(uݮ5O,x+nHOJ[d\d @΃צ%n["<^k.b:fh';ѫ%ńKrʜ%d/X*F=F 2)70_|$jڟ^oGkDYQr%VC{_*дDOÇk KH )J60:*㉂Ɂv@VIS60Hg6A_ Nlc3d'ׯ.qW-"m6o!O~au|9y+HoUy]%68NŅ7ܔ]w'gdDȃA@fI"o_rۿpw^w>ȹ۸6OWe\txǝBxsMLqUT8[_/xi6ҐF,!PCHJAR6p׿^ƌ1A(bVH A]t x5;I0OG8$`qK=!ڔKiԨ7"Z^*iRNk:9dUG´`S;+e gk^9q dKiO*m|R`ֶ4q'!{B=e½y,{:fnHkկ.fa`rm.3 :H~>i֡W!\ݑ>Jn\2y6)Pl;d 1#Camqb퓳} 00Ii7DP2Ғ!UE3iG˯HiHr3-i)XL뤘"i1(9X']ηԑ˄UŹ%|8$(ZoN!gcƺ1q׍TG1./5N{u|)nSM 'ՋhI֕83t  6k^ȹ?kLەrݾ7xm&nIrZm'p N1XnT1g>$CV1k]~ˁlvXiVҸPr4v($ȑʼnrgb퐂WkmCxՁ`E6*x&qgV #nJb"nS!`X4Ky?:R+# 65V GY mW+$C5A3{a3~} ĻJsVTS)KyZ{d%҃6 *_3]l( :ċfN]Zn?>1VR}: Jux?2KĂ@=S =gH&$ětkڮ0AFVŏ Ik)좭Wd&+4} Cl!(q*^`eIN:ڒsaeάdqIZS&&,w6ACH<<W _T1=V<1&kp^^F/qa/ xv~}5˕N2QXG ̏ԼuҸ++VblFHw"uGb\~uJAJU]il&Qɫ l8ROqdl9LFEk6~ܠ#cL :Ȋ܏ fok|-;v"*9OZiW,yI!ȋ^܉U(5XˊLn흧sڷk׶m,:0%Ԡ=Yf=jt,úȪ@wXUbZ@¿$jw,hSSGu{\=%]fZ:Rf̪'SՕeuTC8°{޽0+aHLGKc$M‡ "?yjmkxo6K bAqkY\Hcy>')Hu'Df]);?ov;l2 Hd.D.ie` Aq .ղ۽&W!bP&607RoYg)Z!<|Jmipq"26 %* evL~ @9[R7?k~ܣ<܏$J]8=+fulw#"8Ru3yHYJK_x6S{{2~(#\'e؉j[ X& _XkgW$$؊ϷqBȚ<~ˑ8RńjUsrKe4גu_w/͐ zj"CI?~;5ɓ=}#w a~V$ \v|]V| ;"ȞgUm>d.&C{/%[ZڞOaKڻ<`1}ns>S` @Qyb~#.B"tPNޓP@䰦rbW _M6Sn0}[(UB]Gf!>Ф=u{oi9u0$^xZ09W 7}deKOơvAP?!VRXk><&ѥĖP) ^дoQVqõI19ͫ) .cc2I0U”#)^bÛۄ2kl6crV*o[mUbF5CkN2cVcu~ e"4٭jE0s @l6p)( ۵3p%Ƀmy<ɍ\m3nZN#Juw}pĎ"O4݌־HzK44īPR^NM*UR9 2lg3bA{KrGb5"X&"hս!r>sD&ǝs^1zEnWJ d A ˍp|@  d#q{buDSVn~&xTZVg7ܮ5ɇcOeKȿ6ϋaٺX%YO۹<+՝KOFּp::k(2<Hi'*ǃ̴k;yԼZ4n;'x=݃Luͼ㍓؏o / bHkԓhҺ6ly2aKͽ-FBWkneMjw߽Zj9ʸwcUrc/h":ˀ*Oci e]]OAq-_4UzkygA7m|'/*MK76PqO-&Nl9%Ѹ+I ȭgvy}U\6i2#6dD׍ b*5*;J"% in3 4~> TzCcOf6SjQJf>\.GҦ^ZtI" ɓyعlMB%$`׍ӽ5j+!ة⾾z]$&9d⾽=d!ėR, * 6]xq1zmAWeȞ!m5)dďk8^DN­+JJ8X,!J l[h,ޣGHȘ ;vXIF$1zcoZ^qSx2sz%I|54(4JZۉ#0`|n@ FvCj)˝T@ Ya> ?c2Pueq_9։VpuT܈ہH8؅Qڎ1j9j@k}Ɯ~4vtaֈږmŶ@h[PzFb|xSo\/NcIλ:`u9WcA\x #ӓ/'\ 6֖ ;d`ˠd~iAҳ5ݓgPzǤDO4E%*4Qrd3n /)A@$$dQ cDVȶgbd=kP?Ph.+i-Q;xka**/r}PӐ}mu w*k*P:4pFP%@aRib:MmPiCa)Ci`Us Lp@:F5UIǿP}*ghL!Io ߿+T*,9g\Jlgm*;xՐ vJFӐsValÕ$nSj8QJ8FF@ 8k0|N46) iHV z) s;*Aqh'tJ kэOcYh1[MUƣD qXa9M&;3SW!6Kmwnir7X]XR \ThFwhaP;Kb™;ǁ_cnAݒ7`0I?˨H<*Z~5˹# 9DvN7o XPP6{래T qr5)t#@s?68F- hJ# 9G~QfuQK ;9LWAerFA:jt>6-(H,줯HN䁸$DRqY45poaZ\)C0aK~aORCVĬ$4qUUYa6lZ 8-JES  Ja  d-Ip|)w{xOx4bǝ$G)yUe^kpH'%%,v5bQzcNŦi5;~=Q` 3gO?m}0 *9νX8S;]J)#PD^<t*@€ N1HǯJL׈@3h )ס~Ʋ-Lorn890F:M"|i1IxJ N2AVN||ҝT7';I9ߓ5::PG~RO~4Q^9zzN? ]bܨLXKش(?NHŘ  5rt= ,M3% ՁISRTQ$6d'$+\7=L})& 7ړ'#82?"mn?e q˝jH8'n֢D40u֙޹(6(HʊZ`gCM/C i5 +d VRTs"Fqhr4%8(u %K(i(`@&j'Adv#j}SW0|+,m2i+OuƖ0s6%x43s>Vh: 9Qt1Z«B̶R4oSP?M 󄈬!y#}j%UQ6z"0׽g; ;Lt&! 3$= .*v<1NM_ yy|~O5uc䱞S͠ Hvv#/q..wDOS"Dwv+@l8 q(1@I:UO#u%1$5/齯u cmJy̥Î8 l%=x9"o@Qk$Ůd#XSQ+*5LH#5#⢱ݖam[t:69ļޕa)(\m{ tChBTeGRm(!5&!-e9) DZSϡn4VCc#)u;W뙗;-Xq.gS[˸Q#f'kܟF}eqqܚ_G Dȍ]55Җ%!m ֎hU tn!X3{$}]ءLw211a# 㬟(s.Qjx`GLvR']Yy fFqqS i*#`L0cۛ39ad=&N:{߿1wek>&7*k`}s9rl[-䴾WϊYO5rJcJu%Nw,E oądZcMdړV/y=nܹD4쀣 ŶG ܯG٧ _:+w|<]ͦ'*+Sg!r,%kmWpe㔷h}\T1 XO^'=}GʡF4f$mR}8K=}o/bq> L*S3\ǀ<#6xܫksyPֽCJ.WcmQOgzɫ6q&Rua51>{q_xAΛH .vZӷ 󜊤A`Xc1e/ڗ4p|gŸ)y*ھDFW0ZfFzf9thSذr;} K][jcRIXv?lS'iN\lzANf!Z9/` ߊG 8"[\YȊV R#I)(m_Q]$g '^ &lrzCsh1 v_,+ߴ˅UA c1eQ}%')WCȭ}>~(ۿsm{ ;gӚO0`Hjό] 2`Im +T;6'ұ`Zu34\^KLi}8T(,qicZ $@647HG+ժ^VA{US\Ng(Z^A[3or8-wK R 'KnuqaOӰE' 0 5 A5KW6^8u)Jސ2#<6/%I} AJg>0 by3WVEmg΢;mmdh5qkt`Q^UN] 8 K;G(Y|U팥H7-łIop$?KF[ eo` \;xmY,;b7H2`̶SJI\MnNHCm:{GnduA'O0bJ}0.68ed:(K5ICG-;JN#l($' cv]ΓUyɓTz։q\>bdw=:̂gl[Je:)@wN^lm:V5FUo~zGcUփIc"HҤ ܎$҆MG)4<2'(CОrtPA:7^խ~ћ"NƮCyzP!pOLkWo4o.Z/jʝ>ʣEELC"1ۜ;^g4i1a{ś^c۽˶ɕӑ_R% H _$ _0kW!V,xZE4|"\O]\Nns16px2?]ezc؄ k =v @Cd9@3Wi>7ZlDp8$!Yi/K@*@W]22N6&R|d kMUYXʘRʤk2&#Ib,`\6?Tr)R+^= s_r0|}ugI-N~y덭Z׹izp軘uЊ ݞg}˸ĉ`>#o9?IqtoH{+džF %KǀH7h{o ,+.gwo컴|Gpk]͕krz>r0mTvrKYA$ڶۧm??A0}gdž%y+ʞ-OB3Z1rRRHKGd'szv7>B rA|W8Afڽ”1@dur iF8h =Ȥ r 3n&$ywKc3#ض{J@0eWwŶUld7a,4׭.&vM7c+(i|E H,Nx ri6ʝ{2E.'@|AT򞳓eǔ{Y12*[3QW6!Je!.ղeϷMLH/?mr ?Y60`c6M VV^y|bۓyWYIDiN5R-pQ&qok1,Gesv w$\Mx#&[B׀~h L!85 È碹Z"a/VWƏWZ /wKr[.*7HkUL= CEJI!;IQ 4>t1 E|4H zq"лJFHBrz0@ S<>4Dqd@ǠN@D"\8sqF=2ЕMs)&%jJ1ʒ!jdj~b\~;VLHS{s+$̓I 6+xD .$4ҝŴ%MWroQj8~X2UuDiI i|<ᶶK;JV-P U첧lҔ B.8@NNNU&8n%N΁aZ '*^DPkh& u_ϯL+Sldd]3:'2ӕ ɢtʰ 9鮟ч:26I^P#)NF2s1ݭBz%Yٻ\P:ΣS~I4Vc *juӡUX2 n'Έ$(wv@r$Җ})WT[Oc$cjq h NuHr5Gn5]?^X܏;_f&ɲӪ ]^Ԝzpҍƫ;s(2ke1d΁y% CuN(!(I;R ۫-jbJiUYCm5r@JmKyGe1>y>A :PdC5d@5XXo8e1= !ݐAn%*)JI&1J8R0Ns{窇[ g= Qp=2RHOCs4iIrqPN@/LR͑A:'=P>hUO`؂T0ldtkږ#˗#%ZA}~S:^V'Ys):BFv̉jHwF=pNd#h&ӳ@P5nJ^sGͷ*V4ݧo^WvC2gCHts{Oӟ:t'_=d,X>|"u cb?hcԓ?p=ädXt4jF=O'|zn -X * si խ ǏIOC~YD&(~oL7*ߍR_~Nt 䌏gFw|@k~g򡩃㗏X?'^=~5;M# j:^9ު$M}9ݰ;d@p:&"~sҀeBLmTnK w''kgig:7}g; UI! 5 IZV2:Ȏr8S*\f\Dn,JհmɍI.n2ېlmz6t_J!VJf|W݉͜eifmR|ŐaC0Zj6B`4L-aBJPHBRhAQ/|螻˕t88豑E!h#? [ ’@Np?2r4#רnm} vv I&M(dj8JrA5?*Q:CHְ4Ye h4‚p7dˆwpc8 }tϣh&%:xjg}T3t:oDOD>>Z}A*w1qNҒI'9I;^ϫH /?*@ʾbם{?EDyO:LpQc6S7-DtX^ؘ)ڒoz|F,(d}SqQخHB5^+S- ~\P8P$'}% N,K2yٓ*~;eiJt))bd^-V=m5Eb9__X!,JR=}ⱷ^%OnngO AYNǯ~)R>>&4SZs~ІCB##q%_rZCJkq}J*@lMz#)}Î'~GK!d 혠) }ׯ<_'"GTk^}h袴juB$OS,{AZi(+X)*9{~L $B\ô͏ Sg&`N kh8pCu񽨰uf8T(qg"+{+U,$:퍁bv$2g?|sso\X4NCW?ʕȕD!6ChQZXWxK/bq?1n_7˘/۶_P FI5q >RlQ%p>("ֶ-*ap:Ԃ`ܟA7w?53x"/^G,'Q@{<COƣ]L9R,er\)61i5r*,+N,6F%^ M ptn1}4s7-&^O]'X,bc:0+VǼؠHO;cL bK33n@@1'`Gn*G_j~®2!w}QpOڙgs?rG3vrߌrNopbF3/.D-[Q-+p]wx{O>߻;dd6 ̍m_L-~v}}g&\ F91 &$s3Gaɗ"CO*|l!rEe{rBjk>qmƙCeARAYoω3q-Ned&57k]A"M\i x ɾ!/&Řv3#ijTU2Ӊ%0s1bͶPmUdG:}8݉EUu ޗ_>óٔ%ul°vbGLBU?V#ۻm@e`_*>l1}qap$&JafڷDCA pPAVN $da2xqq1pZRa zK(LҐْqK;76p[ /J T;:l'f}֟Z FnEǑr/z*wlcAY SQHB[ $-+׫Hd+`c[v1bD[ I4ȵϵ!ݚaŔd:Ce*&z2d7%ai+oSoRZ7'N MKdl'E#]IN0t-ݟ/"2|!.ʀ_S.ڛT-&_z_?tA.q$fk?{cxUd&Y@r?HvuDT9:uΘ,#O;nSujTb㌨pS\f$y > ՗;9@p֪c5 7dCA4M75nr˗l"PM^`S}1!A:=Ck ),bUq PDn&&Aԑ657h]f8*cn5\y;VT2xUnےß50s}6bKP^[ˀ-.\~޷onpvF5!n .2> |hɓ1RO3ꨵ6 ޵n <=D:ɑ B/&HҰəc ^$>^Ug+m~E1XwYz,*}yWۿ.žmܫ\/?w-mML8oJ=:d͓(*HCZdUc:ܐc'RMV&J܊;d{|#bͭ݃qSP9VLeq= 0;lL;ornT(\  ?qfǟQ*;fZnT3|a?i᏾N8ߗifz\EcI~Aje e\A52=6qN ]]aUY6VJRc]lsgq=D|r3Hb.5(|_}w\3Ov?Wf#g9lŸp+#qD̀aI ͓q(a IWе05"wN|aUuʄ"#$?qg5<߃|9OfQ,l[ʴq\ǖ孍sKn%_ :{le1%@kD3 1#+Vcv,TBmo$>>7ۤu;}>0>ٰGw(8= " O}OFn:`C}`2r9$Ԩvj)ymovS1O/D!ĈnK(+KJƸD,C3U2\Wq]2U8ÓWCz??nI'$+S~m8Q*NR2#?F y)U4\$gY9{^ZxQ$j4֟A،(?ף7B#}[YXR:Cj$34n# JiqUu bc;.`m[ҝKCJΨ)'[CD鈥#qj'L;ɩz؊uu:;(-S9Ssc<[x?:H@҇Cb-}ff}W4*T̅&>ėOqY( +8cM'?}M}@wt}FJ^</EqQ=0(vNyTkg ƿâ>[h؊%@ @8A !J|:!CDd?8ΊuA:P2DyRrpr ;NsB{@LD2/{qm3ƽxQ+i*>ݓd~F kK( I; =>5}'I<:ʈ) #'pGHӠ T.gΡB5B7&kҘVAu }naCj#+^4zeRvUUO.XIM-e.i4Sd$ Hm6ˬTԙ.{l66BmS2"-&FѝNoXmhX 9Qn_![6οi^6qӴqFH?ƌ I'$Ǿ^^~tRdG24ϯ~^Lq49s3էyxF"|E;[ƮXUed>2ÉN~kbQ,emwῼ%Y,k#NA,`Z`k-',DO1ޕd%)JTџj&@ iҗ?uJNd1LION=L@ΤJFBclׇIH1IRt苰3M^< l}i)ܒ=2뮃LznRE)ՂJJ2Os$k~>&Xml}͠0Gl{ F`R@8Θ4:SA iVyb[cA+(=0ukx֘{ %G]1'P=}<Qո?gL'  cхܿ;~uoΛ&,eƔkV,täH┥OUm0Y"tʂU?'kCnkSYaUNφM\qCi}Repf*EU2@hHE+RQÔ|.N!4R\J-n89'#8 dqyڢL|}?K-26MBŶ@ktq^G|KjJG((  ~x >j ˄|@5n?z].0cqVRg'@R3Nö҇kivt$HT cnHNWc[Fu;]c؄E|mhBr2-:0d #O3Pf%_A>$@X(Fmo_eY w+R ##O Ycic9 (8QIi]J{͚ڛTbK0 rS[ix @'ץ%>Tw&Čȓ몋63a9Rζ#ܠ76Z OZ! ۏ:B?֗K\=K*Ҥ:Ŕ=~ڊܒJ2VV\M4cNh)u}u :^@KSjԀTPq=RyʢƟ?(8: 醠q5 ڲ7 5ItFwm]giBrRUAJIR?K_Nj ><}\y?.]m^se)hJ#7VV' T;ƨ3vVIyj6A2K11}H7|k>:;T y GGkSQh7#Ip(qآ sHPDI;Hg73ԸE~kk`n'., Lr`7+{ėRYa)iԂfBU%pr%K$`F"XGiB\?_BʶeN52֗p\yѻSi%DP $#Bshgs2 Vcr@I0O+߾{؋q2$ Twb)Gnu6y q}?|ǝ\ c(ٵSd{ɐ2lǑYr0OWƼrc!F\9kIp^iY+ +Dy@&u!ڲD@X>c]ofoxk+(X%!o36L6ܵ}4IhiTIC`#cXRO>W 6<` \οe^0S6׶t%Xv|Ė7[;Cz-<՜D&]b"u>~]32}(W!;lK2 mcnQq3jソvx{.&P}D$H͵Sº,doOu\B5,z~AJv}i+l ̈(E) |nbra YDH++L`+- sYK~U souR'Qr鱸0_%0kTpcWr*%hjW6FQW(;\7 202quɨOvc$p!vmiFЬ#_nf?x(5ƾ-߈S:jjqEye{grhHY{QY:UmK?;o~L,Y-(kse}= ͕"NB2UX nۻfɛ6v0264рd6wuW{Om^ӗ(˅1UQɀ.\JJE Nqb@f'<5n*q-H}Û!'hK5ֺ=WřѬ0=fupq@+~㉲ǗlMU, aR$Vl=͒OqĄ66RWDqRɜa u vhc''c*"{A=W?W?/:e=e)bLnjm^o2_M/99U"dԔKqiL_bA[mJ>ryRfbO-{)i6(:]ǝԩڏ6W+AC,LJ[v!4CV aEU.-J811w3Ԑ~6Geӹ`?d% b]\cq$Fjk?ه l^g"輩Ƽ70E+Ҥ.EL ?{{|>ψWVR!m} mĒ`u)qK 'MEھi||r8U|orfR %ZutZi-SJ:۾u'0,YebrP'tS+w^z{v ]qOռK"B*]寸R[\_0k:lx'-|zbb}|9 v>~dDZpUlYI?LϳVOn?șP*Ʋ +V>\5O~g9,7PyZ刱ƿzCdvKEJC©@Bx2UÈ-=!nLmf='`&3%c鵠1m2jJ2kmn@sHpF6 x f&H:{߶(wCAe0!0`@~u Ox2>"VKtR=Kg}[ϡN1 9]j;lnkb A^y)lO&mɉzu\ʫL4̋9/MeL[. oDa!N)!e d$+>[LjcH>^G/d'H V}}=Y?P =c/57;E K4ܫJ`oe]{n,ciRw ڿ1(^ N;pN0;A !׃{ \ҬPs^ 9 ;l.{miPp#@>bȥ[@m_͇2vԉ Dy6,8[yAOwHCm)RR=w*tg'WkD˄޶i2̬WUP/6-8yHۮO*!*esN}Ԛg֐F_02w5;@jtw}ۂX 7%Ibe4"n ^%^|y/$ Ғ`qe_qh ! r?NpO^o_~n6I𣍶uYDE ?v֔<k<1]Χ?xV۩Ȟ39jU־6XjOӲלܿz~g튣/f/^Cw7rM(+/W6}|Bk5?eêgK mψC^\wQABYJw>I1q ~/ibD(R"OO ,@ep 9'SxAV(|r2!'prE{~q p+ 8[4JThL0޿Io"c]<}F{Ag(ׂ6"FoWE:2)?]k[܋ʶLY!Hmn 9SښPm-L3`^iɋe<cVW_iiʸ̃}"TߍZ7WP)ȓ%pVdIuS@u!/8 Z $@&ؘDj|+kPU@~_\kTJJLDKɛ\[@ [X+N\3_iaq£|qcr9EٝBMT)YĄ-+^N.? T=0>՛W(z#ll#=(l\+LTEI!n$ҜYJV,u1>:0Iɵ@@aΊR{q=Ď `h* Ϯ{Uܼ}4D,w%=ο0SA³GFbOɃTHRrT?0 ׌'B*(Pv"u#gLmhxI3@s dխЁeϗio͜|zm=EQHO*%; F0~0ZWTXBe.{O̹+mO7(~BTv*9 fZ t*"陋f<;#͌۬.f5FiR) oK0FK ?.UbPL7 m$_L%&N QysB}Q}R[Ρg ! !V b#fqR6Qq)@[ @PZF$ 914GVtmFPʘ f9zvAQMAAXE(g_{g#@uS4tƋ^F F8Οh)ǏJ!`u:$(3딀;u)A'ΈV$I>_Qt=,ֈcOr 'p FFcI4L-~BUAg\|5צۈU~1NN?>O8}[doz|;6+M)U07*,wВ1"7[IJFc3EL5O+\}ǐf5AdKk :p0znؼ)Shϕ$@*c$=;ߗ_646`,^>o jr}qz]O =mF@Ni4Jr@##·B?: IrOƴTH裦T{?=sDn)'JO)c!o uRԆS{mR[A $3~uIg*ہN\k1eeOpܴ0؋aԨE[QQC,6zG e5U [7>[fЬ]9lZKmN)[Xl:&$z5]:ju3j/1P~+HKuo6VB:PX>T†S7|})n<|)2FHԨ0?<`kЈx$qqh6zfNJ&>B:ˡQ~oЏ_p}Jnuy* gCC瞝Ml>?7:s{tai|2?_4:»Ԑ4qDo*IRx\dgw|$|0S~Tb|x5 9'$s3 ~T$%$r;㫂\AQA9!M-!X*ڥ JJ@!]`aHDy&g4;T(//(|hۻ0 a ;WD8';ʬ*JNԂ;>P3;@+~LcXW|Om``y!ch~i +Ta7+y~Fi(+JQ:nj%BG3SG&3Rf0q }@]'X1[O *1l6",k~]O#4BoD Im^ ~a9t-2#ȍdj5%6+L!;2S+hŢ<}l2Li,4Ri)CL!! UcZ"yQ! ۍ ӱO#Q;tk&~ ?)n#fp2'vizR,BD xIXTRs{uc1۹n>?uyGN H3鑻BU?Ғ@@7)pw%} 3w|P#༊3i4C@;TH'=&6DU,2$nK&q9PTo\6n^Dxp;f%*tK2!5T#Rn*@!!#n 8ٰC+_q"I 3wc_UP`,0$ر$oΫ{_3qLཀྵƝB+% qpm DaqI&c yܑct)wENs~oen[SGeSms~ɦ{ \{hy)KI@˜pẃ#e a0cc36~sev `MۨIahN$YMzG<6Z05y>z$&z!C^.%҉>Z*۲e@9ܠE]ۻm=9- c,& Aɩ]̎I?3KQ#$+b]|hT+\x󥰲I [^u҉!gz4It見|qOg+M{3WZ"1"3T .:`t-%ۃ;p&##9]RL <5Zf~jQD)94mo܁S%jaPIX`?hKA+pj9Ly exZ26T@gS\qe6)Ks֠MER3^0d6ڜRJQȤ9 aul{t I:ka|A\xy U=8VaQ=#|KnX)pGx;M]d?9Uܬطbֿ/"ְ.{S>:TԼ#%@>$H%qv'~ȹW2 RV5XM;A#)S"Ogp8$<^ݓ: ~ FIc}#,% rDĵrbf Q1 SرYnݺaU\)HE.D3DO(j.rkeri^̠7ix Z1\K;'4U3!X%5 3Qʹr 3.m`@ d2ZVy3q|jF\K#i[D 3*JnaG|IAUT4(T>q J&$l]V{ gUޡ2D3ԝe6+Ac߶2;nU DZΠP\&CR/+Ly\~BE.kFǜ4wp9"kr"PҢdʣȭ޶wvdgd`A^ 2`pl]N8U"#a̰]Ip!Em-+V LJ&Sj>SS1'37v4bD5w2E:Y=gہGHe]Wgݴ}-lUqvxQ?q1d0 UDT "Y_b00y}^A&W<~] صr]XrdNzˊ7{R6G.& /,#Qs3{}{혉e]Y 1ǹ5$yby-<̙aóR&4& u=zXE fThγh|uM[n7Q?9Ucΰy%x<1p\9g8UѨ}@6׷ pgÌ@6% HݽzP&ոۤ "(Yu׶Vv\d_L/m݆;) 4@ܥGw'vG ,$ &Tq 5qpbYb$!D\K|@W??>]p5\Z7&zIg5x07&CWR33srGDi<6 APv;Ls K%׽o}ʸi+m(H?ow{{G'm=T|,0FvK@gz<6&X7Mr0[zɏkLUu ]RR֘mʛiX@%c/rNӴkZ+aGw\GX7 ,i_gc#k#/Z!>'~[4h͖VR]Zېz ×$]U4k5n|=L6@rC@QX+kTTTdAeMpƝrͦ[>k=K=W^FLSh\$ 7Uz6\?F)bϑ~$ %i/_ ;[UW܏~ȫ.W(œ#%}gW]u [ϓnϵb@ sMuń^a <G>==eQbX`Te xVkKo!sEƪ,UU/UlzBZVے_[B ]˻\3ɑ‡kxkW?vby9+\,Y=zmIFC.94râeW"3L9*aG̙IHq& CH7 "o?ο>L͙H]ڞmI",`ݯo?yCJ\~.דd^VKz2-VϰKt6>#{^cg\m *gBdhJdAS~vTܱ|LR…U`3o:4>8ϐ85{wuܲ$W?5ӫUuw@f>(A}?sfrSl˙M \_rV7ACGg'{*f YWԀl)$@=S_hSU3yr. }EdƟS9YO"in #|Q)K6\FLr증dz۱ݯaݔeŸPv(@Ut_rrw /6f,ҡFL;zE?g2>fg%k\Oo7W<4y5S1ZM=M=HaԺQg_߸Uˣ Rw W?j;b=ʑiv=3n ;9UQ[><+swGWmxUW UP鰩w@};DWDBH7,- Ot9cȰ6f*zu0kܯ>Hv|h%4̸&CnD}!DLi1m)!2+ܧiq?m7#P8shA$v >>A꠆(d[zVGx z/e婄ʌTu@ܢsWyw" n|]^0X$M[m4r/%aD!X u;\Yd1 Ɂ{W3axTJ`}5D!\HEߚib)qX([OՕ2_5ȒgPDМ2חd?t6UyLέ cyx "頶&n;*yd\]̼_.M'\Qo=}g۝krGǍDi1yk?aY\6.4fA=OHKkiRX+$sPZI P)$cNH-oq'y`͵,]%8T{^HTggrT6<ȌBT2@WnƨH""tol9OO 4&L#j4cie XH 8 +Ӝ;iV-$N8[O]B "c6WmQ1O,=Xwh)Sm׻'`Od'50xݮBV3"Lu9dSpڣdm8m$~y?q jlhtO=xR6&|Mf!v q[Ǽ.y돳J~SޱߛZ+ٮAf\rK)h1ܶ`cl zm!M}/vk9\kfWQnbWoH3f+"T Nk+KO6RÉK) !I— 3965VUXYRuL,mNuO;S1ߴ%ĕ}@qLLzАZfWqNakS:/dt|Y8i뾉[DqV2S}Md%!'%J?-5|\og H-`kܳN(IU*o,wmNtV=>5mM%#VF{zʫ6ԊN7c:DczA8֋E_d2''ё0*74l %Z@I2ƿӑe%Ddg=$3>/3>a}p9;A(Z+=BRn/DyyQD`2UA:~=;-Qq=+۷Z%Xm??(0#pH΄ע-I-w}]IXsIc*3ePa렶ڔڊA+=D"@;+$HXL6yDpyq|8\'*F:|}\]ؑ9Obd*LC> @ +u! mKtmHBI3oJ`0ӮnI$c*r7jG3.߷ Vܬi"IQ j?Ն&Gyx(čNI!$ӧ:t郁}Hs/P@#v+#:w힫w wmI8AQLHK_,(IVqU׷P jme (?)PʵA_GD|(1>/;T ~]AE (d(0 }S"*?0판k:w2_ T6h5VjPm*R zm?Q5$ Ϗ¢ܩ7nUbS2#ڏo2>6\uuJܓ#:ubc*C\x\7wg:a?l ,X;\q JVi6 4 NuE;$:Hpf!gxqdD,qJirJT!jRB|)XHa*Ƈ MJmط^u_ ܭ8IRqLy+Qӌ5~^4`Q%@'R5OLcSMǏƹH({÷ӤK|qTTB?ë6!,c„5u3jROGcuI됵Uq+{J:SR$;hPޣXG{dۗuQk1'sp㠘6k+5Ef% È\q;}.n2_\f);Zڝy- eҲ2w B+kv:L|Fζɾ&#<χQ!`"x3i 3sfZe\R9ݗ>/]#'x366#RK *<(VWޘe^0>V)1&;_{q ʵ}?'JMC97ku ܙ^cj2=CQBN3D8qIljk^(Mue#2nwF7Qqjg\Ԗ<-~"-D_tNm_Nq_ 8vOddIEfpc"q`$!pwxÐ4Vb98&+#9 2i,"CQf4`܄C) ^P(ABJ)\&5I$f&f!< @"kA:_[Jj1F^K^oeL3 IʎԨbtwcicKFl{iKkK <ﴒ(dN3Վ{D!QOB'Ϊ^En#!.#V_[110YWRP3K_>uz*m-@ΕT/UsDQC.ʑ;(Z\(A+]ChmHOx9ѽ!'S76MAܲg?H'&4@[ZICNN 6JJ"l7+;A'iVʋboS Adii?>5g}Ttof:$Hqm(\ml(،8N]8A Z4;KiEI\O؏R۪hD!\m6)pbv o"rd/Kc$&Dhk\lQS&33[-qB6n9}ZuM3&$ ȉ J.z=d]΄4eީM9y1gp3]s}>d]}g\cuoș0JJuc[(F 5f: # sw ˖),[b"I~#sWCQS) JtHQuox ]81V-\;ǒV>x{V,aAϕ=EEp71|v{{\`ډ H2a3]g?'*ALaYbx/s%U8M)*JCjH=/d!^1ȳp:BIO+?{yԐCq,++^j9m1rC'KfZw8ː@ReO($Rq\y 6Vg yL2aPTq~Hd{lj\6;:em>RF7_ÏCr2c_#bt$ۧnu~5W/~Zm\_ yۄۜ~Wop廱v=mMrZt]?n,=wBNn\U)wF)׳ƧfȉqՃlRbqo7pW$V!ڞ~*y7 Pr/bJjRܪw,QW"tuXq']xW}y1uz` DMAѓL"w'ռvm\_kB.E?pOD_ AP {U;p vR푳l.\`k~ǵpr ICq! Ö7-I/"6PeC1OMr-g'1q; BDs Z C|}Ug&Js 0" i73|[͞Tr C&w?yEȮ,Í1KL:"F#Dـ}, sþ{{/z]۰gʻ* )#]~׶x=BșQ\W(H}@p%V {9Kg̩D5sm_‡ɤ1]ʕ|;o펌HEwmal.``"=L;?j;{629!~%,vܙG5|6$z)<*8Rb~$=Dɛ"| 2he;$y;P^IK_+X{?MѹUTw?<My9~)@1v iǪQ OĹC2 a?YO ڇC;}{/X rX߁IAAOy;H&CoyihckW&/9<8eL'Ⱥ|s^s˼\d{rhnR\FLm_f0bowٰ2Ȏ,,$S1_&?'ifU~ǒ@Uv'¿ڏsG!܋p.Wy?qOȹd܂{Q}xo"P6kR%^k7m`w+eəOsJl`ca7C !ֽ~=^ls_V[s/η!D]x' -1iO%v]%hk orTUDfl 4{iJXK.$)}ۻ\ @T BDr+ݧOz;'nDF4đ9o#K~*'[PwB9Cqz/385"ӔFMZs!IVP?s9q0A%Qf@R[ {OavR=R㬠M[n; }ڔo0y;_ ahhZLn*C*w'2ȔC4~vo\8ۼsՠ`@(:i -Śe\&""TYn@=D ~<(]^/XHVTwқPה(.4# s=qzy["& ݾ~~ir߱'yp--^_ܷlpKF>Ǘ/{IdH01a$tmlt{5Æ7;dDo6 O|we>9,ȩvw rGhՋq'bu3isVWɇznT?gLjDxW2wVH1@5_\ݹ5O"5+}"e9\K*C)2T)eK$=2>l>*d F#dm;X\h}q{??pB## 0w`HiW<b^#SO[NIpF;18|wRlƋpOO`N{|z[ ~/I'p݂2r=}2h}m@߰ SvR:Q>ԏAht =ԼpJ N8 NS8E_;~EΈٶK4t>T0WP>^@H^4RͷhGs8##!COPs0 &#'Ld@i:uQJiP=F#{2F;%DwPW^$RutǦѯJ9h1 |{$[zbzdU3_Ή'P j{A@3G)1`Χ 9a Pum<1QP# B32]Fu7meh!W%CB:`;aZ?fNmZ裒{,4ƿKŧꚄCZ$Qι#L3=5@@fbʓ@ w!뎔n?4 #g#- ߇DW$JljUSU#\IJ[$ʲ'NHa+vן$a;?C6?I+{RJK.<V<[]UTn¼!I~N2# V$J3ύiO*ŦM; Aai)ƣ2*}n&+jC)e4f( Q9ZguƔ‡$5YU8>JUqI8#;ӿ)MM*HTRuqTvt505$ŖM$y`c8`LT@6gvlhp߬( 8i#'n/orsۣF%p| npnsNKx4[MpG}| ghҨ!6dU ӿbu=zsZUnTjņ!C7o|oyի@Qt 5ΞAEkTcZW_'+2k5ؑl<8Ԧԟa (cUK<Z9߳c\TؑCV2ĚWlBr8z7PlC+"ݱ3&x\)<+H:3cٖiI#y|bUǗN[hܔ6*qJ QqJWI'=. QM(js P!]m'Ӻ#h:sD8$ 84R@9QL,mƌ_ptP gvST@ @5\yxj䓸h0|_ @S[O$O?*Y%ED'ˆNN5w'YQ%h'qE(Y#L' ~ ڜGv!v:}΄mrI?)mƛOǷJмc΋pIQݦFBOO?~ύ`>f][Ko9It%;T6\B2>eLPYa3<BGLL>47jAxSw<VT&;v)S^o{BK o!J*=PtR;:VTCbm` 3Lf[!iB}IqJ 듓 zu}qs{,OFJBuL?1m=En*@~ë Z*I$׎'v 4*5:Fmg '=% h$N(؞P1%;hp/;{iPV3׿@4'ͅ%IH''ۿb|s?WEErHi:@P_JHx֥\@my;y+ x4w|I:Uw|r/^89z>IDȖܭ(*Y/J_B\vr111<@_;G#BU<5+D#Bm2ҧ[}C7@ `}:Cn݆x y^u^ݳ\p[@'Y:L]*[IAP Mm|{eS=e=-{liR8]TrCGj^t`=ge! 8\X[xAv&C$R 43A8y;_jߵ/9W_ r8O;ַP>6%#xݤ$ƽ6~{v[T&A 7N '}@,鰐oi"Z1^oܽGrT£-Rjv_O'UU﯊Wk"1? AjJ$}>Pq : ^dq#hS,nz Ez͢ !l7,LJS^nZî˞ gU 'Tp8k_W ?&Ѐ6m46T )Au9PRRʵ@ԟ3n~Z|b@$8}"$Aj R@HqERL_Q~"+$$ HɸX΂>Ffǁ(YbtZzg+i8@ !=GZ lD(%J)P=]J;HǕkMG2 Nt )BTũaiiق%@v֌+842nnᏨ p1`.gR(5y)*m%Җ^  Vƪ$"&~dwj?o}/y,Wa/<"%FB)IoVq S'VB2'Q4UaWo3k-`?%%JÅQX#x *t$×'iq-- %!ʊé H[`rTD>[ ]̲@Iu: 5QC!TOgݭ."l 1a-mR%)o:Mqmd1f &urߕȵj3ń7L`ᲇ`ЇR❝1S"B ḟ"qC I /jlImaf"r2M7_x|;ѹ|<`ԖYq3e:p99qmVr=1vR]ߴ ēy:Xwd h:qjews2J#b͈8/Z.y%%D)ml9*zbaYI3\\./Ib/UʔʛC+^FeP`fcv,Lms kk}c`׿4;5}̖Qpo>^2 :DМH~9{_w;R{Uq`?&@r'J{O~g_Yϭ, JR LXF<%hRU!<N0g ӠQ['.I7M΃9ٕTm Lk]s;3Y_%\z؈ h֚ELXl+۫u)dqu}̧TNo.o)%F]*VfMLȯa3.EƅH]XqaȑU$񪭨./L劽"#͉_\UrXLietY+lvb}h`XF&Kf $0mOd=#i.7!DǰcT>(ddVRRF9ryGC;DZҿgr ]W%z X./}ԛ`F1X ˸'dfvZdŃ\9;ρ2Pe*s%Yj _LNmʌWWR?.!t(~σYۀ.^VBöKu%Lvٱc٠q\d 7& 7sdË ˏ``LW!Eg@ 2АzqLVݣJ4vV~u1U!KpE2LTkx +}񫒢~q4]ʪ%Y)q XdqI߶?f.nE4fd4Jz0P/X.#C0Z[KqІNЫogz+M-syz_|A¶@b kȪʫapJEmvVRVuI;rL[yM Z͌ceLp5i8&3x!ϧ!0>(gJ fbJ8ʟs.-@$f/ʪ'dSF|&!uhЉ W I[d9\jSe_iݫ3TՁ"L!=ӏ۹,A;_+ ? (3qi^f>ۓ WU\˓+uy;3el2Uד\yRK]}B ^06wr3n@ u @nmi߬YUt*5}*_v avR-yTwd6&ohHdz4c( & Msʜjp~r+r8]a6mRfw]a>v6GbOtN ܛpgQ@$vܴM5>pW$*7[2͂$1k8uŬsVȉoOI*mT{#HMǿs9r{|Z[n;YxѿXi_Vܮ>`E%]sv Bc[vϘMkQVJ\ ȑL>{$D40=^pZsZ@S[.0`9k!{;3tmw\"ncJKya[QHѴu0d-v4-V )\'rʂ;seRDA|2 zx0bS1fd+/!4Rtn Sim+w 'rٗ.m &7L7kؑcʧ8 gr36 A׮z_ljxq%uv g4?u3[Ȣݫ[5w13LCesNjtD +^PR6󧼬\|'V#Zc);T;?J͢gh(+ mj1p?Dd:羁Caܟ^ کE IP;A: > ^T@XGI$'rp@t7Z~Td* 5$rR$EVvؙ.tA#GlP@ _uZ-g;F}02t´?B k_tJd }z/V G~c$|uB2uOPL'u0lFuӧ1 HP[ID9'zR3^x; G(q9$ t"5JfQ$H}裨LzUJ&܇DDcGP[QbJA#978ҵ*$8rNw= kQK9:ODzs}S^Ɓm\HGͧRh):~?TVyVI71LDD\):H:t>4&GD|d+]ᮠ@hPg52VU9lΈ-8?&!D VRq$m?P@,G* >>\~T}F|1migy$I֥dgRѓʚm&-ƑORrA*N 8R1Mx'kmf?:JY)Q$P7 ۢ5^zR;8 (')9F9|Ӷ Hr+go}/:LhqqљJN](ej%E)BRT% & sUG&R!^+f5] kx8[{Ё%N!;W$BA@.ZMfǏMSlɘk8Ҫ%u"Ka[%Pޠ9NAaj,JS<*<&;?6=Ϧ$Ieh+R' I `$TH`~U1$cHAפW #K,o*%yTIwۯ"x*l1ƑYR$r?)_vͣv=Ld=RGUpI= v$N2$S)1|) r2NԌ~H$CQ:~4k#_Q6'WFsZi?@XBmcVSFO|hsTySs o X1W}t<h}`$FrNGR4juD(]6C< hLK<IP;3tߤ ?ˆaSlQU[L9rx+W@M3.Jy‚P)Jyޏ^UPҙsg+B lܽ<(ܵ J^︷R=/:~TrĆ&# Tܙ/m2.<@V?|Dմ} SLNN'9:RUVlwr0<~ ݼiY':?mkYT'$NN ^PTMVNӡT $0?.8]:3+i?e#A'wd`?3Vڲw6-6TrHPpȌt,W?%eCUcS{5I PV׀~u۩;BL= ~P$7E%9y;@L$>>TcP~< {QQm+ ,TZI[mNH@~6uͯ.p$%*.Ô$ڭ[){2X (7U?E "$G-òmzi{niY$2X-4(#R$حvb= qIi @\:ZvI X $`nHx^?j{rFܡh~+P&1pH^s ~#=#tyV 9jN Gqh:Ez/ Y A1XC9T"<ռ1z OƈH+uH?EX Q2HЧAǨ !n(>UI8?Fr5q#f-3I OvPXYܐ r$`c@GMC?+I-)BljT0W;0iΜSp*[ KaX4VW\Ych|@ \H`u^d63}F#^l~Mc< uȖCq77kD6b+ 6/DpFҭ⑐.f#]"!ĘҾ㏼۽nݪyzm&oqϔ T|,f4)[~v= X5!v)B I?z7c&7X^{ѕiCM9<]L6IzHsd'Np> Ǝe,HRW*ǹ@ YaMw=&A ˉ"Q7y[âLU)r)|7KlPOvTo8dO!H)=Ė;W&͠11#^?v0;~TNۀ3}zk1#xP!;\oErUT V,X$䭋>!6f \G_spzyw( 3$mWK;& $M{ G5 G'sq޵(PO_so|Gzd0nųĢ<;-1kϏN;Si2PYBU>t.!!ǜK0 Dcb``zyvC*IgxG%Eܒ9.R:*O^/7nA,cCbݰÍYD^|L 4$j6]˨V64 RoS=m狮H%*x ؕ,)C.FsYÉxQipGRY.:Hn[ϻ) y-j3Al-ݹuI8d@B0dA|Ξs:(~?lHB rԡdo ~}>w &1mc_Vˑ}JA%$')RlNʲ]z@c<_N41 Q7èLđ?jIx5.ȑ ҵ\uK%el+=xħ$K179^5ėɚ  s"<3JgEr}1D@0[)iIe$I}D#GrnlD;ODn-#1X;ly\JuIcsh\\ru>V"*RVj-{6Fu7';Xgv1m xf *LlKnɐ džs5RI..2ڭEūeD۬*2unF6J{ Zq'$L,X'C]X6:P-1:~q+W>PaR#m)J.tDR>fqҿkw;rӡ66$X$UrgsWr#AېPΎzYH$ڶAF#o.?f.r~1!Р8:/8I~}OyӼcȂ"*2^r*JT'>fݔ&%*C|$&W+lNӸ-$\ޠ"g>36Œk)[ƭossd{`@TwRaMbk/sm%-I(p|6maR,2s`l7N BZYX Q;ϥ&NE\If;Na$nnʽ̩jCJZZC(4=-[+m`bNBxo"+"ˏ US*5'kjI3 Q u[7B+ܝuozf|+іue P U90Daw*"EjL jǓv}A5Dd(`ۤp&xA&]nbBe%3`&)s[iKZC۶,0} 05f Ch"gd1_G7.-Q#(km Jz2ݴx(SH1,ñt;ˑ6DLkb ֧|O"Lu ʆ6\lJ jW` 7bkpJiH2"-%MWY2UX :O4{wXk$GVtSw",*LZYp 7yqAm ēUr6p$h1VeV(R$K 1r;Fj̾^ZK \/>W:;/ ʐ(%"I'u: cW!loOh$ȘԆuPYm-Uj#8ϴJ/s*'hu1\}6$#ʳ2 ҂mr 0"*mܷ$/{^_yg 2zbTƲt$ENehw*OC>r+䒡^=K}RlȔR۪߰ Li R@Z!9=,kǨD|+_~ =kfrnuiSI2H}BTI\dP-ͫHida\B`Κ\cZ?n.Fam@ldj-in\Ӆpޘaɸ.JD>W?EY$?*qQZfZ:Lz'='۴ÑK.X.>aeqr#7Zdi "$ցyk);Y^qsl ֢LVk5j;k^\uƜܥgqvA&E~iFY ;Y?jaqx⧑qƍ]Wbf>ʜXW!u_uwMݸn\}<7gkm젬_"IU Dn5O%98fZ+m{KTZ9M~)X_ܻ?1"9AL0l`c2rL_M+`a^S1mFJn= SqmEs.zfܡ\mN![u-mp0-j=Ha#_nǐReK;vvizDījYQǕfuiz)x6ןI -1cLi/ @2 { %RxKD$EbBW1C_ k%qCtn Z ]pv뷲KcYc%Z5ɟ&m,hKہm'+KqS>qcufS0U=]Lv %XRS؈ݾ\9|{H/ca׉# mM&?]) ÙW]D նy,%u-ڛ~^!`Ԙ>fyxŘka~p5\qO9B%+NzP]R^) UȽ}#d*_hF@ X< (!F>Oy@{\Y0cboTܤw~\cƷҝvƓ'>kR:S8 ƴRAڡPAFr:e&jwbkgL #LǠZˆhR~#A<)Cj[BYqJ CINTVp'@zmvՐbo<|=YŽ]S;r]-ʌܴ2U<շ rꪄ>S;u* тv1:Q*%X'L;Z$L_W͸tkE; `cGL?*$7/ c6ɘ/ Vc9i4=(u-"/Ec+'FHu]1Gc:4 RR1MQ 1.7f@ 9R=NPz I J' (QQmQg1_J.P6tJ;t׷c?P-?MHiUH4ILh{ ~ NO"(vX m(?| A䑷PPӄP <(I#C{J0u:jHtsh@`{hr,L~4}pc> u'^r둸 5 Holx~N4SI~=K46 wmA :AӦ;5i:˴A 5nm,nt[HA*QЅh @y,^)Χ:Ssii:GOՌ9w{t;f|^c˗&ȖeWa2Zx.,6XХ-9 #F}+ ,:),]ɭů2׫ \[!'G!*8+Q8MdWT4H؅;P26Zl-$nZ>D@D2xGc9#NΤ;d??*e8|賩'z X"ԙܒs8Ϧtԟ:iG7[\۸}Hʳߣp8nmLc$d5>Ng@u5j@M'9^ߏti,¡<5DX)Qa$!$੧RC#=MӁi80ԏ#%6if =$*K#DNTxZ}D3T{`hhCo%sQ~b؁Oq+C$41!Ґr0 } t9})UϏ 4dNcLuf:->4I$` # z7]b `MϏ*@8r9ʏv6AN$yҪm@`:Nܝ@A:R8,G+V@IR0G:> |:`ܭ(!*{#Ln@-R OO_-knݸd >JH^Я=w$?|:P ?郯ʀF*$h $;u-Ahd($h5Հ{X06B(E]}$݀m45;sMu $%Y^> zXxHߓpT1҂u>TH_UJH):gzLԑū e[t@+H82UNG~BRUgD 1^fg4ˇJbӡGlFz A u_|qYZNȦxr-'q3.8o&>*NJISQJbT>2r.Ibfy=8׽2_qOt?3(a9q+{umۖH%~[mu1\(j|D8alN=LjdAmxDXl69tRn'ˊZߒϒ<,+۽; *qPÎɆeJW~3NI'xߖ/ sI=mݹ %H[ًʡLOsjirBwk+SD=~ڭluI7[w=ܟN|2nV }"aWa|Gȋ劉>>\wk%̇g/sΕv"EmCk6K6HZڗ.]Ԕ~קv²Dl7s6۞p0Gl,᯵\X’ٍ@ Iw.yg 7Q!b(LRG8{'GKr'p 6AH?v{2s!LgՉˋGH b W9w3f[1iy§'xǔrZHyUs\X]Z"67>ϛ6L#¸D0wlI!n>2ldA3_sc^yݥG1Gj+좬JH{~ffY\ 1ͭvqbU9 ÌBD#"qYXH)_ⵘk>L2ܛLmWqҕS/^}qoX D 뤹r3 ;Iv`@)dDФg\Gž'_/u q* 9zKLJ׆Ӟ>鑮DWr8uH ;׉NLXN0Ɍ"L&I;t[sFeYCǴU?6[pnU5*PTIWIK.4״G^^tI3!nA&-ﻯu^Ӵ`/ydQv~hr>S1M:K/)~4(u*ӒrnA=յ:|q6VeJ)r&C6,X,t4 zFa iFi?A=r Y 伐-}5}klG{]G]qj մ+lngHpmd:oNXaI e:IJbzqc^0 btzN\y ,ĕ@NF6: Jf &ٌm$ycߍ;a*o(-FJ6h'D 6Y6,̦H gK @OVH(pS_N=4,Ki}Kw gRuPx/i]+TNE"Aay-5!ܹ)X㶆ٔRT1z'ܬC Mᭇ {g\dƀA6$l/1ZkTuI^Zuj`mKNc9CJJ^X;"D߈W[pU}VI}Wy| (qD"5QֵW3>?oP\z~)^i;TFw2 r"TxMtnOo_^r`&U!rx&E H"x\\W|wg8&|(RJ4X!Js1~SOZ=|3g ,k'=m!ÈDce,.H]@qļI/5E(KnϹ2x lzN,[\PX+EZVo˓ 9>,c"`IɸHBlk;_͐'i9ɑğ@"gprk`9e@<x#D0F-O0QԨhGϮăYbJȎɴVf1308S)F!ѳ[S^̋ wldQjOc.rwtB}7|fJ )T/B'ksh: +r;L7 :AO')j4O6L03bIePe ƮK Ⱕ%(5|ʸQž VqbsgvHL[ y֢"q]:,XxG쐣*_~K-x,uK$jˉ _2}66!1۬UU?QHBv;^jPL6;bB+nվc> |84qgCWH6=Wd>1"Ϣ R}?U wθH˙$0a$ S^j-'ki\dJ1 b76WD_9ɋ$*Rh<Ǝ߾kJTJTrX/p2m1yLiZTnԐǺe<ˎeEiNaMĔmD(gȌ $- +{fUݷkA,R\ڙ4Bbv;C1 ]/$km)Qgcd\獸ףgRPclH^:b3S+2~ )_+2JjTʾ\Hf-]O8ĘL%;v FT$HP2͎Bs? j"*BNC9a:Vkt ;luNpWR3220LP~W4AG"&(aZ#*:'iqg s4f>"OMtaJ4?t4FuTA$g9 ]*.PbNwQjj5 ݠ ,X n*m'|8DtHƇU) n9N0N9NMfïɲY:ߐ-nQT5RSA"hp_\S:޾,3WD$eJRHm| mJ1<\VϦ9ɘ)pKrLvlhv4gR7$$'MC mŦ@amk zuY0cǏSQ'@h #⤓Mo;::Ǐ(j{=ZG^AiIk'?ՃΝ>ߎ`xx謒Ng\(E5@Fq)ϧetn[ܦ N0Rs|9KJB)2⣂;(n=-mD#J@΄A3 @:?Z$!œ(VBrRup4M7t,>dr==sz͸'M4w|gI  zD5?#?â3𯕓$jU  X-U0Oč3dh-Tš4}I?0zl +Տ';H8שxcB U k)=*Ơjug7M_+wnqHQq:aL R䏘 ԝt9X E*q4)RՁ'm%(;Lr I*]v=C!š$gLnNH@Y?%ShԃINҒ3N~]4]FB6:c끃F1H^`Dj?(kg#i::y~5.LG: ~#NtJnH?19Nу%wAT }yY* giN2IIƽo*7YQRgSν==Đ|^cvX9%8@!JDg!9΄Ϡ\p>8TSx^H/ 06':JH*Q=eAS?*0a#C@7 $|~g(^:/ =3d3Q?A)!tNO06R *\ }zz8? + POčHt:2^>•?P$^㤀Fo/CX@a Z(Ǧ "*`u;~plǠ(Ya#sa;v{QI:zR6m?ւ|h@wa>BӴP$k $I p4I&So#V0 `A큩Ah'bNW$j {]l~ڃh16_aYԓH35Pd 6 G_dBH ƥ: ?N HxqlDWY*8IpƝ۩ne47|@³$~#^1Ѵ?yIu9N+ ֎BN'xRt)$+h4\ȼHH~#z] ](FuDu)?T7m %.7`C*NjP:j/^rSb 0[kLp3;2m\Hqi#톛2|S+=7m(`;0ܪ$dHkOaQ<-z%TW6DZ\y+ =o<䔆n=t3.!mlZˤy2?|SVNEiq'LWt2':2[TIOW Fa8=ƛdi-<c(+<=p(m-gWu) YKA#I*+8I~KVhSKbcC\K\n4DX۪W#S8p{2:m ^5Dv<$^MCo?4{]㿺xϞ<,B;7밌'/n]g|cw! W:JZ=;/d 'i]W}&;pr T:;v{쫙kw:M}LKSI6 IJrJӯ]~;e0n v Ak{y|8OJԲL'P3E3wʧlg2XuȆGN)2 ~pyND/p{/ƭ㒤$Gd̍ A'YxCHSʿbUUl&@sɌΆQ'?qyW!YuIܦLH75vLlPR8U\m&o)GWR~|“T3yZVVRH)NA^j2zXFQmOj܏1J1gb$ sQ/D%M#-:{;ʒ3D D "H`"c/s*U;L"Ӓ WjKEܟ)3mUWX%+8=L9=[5x/q~?RvKcz.NEww2tNcN7P }31=Q1 e&Ԓ Wg S\m'VRƦ#Hʹ=>2EnwO&ez40g=-= Jp&;, !EDg HTNtcv%+3 :ld3]|1um6"L>4JJG(Jd oJP)kP+N&M$IA15̒UD ı9V%ŻPqļDqPm!Rє5v-T&OH#B,} t`[BYhiѹ*JLθT;nCA/1i.G.v񪼛l2X'Y]-DOlD`P}Q=eVc&"6>5|8W\66Nҹ$!hxh~v"j-[G6OmȪ",Zs&l^BTYw-n #!W %zo.oK*am@w`CӄjKzI13Wk$0Baʝ\l:c)OeUܷxN+ j؛=Oh2e1ڥ{!k//,N$*Sd,gU%CK(Ǘvؕe2Xj;k81fޣr2@Ƀ.1 QT[c*e`|k6Ϟ^y,jI&WL0t_M!sg<3̎/xݽLu!ؽPAk[ 1r2&'}߶l^[zz%aI݋+‚ [I.{+XTW^VYWO,!IlXQ[ElRҕ)*냏wm'ǵ4 ʕx"VE5+2#+IコzX2bqꉸG݃A1< LlcΕzZc{aJ p.l~E}lDyH$Ee;f^Uz|@;J N&N[>|F` :D1uqSajZT@Nf;r. *Id) gI (V_dP60#i_I\em䴩..2dHUkr mx(ܥ;F:%N8N:kS.6aA uZvޣ L.?1.2 .7D0oKe,aM3VbD$ف63Z0ji`uwG" TNTvrm0ˬ\d%8F<H$%8oXZ$[M-@X33[FZd p':DL6PwpJV=2mf[IQAYԫSlrCh$\,xq*!HEE 8 9AXV4&`7.jRSqҗZdEH}\`I*P=̪8Y6- (&Vcl-lFai<cֶժr (/R)TI*ރ!՝ܱ[Z6~#OSa*Jq?^6-/OypǍE斓o-"ҫpJN5![Ic6ݢ{N{vg_Ks + 5'W'x&}%HLRT6tUXW/_+6y6E%d¶܊Ofa'sw<"-%O r]*+b&OtgtǓʥ]D"L@^$A?`IbT#12ʞHq^SM$qJ 5aW>6oKзMϐO.5q‹xۛLs8=e-:?0o)8.=nL4ڏkeV pv~f\ 6!GP͈e8r:Qbtql' bCf_[m Ҷ} I[hqMB^[lihL$$n/#A]gɹ8 hhGHX@ J ?J[6 pPoxIӁ:^) P>b9)OD)N"/zK pڹmy**Vu'R9 ?ƺ91 "r7ҭ>BsZTsD~̈%̸8PQVG ~f#_H3/p~s&,"*\UʸڟCq.-.%>MW,C_S(ej YKQ9;7nMbױ_f2c^䳗&ub,$ ?c~k啵^ xS=x=JHl#g>J룼 Jӏ[&ppdqnjfr̅o޽[ -?"@Å}IiƇ^EH3 e?s=H:9:Rʈ qғ Ӹ80HǢjudu?N8yhReBA R܎(k14~UNsI<r%%4FLSEHb# PPV z(I")`aF[? H K)uʫ/3иJ}8CN$JeY|DW8̀+WiD+F&ȆP}Ȋ[iN(*'fIS¥@m)J!(lHJR@B5Ӥ%GIk@*)#A;$g8T;vhwʆOӿb>׿S-+PD? Q~}uBםhF=8V?A,[!ƾ?6ӴT E/;S8H'_4Qţ]h9?B>P}t@izW;ᦗ~ʈ9IQ'$F@{dmsEe(NۧlqA*r^Y_ƥӱ<9S:mKi$zn'Ki&1Z.)n}gٱqX$Ӗ[rSPK7 ()*WDU MR7/KRe.KPfŶ\%Z \q%^5ێ}OkjTÏZ]OJ @&A NJ 2 ޝ#@(3MxiD{nH^㩡1=P| @@k=IRKm&RAүchb^^3cRG}8ߨ.H+qR@OZ ;{~b|O^cS0iv D>U`cP?1CttH~D8@q>_ROY>g;%GFn 5" xn\[ua2_޶SK8'tLjY>Qʿ4;c#mP u*PSx#]~I?.~иWrtd_z:(W0GIu"1Z'4A$wvs;URNxI 0u ~=?Az~K[ h);C$(#LΓ:MIi I*tP?6HR=][OT$j5%y#9$( qI9'3и/U3)Aڂr{ lg )K MpGEVDixNJpwt$z.7):]t™@%r30I)Ǡ*өDOH-`4|yU#PA$uܭGc۠Lepu8 0L`[p*Ƒ_/`$Y%$A^-I&6& m1~nHzV/>"S'yeA)RѰej+뒛U}|@+7qm8LO73s{VYܚZmQkDy͆y[҅Ԑ:uχ#*R^rQ1<;vr;[I:/p\H*Lw UŔ|;b49B9.P3UV#I1nZ͍qlCJ 1: x?v/L\35 ,,Ua&3)R]!I*.65$x󽩇w6?O'-ĝ }"O-{ᛘmijc7q1d8ۭ; YGGXZVPW i^6I_O^?۱7a) PE29yu^Ddq{}o(& l_J^*{kb@R\nK1MLNSk/mSu"\/`G}\H,5H>m"}xoa#b3-A]jEٛ>_zKI 堒@[WCg۸;" uLI*I[AT]%c_Ks/D^$t*jC1k[? Z-^_ĨP:ȣnh2_3 ^΢Һn=v=%6!LI@ ]_7y/`V/)fZ\8P6V&ehTGffn;.),@rн~5=yL"]$z@`fcmuSo|;4MTU/= KM[)eJ[R[)( JZ *MD.2ś~MH#S3{i^gcǺ5.''b\K3 hfD&5V_Li*d/F‡+,'@5uΧVTG=Mjon1`hʐQ-ξ8BZJCJ^e(wDV]1fxZ!> D^$\+ں(bXB,%VBZm6Ko(CQԄ!)q([r\Sr!󭘙#,J0`x+< eLj;NGuZy(T'V˟M) t%(!\ Lƀ6U$ʛP-yX:L̥LF,LyUVh) aqt6c% !.zCqSH$p!z<{H|f[HSf 3ijGЇuNa CQ]c⇷!kBCJSEc|x7D$)ꂣr&o{棈sZyf0t6pV,SvARײ#I1⸶Zgq0B?P>d#I׍l^ gRxpa!3lc) [Lejc-QB )ls|cCnWa~?۷w b:Ԉ_c>5[|ė|Dy2\n A=<ό86=Kȫd[P! '?Wŝ{_W \4\_SѮqbdiub%huJTm~|<_; g'JD4|zבRJ~,i 0ࡸHgn/tIfVYHm68UI-{>'h6m#p3.,~B̎ۍ`>߼xg²ۥ QXaw̼bdDC4C^ܬg۶DtٻK%?Pdh»vOWϗ|DN,\'8pH#Iϊo 7~~o._? ejxwIBX-ƃksZ@'?ib$ǕJ:d!Pp21b5|=EW;lXɏ*dƛFEllIy$+mxo]7߁[Psm?6;O9ayzcȌeha@Aa!Ok&ŏ>Bl"Ot̘[l M%i$XS7b늚5:j,9.$wdK];ʽī~߸N3/@Tk܈ 1>b> "zaj %Dܐ5U<~D: ,M]LdgǒOJ8aBSJVyszǷ"2l@Agh+5\WNJ{݉v:aS#Dh3`)g'm||QQeŹ^[$lw) $uH8*.mț;mD02Ej+S8bHaTT;S߱ï`PZ%W)Rmlf$j)q)RߴXi(l]n`U&'qi;lP0PBc[Ku5ķΏ83k>м)iMc &Gc}g caiU]W5ǙPgLŻj@ cSv0mɩ_t;~핁{?Sq`A"Mȍ "ǨYWUQ^44ȱ+(8b4.%c**W͑nXIל_XDi_P8o A&d&Lܴ $ε\ Wj̸Ӭ;dKI*zoB=T]HPvn]:݅|H塼Ƈ^4䑔2LmRQ<Rgqylۃe`Ç(VpTVs(JQʄ-[.MlcxȁQY 93CK|\ W.\Tb~ uvaW>ep@ 0BIn=iW\/ǸwH8 jwi,S|OL2S nO5L~?uwO9e.Ǜ4rQ4E=VU1;HîYפLwKqA9Q8HIעv]t8QINƻs9?ӴiCǏP”qgԑש= F" rt(`T{c4Nұi:kPJq*өib6F:K/YĈ+`O:aǐ%fJʕkEcW&O+q+4.Nepdyb~$dMi m d:AOP;mxFpj͏z|y^~#N!vΰBgѤ6TRIof,sC-'^5+营$ؽ { !sL :Qiׂ סZuI'J?T^qOxgqgNLP?Fd=1NA21m cNtQddL`)I׍FUc!GC ]MDE'Rc`g'?F/JtVyʉ?)9ǧ zܢb-|s{I ܮL4 vYkΉXB{`}:BTؚA$_'=Jr 9s֜LLΏ3 I r!H#k2cpRR P): -Hݫ|hI9Hq1p|yՀ@*DVr21F0>]4V_J?JU܌I9=tƝE<<~4'8!DV}0GN.~>hcΘ?18'Aی~JVOxiNw?HY.tLO׶\Gm* ̐ArIƀ(}? "yTfb\r QHz7@mje8j1(AʳpHt_R6qw`| NNtv銑s?JXk1>TC`a@h7mV}NFcN|x$Sn]|x֔(ucq2HXۇE }X΀PAݑ7a܎+ t -{6F*h;9!GLgӧvƉ v@T#:rz\ΐXh_ :x''>Q:pLi~XR`<}#NT~=sтnZ>$*q#qЁF}"G-X w`H\6/~>L c G>3n) n2v F;a2_BI?(S/thUƸ43 /A2tkϮt>=XA-jtV^璵\{aa=pT9QL6uemq9IፈHaw2E杄"f[L?lMzq F7mܮd @|yPRqUnǏ\gbYF3 3Ӫ,pOp8AeINJ\B.b>Udl0Q [Ϩ)VPḯ'N#ΟWDkF(#CH8#S$xӟtQM:ΞZZ5#@N:#i[1 2Bva$O #d~,˺- 9Ls"ښbL#1I2)hJS%r:,aA֐-J؎&Vȸb\o2AeD?1t.g9 'mbrZzB~%:z96)O$6yIGzv<Ȱft  kV"M wm–⾥CRHfR܆\OӰ}ԡ`nw1  Eۇ)Һ2܈ qc+w`Q&YqϭT\e`%2,'i%IԎƮLL :Zd|W_%Mt˫%c6+d3.QԈn*  e Oɿr,&HRi܌6H AwI{=R,u 1Zv+(u!Q#-!iuXV@wju "E-Yr{϶,xi'Iʶo1JWa*=XPTd67B][kX@ǹ` <kk8njrZq?skVx^>b!BX`c)";P r)Xi-kShJn1ΥHkP8Hםq;z#e0zA&dŤ­`E jH0txLw#lyK#Ful!A 86cɵT DD^mKI.c2XD_sE@9G"Hi B$H}6T0O'FlYo"\Uݸ+ln@~My~j Tu?ȫ)!2K,Nm׃L{IK۳PvɀyEJScF@rQ8 TcGmPI}˅<ĕ('A;68sJ~!6$@lul܆\aZt"BBe=ĺ՛~3I(pp$BQb̘9փF%c@IVAh~O`1iH)ľ&<[ySIu))Ǹ}3bܞQc&9CAېdQ^"q?)WEDAj|xY\1vJ.RZ&WþSRIʺӌ޲nAKMŔLfc+DmN"t􊽷w`bU2| uں+B@sr((^1ϷN]2^57۟8"γ^Yd C%֋zN'i]|j{N@13r :fL]UTDZ _.y3!>/RG(/ZPB[:KQ-s]Zp]O3MUd>}_( 'N-bԲˉx~$ё&d+G|a""08'W ZIKzVc [UP`,^(óN:)ɹ qf|a8_o|x(|^;%DW!O̘3)Lp7턶 R/bd s]7rjLj+U*Phb"q!gr$ORi;IfKa-y,1嚴]/|ahkGӣ܈vZ+q>g@v&dp'{L@Gns H;M%SWxo_l+~dža֨8'ݖGYK~GVʹ IK-I_y'q-:( ,~1>흏ma'Fkؙ06$X1zSj-Ze%ƂViͫBr=s_| :D_G*OeD͇9ߍim=hY.-R֧Km<"ęB4n6 b,m9km% H8qCƏԬnjyQOebI~yȭ 5V|!G-(89b+JV%EQY0Sxף.H6&&f$ξ.&f\w>{#i7Kb, B̨aRCe CȒXFb3mi;b7^'l= ׹6d[&n$8UxbZ$wkLaJ-{o4ѭKXjQ[mnla.WHP#y.Z+Db8͍F`_)[7OI {^;_>d며kHa)A- !iB=Ltb8Gyae;Qv@ m'Uy[IOo8$WX?ϼP\3a:渄! A=2wlۓ˓3N5<@v"wٱdn@Xy^"AV?O̜c gZGb{V*®;Ndt}EkWԤ9AdcNQstq͘VLJy^;1[e~!+(x(JNVrz aDW L1f^j|R[T$ ܶ)PY H-qT^$FiIBHg>sq[;GȀRVtedm֊Y9VI=~n=tR$`#O Ν -I4' #rP?LF_AZNIvѪ~< /@Ƕ귓}tJchr 5-J##R1랈hkr36E+r}~\ GLߩ&`4'HKH4&ZOZ vBЇZRTC)[r׎$  ilC+Yi-_u5"}cá D^ ZG-Xta}LKZr9_6ڏ2!MF_V%K6g,qtĕ{ЛG۸OҤ"33a,g"5KԘu3]a Reirh%>%kZ!jhp{s'^= K ҙ$L LN;c3éH0</ `v 2~= `B9Q ݍNIN > Iֈ#w^4R`OSJAa({#]5qNѨH '#B?6hFGzVm:NAVIG:C=\DRu;v@98׸ P t LGNv$]N$~>?UDR<~uS- k۳m]^e䤷!@a8tʥVT`[vؽ~4Tۨγ]|̉SQZЄ!RqAT@=T7͏v_mep(5?eA.>Ϳ݈u9KΡr(H691Wx_{&?Tĭ݃fݟ/Fo/?61cVN篛&wXEΉpgp;v=OKhE1cО=*HeRO%'Tnnj y*BkU,qXYK ز[x6dEڛZ{ʶ5ƙN|8SS||_$rOj$_Rʫ[/̏6;1Î%R2JBVԐzx xA>;v|긑%%Q˄X*hLc.D߬t:cJZARuah'q֝ڠN\v `iN w?0:\`~=VL1#hSsΤH)շ'Υ2H']@u*=r5&xxVӯQ)(H#Q{F֔l$ϠΠquvӿD5Ҕm33D'RNЭ@ЂGϫJ&E rp>'?ϥLƂJ}4y4h H@O_:VUQP neR6#lTMe`-HqIvC rR%I'WCp%IΞ\y"61f2~k.4}[mZP8ʆ!yQS'Ӯwx*6 AH*Q>xJ7BT/aW J{V4Ǡ:?>,ڃpNN0v uղGQHeaӜ'A h?tQea@d%C1qknTЎ>|` 1 $m$`អCiIjFܣB$hO k4\X M=4N/H:S*C|?|@ILVO~]CP'΀7oP gdj9APQ 6#J򃜤(`=sL4G-=HSs]Ze&CCeOEp>ZccjS PyyrBܘQk^Xm4hƬI+Z>T$Hy)̅e?/F?JՀ e-QEvA c[U]uPDKHj5d<,n} dI =.P|Tڤ'ǎUaU8 ZRGғ2[ ?ӪYQ9=!$P1~WO@8>PcpI2 .1#xJR{mVNDv)V?N'L T@/S ?OX<~W|p5鐒H?֌I-X 5#ds۟?COfGIApQk51DGm,Q"Adn?Ȕ;2Vz ,viw.ܻJ=U$+;o\0ɕ"8 !͎uAT῔ۭY6]V\Q~o;?k+e,rUW&rkL1.í"u-T8v,IN DdA 0-#IbȎa`mgMd0[eYu._>IBHLDDe-$ Q(wIkk&":.k-qP g1Im-m3Cu|C2T-0aԵ%# ! ٹH.m1&ÖRbr*ykGτ™ȮTpw T!2gc))[VTwAGe(6H/>SUWm󏻕t^:#AAj$%`8Qe1%Bij+RH+TJSHa wXߏ:ܰe[\j~UѾQ@1_ ѥ!e:}3!Ky!uJrRr:̬;M4"s)ʡ)[̘:N**8 ^VS6IKq-0l'*RQƁd?.PFd5eBD؅;i,>BC*T~:#vR0ONognQMoTgmŠ'& y"Š2df:}ӭF>mR-HR\)-sbmJȭ1SA"pQێ}H\qkIqϪi Kr "\qݭȞW2@)G .؀)yo#m i(B)NDHyG7;+c=@6ʃ3 2PT͂GiC"I͚gy]a6)H78ˏʐg%R/nI&ǘ0LSqd9 gA@1_sڮ ZYaScřK#dơJa*erC"seL[617"rEئeVw. Rv`UUɃ#$:I6)!V.7ad`@cAsvslU]7\j½Pf>܈ҔZΌj0D́7LLAÛ6DʞzEP7]vHڢ^B~\|lj`E%0!DmIFpƸe@ԙS+h9W:'p- ,> L5Er~1fDa萟K]KCۀ$G~?Hʓj8nUIE"R>&O]!" FAHK SvŴJ ERa[qrI=g s\L=%WU;,b <ڪN!_&ݨnCw[%/Q(2R쨏 (bȅ*Oꟍ9ֽ[&,%f7^5&oq)m\N?&3MDAOBndёi%%QXO< W i=kBfvg"eX{/y:&Sۓ[fmy>y];JKvj`aj{ bD\[mK,%+.mn}86] fe`؂ 4~r{N闸 6d07t0AI~ntÉ{OC3V(X[G\x22!#:mWUgmT]#au}zuw1ly$@ 7 EdW!7N,\iQPs8筚^yUq[q (C(A͘~pҫ dHSi5}s`M[@ ,>fxX_埱}ɥGb*t7~;I_Q!<=Ym)ueaqء'wu0zx^WJ]1z^ crt7%PK O-;Ž"rHТNïm{LRĄK(Sb2v8;~$d U@ɐ'C*l&+eq=Lkw /%(Pu\O/@\9W(~\Qp&W|jmi(rpQ1P1ANW*Gq1j!/wpv[:dk>',;$# дBKoԙ_e8]m0L*ijup$^xϷ5ٮXN*ivxa.qO)* )Ih m%$TǍȈFsO:"(aUmXFrK)iӬ1^NJ!ܟh- ;'}9ސ DzRr &#$WdY˴sՀTFmu[6Bj~;|H2綤 eCnO] j+.lfҷ "hmRlG.>I_\J`RN\d!XǗ, ܴ-?Ki>ܽyLX 0i%T/jR!c@))p.ʫLpmIyNۓ%:Z޷nc/~e\ð}6R#1@L^9I{r߸%+8n\ 2LWK#7юaJ-cI @V<]Y86žq˄,7(+%8scV!/?#Z8}aJX ?1T,>3 ^㒊lo[1 ·)YN:% bd&`G:W?/umr͈#@ o /PGf\c\rJȑƘoW9tY\2doQ*QVTjv)DYqi1u5$DydǏigO.ci+R_=zp)*Sp)MH ƅ2 rSDf`d:)D{+ƻRU2u5|&|ͻv.-r~Tv7'qFbϫ$>Y*Sa.4uJcQ~~ߺ0A%;ӄJ U{X>?Uk)3'ܚqI938>c.je%Sw ,{)( R͎TԂ<*􈜈u^y ̷ۇܒT '=t,*,qi>>uV?9!Y?Hz9S+rx(0AqR3 |yP6<}+$Nr2iz&%F>ʇiHxփP 9ڐ~-W6Ɲ;=I'tH-Il BuIۍ7g"۠iDmebZ'8z~F @;cN={cNO>θp0zL,FmyכeuiC[7-kkשkb*7)5弝brT*\՗[P, :tK.$(!Dt铧jN䕮AM`X1|dž D&ORBTԥ1a~%2 ռ]kiW )Ҟb;-k [ )`)\;IaaLVL3S@eFj$d)㴖JsyICi+ueJ:uun2n h]D䁓`F:Pd@_|^VƅI0qz&EI4ι+##?7Q1FOTk4@@2s@A[}3Ṅh D1|x_<N2Q$?P M:꣏\|9I-1bA!9V=H62B *#>̔cL =Ohր'V3QkȵP(NCɐX}!)-i7JA' …ΟϝVIF4{^?",ێ/)ĩ86܉1 Uc^T݇ @'h#\PÙL.0XRVZ;!kL NYSkm:V(Qec'(Ai<^z~MwcACԞYR3L蝽$^4h 6~P@#]Od¡iGJ@N?T夈Q?4vOM韘5߇@ƾ?[2:@Lu`nuʀ*7( ')ZgCxƘFx Kwdck~$j[Rd1`V?ƠW"CqS;&: sbdE~5V1^oT4C&+nLZv?X=-mD;NהH(QQI=Y~Tf~Rq[3߰Yv@K,?'jҗ6Õg܆( q'xV }4 5jB"ƄaJb*R 6[ԯ =̛ GI, |+|dQ ߥ,-K0X#_gEԞ'v3WߏN"`BNI_)$ +\'H Uk=~uo|M$( @*Pe%;jVG8ҕ2ǟBp|<}YZdਐRGI.e"IIN NuDA ۵$A`QJU\Q^~&xV;dgmAӤ1|x*g-}‰ƻ>P?Ǣ6,~4mei;!pnXy^Z[AQC,6]uj$ OMnFzv*mjM[+ˌ$:"TˏMe."=9+nN,t'A`vdKpSڶP\Ԃ-*TU:ۃ(uĕ%?e}:coƁ#Uȩsjtfb Dr(Bݎ [oVIH.I%Ko4-R NI#F^_5u>?7vc\U@'0r`q*xĨ 8H8=IP ]tW HIPprH~=A"5ZXH%IQN J+)2qX;q`(w:gLΙ1YoT"qH $`$ ]MCi?*9IߍVm=iۿHL]OZ6#ʡ^Mgyej5/KT;P)B@%2III(J n%Ruwi?avWK| F<^1'-o_?Cuqq6ŶvL.--(طQ>S222)".hLYNf</dɕtBIY1& ͕Bs0Wc%XCU*3/iaYQuճRe]zd0O9k ެP@|:53ğRS_6{ld%uO 4t9•:l7G[bzH ҹte8٪DX*?\bI@ލ6l&#$ q; Di[\22'v8ƺ#ζX4_q:VAeuA)M8T{RqɍG"VU4A<@ ^*::вVӏda-) #7+B tϗg(JoQR*! *@YqrS PO8Bu e&i^IdT8-&GQ )BTc0%I}1Zs-ƊB!HVW ~,^ضꐳH97#PMdI_SilTn3q%`E2)F;S(mu\|Pr+ q/CAz_u2dr=W@HbDFRNk9o9&ԈsiKn=]"S ~+(N⽛Ӽ{c&v%X[Km32ʺWC6<1Pg ` @*ָW} ͦUIALvG'}O|-+Ǘw] xA^ÿm{Wk\<3 '^#qZ;]EHt#jz\s|Apفy]}Y>2Cb-m8I^V7 lGA"IlmZ.Ϗ+]  a~RvSi"lk7[+|8Kx"ʣ"TWHf,')[L'jJӺLJ^Q\ ^+~rvkۙ,@#Lu'S%Իq ~mR>^œ>gFsq,bۅ+Oah-LvG~u67XKR)2d$!Ah$t#vrچq26m~F+f7@>kvň[.. W"Jm Lq$($ S4vso4ЮI|o7=}c\K8d̊ގ&,dmX`TǺT*P#i k]l=B,O73~u*sU` ±jCD.o[ ݔeĤaX6-ޠwlI;@{;U?˴bJ: vw%Hl`[QF.".톗XڕJݻґ uBEiNe-qZ3\Zk|wAEtHe0,yDɂm2qmn!Y:Xm "k?b?oecO+]c:'& ee1j3%3j `HJ{>øl&ɏP6 V0ڤ'm̚経}dn22eNҘTJ*K@&| 8ud3%[*,Oh,%=$IC,E Bd\C"/u& 툂KNװߘ&N$ UFxMU3yOsi XduUifaPpaQ*H)Wm~T1tOS_Jݯiȋ+*KbFo>8TćDIfIZj*:E:\miq Kh:Qw9 B7u:XZ_Yֺؿsq.' #I`Y[þxVٔ"@mȐyX%Iԩk9)81D,ܛqwO(LZ) 鈀 |*ywYcπ˚I*7I\9!N:xwXJzol`8 AA0m&u;0Ȭw y}T\ (KB)F0=Q6L?؈$G~U2f* $* 6XLq^3WK+[8%X[[.1B1lpbEcӍ" Ƽdj,EyIll6] -u~iT J~Tju=8ߪ.˜NXZs |+H:t1ۜ{ 3ζ>EpSLPyb[ 1.Hm{+~N4.2 TP\'8񖝻? IQl9 $Dd6u+/T\ L$Co*;PDI* O89Lv[JU:[KzAbTYe+3%D %BSHIZt(cAqqkq5ƾ=۹."Ҫݝb`*iW īw1sYIRҮ2LۉUc9lc"UA|-w+̧k!Sken3hT;$()v*$\ٟ E&V65(cbL< ji!e3C.-6Kz$y"cyu!a `gڌK*ē~zAV8!HlMDMY{>.β&Y~^:&/ۺ DUkYuK6e7%h?ۙ:|k| w]BBE N&q}q?DEMd/\y2<{ oyE\Cʒ Φ#$6ۜɮUڣ5mAFix==%1 k#-Mz*'GbS cSYNːHb+Բ[}N, --CƔ%y2tV7r<&!DDx:BK,zD Hi$a('(YczS=6'O$΃H'X򫈐PS=BJT "wx ||YU'03w.5N"tvtF`[.@p'#Ы9B3JLB O On:3czk$?ݺRdSu9?:LT%4Y?('%Zk HWǃD``QVI>FuHXx@ZBBH(( |u'L j u+!35EŔvd9%hfg%OY7o8mJNN Fú|x4L9Gqָ7i-"R^cu`-ֵ!Jԥ[Rt  *OVSFԊ.iiRJH$ iИ,N-P0F aZjTt%@t kUD(ddu#iLvFCǝ3q{_JUKQCd8^=°wvj2:tgEH-=IӷːM0Oz&zHRb~O܎qcߦ1#ݻqE(XLi-ǃDcRtF5:dzQ}O*2tHb("<e?@6mۮ_c.hAqrI׍i/./2 EDwvw8nA ڪ"5,fnLSumhGnVGf#Gn*#5=rmUP4@jIx<*ia+[oΏ&J#{q-Bem b])Sw[!Ji i F!N1 c25>F[&sOs6)ʵ= ~`LG~B=P@8u+ԁ?ŢwCy6-kTzjgo/NxZ|8A:laƻaʓIF])cho}K-ת(m RGPG dn:U}?U1D@kcMEu\(*iw/ !Cjpm5.yx%*ֿٔiL]QrL:`mJXi(O E-78գir$f;VB,Km.UKZBH2[m!d0f?ʘ;߄%|*;1#6Bl) |:Q=!c64z|tЖJ@93ln zEXGSR |Q8;Pq#LtL։Ӧ/Hׯ@JOtF=Q6Ag'5u8:c9ΣSLI:gRpI5#נ$֖A|:b{v@;~EusC$:h :cDNWO*G^)A T1 ޝ1 Zca:H_&.Ru؎*t$)FHVc Xi3HUgg6ד¿mSշ4yI^$*KgcU -rNj~Ga`ޡ*ʵu1-fIy.6ܠ$t><4< =W*v›D=㍧orwKID:k*G[:sG|gL|9i@8J0/-bP|ψ8Pr)G ?˩K|Z_~7 y>PQ?OuR >i:H^|U nѸm6LU8SPOKrV]P.85N<£;𨥂mDHZ{H+\e3.XYP 82Ao6>4T<65QhZ[֥ Kq-ꃤ!QI#+ %$f!R_ _O+RveJ#*^ sSc.m~󥧱 䌍22@1 eg8W$48I{~ SG) P$$g:b7;0CiB)$=RR=@Ө&YI g#j$RéKD܏* 4;?$nΆI8 QE) oǥ$E,$q- |F(I$gC?=9,I* ^FF n G)RNr[Lyښ &zb@y&Tb_ld!C$:g'O:;>+WڂrȭoG&cy&y_E[ǯdXWO#&'vCZZmԴу/IǐJxʘ{f-fG]̋ qqo'7zfuz7U1U?#VIR^ɌoaM4VdsTF-h7V#u3SrpW 9,7DF{{Ͼ#}5ev3.ÌEMƤ˔isLGGT{BELn|(ͨס}5p $O4|˫C'q]b1\HJOXV;~מʺ >:ߍ'i_q1d6.;2y܎ z:R[wFC$ H Ӆ㍓ H>{i2-"$Y7V˃ gЁ*5,)Ɨ_'ڒKmx&7nHnb<@7 `2_a< _:+5eoeO[vZDkڝ}Bl[R8ێ)!G΂@\ARbH&|ȭcmx"6xK}AE-9R~0yK(x(`IJ612 ~^^|`%J&oas|5*l%)--2>o(%Mp5|k cȋp}wb$駙:KZ[x*[))RARR=@э#A: ߌ_[B50B8Bl*4ۻ遶d'pv-!!km}qwn{,i!*n& mWE23|4\:]B 䯧+VPJՂύ60 #1κx3m)s 巁\WZHryёt~Ek})ЛqW'33G\UGn2\J)6,byZG)N[R u˙qԓn❔}KTVkHCQ L!=ə\̅6_ܲƘ`d\xw}#Y'[V~ʹ=AVoi: 0㏡@Ċ!:(ʐ˖}B5D %%%Ѷ7Vc#jX&0)"Dngv nMNYeR7 Gǿ$pD)M{/.ڢz=s[Gwf -qƃ* B_ͽ)$8ƧơA0,N%dn#VFFʻh$ .ߨnUiapڼY d(D+zBï,gGh:½ 9<ػ| &Z m꿐͈&wx/LY ! ,H M%_G,;=wa)Ir3-R\Oد͕o`# %&v$SH"'IW? c`  1@,1cYDN=ȎDfWHAPqBڢTm D's1;Zl?AiDhn~BAE0S_So%n:0wz:c(t29. eJcd7WvF㄰m 6Tl|Ly8u%9JH!^͹YbGL'(Ů6<&\DX) o+Zf~w%EzcLj1 coS2 ä6 =8>:|:49z S*żr6$da#{~}VdU>Q `m( sYQQ)6m9"4IiYZCҵIS0.)gQ쇄]ܨzLoxR'jT.U}K] hLcb@;x;fHa91}֋ΚAZd~c[/Mf(Y=Ƅ`dFIQFɒo!IW|Q%%> 8i7.Npk8V䐭̈́NBA.kIp`iJ$_8=A$^ ``Y0Bj;8ՔǝMCE 5L}T8Jq [ޓ!,Xugjottit͆_D&@J%!Ǡ\ii#$BhĶw )U[J0+{2U_5"MkVCuo?oB;@)"J^<|(MYxUSOު{LZ7uedXARox9ԣp)I ^v2 D&4*)(ZӨ B[~K)q[HV؂>9Ljm??<x"DɈu1yM*~`òv^Ar|uajun)x_IeJ;c<τU:6 |ʶgLBm.hqԇ(i-֝vqamiOk'c-5f/V\U%'cW)o!{`X[0h% $f]͎[!:b+HȪl< gL-2딖ۨDmƕ#(KH*e[Rlqn &xZӤIb 6,ncܓ ڡ\0 b2W&48Е-F4}HNӴ!j]T*S&A 2Dގ2 5*mo-;R+C'_"c͜5Lkϙ ƘigU2Wͽ2@NTȒ S-0Ń'p! 5ƺI"+y;fE\lHFہZgX;Ja1JGiJmEZC;去V3 rD 79#r1f5[ɜf1V[dr3HC T@AIWd4;m2/@Z{c3n\^98N pS}ϋz:Ըa.*b6)oKe$&6-$\kERw2}gmunW2Q" -#H5ٻn3 ;H"uSALq=ܫ)u2y0MwsXL㼺:_i32`((u 8~=srv8g"*pALH+Ga9l]t͌nv")0b&u=vQ"Mlk"5Cx%"@.0wv<`-c Z\ds#0 nXƗ]',=Qi"cRv_Pͪ>tnE&"cM-5!ThhCy缗-(%aβ2ftt'@I>\ElVX<=H#]wHwug;UYΟf6wvR5E<̙V y{XT)+:70%DLOQqJ*Lh7Ɩk_tĶx}rv7AqO6-T"5[ H>gid5|S{۝s{mVzdʒŶ3xX{w)ڧy{YqYPOwa)aZi<{}E~=y*nYek䇤KK 3 :JR@fl>p`@C7 {c]h~Æv$Nνpo=M5<[DJPZMm)g\!%s {zsD9j'zɟ^#R Hޏ]q^oB,cQ#^g1)BR1%~AV4vo@ A ےW3%1̮+Hޭkəb5PÏ RһcMz۵cL ^“֥^$< +VX1Ǘz d`lLX^r/f*k*ɔC(ּdqn#II9>Kr!.s`6:!)(Sw!~!ԬPfJ moزu+, ȹ$tl}[KJ%DjT aN:βOMɊ}xUu 7{1_D0Z!{ΔRqD!@`zƒ"QYsXo,uf H0EvvKWu7N DI0F/e4w& =GBڐ ܜ@*ĖXFI" aթn7(TBJ@D btGDKYe~è1 -WEf;)@VVa1`xԋ. bxǓ3.4V$6Ae,;u.P!I}P~T-0F3ʹЋ3zqA$KG+UYwr4U:Z[2Ra#Lq}tσ<H?lA*N5:KJZBtp^6C 酓yG-xiV`:D5jJXn7$ᷝuiʔR>tA#*Zvhe$yspjz745.G5XL Be K}sn Snlg!vA^^cU,G{/y{SiաRrRUg+KNTrFT=hzɐIVe%u$akVIjt7VOٵ]/9~K}~$ 1:WP|kŤ i"vv.weo)~ں,#mY<.[m"V8pFR?P`8265BոX^{ڋ>2(ǐZ|Q@YЧL^?uLیfX-;\gd "QdUA\D%̯;of[L8BeW ҂8RCdVѭ&yyZy  Z@0H&d Amocqݨ}6W&S^hXX$HHC. @Nmۀwc >L9hS jO j]G.mRJ|Jݽ)M N~+24M]V5;ݎ% KA7m @: =FU{8.לf>tIˀABmaQ1@ߌ js>=F"e҉c#Y;:~~9mBHP3AL*T[Q :'\v7:b7G9~)#Ooƨ c!Z:ta}PݜF~$+OJ&mDm??T.s|E4J*,ll*0f % \[ի[֗}8p6*4n3}.ɫۜ|ZKj''-HH҂S=^wҐēS=dZиHg8蔳[[Ȑԕ!^?RjԔd8M(Om,lmm$АH$#ʝ[ k_ոoBTA@:C(008BuLnЃ ғ+=F0pS댫(?Bwh+ ;Jp1QWrI~E iE ~d4МhA?RmtYw,鯏)ӪG9$k:àgp(cusd)$X7ҳn''a]ӨfOP7RЙx2tV3[FQqTJӂ1998:tWG>uR3m E4EnlډxO.;^SFxQȱ'it>F?4Ks"W ͳV52N0  VY)MeV&h):W_,)dR6@hȘS%4*C) (JR:FnI+z1a8#N0sߠlyDZ'Pی3_0OaNņڍium#^' H@11N2S?Nuν!i ſ!X9Y ޔ*f?M#t7`1n@GS -'@ #14ՐƤg_.UE)vb2um6.r4K7dIl0͡N C3ƺXudS+kk5_ n@c : Q' $nD K|*Qt''^SӢ\r;N> oe'^>|N FrsD*$qL fQ NjR'u_C򜁌djGMZ &_)y P>9q}ӠIm LGD‚r;jF>9:zBH,fn" F2s$?&iM5=koMJfԜhOsWK?uUThnU'˗Zɬu 5ʥ(5ؑVa)?6Ғvʂ[O}$Mƪs9G2UkvioTXZIiiS":PJ3FŤA0,čO4F\eÕ5\zεUudI}Iu1n:U#nD.x3|x|LH"G>X5;!N8e ŭd%w$&~th: iMI : ;NޔپG#:P$I ;蟧 G[UWJRsccpSny7vڒtpu=6K[ǎ`շsәj~n%Y$BumDP\h$%JV5Ar ݀8=V09R( 2AJ@ 'NHA?\tM:YγA;qtN@);Ǡ4B vRNI HD y t:aXܐ`Ez8 )2=i"2!iC % #cQNIF{"iP^Wt,!UJ\2 [mu:S .sPIy€TiUm#8Yu1c"Hv*ԈWK\g>G*Kz-@'Zy 6S⯊*E͒qLp %P%./{=2r7ȶfrrS8O]sм f\NAd!` := cw*,WTZR;F^{ǧ{:H LV2ێIӰ#$QE~Nʰ  'xV2=d[no/β#M:'NUH=?.bmPZAN2(\NO鎉,B"mJ;q2uԂ=>=( G WT21u''#Qހ򶂢v$1cNjj͊1!2&R!81VÙ\2U|m dHBAxsOiynNoڤ 51JKe^[N4`vQ+>_:q(b7ƺpKj܅ɝgc6Iy$%KMj\SJ) 1ʐJ"Z"2kq4nVBuģJ)q-IHӪ4F eX:q篦G$ ;8 @2A}AMOBoR xCĩ>Q}<ٗ힃y9QD9Sx<9Χag}2hNV|{ ﲙ/:.onb.#mc@L ݴm.H%Ce# ʭ3 D G# ޴6RSʼn&'տ:T u,fGXI,CHKi¹LnƧp$ 5'ГnW\A] 8\Oq 9oʖZuH-D$(\C JNӠ:ckb>?:qːOu%Tof3o?Y$4}%r%!AJIVsbHdfq^~!eFyk~qhfͦ#[L"hz m{1#V RNZt ӎ'zYMmbLLh?=<C%  ;am؝,u)D)䖐pO)BRRVVt`/0 > g!6k@YζOynSJ(VӝLbuKiJ@s sBBy"8nxX DHO.>^unpu<9P_!~Ṙ}i$ qv4Q%iDϔE$s9{݆ܶa˕JĊ̢FR$Lue.4-a@Hۓh;rCumtc5JUH6/6-6f]zۘ A_z-C3eG. Esbc0QSn'j Pwv HoL"7Ņc?IFLzE[츽Y?R݋4"{.ɦ܈^y Qi~wwm8zѻl92 M#KkTÑvu*nS B~eUw\l"ē_cia-L=tg5=kuЀHI8e=c'jՃ1ϟ gxƸbʼn!"pQj+diMmbDA#B1bKq;&Cbe1dž0p(Ι]/BAW#T.xcᚵIb*wLSi̸U$8iIuTwA ؁mQjkrV 0He@ #_Я8,]Pڿ _qiuW2_dLpTW"i!w 6[׺s"wqAICmu~S3 t*/K&G2qXbFCN`s>=@ Qh:ۜL3AE30:bop4;¹W5%5:~?-i984mYMj El6Rg8|mT'ʼnUp{A6S eBWx8.ƪ Pqɿ7fXSΓ VSYĉOɗ<% -k!gsĸ{|8c~-P`7$dm$W;f .Ft P.TQ&ә,Lfs^WWtΈ_zʱ&oT\V\^UbK7r`-G\fB${QVLuEb:Ty;)@JA:$kU|YCnmcLZ6*%(XM][6p?oϰ^piqlyiۯ̬ir 8jOk땡f`+oKȯ)Ped)֖t6vKIط TNH~ 1 ӉLđ:~#tU.S.^BZ8qPN-eClcIqaILxƦ r VHrkCM4XF%} q5P*ZF$gb+N11Lbڝk0bU{e1Q 6>OEydI<^Rqlv Ȱ X?"xP*&NM u:1DIDt/)!#V*Ym_eB7okȏ2|yެ\[Lc{by@?+(9FgQGF`AR rƇuF ^WːuPCz%ךa}e]u\KmYJ I#b.n \ƿiDٵ"`r4I!V#"-$o@ғm)B6ה<:Js&7<fOjc y5"dJĞY,$#R6bRaH$">:P l$+ܙ&- 4Hmƾtd$N')# WP7s@~SUpjc#Y*zC%r%yk.Cu[R;فV M,Wc `?1궃m֪n:Mk4{5'6iF598Пu#w:cO?`#8?+m jʩ*JtFu8#I=}q$O?PWAINH%pUD+*ԓ=>=1 B6@ kH0N~=KLř~)8  :'rГƋ_/V8w ԓԁ׏P0X5%#Lנg-P1DFSӧ I]JBm(;IRIQI@ +In4Bux4;T>}Uo"Oi2FBtQ=%fRuD,Xd22$j o~Jc{rzS*`¡:tYNz^9tWFq %G 8ݞcŪDm|s8V22~|rGv|z :BN#$uc?¡ E7*9JFS0Icӫ$? ]ƿ<6% ʔ+jp7{͢w-+nA6a`@$`R؟/NlR@`']t 8x}tGbSq Lj tI8$ Ǣhw4I}Oo˩Tddqi@:$*{"q; |öT;u7:F@L! mwN]N'A:Ij]s:ѕJj`f5| COq \5)QqA8q"s˥Yr͆{6C53&YQ2x$KhXا`ki(EhyKK+QI]d*mm%8"XBڕRA* RIRQ`җf#SV"qϰӒiC{$'᎑=V^DmICƝ Jc}$B@#:Xݨt!GqL2^{`ڀFt9Wux35!dX$v]5;vtǩ$Zk)󒬏өHV0?Fd}TFf<<>_ʚ*ԃn@:dN7hsvwt TJv1Wi-&<*p2 'l+~}F}1E0FNc{i3/Ʀo'1)VqT촂OEiOAb|x5Vr\{E[~z}ht11lV$!_ƤD4-:?Dc~{ZcoIq 5=8er1R\$' @T%OENx|Hʑ2Sry_!ރ*[ ChK%(%9 g'rQͪ^ a-Gi첝b;Im6i JR iKFg Q^I N bz E ?=_hI9Д@ Fq?VצX+W&( 9j P:zзkpvB_U#Rbsۨꙩ6:" Mp ?/z8 SMek>K[^đ̟KR>&,u‘mleEnUudbA5Նں==z}+ݣ1:(|eK: Qy簖{Lq^"ghD*Of5pa9(i.\͒8ŔJ׏ĨqrZbm@G @g'?O O<Ȓ$FSV옲X 42+\U,4 DnVOg^iLvud˜y=hs 1~&bdUW <Ze8%,YZȐGP~!_3@#UIҘRiZmio3T&Hb47T87!}?gY)1[;bɸ6 ȃspk^>KP)id:w}\ SxlqQ93!0H_ɈɍRp͖Q^ ]lz;ǢNECP[bIZ 2Q֒wu }M@ab~3\͏!I:H3sf/\-Znd@dRam+ ]mД+ދql\q]-ؑ#ʳx 7Q$ۅ~թz) itYʹs2ws!+Rz88r AtDo{Lǎ/AE3gDL(f ~ pq:  lMpˆzE_FT$Dk$kEK)&JmnTK-7%p@t#G3r~Vܻ!9+}Xst`*ŷnpa5kjYJ(CGxF42u"fbdhc_qzc# /&Oݥs#uSku9PMlƓ-0c-kL0B2(U~ 1>Ib-'i8Ǐ[\,-&zׁh+?=Ce2e 1U7Uoe7ޑt/ӋGRRŚ⒆qϡ1`I$D|N$ZSOb:⟋ 1$Qj\uE*vDvm[ˇ廮 $M[zM;ȍ5lkF]^NVb³ (>DX9'sjQCJ6rX}@`Op+&%7&tr4ʒŤʞI"T F#1_\3}Sʁ*{ ٲ-+[X/bW,I !:U0u5i0X2b GH!b%ح i,qaءmp ĄɌ#$ qŠwlG3@aq5=N M~U؝LE' egn6$8DrWU\uM#Ζ VLf0/ְΝA^?GL+'X `NH3m8qN@*L'VTMs?o)*KK sbR7cmոS߶C0>{`VpcpL1SI]opmð]j%fYPD RxD!,R@8%88N{VXx\ukE6ڬ2"`#534ylFiCꐦncP l͘"ٮK·#Qo)Tuڒӎ*/0HtbXmC \^ FøkepN&t!G<;$W-m׶oP!SP`z<85Kq H"A- 74$Se n>രZy'D {ve!&-@$c79|*'')1n S iCJ rwAqsOy_7+0bc'Z (m?/lQ[bۤ=UvUQ˺ڻ2FLd##+wz컟oUd1*9Lx[&ї6*LHѾQiM4g"ho:IRmiV$+(P5K >sUhij`ځ[fDRXn#WZdyǴbtU(d '(є2tXxpq.ANut@[ș7_8<"=7xUs.gh-y>?n(hYM.4Pk)6]n:ښ%@䋱 Ox;iF~(fBd:Z8VܥJW˃gղA;VJkOl uJ&UEu>_.QV?Q? P gLLcXt+%Xʲ@1fr\?gX'#]S tj] h ( g$tYmL7v0s};!:8 aƚkaL߹s a%'. vRIө#XDUW?.Dͅ{?zΦ,T ۭ?i}-V]R6nҨxS OR+t8P(%%\`dt:1Oh|~j#CX΁9#@I`Ӟ'RWh)u9dzWf TJY$d8RtSPXH!;Azi3酄M[ d|g9FRN l@>}5 EdM:ڒ':n>Doj`=@\c#~T<*hx'%I;JA8*ӱӣ$,HXa$4'؁}t:e1o?7XOeh$z~L(nP>RVղ(YjD4ȚXbE k}LF%Jc6mON fB ۍDk2 >/qm F;uUm΁ŚrW'H_9m1@eǷCOSVp︔Gj3Z␥$%'QP}o^1V9. % P@* YJ sA;> w(xm@T3`?>2uɂ>Њ~Hm?HD^:M W I?('ASIQ?3ҥ/P9u‚':cN2MxBR 4#eJN:$G] /9;:&&TJRH۪ނu#PDmߨSb'ljgnRG;хsܰasy"LqV LHޘ\E xUUJ><#%e  )ʃn9r}pN8,_ƕryOXT};\Zga<yDy,rC!#U+ •c AP ūRT*?%n>/1/bbɵ/J[,Ѿzfv#冀/06dvl2EqxLpt Œ ew vqnH O蟦ְchA䜫z%-yk0>9߸Q|G~zMm JU P%9uYgPꯂPQvQV\p I|1t#Ɲ.+ 4ͶXh+}]. ԾGQeqY*u~S:wK)b"D]JS(I~QY+w1;WḆ+j)+**t XHBh6An!mRزB+_Y"E [|֪61eeJJݢ݉t 6$oj83e+ܢ z[Ho5cE:"ފ4uŊsanmTQkxR$ԶI1V1R! DI<*kLztWD85B*hkRY[jIq-g-8(Z-76CDEAAG&\bISCp/~򭉍iQۍ Wu[Lqr[;+˅8) %&N'R`H7đЋ$x Dos6#**2f qa~ʐ',_BfE{A[XJI?:T SSc껒@sR0ŕ٢"LyELrwYfdYl4 &rRㅺbK!nj;[JZBQJ045Iu߈|ĩ$ bCL=HJ&HJTC$%kh2aQP3BA$APF՘2.zH7fĐ^zݗ]ݭ=]>|HնLŀ傧ǎj-1E!\n @$c\vNHPD1rִ7 PmZ%mRef]e"=kkFgHK2b86FBKA&.A3b#J;pMYT; mR'q-'Z_ dr0qUȢ2ҸvtDƹ5=U^ Z`E`q!MBv:&v*u#"i&MMŴdH\SLyCA%ZL*\j횵ɕ 3/YGi&d׋ œyu*m"B@`TMV@ݾTvbʄv;6F Igt;հ$s +,jQ+6ԚK)vǓSum*, F؟荵l?qflNrl6-;.ĀXr><{@A% &"Ӵ֝:y0 KrȒ v,pBC#DThɕ@i?M8I]b- O3~Z pHi,GS?Ő %JQ@ ,7*c%(  V@2*hT"O9:HkK]#qI6@П?>x\.U*<n<6R잙#1g; QgEZ)Tom#F7ުBFt ۸Ċ?;lHsM@DT/¶sy/VtkvT~\k˾/738i12_:UYYzaU)Eڇ>Wqa. Ǚ >SfW!9loc=œ7dvp. Ьf*usuUsO>?e[s[wǓQGYqne|v{Bnk%:0s_۷ގ]|ͭ#ZÓ>ۖz_~'dtDR6grFՇ|.X%[mcK<%I8A?6~Нfr iW%gcI$PDWݝa J.o#۬8  9V:v|iL7w{@CiCiJFy"c_ sv&3w9/u/<,6#\v`ґ '!͏*“ti4hOHBH"NԌJ4'N@Z Z-D?0?׾3¥‹XN/g98Ӿר N@#\OɝAR7&WS)9ݜ3 ZtXm+4Q꬝8 >UՆҫMR?@F4>?jV'R4쑨OQgl񟍪_ğ~>:k5b@X;' ±SԃLS#lm);@DY9#)8@Oo=V|bO!(AVN;u\i:^Ђ4]6ɨ:yQkpAY)c0D,ԤL g:6-F(4 ?=FGG^ךbTD$`A##@@:| 9R{hD$qck&DؐBb0vPz@d%g~NA;I0$PIDdv'Lr'SۨoLD|p$ 8yAayxhFp>cDIݍFڢ}5=)35X)2a%+7pu>U#RucE`0U:!f'9#RqH*JRJ&/R|i2F0L|9BkNE.wvv3 ޽MV}y_i3| d`cB~xD'v;+;2I'\=:'f"g#*2sZ F0}5=:kKZAM{qaykZŀuhs:($ԘB$:~ǧX#J%XkʊZF I*$gD:#sji:skmݾTg t`h_rֵu k5x4}M- 5#8 i{$th (#Qr)9|AKi~hn6H#NڟˡO1+#$p*(vçȠE,.񯱡0DjqUP,*Hf+iܿ)B'8Ќ=3ߢF3&x׍ddcxNNI:gQgץ;yTKi'jTTF0P(m8|<|//24\(BP?: ^RgΫ5CUӭ^[E+%2۫SNP7';% Չ5ݮeD3- 6*Ԉ|K%؎G i%z%-%zD]Bv ?8R:.>hqh! tLcӿ0/#tŽB 0 $@?B+;aՅc] Ǣ3jdXs 9<?χ0]o6ᢓ/5u&:m[/w*d@v! R 'p#kWe*JcI )KLמ+Zq[_bs=ŹLǀb%6Oo#mIat TC`Q'Qջ{6̹0ۨi  ^ydX7(L-2+6[qykIJ,#bQvaa<9Ifnd L>q:* wO)< ;[ﺇ!c*tB֒$%̤xiqHbBsAH7o~ZQ>!O;c%&C>ҸX-Mq8^${2ҔWt|~{iǐX~`m51D4k8qre.>%#< R7i9L=9<9|+k. ~+tmRDƅXZm 8T`-{+ZA#(ͷrBƗ"M4ڰeC˙#B@Dy_2䈕wY\*rKqJ‘.:y< r9!MD3JEKnOYC.]aKL: W^up]ޑnP>$d4ùIvS* mS6 mBDxU#v$+K@N)7k,uA{bMWct r U%BXI&fAVj߬VZ}Nẻ8vqC!;Dt"CQ/Sx/y HAVc&L |>s&H./&Z me+:yzzk2Lv\"1k!J]!THbKI!@\sz9J9k(-K5]QEݗwpIIW!yQylyRŹ* ,Y5=4K" eـ{K*$V1W? [5;9.i]%62鎈RiKSeM) 2hbXZ;3*j-טo伆־qkL`ڢ )܎gfT.-ۭj굤;t}IϺߑ"i(f H?Hbw,3&`Z1P;3]@jhҪ'}-$#f5yw|ߐ]Q.UlwXߓ9*e;z #f bǝ ,$`%V7bhAT^@轪_S USɬOk[j;_FRۥƞy{%.FeG=- ST HEeŚpʻ_&5%P`ImHcikEE7Z)QCVIRhD_DF@eC*l< ̭"d]bjE`h h ?p[xtzw1*7 0fUIkbUQ H[XRTݺiQݶqI"km}\)OB\>"^6å2tvѝBf/JPOӷdb6Ie& :㶣:ף '^‹W3J{'8"w_J@Yy+9zteY+!x(jv~HM=p鐓r@{N")#J!Ϙ4'Zw=KcZL42Wb7c^X#u[XhIg 1ݺL4ЌwR28?ϣhQ}u ױݪrrN7'i*a)D 2Di": U$kP kq+H>BbŊڞ}4KM (THg-H^F)DpqEvNF{Di  RG4I9 ;OcC} 6ҍRq;Nc:`g|sR~ |~d$oˡm7[;3CF>)uzCӝq|dU ">u\8F= UHG€#Tw g:4s{Ғ<7i-jHBRԥ(J Hm>^>';)u2+Cedwk)Siuf1 J~AuJ%iI!L\imC, r[9Ůi uwR F{-`ƚ!If"㙥#_Oo%ȳW]U_ q-XTΘb)v3l6BJR0@X\v?\Td*4VR]yoȕ)ӗJ[%<-G'h'0X*A=$+'錫M}: d(cEh ;3Y:]G-PצJ{w$r:8)=S[8dgB~?])`N>ύ1IV{g9 'z8L29=u|z]VKrd|Ӟ)9h Jh-(7}ƚ_$iV4ǧN"97(Xƙ ާ$4VvH~ fd#8?2cY gy4&)AH |k3Q?tDʫo3ӟPUd' -vJ Igә 7 Ē=Е%4s^k'|aũWV c\@ SBt >Q1[N4'wū66c# Ɓ mV>hK?ƃnRF4Ƈ7 rpI׍yO:”IJPG'X%Fc?m( X %NIV~b3:FiRƘD G߭>m9S9Rs\iZ$N V1 r>lqDx֎M(dBJιI)O=!Fֈo+\nvC1\tA9ijH1zv^uS5JTT ;;s:`YnO@H1j+@޵q˅.*U."&֐d0SM$Ղ oRB]G}kzJҕݐ:RQ" ֹnt8*@'9 Z錌3s:n f14q=@A]RJќ J tON?GiMkPĬF%CpIܒF0;㔍u^lR/˄x>4$4r:?.1p/$TiؕVJQ$$!(+y,a! N$74C0J=り ͳ+kۘ!8$/ns7bZg'ul;4^Qm*_ sѪjۥ^kbhY ˋf>j+Ŷe*#~Wzw m7@G *}1}`w!!?=Ww6U@^]y ǩ.oOa]k]ΙVC6Pr ^P6^O:C+x뢐fsٰ/KcÓX۬DizuP#L}qs{N(lKs{q>׺3;l#omҀ7NtFq!QraTKzBChi5b:w%kޔP"{. WTmN eő]kȓ:jt&|/5v&G7:kʺ=9 JLKd;]9P ]$KOʍ"t%5)XIQIoP >C.3u0l'[<ȃc𭡓)8fElEf=s%0,3 ?J%֭#N8[\"Pq1ipyL7a3:Mͯ1Ut6{+-\\DRm\ͅLڼ[?R[)ARKA(]1fP: ~7zL(,+go[KQ.+v"E,BeIyٯePԞHRO] nD&0b #Ж$66UuB'S`LUd6wOR&8qڟ3Q>Au.aBG:^͹I`DE*̻}M COo`+jH Irqj;f ),D?RŹ/쎷d:ѳ>jorӁ_X@I 8[$!V̊rߓw G^2QI3jN/M]"ǶPzY?˄JS"Q⬙i-km(3n}Gj7KX+Kո8U^M̈wrlHzT\h;e8v ?D̓qbvSxb-=F*wvڑһUHfl h\MYYOd PDܐZMhxf]* EiMVԛZa.'ޱb2`v"KEĥ(.|Yʽ6 \T Ro"i7{{Omǿ*LumRw>M-!"E7 $_3c.?QH)Cqӹ}$7Җd$".TbdǹBFMĐ Pg+$/LYBK~ Fn #l;9 RT!9?rdnh '~ņ,r4]&(/IۻA*4FV }C ?LLy5ʁ]7] b[*-Zl TU)jB(TzrۡvPd\+;"l 6iVRBW}JI @'WF_y0nCn7"D1rvK\.KmVB IkUG?Í7%ҟSKW4h XJ^ÄFmK))J@ʉP)~2kO5(ihmǜW%N ϵ!Ez[>=Mψ)@$IL~?er-pGHs*92f}4uNJeHmF4oKS $-PTLCFU c LDO, ƴW-〦*Chp! 4ĽjV[ wn':KϏ"#15Kk`A8D9+KaZ"8m8!ҹ,.;8S ,*v{ G?w.&a{/h-:\-8?d:?O/H nq RZu=v:Ve[W[ ̚vfgŲ<d4@>\ v힩M@ȵ$ v;gQGx>tAAQ'Lt'1V髁v}[t#MA,Z sױRKNK+86㦚}W|:~a * @4nH%Oyh?11`gLT#Rcv#$G#ϣ&"mJGqֳ06$>UQIqI'q dA܃Oç'WМ=:&AҼdx7 '8ݾ?Cx7+},2k:ueE@g L$@AXgNB<)/7jrFt=,i#Rge`'!*C>?U9Y愍HRqor АDm#֛eOTXre0ԛ:88;%ͩ׃-^{TF@Fbd~Q*!`ɪ~ߗ=ք9*s(ڲ%S>.ɚ4(Yq u T'LtuCY%]3yIKqMJ%d q2E@V/-JBj4ܩƵkm) y2dGP=3q(R@R $H8:G/3Sn’(d8?sP;}:֢'#צUƔ 5Q TJTvAkC9qh-ΉP͑?K$혷I >?:LF%IӾcNzLyԍ^)CakZ )kR-J@HSzcQ?B/H:`x.N< ZVioE /,n;u*o*"K3'ArpeCɊ%>†P:qbf:6oI}?vb-ey첶>mcPTAҚ[҇ HϦ{I'R:wMAZ@+ ;5]5?N4I2  'p({twOw롶#+B@k8޸X#'nvGa)$ROOk7*#=ƃr>9H:TAS!ǕgCI@~ :XUcIC ^˅I iS"NԆՖ_aa%aH·c tw፧ՖΪJ~C\5i̟aȎGPr^0X_G$HAp86~\NĪ17YO6u2 7}S9# pC}Ŭꁥ.-_n8܎A?ӨTrM4>bTT1=V0%~Oi Ӄ폗Y"v?TS{]$p{GzX PPivq35!z|z+2Ӭ5A9$kO S T4IZ21V'Q죧tgR@)FvGSKv# d#'9ץᤨ?mݒuvڬ > tX7Mi߷ˀ#ǧLz|(<*? cvu$9Qdc>?:cL w|ETcZBIUޛV ddZQdЂ30w(g F$kn943oʅ 4 @kϨ$_c=PHAq+'.q9ԁۇ5cr$dj=PAcD|*ۀFߔ`}sz Oʤc`i\ kOD؞u`%[$G‚$)†~դ|)$^cg `°;tb#V$H@?IDܙ4jHQVuԀpp}EhUZMxЕ mrUO'=R }Lc?U?(P 3prëXn 6-zP OdIRNTs\Ӵ|~4BrAڭ=F J*$Oǎ6NIE&"oo_V_/.>cL<#@W?CoxOvQ̼qivzR"gl_CWdIƄ Mن'LW- ڸ{c\lDϏÏ*eK2yRlIm:.mΜ\L.=&CSu½`&7UhG;AnMIߪ@5,<SWU?ĖVړk1Z )+FFMN>!cH)e&gxY6PH:n,*rJq+Y$($geD1wl[B4Gz,+lEI?xIҞwˏXңǨf9Fcq$CWuz5y %1 blloW;?許uOU'6&rUW<߇3,9mJnaxLmRG\y1tq^ئ7 @5TfǨPIM%IlF>'KR H2oz'ס5RtrchAb-br䱓ci<ɴnw@ 6 X"O{UCR3ڍ,H$HoQ:} FSM#CˌQs1zp ky?tRN=ikGI+]jvS[/G-2l14iIHmK#鑇V0z}+d &Gʲ6IV&ʭkG]DseʗX,Ui[E u#{^6 uG]Mu{cLF:AƶK&NeOtVZކI2jIvM0n&``(1q: o6L ys=MnhUc[JvKLQ&4iIvEjł*lYJ#Bq;7S DͦQ'SuX^ku64nWU_<<(;sog=Sp,>ڣZ.X=Y Ic GS mqu;,/*3ʨ,deSs3[>ɤ%ۨ܅&4.vͰOzk+Tzm2^ I[buJ#Hmđv_lzYՆP:Mw9x=N{Fy. *-+v|چO1i=3X&\Xuߠuβ2;M#G)Y?ym]ɓ'Nڎ6!~/sW0cFdX }5,E^@$\W b,!_.W?okRm'b:zOo"]`ŃnV: ]!}_{.3@ ]v <0sr)_ťCk"[[^rc<2_Ā֐߼ت$􌔛[92xZ_Xr7N`Yr"Wi&u5n'fDt}G Ma[ Ko![VPiwzKt؟R[A:M9iNKrKK:1yRein9Sno5@ 0)G>~UW\ Ɯ~1T4ڛ-LXHy難IaMR9 ;CHӫ6ME]M<@*l!vLihi?ʮï|'-HT7ͤwݡ|9'#w~P9ZPN4;r;tt@Wdr!D$i:"EZbNZ#CqAAZ~-@t B'4U#ZӃ~SB~9vA& ~t_vHƺt 4K(*4vUr:6#Q߅wa)u һ@Kz8E|8ݷ@8O,kIX +"6|Da%}{ZH`pG 㡫ǕX&~u޼u[ +>YWJZ~;/6 EXT6ax).OtMCQ!V"Zd$! q mJVR q[֌nʾĕ]Kpa]&T\1XjS ChKZJBJ\[m,j @$o-6Pi [RP!)H.-eJYJuHxHx)  2sۦL- TGDZ}pHFd-ǁN kn ױ"hA7IDZFpsGM1ѡ,4<ˆso NUHB0}>$D{r Au#p{1+Ν@m_&J9@z!WH +=F;c?NiR<~t۶QVs':jECLj1Ȫ#?hff3Ϥ>[[{IP@sft !ǕCUW?=qacۜ.tި'y/)o5LY ߦTBCkuTJ-msL!S]D16VDzjqSmeD,<} @VDi4w#ȵ1nl8m.I[aDOU9~WVw'Q?*ZGmu8N3w$(cvӡpizo~>u%t)А2N8c:*"W@>Qnj{vpp~?C=:zhןPF6=HNΩcp4壗|*? ( ؂@t=XV:S3z`H@zSdui?3>@Ι8#:wCW.oΘLIǕ2JrA@'LAtJ”=1Nvkᮾ)#A iӂ2A#v@;1VU1?D@|i)'Cg]tNɴMH"n/MA#`*PmFRH0-PaJ|}34ZzF߫WyʂH)8@H#Y#8#)`RNpI']CNO' 3<'J *pԎ`k0 B+㸀RS?N)@lj@8Ղ;` aDcun1>U $`䑂 1zwR>VolQQJI8Ԏ*iP+$j'=&J&M: Un0@%]?m:S`jp Sk=MVJM_j<##yЍAq؁:hKb@ IVI;I5RҐRVUM9Ҙ-*_)zTxpFÒ,,,&<*loxS)),Y Q'@Ԑ.nnWom$;XA/C>DʾCﶻ6]S-hFMj#Y}ߨ~}ɑ@@o+dSN J3N0SĐ5mc2.V]ݷv 0ds":}EBXiiB"ڑ!rkX;B!7CN)!ݡ;v٢ -$ϕN^c#]x3qoHb؏FW{6Z4.QӮ*d%IP &~ZΆ ׌pU L=DMn#}6l֨VV1vCݒL۸N~ lGr]oq[Ywp.3Ƭ Pʓ_j5Ϩk!UҢ,ipdiƔXe!kKYYR9=#@I[mf5iM3:Zy篽.MWƢ+$YO{ГJaR,a nDfԅ&@ Vvݑ&Ί$M@M[l'1 e&xXVX^ULxXڋ%5ZeDG $8ev)-)M(_m֓H6m iv; JL*OҼdX.~Ki\ZR~D[|%J(Z}aRPJ0WidȮApn'ǜ^N,Xp:`@nKA5"}kѤӺsuo}e K)2ETJĘTejZ#2:AdǪ$yl8¯DžGحC -B)?2L Ks,!uז!I VA۹EUK9%A$:|of5-UL \gHqj!K= Whh[ndJڿPBOY/'nd۹bvVNĞ7OSǑ&<*FWyO")K1 ]GfcVސAsNiq+l>۱5JAˠ1Ϥֲ!ju';8:cOZNK!6zI3m?HTFro2<rVb.Bw Gl*!ΟnTqV@oT"璤|~{p*Ȟf Tzu" %iC ʛKoKpr9y ,IPKu$F~tdjىV6}n!vD$P"N:w66 :q`z@tItC!~4I%:d cL׏Ըf()NӶ;Ţ*i%A@('U^H+Ɗʕ"ۨc;qcQJd^,^$u n5L#9"Je6P*HRjOU%[ƌ:uNp4$c^`h8ORǏ:k5ے~S eDpiQ{6>4Hؒ:'㓧Rl@ OH\Fp? -F H>) #Փp@+qmW?$#IޝۊL;wʬzvW>{=2@Ν|!fy(4#$4'Q@nǏNi3@*bǦA4IvRI*2TOOEmON/1V61i@&xdueGSH=s$\Paf' DjOJEԓ"> T8pNOLFƘ'AM8T4Qd:zRëZoqzhpq{wD[=5>IöTT:Pd l@ Nv989ˣ Bmu>:`qP*-/UP6! BR %. l:PNTNIo%^66&KHjIi>nPێ )!e qHB€$ ۥ,1G)ҐdNQ:k>c>>:iJ02$cUcA0}GVp^}?1J^ htH:g2H?ۥy*\4AI낏pYⷊQ)B4Q#qzab4Dsh>u]r %Ddg&RFB8"|}ՄII9?M tbvBx_~9ۓd`9}N;HT'PD'i0iب?(3g?6NPa?@?>?P ǁC'` % )X(Or> %x0@:(}5)IT[ 1 #Ct>S}:g&3Ӵҡi@?}zS`Y --0pθ0212ze@u^<) \osNg8o*\[?qjc9=+c%)yIeyiAl829W{Ly I䣉R+E-x(O}ݿ>r)D{s ׸Ke2kJCn) 7m~ݱ;^~6Sp)UxXy; 'Je*t4Ds#+Z!9T6lZ}ƔBV=^\%PDZx&#!\j,$H6Lqڧ$ם0ڪsyMO<.HyhPmd,EL!" E"H" Ov+ ݗ+v-Ӱُ"HXIGխpn$?[;큶.L($ #d+n L#ے:i$dV@v&8<u{0Q׍k?Xi\|/Aw~Qɚ+CSUR|Sn--.3 ә&%6&W)x bXJRD+墯?)&mn!y3׳@%HRH$OL{W 3E3Y=3v#Embn.ʸwnW S'AEd{r!zoz Di(uH[r_Bpĭ<$Y 'u*Ǒm-Ѐ,fbztͫ~x0n OSYyiVmCe\YbmLC;'k/{驃a]OPc $ HÌF|ˠaK[`SIzRun8Hf$GŖKxVBԠv )ȥN9"O9ՎA{#uR?8Ȱs-֧7I: ݙmHuupѳzUCmO0Ƣ μ$jJrlCY-61WPbyݜ & {D%i;Df.DHҸږ[SmI0HIkyc;1Ul-]T1N`"hNIڨwzWenY4֡ie"0rcI_@*cPO RIA0wE TXIi p| y:4L5-^b/jdIS`"8 RT,Ȯ`O-܀dR8cEQ/h2Uݸ\IZ_}y?$<Ĝ'3gamū.<;XjD;zv95WJXQS:%G1, cρ;&b`^Dg[k͛81(hIrT ȕ;y{T}X^Z/|9&lWq'kK(JeꑚގYt6ݻCŔ.\J1`0K 140cl{۰׍,c_OSR"EGo!F6q*8.KuHz[y%!)[)1% cjR2?|IY [?ۿ}6C3$w`:BHeT|ڠpq0d.A?U %%Gxg8%~/zemmxgVT&# d7#aƝx Ln7R7D Z{W~m}oI03`e|#͏#*>RF,^9W#dW$;M{'KfD+=(W*<9!!P#8[ $| lO0!ȵ t0n#?mGr 0Y`P5߷_ ?!j'VjL)/q/iIq2  5evd ~ mut\v{͓rUm[u$+# \Y9U)HA.Kt3!)a) 6\Es#n'+?}[j% up33VZX",߁I.js# OKABaƚ-a.6ta*;&@bZ!\|pqb'u^OOHf2Ņ,rdO./[Fmi7?N@KNgJuَM2! +cP $&+ m'm$ZGcnxMa+(2Or7rUUQ{%_]bńZ"kL 8Sh,4BA>om%7@lGA)zVҬvd= { `Z\9LCM6^> lHuUo-rvm6c<IjC[\.J$a;n#iDk\.{L*7`iT% ,"ˠX3R#}?I'j̕`Vc[%0ԒJc`%n$]lt17p^DI$GgKO qV}@q(Xxfsw:6u(,e$s)$Y`kqj5!$,{u{;'qP u cӉ'Im4?QHJZq”EeG.` 'P+ۨnt#\GlnMo8ԝʃ>{-:}&dDEȄf$LTr]eKQ>9 J@`4!nffY¹VVHx@2dn @ T2yTKK+$̬];PKqF䓡@SF#+ =r2#sE3L^hu H_3"ExDk?a.,r|$r{jzLK>-L^9%87^yG1;,*o "fi5/keFlO׶i/D_+qպ ZQNˎ` iȯ-2O2nOkǂ!Z-G9²1aOߣ@"8^L3f$f]zBi'@)G HQun޶? "]^y Wٖ)%Fuȍ])QsiF)@?0meR{y)YzYd}PeN6 )JkRbUoxeO[Ek+XЉ{ yI~c6u=Z%(' r)FInڐ2}rnt F$htVr{RLG PdM`z |/e|xA j~:n1:x t(kܓqCя=4ӯ€@ IiL'*'$'#BsLR, I[Hmk20u#N5 cMs1of|Z$L]$d0Fۦ$į$+Q$mQrCQoL 차#M`.ed$YHU7{2 lY=i$,whj#Ugy$iLXU$W8kGcHmYRi;vv]OV0<|)Ol"FL癓*#DUASHZ*RW꼤 V xMWA|fIYdoq#{(mRw{irJ qvҟT2(iBAr;v=O_`mx%!Dw9Ԥ:,oM3KEDڀHqs PCʋRs R3|AknP&PiǔZR}G̉N5#q_|{`c'6΋Yqsw)(B@s҈Pۢr6鑑tj@,<D(l~]@Q&Ғ,*JJ3rpnRr}N>x)oEV~9s\NnIT7TY(6L-{JV Ugz9m4Yp훅θ{.u]5/;2l[fWO# ;FRAGjR_?K#qG"Y͉k*EriiHQn$JҠp3*Gh1;1cGl!-`VrNjց)t (ƀhIԈE>| J v>8s؟ixQ۵$q_(?({cӥ?(}ԑ1VG'qz頷K(I5۝tt(RR$~S$>lvtӴ0}E!)%cQOp}|ǫ;18HH?/#?>m]jeͦ*g@$q[4ztQGob~l cκc.yOLc* Ԑ x;5{c=ӥ;8to*(@$d`#T$2QJ]0A0QZ):5)$`|랓)xuhGIA$zkiϢ,l-R֓<#iO~O4T1Bħ Ѝt' Ež'N$+ q靾9Pe>Gq 9! <ze?;1A@z5oC/UI'iv6_a[Tˌ8nWmEM{[*Ul7 ^ᣆ>_ASoU"/OvISS"DTVd&qqVim֢XlC~4@7*®ZӉm:OWK[2 7>R[U1! YF#H&$(h[R v coo]IzFx ",9StriޝZMmQJ0ʾ aY)P0s6?UV0?2I$`'%Y9#$u:/Au5i,+v:#5 MHEw`(V1JKM mӍ$$kA98߰|ZV  4dNG(^;pǨNSytI@XNlI *VЬ(*Jvu '׸A@HQ^D ѫ 0eD~zҒF)ԀR0!^qXRȃ:5c%ALxYi,y$ v5bu_tI$)0qR/qlƜm>TjPeܜ$Bw')PMb&ʚ`NmRD9H$| tA_Z;Q-gFs $aEMIV9#`i^^`vF!8  F@?ӝwȖM>9TE|_xk|˾`^2Gi?ܕבOƪy1ђA}9ê,-fXA%E/v/i9;jګܓ V\I>ϋ$xL(S_~!B׍>G/XN!6W\v/$ L]u>1^vcmsvٱ +!wFv!L_/pd`&LmU$" q;dN1k$IoܑMF3!ȎEJYB0\YJT/)ADtsUvM䱙7/ "ë(%RU"CBDU% j-d:C GnQuQSQ 6G۝ ʲs"EtTO-k1د|ɼn٪6$ͪ^>6vd%KK~-x^`v(0AQq&g0Ҡ}lhˏ"CbƚE՜ !o!qt6RXudVb$|$qU܂mhMgHO7"W:ĵOgU9{F|w.|l<HJorQLÐܤF 8U!$ʉ#Y6Az՞Up$-nKII@Ob@KjK*’~\O^{GBXNi^g(!̩2pH5o&=,bG+L_rL ˜][k=uz"d**nֱ~UNariTK[H{"pnGW0jI*DfIԖ[O\ؤ@'˸8df?70=JX?"'ֈs g)|{ȨH_qvU$UJ_h* ?OE|ؽ%? Ncc$z6f%KnOQvwem^{S| |7k]:*AGIR>xL%*F#-ic#ECp*~}c'􆒢E\d[GIۥ6$X63.fa"l[S-]81iy |gJ=9unIzLW;b + -;*;mHɭyY !kmO x;GgՐ wVQ"ƢΉhjC{ReV=ߧq,;Ԥ+兏bzL)m1G}^h gbcS]㖯5b*ۅ[c_ݺy"/W)RLNC&G`d E)BT҃_ګ-, Lq}M_lf,Ɖ{UKϘS5XV̮/؍a!41%v[%M㋂$:[ i2ddzUf$$LaqY6#"6󉰒15v3DܞBB{۹T}1erT 9DmYM{n@nha\o.E!edxƚ sr.?kƒ tE]3)2= ףJXy/nY@q47 L'H< 9#BjSd#LJۙ5lΕBVeI-|ownr4`ҡM1zX GTnܓxNtKq"U{oʾTbzTƬ*'m8Yp\O4u孭0զ|ngPuiu;>/ S pHI$I9fvqv\H{@lG_XYU4Rf ^NT5.UTSۏ(խn|B6˜7mV=w^١B; ij(f˕@ d%L}O3nl,%E"#%q]Q+sx$*-KRjm+h4nq.NPHƜqn&@L, x;@ &USmeDĪxֵ{\gðe.KS/6,[b9e1pFhIfDU'/vg @!z[,#xQ'z&/*]?-eL䖒F[y^+\x̢B)QB1ۺݱ)% 5{tEr]s|leVڗ*))Аhmc#X#{H Ŭkپ%ߺCۿp0 :%T»\ op&REM_I23d:[զ㖳m&ZtǺnXagFmf \b« m+EE]ۤ}?T m> '[+`U\JڰEedG~ʱkB@yCPHC1fؐ ^f熺w2CdfDlޡqG KLG)_ ʹkP#G{+8ȮM+8dt=S`,X컎.ӹ!c,Cn,gQƪďHC!NUbCLS+Roؗ*Ifw&jK ۵`'̵wTMbCկ5Ze̓pNCݭ پ*04^V zƸK3,`,nS~3^>^C<_TnPnx^!ùCjL1s'hW'Ck0w/hTȝmb,%A35 vfGE1dl{QԲ5 bT:%,- %R.?nD@:{Cf$iǽ7'oeӌ fou 5v3.mP/a$Ĺ 63aٿ_HGrM{NL_Z诠JjlۑRl7n MʼnP`Zct`Be+6@*Ɩ½JLȓ?-pajq  -Ruj:y.QyV$5al%LK) 2VoO|=x|[Be9ɛn]k;eCR![HKJu#AR*}~ g'OJ[j۝@>~Ь I#Mt=ơ}y|(Ju';6eN0@d{ 'o遛6xV $ƿӸ"8_ꠘjq΀`d~, ͛M?B;'89Ngi:K;ADdcD7v#LGNlBsI\:##*6^ _ $j3àCo9PB1g$c$~}j( Zp {ujz%wiʊ_jBF0@@5Oa2DD5 RUsF!8H#O˨H֣uȃEA>y(Ĵ`yP_q %'QJIxVE|}SsG9 u3` Qr6ÉJ˒`]m6Yr/<0I1e2Fߦ4:}4Dﴨ|xO367Y0&4!%C))H !>?:&*b$GJCӣc 8?ʅ=S$`?ϩd$v\0ʪ(my7V9 HGn?HX>>4Ҽ wHRrctt}XmYʎH (+Pq~]16G2k~~?dTm'Qg:kIoُE3O}6qPm((>]~ӬHb Y#rU,P0I͗ZB@04#y! I_1*ݨ; HMz'j^c󬍧 ܝ z]{Q.N*> |x҄PԢ2k wr"Nt4'n Q䌜n6^? G %Y98Ơw1K ~JI.nØr*>¸WyqEο弖%TV Uq|paW0`O:(@5E@`x")#WRx}x5aOJLD/1{\1**dRϹ~ > 9>B@ȰOӎ Jͷ{xˀFyi q]"F 䬗?\ճPkםacCKPWSjv2kw]*u6 A']$kWw ɱX - Ҿwdvl5(,6Q>#oڈRR߻9q\?#AMJ v ;%Hb&1`bK|`ͩް-\m!@-jr\DSq"rtw7IK)<ڟ#bǐ1Ǎ@P`@<䙱iч\n3bK"D,TEDGSiٶ"0 BK\덃@M3n̉;ZDi:X}8ebLY@=Ǡ͒I(̆7V*"rK[ 2NuQUKp֛'So:p[6-u9ʈ5"K2.i V-D+ Ǯ$%mJJ[vI#$d733jx$ 7H\h\I5څ#4 WGeA$6aRwuﱖƬ˸umm0"vYAǻ `gĕhI4x?Gnx):XCSQ-?zF`9 ߇l:x}f'PyY)TH~ÏWِ})*$ky \xǷPK1n^BIlDoqXc9d0 JΑym/xW]?R \q^mG7)rby2TΡ¦p.|y`3O}P3XFiN0]DP:\oy3Ai|y#9Q;T mIQkɏ 6YMuI󙰮>r{}(JqRdIZmi^S>l#1]HHk">io[wwaEg nu5װe/QrEvKwJeW%ĥW8)[Z+\{v`@7&>!tHtӹVōKet]#QŀlkV,*5cJOa:"ߑ)#Jl]U̓ +iΠg{eb`LmHÜM< QTpX~IťAWk5˟gY%\{KSeƬAMҶm[T`5Q$Û}$M@Lr] [RLm<nvڧDZE.ξeL\[.|չ+j_Xr&27$mdZ|ONF:-b+~|\˂0Ss`F31i>HexLi,T۫ [DS #>2Xy7`p uF;NtGmAli-_H&:l훉bx Zĺ4Ҍu.-IINCG{m"t`κ]#n'h@:$`y qvy%}S1umk\l2zw6ĨO[,qJaxKp.Î[LnQiHv^ᛷv#1 $ 5pmQn+̣\@}뛕7j+ð뜭)ݙ-mJ; @sn5GTW*ޞRh&GP 5zQ yfO$~lkKbq_>\$/rBAbgٕ>C `Ft<9YPbQ -127n6l\Ňsq?DCr\^r\%'`Sj׏#ƻH#Iܠ(1p YqDžV@QI=/ULmneP?y&ÂY:|<ܚ҇α*Qn-8nju~IhmߏvfS2ZY16@\*qRq֖VN\8u\o-)WcE\F4KIc:4enC1*-+=ca1ılVc?UY{w\hI;Pb YgdÓ7{}jTQ.@u)7"V&Ud+ytVNm$&̘uygSfNc H,?[n~ okcpgF 2 z,GVTDǓxOU[4ڿɮ\se&N^ÁSg 6KS[ed;ǐp_Ke p,GK4DxŗVq\c&V?C͸ i L.y[>rj"T/WWg#z\J䔵7T]\1 j*%o9~P50'3kȞv.YΖ'ȍrRJrd9L̀IW+ 0wmBRݠ{)TXc)7-ёLˈn`S۩.[sXn]X.Rli¡Fan'ɳKICnˉt-:,0wTŌ]pX/8uU1$VxWߊ++qkỵCbVDÑc9 BƱo$\ˬe +qdd-eSXcw={|;Kş"L :UmaCQvQ#ąANҗo8?ucꎴ-C:nIystF6@;E< X`D=ޮ~mMV~$ f=*c1$bESDJHHlڱbwahO A$I ߀y.H&u:zfaLtcq(D@Bꢼx6wDa/M e^m,%d|FޑRlo$i3wMLgM_A~@ifq؎ֱ[1%X"6%16V7,c;:t\5O/sqJVuPq*,u?YSFq;>=.C܏JۈLo}m.! )pR?N㎭DVvc!D -~WT6fUPѹS'iKa_zL99{zLd0X\6VҦ*^s c X.pA+W$&kilWL@S-"S7+#-I(}!}ɷF3e%X\C# jbO pQI/+8O2'DHne"vƶ}aśMXRw-(u[lM9].fx ,1I;;oqzÐr&2œM~ -ֺPYQ_gmdiLۂw\q zB_Ϸ1/UCBvE1 m, 6jET?><ϴ7Q.yPU>q>-YYO2<+^|^eͅ$K/w*ˁT cB Eq}]=?rT^/n!Q̳n EmK ^F"14!F)@PHOaA\O 8( p 6cPjhjSFލ*ݍ.%—4}t$ ,O fbB3)\goyDpۿc,[SxHf7= *mHZu4[mMZ1j#5"-*Ꞵ .T z@+ۓ8:)Ӹ `Lopx@FIoFq܌Ӷ1Sp&8]cXj-YQ OdޘE#L F2=sDt99:Q(3TQ'##$1:-"ƾ $䌍0;}2m 㧏R}9V7d@N76V0F 3L ߅M&4n6Bq - H:Ԕ6w'Mz"w4G ks# 魉a"1L7S,-ĭZ+G$z` ZZ[Z~o΁kڞ=o ٓsշr=Ʈb ?mKe u{v?1#ƬZ¦5/-z+k5<-%. tf7aJIzˬӇ5%lFn,venRˊpq[IRZ$s'aC ٝ ׸:jhvh"ߦOgQ20I3%Yύ8Q$'ڡ3t=[kFz΋vU wNt dLo Cp)$pi#$ dqthdX')'%$r)@H#XӕImƛQ C5%Z|:UI$iš-RI [@JJ SkPv^4ʅ|sܖ@NRC޾>ナğѭ`a8!>#OQvۻkPpS,NïAHQ} :V?tb8 Ǖ%^W6wEi&<*oˢLwܙc9joC`;rV=l8ԉ+-V)RCJ\RL6rNK*<9[LHPB=(%P!1[#]q8PR& )] &t|jR.,^b8'#iwG̒#Ek?.Y6/ 6YX¬!mԔK)!nq„#8b4mSiԚU qUͶeIؼۡü/pRVOU!ٍ0hzxm m%)Jؐ B@ 4| %%dH u#$/Ůi1>5$|G÷Qax Sq`|$sD=:T'hYAIt΃L#*:#~tVMߕt  hzi5xQnҢ;' voLLxzl Fŧ';$T2UUa%HoofOq g:b.]ݥ C &cLhҧ\q-D̈`ě E)ڣs}u7ѷx^B?͓L%Mcjo K=G}˿9U|_@ }DNHpLijrxlH-IS11" R\]eI$${l]SkEƠS&ѶFSW"Er6q1s[PnA9TYx%/-jyyNQN\YDpR,sҺ]2ل\mͧ{ӫ?uMO6rKF!GD;I=5]1^r#Zc~bAʍ&׍K8xj+`=k IY@}%n! S{=b.+ ,=?ٸ8d` u^?Jf5?L=cNA|Ó.+_aO eʮ@eצ?p?ѹ#Vdp$@6zG{ekNn 4%Pq 4폔}xJd m^5蝹\b| 夼_;S2{tNF=EUXmH q}߻,}zKY+=B3ެv|/g.[C/݋UiKktkDɖ'u5PRoX2vlء[Щ3AY5㓱^߻VeCK @]Bހߐa;5V"r)*xѦLLSa\d]B`0q Ɗ!',}M,I>IY{|QJ݆(cW9]e 4iO7\]m*M_\p8QfK3i}$S+i)A {_pk*eL 7MqbcɴVq b@[ J~8 DbZ’}Rcqq>Y )$g|]h9wwrxm7=tf_~ˆDzIPH+[D$m&Ý]^陈1S"e +6'!d'%%lT%@Ch>Vu}u&GNvLhvp758wޙ}m-m!HbD ~RQJ(zzʐ C2~B7F'I $e/ߨ5"LXń*#1lܿn/-[Xixڛ +cyqiB0"feYZUBI ;D0$m “,oc sVfƛ0&8 K_S r8~<-mb")ڢ7,, H;Ƥ8ոܩf`v o0>6 bueZRpJ-rt7h,.~Fm oq-ƨ?!  62/;8eU*ef%&@DZhvFU-c DZo5zӓ9#%1 1:k3ōdH`^bƼ]\mvSP᩺m Q5J{{͉v( k[A9۠kqO xs 21<Q$pB>TaЭ$ǯeB}[&)ZB?Xœl(P  ckŁ7J.ҲL*mQ j8[M, @3i(gtu Aa$a+M|Ȩܥfl|Ye {zoSʝG<~7l+.!2SN)XLBlBK} vq8EVOS0LOVCEroOx6U?"o}O\CDExuObd%dqlߣvgvVRKo-y]úalFN4k,qby` WN;NC ; l-tǗȈ{g zlIjS7R}iJ!ܰ*b8=0ew,v)qBq+XJ0$ΊJ(ΥX mN} GPAӱ?2 :y'YHΣ;`zX44 E2tg)ΩO|:t\8X42C L E ;oǏƀpq\qkP0蝥'V}@$[pRcJHE?r1gMu>T?:$4!Dd|I*Ќg+G;@ݒ10J5TcğPPKb-n'A1[b*=%qPJn(JJgJHBc^JD5OnAQq&ʈ1T>g@1`PoFϏ*pj}MꮾkMFu"n-0ėZOZ~HzZ:X-J =w zDX3KĨvL˭rAi =?#~tu/ʓ{vsn04o2sQBiAQ#wqrF1i@z-C#_]@ۥ骉gKd%9%TLǟ: ݒHؔWғ)4d( J:h@# ԙdg>ݒ@=FD9 yQ V1tHRmzP[!zjcLٱb Z#&D2Kj[qh.d>nڠccwG]FsTUӠm ShLĤ6'ZF]5 &[fE%&KfddDHLJZWfĥNsp[i>T_oSʎ jihqa b}i$+;9EW(6wtT 2L@JB6(Jv(Jp4AՄ#;BtJ;s'-uƴK)ʠH5~G, iSiɢU5$`=:) ?Rt41 e'^䍪J^uíu9@CM?8 _>ʯJ} ;ƌjiʋ% ,&Yؖ +H[(H JRaȤj&AT1,M6=Ŭ $-¥#RI?dy~>ta{d1z<|v@V=JR ^tt`3cA$s#OAa(CR 89IRPrz14ʳ~bGR0S=:`<}add=`v#?7h:iJʛܓ \kA^ jDE(I2*)Nu%@RMq8҆jBF PmmGΚ/jj4鍷1m)C~!q9DV(N%DN m<Z0:/:NzÚqdF[vU2ߕeI*KLDR)7ɸ{%j4j.C=eԷplƄdؤbI&OmBm'yƷ窎Oy1$FEw<@fAșZǎcP$ޯ훍YYʾK﾿L9ڿp`Ϻ{ CNޠ7l)U>{%ɐv2xfDf*!^yȗoE`6T],"k)J^B]RJTq1m ,=ə67Le e`.(v3+ݖU%YQ#!F%i:ϸ#p`ׁm0 e%YVňӄ aK!j3p#!Ȭ@\􊧽l푤Kq m#ˁH)mΓx¡P$c$1ՏvoR6ʫ@ VN`lB1r4%Zn!"xyd!ح2 ka0qezd&lpO~4'*yKDK\r?N~TіĎJv,V'!2\iIJQN,tP?>7YZ$9@@?Q@$@o$$e֢tv"*%eɒ,i+pIJXQ[Ia.9Sc#Hw٥x,x lMRUPnZVhaYբ[?D-0Q]1S*qkWȓ)Zռ>qe$ܝ7#bٔAATQ#-Ig>m%ک(j#M٭=kn[nZh !mlzΓ{A25$Db`MXfW]Lj8EMdkJ;;يOаʉdh1JS{CJí r"8d L MS;'tI2M3LjUNy&pCd110u̖$hPp>x- P%:'oydzpOndr}*Vm 4!~w@+y_wC=vp0Dtq $. wP ̳{cI62qfX9W8u{?}tvqڔ|߉DMY/3#0s3%j/ײˏ&&,f_I)1@@SIVf_%n'yOG%Sv埒ܽz*e@ГO1h Tb\7ul@ s<º/1]BeBk'va˸;qv'֩Lb<[Pe{*K(<OpV`v:k$֌NC.F[R,~'j؎7Bx/fUVU_VDkIoJsbrN;_/d Hy !\=5V mp6ms`S9TA @umV6֓``JuMdY v$Tj=&M{'*ϸ8r}&bqI$ :ŗ_Wӌ C- q2[J&ۏ>v[Cj<X\Ȅ}жQ+H+HR*Fb0/8mEhR,2DM6xj'}fn!;DxqJb}o8"b]opWqiNnԳ>5 " ǔڴ2֢jFD8u*MYDQ-ǝk%)Vӵ;{\kd[ -B[c*\']Q¡C'J x6`cr KHӅԸ(,uFI3{ȥ$;Mn~G.6ärsM c &<[dNd!ےm^q @U#-Y3?SmC6$}Ʃ𛉳?=ahTFj0Dc5VݍY\iY d-2 p@=^߽ʸgsHI@8rv*(vB5>"ѮW[mHoMR- g\,2JK.cnQN@3rn`6m[@\V%N.>HKߒ+9R=szco,A2ONԌ3 $y(64(Jm*G8%%ujqI4TrIÏ/GN<Уc⣲2):XqB=s/`hRYi#x%.:ANЉ6f`L$L~fգ&?Tdl-qyh8kjd0Zf\k$ U"K&CEZѱ=(f!$:6 i0 @5(ۜHPz4OQ]H;TޫkBdCa%v$`A)hR&L3$[Lelܔ>20X `&Cd\̻m #t܀ m$Xjk)U2' q賡We]3)M-DJ!P\ Q2bjZG u3s NtSG 3@@5'X$ʃ"dyΨXZĂdˎ`3`LZBe(aSt#kBRس,,#S2on~j@ 4ԃq>Qc4Ó}HS ccY[YWe)ƇӇKVn묫ܧ8+HrI-*31ZA:m񪳐whռNN0Q. ] T5Cfb"34*rfT`kDm$oY@~ ϐǐlL <z}yt|ݙ ֎!ƹoZ' d. ne21VayQ$nl@c݋20!:/~4R~&<r}Oͼm*nq뾮')4Toez!NT1; 7: }@>[{n˄T3 G3"Jp9*kagoU%6FbOye!QR?3M6 Vۋ\xngƟ YQGȬ;gnuġ( uTT@B`_p):S.8x=uե 8cu9wb7ǧœXDFr=fգQ앲-Nh%. ǴnΤb8klfnHr<{!Aq.w4?Jpf?A`V;v e !_utNm>â͖rpsiiM[unǕH$c c;#P ҉P9 =4#dStHնbYeyiڕ8҄VqjH{iRUmuk^:7/;%OeclVIKA^{JSfZ^QWa;q2XzE-KqˢKl4M7*:JZJQQI]j&ML*h.nOWː=vS0!5*j}C.'hP# }4n!ux~f#4l\}!rBTrta ʦ"aq}R3d`c9ai2 NRrp9 PĴ.‰('oǷOOPJS{kG‰XQ$`~9593~Γ$m$g??עI۩1Q''M5V{c# DwpRWQP#Udj;`fѭDWƒ89ƙ:N/M (nL|I#wʈ3зI1¥qHא:m#t9I&Ed%OHwo#iH;I8:de3x*vT\-L)IW5E@J$JHt(QRA!fNj1^,!66t-~ j*d{3 !hOZlw9΀'\I!a9R -G'N9QzVNB5IqcL# ´H~q2ƦNƁ@AwB<Ӗp.ÏTKbXDar\ FC!H|kBB rp &nc]9\c5fJ)\J.59-Ip Uv3EJd&kvS8/[˗:ŸmY )iJ=|%{ S,VҪ|nWUo6ԨR)1e u֜!ȰJ8+ǩ$䲋4BOǕJPN0u BSOa~=t]ԅ (t0Cu'C:X3}?+pʚq'$dgTu?ƍ2sL4=Iשfo_LOSOLr4z#5Y)ÂO|@c8VJʜx~4Ω(':Amp֘5 gx 9p;ޚ~Xvf&:bwՐ`}>=:LZƀQs?L%J(}@ JN`L/ʫ:3rJUdt7_@(Ѡ )rvEc}J`k`p0sp:dHжI*z`p4"(>\`n::Ca*Ǐ>T j(':'n~bIz] /&:Ui'wlv6 NT IΉ"YH쬅'E|9vsQ?Lxgղ,c>"1 }=%/$;ʨW($A |,GP`AqSMdjNIp6O}2]~<A d\Kd=GƸwaB $ BgpV3cPz$'@|"uVimȋ(Hy%BvD[RXIbCnCH|x$JɒRL-'\ 1 ֒f@{ pЉۯACL:̶ݏq>ZYZl4+i@ *UjA71c ȉ@1D9Ԋ2jкLQySruljKh==WLH$7hJa*P,W) M7#  #q([H$Zɚ[u*Er* RfM5?ac x q)vfI!f'S @U_nL~JnҒ㲘ocKȏ-7l[\F{8 \""Ch8;Tl!L 2/pxH0bCVFPC6 en3re0$1yœnhY夜ʰ1A:pOh6(zZI$- OF^f(xBMn:Q3 k ]eu*r#٩R[126T6/mpv_L')12OE8R6;k3*-kއe{nBkhec;bFQt|j*9ZN&AoɈ<։)[ BY WHBNuFu.UU Dƚkt*:H<"LmoA 1bVҖ`IP7Mˏ wg[r,`T=&/p]@q(SB1q3 i(9^Qn\7&Q(11m(i(l]yrClA?1έ'ۑ^a>`}}JgRAt?!&;ꎨ\}1-)x6PkۈsA.mcfKYW-$a;+.Lo ~H{0?=߃iֱCXYYЁi&UaQrP;m6Vq8p,}m#5&W7N/'Z1d' vΖ'9WyǙAn\Q5 yE$°v²ueuCV_]%)o:d= ImHHCW#YP,A$p͐3t`h~VWɧAc5BhV rǘ7xIw@(/.)%<\̯;\1E?.EL0Eq,a M+&LjNM@E،212tn $kn@&#SnZ6PS v\؈,COZv8T.^ߥab@36/Xr|p",$X\W UEu>(#W"L%=0tϮ 5LTe* .K-V4Uw\ Iy۔[/F.NoIm Q8_Cu}€U~4ƹe:7 \t<- EYI D:Sy_}Wiq*ye'w/E'XXriS) 맅N91eBzimā+W\" ##" &o43Z;#Ġz }-n-4q&nC%"Õ1e x,tbivba)Ҿo 3lHh*4Y`v긅1!db,ʠ&W\/?yr~ScJNs$ԃt.G4g ':i8P3/fpNRH9.66 /Y $A@?#89>gJ|f >mA'Iˤ 4 uƃ7mƌ$^ gAg}rFPkL%+8W_her[K~\F,%@V񡷪J*YlP +1jeƋ`Rr(D&Z&8IR뛊H$Y|{X\)ҵ5+b$hf;D_ݓ))) 0Hأu_J9А/75=l@G@JcNj']>4s$鑯b:mh|? !Z꬀'`  ŵ'ӀhA`p"Cq[ Brϡ =H#=CrLI(~)$8WយI8ӓ#hkEN?Q5#JA g_5 I6; ;F F0zS"0MT'A8=nz2Bɥ$t?ֈ=7hAߨdUDO M͵=&kU_DO!.8)JP8RFS6ɰY =w.PmnfR]EJQm_%6y\mᷥBLg$5uQоjaAYEF" 8V5ñUQcēk ?E%u[OԄ-$(;)>> S*bÆ-6UDC Qٸh$uQ&2WJկS>Mc ;)DcL$:Y6@#_~94ƺt@v^ɛ8큩Vs w8~$'pj2 8' Em~b-٭&Xwۜk(J$#Pc?Ӡd[mEPLԞ@oզ OJ,9й %?.F2@d}:s:51`zReO3ʜmtL4<`EG4?L?Kqi"_A 34'T)ƠN~2?C .<.|NQ)Fӣ'0wFZB9$T2u@Jq?0KQbgqyMEucAOc0 ~|jN~8P1Mi-Ba^3u_Ƭ#.#SD6fm8psS緿9#[YMqe,ua ,AZ߳vM滑țGͩc2DDLDsTki[ⓒM 5M5++b}cm;ʌv:0"T+$c:cӦ*lBIvcMۆ98'9D-H;1+:RF v:ϥ ,җ(GQ IVG?D1PX6i!$豝4#q ؀zu7uIau&J:BʒӐT;n풤Ӥq H? ǏΆS2m#cgN94,Lq"2 uʎGM؜ '7}&>T608F@: `UA""F'@s!@ hʣJt32P.AZ]|2:utKrK,KY[%98saz||* ֚eYvm-Oʱ Lm2-+.+ eL9e+1*rt>TKĔ̅OrKZ1GkG \:3bl-ٳl4 Ï.lˋ28U@u$RD嶨ׅ )N"-r ilZD?wTb<į |Fe.8Qw5ў *)C{cۦ<6V8WVďX c>YLK^zŹO^rSy?y7|Wr~i̼˞nCo/N,-[)NtO^{Kھn m)7]Jb?\_nEuБ:Փ&WrBU,c@_3P҄6 %ipJ%L5m&V }HkBecH%TerI@~vFC2$:}SnӥIY0v>gb-H e X+MRznL9w:ģ,  xǛa+\K)WCWz>2̻4ˎ};(HVre66PXH:љvșDgGpd nR(pTLvS, BkTkעu.!(.y\v[ p龖U+>c16t.tMI.ܴHh)~ks_"0L We!Ja)p#R7&A Jm1&auI#[h0_Fs3K`*.ĊʟDi5qla{ϽU*ҕ}!̰͸`@?HLZAFr ؀-S;XaKIb[H3GX6V.MK" )}:խ +1N> 1"ēdg)eF @d'@.Wm$zjdU5Lq#Kb=%)TqhP C~YŸ{$.b;nɿiACbŜ mjÊ5׻ jjOX/6eő1$qqAR~.Ib0cC"_],h`͑EvFQfUre6X@&qH)aȫll8Ztl&O)KmAm1:_.L&1_uckU VypՇ\ڹSk|`X.&,E };F$Is#'ѧS!״"v\yoI4[EQ ˃YH;VVL&3`T2|E[>#ZnDrouZ{V\ RF┌- vxJ4ۄؐ4WOUH?aN3#ݧ\MP 'c!Pi"?&>pBA%@ :R$2aʨ0UTdC0Z7̏;^>ٸݷ9mj˻j_ k*K3`ǎyԴi6==[ɹy|׋o7ǽY6νmq9t,(&W \Wu-q@HoEc()@Vș4U'+E;ï2lܶʹgy#}ۗH䟶~i2B[ߍz&:FFl`0b/2omo@O9Fl.!Rb[OHD&Lr\YR:=yq5bt+']bEnF?U` 0 *AWR\vcD$]Thq\mŮڹ, /֮`%Ɣd8zP치&P'M@7ze]Tq mf<먷҄ʲ~זWUln zǟZv4D!%p+plXXF\4dD ֒:I\>l!TIYTmt8퍴zNW eTLUe ׈XRȥiĮlL0>8NK`gUe7Ă \ɋD^`~\H sv,fo,L3/_QN}Q+j#bönԼ=Ɵzkcb(ke(HR E$HWe'nȬ$H}v" geioT?ĴcVTJb+.O߾H{ 'qslvd"q*aN] v}_RYe*nݸKN*&q9˫ a,Ա6K-*|hlUN8HNMOacBqA_Kcf$nX,;_Md0f gpň7,Aܺ o1xy̺J)nܨ/;uFx֎~=Fm+MB&r6PSaeA(H,NA>ݳaE K2@V"ཐj::k*3"6eK_1]ȡED;'"juBǏABF0A3PbO:!͏.Lk+TAcab6ND株?}ֲChn,8-$JR:ח>]H [Nc`*T$I KLɼ·/|`eULB腀\-Aenɝ1e+ݎm@1>B7%$ b(mD-xMj2.2qVrLF Z*sBq$G(,.&v62f:ŌeΪSi`4ŴI`Q?H39*f8cŴ@qy:QNJ//gF\ `B +]Ss&RH9hi uRV\hFҜIDQb f;E͚ڞQT=!zMȑ>ٓ)曍!~dlcgk[@0Δ-"Bg! 0nQ),DbIH4+h&N ieuħ!}jheEU)FD.=\m]=JJ܊e*ĀF 5UV2zI xDΣ2y"+2B\53DMu.Jl; *^#.;˒0%NX0Ued7@Dpc um, vI(Ó28['řy_cwi䢎m%Ej&Z!A%P\`5V_K3|B'QIX]7$ƶU0w55LM^w,Qa_ )^wCek2dVLҜB[M}D $Ҡl t68a޻lHzbeJ8c-SyAYr xjSYO4#Đ%D;u5[DRRC;d՘} ;b 9kkfBUUDN;d I(x-ɸK&VS[KXPh*V\z$TuIytca< e\dCc InN\w}߫&8xKj88î-n;qj$SgRwc'̚ *[ L51p14t 5 zd@gөP}JZ, Q* g 'LHNQCV8\i=Ι8|xtQdjt:qѓ6:PN=N;: q{|5:NYQQ_~(vMA$u*$HvOz7_S2^dj4@$p:Ӥ7tƃR4$(kzdo:r$z! K|4h% @+y X]NJ$2hds:p;u\ hҲ-qI$$==)w><44>63=(nx!xݶ4 G j/9D89{C(նR|=Akt8$i@;pN3P{jq=`meƊ9;VВqAh, V( |ns)陪́qWVu}C* e$gBr18Pu)Se "S@4S|r&=[5.,7"CLwl#F8R}& D$H0<c=5{1>Ns{Lh\VsFTrYǦYwi$ t[S1v}6%͍Fa.a]!6㮔' Hd3.Ū dpǖWl["c˪mԭ*T"˫N :m-NjT$hte^շKa҂Xw) \8kohR~lcNu#p"*xN[y 5ZT@ʚ`ԆKTm eBR $6FUO.TI^U4Lvc1jLIQHؐA9#fL'ngJ0 חdl9$F>uA7?HiK._0UGld"LcDXPqJ) A|~ ?W~ǓSpdDrY:\Wqק'^N$- 9p:Do ~JQށ-c{hVyUͤTUh!PoɑbBH'< AYUw3qW<\+b`qQ㏶*0}e$FbWƒV{ZW>rcN@[,RjkYڲkۭ۪b-$NגL? |˘ۼYΟ"炲W nK4j|CiB?f`pWW uJbχ L+7B&i` ^s;v{\H fTɰ-r+TQfCW੦%P*Lq!^Ke@66VW8.'x11%m`"ݿo-yl iʨh*$eu%FyB-Z]ih(’#3*RI+*F񬏺6LX+ yV d\4R,}!)Jveݽ7(}TX]D0@m@ynذ݌Bd: AiV2H'WXqkcR_l%؄p|F@L`HW:LɽI1-f]{ P7L*ȶ -lW:1GuԷ8&7 S1 2T€oiB҃;\aiR@չ B EЛX+[ Զ#NemT;Y LA}Ahlܥ6RLFAa@LNiOc K@Ѩipn'떤=2V L.\vC~R.7U5\%'R.,CR$F]u0 kOiȚǀ H0 MQM9a,4ۈէBK @: Lhe÷Xc!ZTP~ʜ ’v#ISʗQ2=>El[$5\1\fB֭?+Y +qI賡@SGmŮxpj@^B6 w$Uqmd ;]ɘ1$p^!vl|a 4hpeL.xTYB/[%SI߮'o5Hr "w4\ ܿ@uRyR{6ΏG\@CThSHO]PbW*dlxtИ&fb8MI:jBo u{;U}rJd01mE*ʊ̗Ռ9 mЇ[ #iնʬ,D Ș:P3n@$yi+LWwR 'oTv>Mhmsa~VP~B9s0EWa3x hFA67LH&FR&1k6/{Lܪ h~ ]y'`Vh6|&Z3NS.3Hsv0F,mm6a.I*C6Il6k=.$mn#}فI½y{ɕՐ+ߢWIMEE/9T!Si++zDJP..{lTSgLDn8!s?sg={_arDEUC\EuKR۰$vH9ʼnWio\f%3;(z $'MH>h><}GQ]N;99_SxhtQ?6z/a'tV 9?-51&Z$NqJf& .׬{2?Ɗ- #r*cm8Dޭ\pT{R8t 6 H)gc#FPffFuNH:h+~tzN 0M ›vzI{U 2H鬶hV NR=N8R94 =&: ?4:4VԷh ΃4ӨHX2;TNBG9cnm(럗E``翦3Vʋ^)}5:$M mCE;4|öOPj<5 cQ鍤(' V`N0F5VcףHOhQ?#AD ¬ tƟYBH$(}#Yyw]LJI' >SNN&)Nѐ23遀q'N_ZP>?u@ H֓2F@9 vE :'?3=n8#Pch{*&A֛V{dkh 8u)C|:)mKZm(ԭN+D~AMX!@ƪUVU:ƾuLEb˒Rʊ +@|DZ8R xRm"kVL^&jcXؼ6\SeÑZIIRҥur,u@z_Yãs2*ݓ fʐ00̉#6cFKeF ; 8 @UH?xJ?ݯԮt:2"DApI%o8\_˸,פnn4 Yib"cW5*mniP $(?I/r܎;jF;"OJ mQc#эH 8c+C鎬;ju'CR %Zz` cx# gM?? ,3J'm*@JF{mv  |~TpJ#װC0S5<(;H%CH5݅c\TDx,B\(݇nv!$g=զsHW1K)a><~EԨJFYRt5gӠsl?+xPR9PY9#˥P@]$phG%);qq+r m4 4㏔ȟ%n<^6#ԋ`]]beae3 aKHH.8B)2Q$?*-Z?+xGo$U>.Kp~l+=&g7ƾq7ȹFm4/smnHwn#i,@6EYe'm Xt My>"u?~3%o B],Mm2i<Œ fZNrƦ}ISgu٤4vj"~쿶qvճ[LsZ]x)a`T!|smT\PmwXPTzT J͢=bn,ʶmMَ<)C]e crn M6 @ rA6P#  I 2ћϥ3F߯ SAe<鎶S!H”"@_`O0/ iii;7T<-q0 n&v G}csb7E 42J"Z)9_y)KB>uLsbˊ7Ig7?&38*.9*BIѨ܋wu+[6[;6T0PR=xy+> ˛{L,h ^p?ɄXR `AA i8%LTZ<{V!!a6JlR T'?& hWe2s&];wxW.>  Լ4Շnp]e.4$6TI(C]mhZ[e(%_6z.[1LdАY*f#d`aG-224<p ڃ}iR]Ө"hhC3", )jS!\aoF{z|oB=2L I ңwI%`ALW22, d0 A,bTʤ%ǻdxHi Q1c`4v%)(*0 d0A L w4ʌE`IUI7bJD b:(a d1WdrcWKj ٰkgVcT !a"4"&Cz{THb j4`1)oHićhI}Ǭi !BPds2H\i%o(`7b@muA9Տ,XmhFl` $#- e+dȇ~D"-U(ʯ/n!js$S 봒ċؒ`yY6\L0B!ww YDi u$A LIjzZUi*Uq[0}X֔N%3mv!kJ!N28ɀ5_ix) 'f$'mH"쫠&d )D%Q ST8ڷbujm.eӊJ;ң&0VO꾃 +1Mu u o$~4%Nٕ4H%I\Anh65Rؕ uзs:7l&+ j@"6\6e阷Sbڽk1ѦmSJN:e+%+)J8Ѽ7Dٌ6Z2u& S^zD 4SZθӬJ}mTIq*wmZY+kC~`\$gYkơeRŸ~5ǘqul8-v.\y1lE@֔(:+oA:AЃ#"߇:f]qd- XGοACNG7iq/Vopn'&)mĢX-/(%\Co\i[NA\L㍎5`p`.6%ve3^`}CA0Er+g>/,)?'9kǙ~<ɝ*gۃ wk>Dy-`]PxFy5ōv;Cͷv$ SiWڟ)d+$'ʙ WBb\ӇRJ3!qQ4RP>ڶ\8 ۷j`ݥI>bkfُ2:X'RDDnj_uRYH08f\͵ƛv/4%tB:A;VB<(b/qy\Nіiv@{q>C%uV)b]}6!Ɨ< w+l;L[AfknawxwnA'@4$ 3< B|ʖTUbX=kQWU+!x_)smrDaNay`mлKFD)S܆N*eJ7СIhGp<^=c` z$[¥W~Ӓ>K`éߜi XݾVU.YBHCI0 ,iʽ7bv YäIүeTQ[UIXoM42>,JX)]3E;"bQ"2)[?PT&Ä;qD3aMtăhɷ;%eQ2 aHiQv.5W5fTk72cՐE9%b_2iNа>nBY-ɑ=M[ X+|T:YQfWɁBcےLd;l E-!\\kA]ҪխeSM[j^YQc&ֱdl0 $ic0Ĭ$^YTJ6ɫ˻ZSZQ3e6D$VqH i+vTN2l~Vc(cuwV.+BGQ@:cJjU [<6G5WsYp\fs"AN,i i]qR?1a\[L-yƊఖL* asvWM* 1ePAg?ro q"?v󔠉n^_.W-jneBXv =?}4srLlI6<}s;Q#M6/ʶE=y``܂U069?^wǷngƖVt;sۧE8Ƹ@ v?/a:V$FU=z:T_Ft;ҕ{(8Au6Q› @ }?H8sߎ5ǧNVK6:* ;NqUH>U"2?HI':dO=[LXoz& KtPݑAUj;u[ />|, (ptEtDE[%Tt}r~# RNBid(27d`Rj1 |5θ?ǥ$m"@: |FuE>Pc:=Oug6y:,+#Li{,W kk| #?MRZ,gT`tA6enTRHHL:ǦH1zj+@kGJUƋ|cLF1*X~5\?郃I6A @M3ݷ]VǨ`/ԠQ22H$QqM3ܘPʒ59Qᑝ:*~LP4:NFrNFtϦzH`5?D\'^㿯:'?N#MS:'`t@$gFyQ&E`u%9 u,!JMdJ1'\`1i۩DǝBFHVt*NǏWj >͕U&^(Kl*R֤ jMZyUUɹf>~#$V訚ݔw`ۡvDp \iNT``^lA fgVW^FT)--A[SN! %ZW+NP#B BZH ,i*r~bF Vp}sǤmLg3봂U_Y:u 5-a}:HFI?Sáb iEb:~NgnœS k::v:D)2{Id ttƴoTn4`FF05?Ƒ;cp»I\ 4lM# NQ2{O"K@؉9qߡ&wn&ūIO1"B~<cU(3[w٘Ƙ_JmKܢ~rJ@[Υ ~9^Eӱ= ΊNrsR3pF:ϓ`pzd'\/j ٯO9A:I'#M@])QE:b kI HƘ6DEjKoUxқ;Bh?P#8$:5F}qs߀(?Ǡf-8ydF$iԑ1ƅ2?JN:`ƴ ۇ*ku@\}@'cր`eCo+uRج +iݓ6W>9UU%q[݈%:LjdjI*%(jNJNvݕ cZn:ǎ7PSYgN̂;LIQk?Zw@祱<"jy~4t݌dg|S==qH?/MSJ9S Lg07 Y#@ qLgN@g}ʫd $i(2r㑒3~>1Vpʂ>/F}u )8Gn綿郳<7@'MH?*wjs:c'}Eݩң;D :pH$;:M}Ml%G2NCe ,*Bs||kv0S%@KZaqO/*FXڶr-ϋ#s^_Df1y37rtG|5\c8N\ǖ59%5q7 ;^i9fӹ'݀?24l.UϾslp2]RQKHM/ӲXq *ž_Hz45 =WG _qʼn n4l@i"t͠_qy8".Lo cdβ}.1H퍋I1:\Vꝥ]mķ5"=ڔe! "0}G8 i}$hJɂfM Tܛ GVư~Jg.㑱X]5KUDx:!5=r./T7zpTrm &nv9~ycf؁bGyHMTSU^/*XTL:mî2n<'RI^6dw[kyY+x$2xLpN%q:f&y*djgPl "a8nȮC.-%K. 7 M*`k~f+L1`m|C\/%żSѩ*Wy0#; 2$ }2!/2UQ$:ne'b- U1nQ}f+k~FHˢS2ms6tRq&9N-%[U&-l7:MKTf~jZ=Ǜ)VKd#p gE\xRANb 2O*՞E.|{*1c\'F.+m`=,+gMyyJ8JQ!Ky8~g[bSpAcȠ1Vu!Ve63ٲw}΄6L \[zJH& @jԋ2[PlggC4[mۘ#Na' ;NlsP3bAXŢx7c\X9bbT[Y .mM.n- cm9yKS laRz\}c^RDq;F fw$>.4Ą.I&U{$XVܨl2+VPPJG[2gl-OPb4 Y~6?W1±ObO`:N!kK`>E!k3\͛ŝZn"Tْ#܊CH *W"f~ 3@*fx2C1Ơ^2"FISyǝa63rumӴ7k ūzT!o*HYJA(.8݅3.@v8vH4@7m5  bLJFjЭ^m學^4!R N-Md[3b#RvmH77 ʙI!cV ɐHΟc"1.:ICBxᰌae~)y =>ub>E0w"u/ME!jZ}9 "Z6D!Tμ bscl/:0U(&إ 0|lI@ k܈уѶb:BREDL !JTY{T/qi%9gyɜu"&46Z,C A8}כ՛kJ[\ޱjBŷ$oC9LqsZ㬹 ̐zώ#&WRs}xyHYrZkCܾ_f+fd ^CO+.N3 + Vi}$J_U0A#ϕ51_HիWQɬpVxjJy/'m"ѩ 7 +b y[Rt2I1WSz30\i n ;K4❲&H\]CrǬdJf;BLF6ÉL]+-)qH\Ɉm!ٷ<26pvΠo0w9HUpr+d^:L~3H !n$ͺ/>,eճ˯U_p,( /pY\qH&g[nڇ.KQQۅÑ!A?Ȃv1`,6#;' ,d/70$0Z)nygHU'["#rW8clF̋BV[.m!ȍ\f^e~%aQjhSR+W߀a^՝1t{:~nɏ'pX dXmtnR۳FGVŋp#?\952-n ݮMX䓬@:wjt4[[/PB/"!KJGtrKhsk5ir(Wr)̒2ŋYu1aW.f2  X n&+jnV+zET{)j#-jjr_$oEWQa: , qEu#HZ#`voLiUݍ®'t]X Zȹ|{ZV 9L皣UѝYS&2?X$e0;77\HD 8q7DD@BG"*,`G\5Hⴵl8L"SBPlrr3c  ͬlZ8"I g >vT1'} ]+Ø8-ԗ騨ZKHr<V-G(YX>׸CIJzM\K7$l91`)\(+0_^y*` ~V7/ \j;=8/ZIl!j+YBy/9c8n,NРX1,5 "nu 81UUľ<~C%ɏ'BtTQ~#Wf5k3+ޟS"2>ҽRsq]l׃!DžU/ rNi8 Qe}XmPb,Һ漛ݷ-M*„ 3"LDbq"RobVm;5ɾy3w:A*tiWw~j8ԮlDH|:P\&9ienP^+*;wu?S·H{ٚDso},+DGZ)QRvȆBOU?ǯ9Gt*əUxG @q k}x:(LN翩=aWtְ0QqTw (;cץҔ?TCm)>T!-c1Jw+-S8F2L$TƬ%{p&Z[c- )T〝FwhRHܥU+Mazu\"~=ۮw90}{i㦺'f EP2 @H=q;y;}pmOq?tkDnڠ^PCc>$5X*KI)I:냴g4H"`mIv_Udl~8`e󧢆J?3g75< 9#Apӣ`$iK2f?eg|=}5@Sʬ’3!+#۪$6Œ|rہҢ:0f||Âq{zi\z7EaG#9JA`{t#@iQ;Nt}Nc)k<|)I Nу=u .|9QXQK?*N;۱qаOW4Fsz /NƼ(ƚdړMg:I,Z(T0NtG Z' _ AɚR~'Q++:NS@-#x$(qEcrNqE&:NuII+B4ǩʒ*R؄-I qimJvN>mEgU3.;8zҲtLb"L2d\q9*6)#IH@<I鶑20U a s룻aUbԿW=<M!>";U'*~5efon 0ǩ9 `,Au?Ý1>d9R01JF2rOntA$vs :j@>p7`RiPHĐN>t%:kXo;>13BFVœ*:>nHh.; 1%[6$UnNDKht  mm OP5pw1llH@m ߘG9*Q*SswpϷUYZc9 .#[#rħ %4hm\=^~t{,H;rdަ"h, XF&< [X6&_#űʹ;''J_+䶼i#\ZO >qsQ9 rj݊dc.=a8=$U@Uݧ=䲘B},Aĥc& q93m v @x͍׵U;"c53U*4v_ᩝ6 "[.zZ.KIvbǗInDB&껛i+7XoݓMXH"G;h,UϾ:%M3vtٶ$v܅\KɏF" 8V۳%?I A$e2uk 8`w o$Aՙ*SMSvsQ"]KP[Ʈ}&Lz3'bEs/~dr|YcXq@ci4ńɲYr[ 3hѥ=I*[bǏUMZ \f )Lt91n-(kimuo'96' , RjB6@Y$( G0 6Mi85 ,U1>߂F= ʥf 5mChiK^3ɉWmŜ|9 nQC(9:0d.TzqڪݻrA,8\TYl>=N;҂ZVvn+N0ݖOWƧ&#*P^ KI[l}&YN#dGyƊ-l} -1 uRB[(x/?);,h1! 2_nL DL&5|`m~0)5huޟv 2zS)Ը%gu\=ȍN0ŔA`Z, Xq#2]i H=S~v*^݂b8^n:If*!Ǫb/Z}ۅ)R!(AD3tS̓H``M $GԒ-5N?^K5."-•Jӫ ̍P H-HKfpfI'p f֥EDɯ,ahɸv7DZZl5ʛF pVȕŴJX?%pWB%A28n2ɑر+dZoh&)Ssbi$L] އ6$5Ы]QgWLwJ+K8pevx$ּQzD:$/ä/`EH1g?21lv}HaJaW۰ hj6qB3bYZ 7FL w\^ m! Fm3VLQ:[UK3bC Si/zYbw(& 5 q@B" Lt, )tΜ][ysnRɶE\1Cn\dDKq\,T?8 _P5(fEb*H6Qs:Wc;vfbFyyƱiM9%),?S&+MbLRAheL 7t23 LHΌpK+fe2mTjiaĔ(qB[]uN!1C)̣ny2aO`ߗ#}\2 [?M{. Ֆ"]xB/b0ɫn42&rǛcdme7dhLA=NϽXl;01qV0oKh>Tvm2qM;|]0XkX,A RUr H$Lڨ_K=۷8sbOJ$<cQZ1MdB$P/l)2*<:pKIr'A pƬ!O H0wƕ]_TN '. ΡBXr8t\u 呫+1*{m#[)f,Tc56 4&c6jK6/QڬB@:7C %U\g.4]̠A`J,tJWt"3g"euq+g8_խY"?r٭*R[bĈ7adlDD$܃ VY0*&lEJU ]؜NN1#FvI?+Z; -4!٦s˭ϦIRL9 ̻cTK[ KVfߦG1F&L]_TN!Գ ;d  nҚLI5E~朻sUTNvچx.Nw<~UMO\y| qg82cPF"cK…eKI on2鍉v$nܦvJie yY'rzG+3n֣Oܺ?M&*,İ<7kUff&ۮJCry=?H(9 jI] "$hxq}R~k DU(cUg\L 3pF;X3ǎ@ҾQNh=A:uP[1o𢱻 qcԁ nΔܲMc DmqLM;۫J*ALk@8ҹ(* T0@egE#P cI)6E7˞6,0:e50 J)Dd0cd V:Sn`xK+[I9Pp1 =zh*Z/|:gEjpuBN@, -XTFRFr{;yrkRe?3s$`E*~&H FII8IPLz^3ˮ'>|zŷxƍ^mhV--[AJܵ:a)BtD֓3LxU.DfJ_q "`l\VTkCrε m.vT[Y* 1y=(E4KY}\v:UC;ZKtC09TBm&' M?CfRӉP9)t{-}d*Z,C6꒕n<(O&M.ܢ_߀68Y {,S bdI | p m+נLL,H*%Cۥx FuGzٮO@ ƒ2@Nq|9Q$sF٤Ivs%9S &'srBr;zd`^@[p7S'L둒9vN*\dHUܒshq'O@H2H$ eDvA͏BLhZ"7Tб\pc|r q֣4t[H@p~<ʣ/r+9 6O~ͫ#'u(ʜRmVo*N΄}ӶNNNïu hA4t\Prs}5PpgoL~tZ4PM d|2{"cCh?{3נLgp}$vVGr5=0@L: DEGqWs G龠 U1v;'8{}=: iOM7ޙqқOG즧GF;j30. %:105d)` JktmO|0qz'?&w}$ )rI :nN_Xl8 hd܁uN=_:G`UHmAq) $Ǎ) 㟘': u:+,tWjPBpS(ιz?ʜ+$$vgN q~-K ǁM$$@?(ԕ~]Z"g F~uG@%d%E?9N uR8?/:0_:jxtx񟀘&󫗦y;C\ +<]-s`=;i* \#{OT1$,((mb+'q`Œsy"/&Fk/yn8؟-CدraܳγW*_V+_iQo!qi7nm$[J{8Bz-Б06 Sm ^lrn" !m?^H#q*v)c<^]t¶;i=S%xRQ@v;sH$#äٟ́.+((Hs0Fv[\?%qZ]u2\]KӔx,4#Yɮs)E#)ZYko#PNcZ& \>WN#h(Q7a`|wPQ$duU )A& Xmj3 Ԁ"ۏ&!`{U>U hҦq ?Y6dY+Xw!qa*g.ב3aqIDGP0rL`:dzoW+jccj]L04S1jV ]3ĥSǙȸeGPؖ1ܼ9W jM>!)b:T9XLύsC̩*Dz6L\+d˻##""TCD拉Sq&\HD}N;W"Nyi۫ sr (K[!i -wt&E ZoX&:=0]kvs]c[]K_!6ofqzDhnoiqH6)ەl 2usr $ +F֘7l5#MxydǷS urxhIl1.B͗2 [b#)؆X^m{ .Nql D[$Ũ]RJxBuji(͢+ڗgM4}3ԗ%me u2LYl8dqQl52I3nˏ%dAZ܊@l ; qj/ukE H+ܕ;èbhf0ۑG2fu;^hr%*\t8qnq20t,@!u1CIzB1וȗ(HCl(w uvJq22}G%!;rkbcs'uؕW1j:Cm] H˔dm_x$17cb]A CsndUAkǝy*g!J\~cK7V#tWw f6nLKmDe$'l+3&oO[whU2̙ܤ^>m$]m8I@eseN0Mֵd-+;=ē`=\y $.0@ dX^=d "da6" @#1?N\v{Wpa!GɎd4^NѴ?[k(" t"b+IA X#K*Dd$j NʅRU mō`bHq !֤SSe:VVfűO0FDb&˵URE"A%iau,Ȫ\ebԙ09)ߢmGpT)f(V6ڢ:cxαmDU!E˄>h`$\.:g 5r^;c5Ӣ:'סQD꺙,:%r_y`άgL052o3Wra`L4vHL krG;π.t& Jv.f\a+meVt`D F7>dadEu *ol2bƦ vWF2To(ַ&MLx@KܒUE&CtZm3xz&G+N ?KaYaL쒗63Tñar3CZV([;TϸF]֤ĩ=@D^ (# dm}֢Dp,q2وbU.9N-njB7|̐f\bGIH` ]Apؑ[Z@$'0)V@szoRJ#Tsa2Wc6 w  ƽ`08a"m & qػv;P!Á6*JN2A)+ JRzgdpoZK̂I锒:&]{Q?xyP~|tf]+xbXvW|eZڞÖ*W-҂*UJ@2wx׫XydWߣccI=&%ODhz7fı1UU$kJ.An* }eeڙyd%A N1NicKxNGZ^G9x+_>>|w1*isF2ɜuT͐4rj)BY;dٗo$D-Lڷvȣ4Ֆ8M\Ca袉'%[ʮuw{9\\[Y;br ϣry"(DPʗnS_BWpA`=mv&'@D`^dMABgmY:ޒ\yW%9\o&4WڵD$8 ̓!U8&jލ9,E!۪iSqR28XÍLAlQU:؍ XEܯ/r-uR]mDjZD]/@U ]L gZ>eЬ@vXppY"@ &I \B$&ZlF<>/QXK(iq6JЩ=#!+q2/Srf+LKq)7un(}1  fELJZň% 2N,%`Sw*ME2l\FB],x>u #f)3ߛiL(6+@ԓP:#*@90eYslȽƢ4yͅ"z&\-\ZNѻ_U!v'pB.XwIGq/jj\2!X D UgQs-C‡OoAU6޾oGqDŁyxVM )&~,e dA30YaUXx; Urnn*H p"ګnyb5G.c.:+Kvҹ<Rۘ rͧbH۝^۲w1HƯv- PMY{eG=o}06!P+(WNf|}8EP$6vTWpN.n{/ŊW) Sb8STy#QUGVԘ*L.嬘V݈9]b[n}MmeHGWY2+m +p"Dra#fYߑLٗYI[bq7+C>ฑ,L|pxE9I:v{LE/ė`|ީ״"٩"CS+r3td[s (ΦĘPTi RHfN*LY{Ȍ PuцĞ4r 8VܚLHX=N{ ?Wɘ dERe2;66dfh6,MَJvS K%r8 ki[?x|6õT fq̵[!-ְl6HO39p &LI<ɓWfȧ E͠>Bc˾t,O&>~,H5*C kuiarame!nE̘ :1)e.y`P]VdRq[.XkuҐTK% Xkď`A֬ڞ-GHܯKɳ#hJV a2bU20:M[Њ ʟp5;c@8'!Dd<(4d Eꡅkp~$_Ǧv7OAۓ>ON&} /#qg$k릃O'5Juq8IƇ!X#=4}_Q L+c I'hmH;)|QU $ZP>:bM7|^YZs#N~hIggNܧ@bhm\ui QJZOvg'7mbά* [2gU-ؗ 2۽)*|xSm'EcpR1OOEPWV|]L0zK b<.u$Е&PPқ[h3N 6S&dvLO%;,\a ;(mĉ(ClQ?7Anq|iXh6h@ږҔ!$ :Σ*DȠBOqx8$e? z/fvn~)GZg)Ƙ8 ~*Ua: Fp Fܐ5=10&[t+]Ai^Ƙ9h7Q/?z0I8#kkv]&$b)3u*Nq0rqAߣ'Ҋ0@⁌  #8ϯc'3X_ZʈV2vdO@?OTTTASB5:=4aBe(@jRg-lFuj(JJaib;!i+#'X1Cyj }"\K{kZq Xi*][knL6`SJq[N)FRGHӺYzgM5|NwƦ9:>Ae`8jJ G!>+$%-_HRՄ!7ҬLT T5_K*ÁGܹ-Gc֒%*wnUI'$IRfj.pҜԬgUh $g!];tʟ:0dD({?]mĊx#“$(9c)GPIa9١ $LBrRDIcSN1רL:Fuz OǤ4Ziu4;pUuBqc:7kΔg J۪r12ӥ[yċI0NI8D|:c)f M6qِi[CiRJSD >*mbm9UD 75f֏yƀj7DBԵi2YWh%40@^ޡ3a\ 5&u;LR%k')T lr$?:TxԠq).eI iZIvXp}Yi/q%j+!YIwݯ("A @G|C~|޻|}Y(;~1HI-{%@\z&>>|*'qƃ$a88׿sǡy } >@))Cp OAr'ewst:^^$#Mhq;dHSk:qGp0.?/Xxi T`tMLrNA n+nӌʐ9Nm$ r9鼸Pp~qHOehs'8ǡb/+#xf:BH=U Lcۍ@:Oʚqɩ:@']9@ }Fڿ1>*B3IsC#ʜ) A~Ps7dUgn 3 'bG1Ӎ#QQvGu'=ׂ#:էDGҠ|jgڷC|c6!\7q I0p&g.y!UX'tXm*Xo6n¤+CcNY3Dћۣ6YӍO2koߧ"-sYv~?Tn/& g95OָL"<\Q) c4eRYXI?U?^ޏ}M;P@FYv=׹͏2v1Y+NMUfy_,nzqvcڲ%Tj1,I \@`|3we1 XszYI2gJen\ٹb\[IdIa&BšHH8$m9ˍrtȠl@44r9^&4ږzPXaT9'S)WNuײhŐXoGCTu M{C ;^0 o*h$d e5>\1QE]Ft.B6IJT`9%BL ʠ&Dt$LU"|&]v$nG#jyiT)sa_EqgFmA 2ZH\QaB  1$DgY$IFѲdm@N+zH *o6ͨ UiRͷ 0`HDjdMi6+Zi yJe @ H I`"OQKF'50)#cQQl+_,L; b /ڷ\-ɤdǙ6.[0Iڰ XPECb 72K+CZ9Sq Rj\j\>G [>5̚R&lK te2"1m*1wlhlgV`T2H0i4zw 7`rXtWl]z-Ōkb".U_@ydHZTqV\jo#UUA*Y1rꯑ1%,(N6xQ>{ʹ'ټ㬻xҤqa%"\ǒ]\UicJ7id8rf*XĂI2IHvwoLwBX% tSs\A ^,R+l!b˚ՋVo)&eL:y︇CjG/&C"69AS2)ԓ'e^Hd+i;5^ ~eU|eM41[MT\9rkFd=ڣq-5 - ޫF~Q=͉ ':1‘sW{p06 C& 97ϧr='bzc|LQ8QU)i2%AUm^9u36< $&E?Z zw`YLvYb_t ع,l "qFS)RS+<q2j,2*3ٍTL8 (} l Kdǃ-y2ȕWUAy{Zssj² @6 bƭ*A5ht7mW=VGzirP}2,הߖK۾ )d1Rcζ &MCP&- ALx~KʟLY͊%~l˅M~Bj#2Kt>LBd@&ń#[ #'l@1@\Ŕ邏t O@G\|B=%թ+NBp%Z.l$ϴF> CuϪu\٦0+ccS_#\3<5]ul?J%^- \wJ o6NךZR:9S<## RR1`ƿH/~%w?y{ptO+|L0uBa*r"{i:rdlo,&bL:SF,B>bn|>>HZo9x' 0Zy}kd^omBě[frJKqcQ@úH1DhDU˗BI@:Љ? 3&;yW_*)]t+iI-w3iy^9S܃J\qք2u~Yۈbռ߃܏IΫ:tؘFV4+G缀-Zab˴r:r Dua%˸Ԗ_i:ȭ%Ԯof8.6V I@bn \L wɵr&58(&"` `}ߊ~>Dxɰ4ˍ8"kO$N(TD&:ғ퇱m#D$ ֑C 6k kaޟn-b:'u-FMÝV[o`R1ϵ(oD3&J5w+ g@JJ~}\Ơ QXy kJ3[[j˱]ur Pd%|Z?=-B)D Qq-V vָݧ x U]Քeʑ@[^ӊ?dG-iiU\)m)jKSbQwSnm2 X:M}0ō2V`OiW/ Oi0u?39yV IuZ8~Ԗ42D[}?/۶ͽě3&t$(P$LU (`rWy˒^TK';&Rʧ\ ~+ aF{N#I˛FdǍ E܆d+p@M]՘sMG2ҝ|߸} Uĸ}`; o_2$R*Ύ-{fkQH/Az3@Y,8Q{RʻFVU7LNMT{rJ Ub33:s5 >p+j)r]Ry2 ¤j&=b֭2Gu!UR=iݝQl*!C `mҮc^iFu̝FggiN*m-܇ >IkUY:H?\_Lh9[ lC 3vq!Y`Sa2IlIl6PBgh]~b HMcEī.y_"Ur;IJkWnl*ZACD Lb5\q.uV\X2"B("I1Xtu92ذl bH-$&9s lO/qRwh 18۴<:OQu5ˉ΁‘[W!]`70DBzLY-hh0mfKt[b?=g~o‡VەTl,&;!n3 TvЂ;zQk:5Ǐ"N@XoZۺ.15f:Y̬nTNˣ -hF}w`Hݾ`#*ר@qՙ;Lecghou]Cox7xʺuoBi2ńjVIgf:XKN;!yl8~1vŊ\$muIkrd;繶\aB8Z)\W r$w5t1T)06XkޯuM)o%2w/}^J17yVQV9\nyLl?_ʜxxی9 ugł_ nTxICuêHKp݊N0yϖWv/ƧZP3"яf,⦼7Z(qqbd QqũlcL }z zdV5:$z>/:+Dh5$v=NwBi5n>>t(|' =è RtHa;v[57bz+?oзk"kr+VXC).}ӵ26)D|K;:"DzaJM2t^e".؎[Z6Z.6V`z=,—pVOCٮU%Ir'ZÉl~ul^ܩGpCAʱ$@>?9qt6bIPmzJǔJwvҳHQ&hA3Z_rsr0|)AGOܓc?ãVA&OՅᯨ$c8VzkQ[qEHݠ>'碠ߟ3Mp'A{ǣ -jQEsϦ3ۡ, #: tLy|}9NP@ڱcXOƇ ^!i.S ?TL{P n -U祍Z@kq+LWۺWgˎY>LHurZ  F H;V,TWZr./ƓڙAm)lɘے7c۔`q]C~+I! eMȨTbYB$lk$bcp,mE,"(iԧJQ)U^D#*Js#H$u5:shhݦ3=::G'Ɣ''L̟CP tJHM4Q8sF%Itd 9IVH|dkpNFz\uI)9'_At 'L-Nj@ғ+:~=YP N~_7Πc#tH])Cq"cpp Г,TX}lJԼ !%KR JUJ?(۴jN oڥwn 3ړi[VY*R_(TJpTdZA'P_JW2&OOSKgY3vW!hsfe Xu3*j GHH(.wksN֚XTaZYojH`)r)=3PH;F*tMUPY S'K4FR-.r ys֔na iU_\BVQ)Uq^ ^\H ="ת"7ACJI Bqt}Wm[~sL \pB~\kM8|#J``6m6`NDV%i$Aـ9A``G,(pOs7×_"qݼy1(**^<9YYwo1} kB r$''_~:<0EX,q3@/ W(`Ds20"##A L " y>:XJ +q^& Iq``sc` ƣGŴ 2 O<]H")DP+' 8ZR04XX 9y #A'$c'Iz@nE( Wp*"%u޼yˠ .:AAXDXO&o޼!+":+((@JXOH` E PF&(8V|,H/9[ owvF?~{.2Iנ9 H 5` _b@gp[Lr`ֿ͕T֝*Q ̽Ijy\ *Y/_#ATT^GP׮^T]"RCC,w`lR(<&`!txNo&"x;7P(i}pp0}/Iav8<σy~(rh/*˅~-4.`dZ Ik zwU۰.ìaR+Hl2bec{  y ;tfˠoXCPfJPFB=p 2o *|P jzPAu-7{S3ܸqDPIKpd갏>ͿC0_AA؏'9"Af9H@$E$0b8.qOz +>^ؒ%c99 V` .`dZM`D ke|L?%#ʙ>)o o`=9** bbn PXH~III @$Ց> 3 %.n`; ߁t.\ l~31c`dd?mlbpDCߨ nr#/D T "P L/ M pCU Q DDf&/Dכ Rd%2ܻwAUU,7I9T110_899؀?JP902!]c} ŀ2HJG@zN aP/="A.  o aW%XKN^\=y!u_h`Trr# Z] P'}*Lh'7 iGeYJ9^U|8W9盤H6Nx1̜?剠xzl4QF챀WҴzJ,9 U#h36fx-OV)ȃV#(׃e`Y'!JtF(/3|J;QlQ\'x&Տ? Ԡ0ѿePP|; ;&u;@<<2c?3lF1YYi^0fCBD?/^S`SMT܂xp˭_o`m`S7  @])A&hc4|?h4,rr _|d-PIhe×o,Xqd Կya_pBWg>xCZZ* 3k!wh[_=-O9@Z4x7 ]M;Af+uPk 4WN~DDtul[cO> Ts:"Ts3>| ؊~301s + 21p2 ;"~/ϹÏd̉}e0}b0fl|exïn=__&ųS\LDʱR1"H늏w@-Jc@;pTO/_bx̩"r6 ^daPaHIgPa0g8rA+i o?_<{w_v?U~~à* 섿`` #l$mb`d Н & ܒb] \23Z"T `?`k^3y(K5ën='02|yz %'D6Z]j@bZ4 HAO z=GAm4,+Ĩ3F_0;3;ό~SbI[7$ry?)erĶW>/,Ӥq_,*DR iZRZvbr3%b|bS(" hM\x3K>/u-[|=l6!@ц|YaB&# (GoɃ%lT8k(8\ A;i2EP2_3DԘX\8o-rYO[n϶{z߁wo^rm~P;0BA-ZP &{<[7o2< ޽_ b[yRR \E$p(!&! T;Xdo.~7771g`Q- 2|AVFЬ 6KM=.Nv;kks#=9L\<} / /_c`z, t\9Kp!_8<8 / uAHc$eаЍ-1yAAI ߟ2o! i/`NzћSDM޳fDuDFR]D.bl65.~"έJcvi$H[${Yx-U? GrqTs:fx2)yI^A2mXUH٘ZRւg'-$ ]c/R}殩7QL }_֋3ޕ EmIf$%-ՠRj,;]J7oDRDNhD7N [}l0rA}@SXLx w1F#-߾ρrs,u `BUG1$[> y|' !22p (r_L\F hA __a''GvfNȠ(!0a&r>?,wI{`U꺁9 HȩSWAd9pSg`6 j}|@ÿw{,0 A X [Y0s4q+5kV3p.F4 ^~_`D yO;/+'C)Bb8E@}d&.qq '/^2|vW.=0 x8Ġ]aceI-~px0p+0"A#>$.<(j h) 0"AUuu @h #R_ 6f  llvn`- |Q2sK `N+X0?X|cAAN@9X]& ("9 gE)x=O/ XB1*UV r2ԒiO|UW#+|E/d5)<Z17&&f`~TX\gfxL,, lFԟh[Gk Kd2 Ga+`LWx$ E4@5 (>ܹ7,)JDjqâsfΜՎ!J/J}*[ENFQ[`" CL]>Ev>]>J,I<2)ת3Mr{|șeQ0B &{@)|ed~n;sԏ4ADϙ[M^S8g5dD\BeZ)ҕz`:3ORieX)W4b %|l D--<*Idjj\7v*8jLqtZd4l{ ^ PX9iFрN) BҬiNo(93iJ.{f8s]g?<l^(>l }ySЭ/]סCtؼ5;WWYܝy3o~F5Puڵ4xpY0US*` KE2ڊh7oK\cAc"NG8(X~N8(Lz=%և=~(Z)=ȟ4 T>+qDm|ƶICN g9-\kGWIF)IĒ]謍fdߌz)M!ȿ6%HH93,F;"Wu 9kв/߾W`L6EhUXZ@9 H-bPQmnTgTUVf/_>3ou?3p 0ș1 30 @g`VV b\uIQVH`9ngg ,ZA3d/ϟ0K2*(1{Y`M&|PX(:M%'"Pr*Q@Xh]̦ܢ!jJĖ,$ ;ߩE@?w97sRt yW ˕*FI-`\[g 'ˁHD~m&,36 EvzH%(lX *0{uÔ C^{4*>i2R) |wwcMӤQxiX3i2-c0Qiڶ`'M^a]oH-N/7/(("혴]CO7y1M4̺^AXds;^lۺ,5,{tuoЊ DQ%RhIn}.M$*,^ySt00oe<~V` fz.0l +?@9(w : 8WM&A`Au2l'(@|P APkpv|j!Cs@bXXj bIzZ-Hd8 v 7Yk=ȔH6 H)/RLi*= *>VWFj\ND F6 g!g>Em`h :N:sǁ份m!nZPlqR _PCNeA ZHfD7v}[ ]S4%638;qfܟ#1*2˂ :"lYH /Bhͭ'a6Y|+clr4`\%ռ^(bFE &s~y>`i9upZk/QNq!_k즍li|)=-xq$YJy @$G$M'@<Y Z6W.l YPm5F h 4ׯCsm[cm`h1,+#l3 e s;  30pQ y{@ݡlTȸ*l&.P\,A5??xTAX@Uh [ ojA @f)2߀vسa۱e'ALA En~&'"r(At ! `h%b'VkxkX"H6`/ۤXȼfvg &S׶Fz^ӑVmîjebQ6G|)dI X) taW=l3y v 'Cz+~]l@Y44G`J[x[,սz$oX%i&o^pF: ½nv)3eZ }d"Hl?%?0{ j{o<|Kr-)Y-fU,A^sεk7vТh}Wi. ^ * -f&fVppCx ΍#<'0'ҫO ,L\ֽa=` Jx+ :R2~!Rp4xM\[H%x{swҡk&K`Kt'0v?ڒ xjD} X|gFޠ М(.]R/H h* Zs@CV| teTPh̗\\0#4-`c` L,j< P D?finՂ:7E=(#4(-# A*ed偹 X<w{@cXH~.NxG+0C}`Ԡ?0Ӡ=&/(H֢bb$6<3 38؁:`] P6 :7 :d}A4 sO*U0RTR *@{F@1'd0d0R~sop 9x/qb"X1w }` 4"߂YAUm&?^r[o߃* Z*˕y Z ڥ L_?AytU ڙ` 1NzRJRܴ%P3 FT M\++NA#D Ϝ= e~*W@W^}@ P= :zz`a%43U+Y1?1|a@?c5Qe+Í%/_44 '0#u?V@\ʰI+wV8dg`vOOfc:O?@Q-"A8>B"bW~Fԛ/ŧ8P h/!ā Pի ݙ'lx;'&PQ,/+`l={% QZ~3Ccp$6x~z :0կ? lrOj1Ļ N>WVQ$\DD7KrH`e6t@v98vGޅ:DQD t("|t@hh#7h;`6Ihh;h~[`q7ox@| C #ȉhbرke/0bH`b>A90_B&`ax9A'{1cxGoCF",b5C{fPU̅ XOqsfeݏu@dבqׯz|??~| t p}:1 -'Ak, lL 1Ͱ|& - S d $#@\ʕO?"yS`AX1C1p s*+x7 _?C[|7 :2mp2 ] ˡ"u} ˶'V`gM@B~Dj0df&2Kvx37w={OG&7"!%JP480 l^ -әfIbzv>K~Xm68,<|9>SXp]Xa,UV]"qHE>ݬjf 0̱p"GpBI?ɏP&],kF(ʰ޼qM lv|LnNtE+fbDa"F #k! Z}T [T!?PH.Q $Ul!Ėw;5L_@JUd(w&&Ei҉t(eNl- Q(uѪ.*Od ;CxJşnlqõkY,0Ms @R qGN 2IV7R{D2"Z;k VF jbFkfx.,R&~G}A5Y 3%NIE+h4:69xVxX_ l`|@-W`<痃_| M]C.y WBwE||"z s(Ɂ"4kA\ `AaZ 0g'@%2f`dwyE(h n=c` o6|:Hj|-pXu<h& ,g ;C2lV((5YIV"tcZsu5#{ՑVef%@(P#ਖXyIS?v6YufypLvf}sU}</;yOғE٪n$!"Z&|{&Kx' | (Wp6?)("z ٠7#dN4s!F@@$ȠJDE7x w!KMba`3 02tvw39zH8Ap+fN/K@"tֻ3%*NXf&&=-`nЇߤx9*?g"3~(0] Pû CFƻ";$+ P T́-jقV:vWNg?>y|ۓ7No 5 <{@@+ЋW!~t Ox3gNG@{Ԡ_}0a.72p "30R~.#@"AE#@@G1 @H10H p1<L<| Rb &}Gd@,֑;>@9vsSA+zYXﱳsHI6^jν W\ÜKHq_>W~`??@'7zq7o/stO~K~\́c ?@$Mde]`>h5[/Ԕ%v^ KaimR<QF]"h-|Pxw+/h# )@{X!A*:A =#@}; A  *jAG{m, nHKAgc,*e2{.Öd A!AA^|q(ǀ@>[|Jtо$pS+KqgG?݂a8#C^>`ȈܖfOF 9OJ;DeȢ'pq n0p#sظ Z

    2^71Z.1p=!` Jxb@]*`cӁ ^q21CǺ*L`'70HH2K V 3pC:9 HʑU $PQ@|z䗏C s@9cHX\[G9I); ;aAaP<۷?|A9rM ӯ 'Oth vVHP2 aЙ Ͽv3Jh/"n+^|| M%OyX~ l08K`x ZFFS3.#[AFVA߯Uo&o/u N-̂/y{`c XϳO~kWWVGS/,|Q@z8U%i\ t >(A@bV*hRh0!~3}^}iaD4a5/tew 7/^|F4f6Q`=5s H~K| l@Q4hm7L/uC`*>o7``~} >[b ],.`2w0BFE?`7 XTJ1bx z |Wv7<2?+Nw!c)!P[xryМ9a%1D$@QyB\T'232]q t h1,W%rs ;R`vBggqZ6?bZ Te "` k #>%:4CnZ}s>!Qw>{eXwe`춿F` \?g엊[>|77VxpȴRegf02?@7 e%N(">;"& x z+7Pwgx^z.NNu | (o\a$U^5h(瀎6a׾C _}ay>ʰb]@FfI@10_1`nc`e>{p#=!.? 'bxC44( ?A9JX gAW B-8J'G'M*Eߠ^JY2^.K;F &{ 4 @D49eWdfZgMaFp@ZcV>5,8h:S!"ł\ƌR#]ՕJNQ0<>PsҘi=Zi̴$ki6rə44јI*f\ւyz]S3W<,`2^v-;CQ.J6MTb|S6#jT$b6s3y Q iG^4{:ΗPE.L'aӍ9GY-B< ]VtAǤchvmdܯ"M@Z%uP^+Vq+i OwUCV'i6# ` Z`[/r)HK1z 3j>Hz}A @6vX9TT߁'.0ۻ ~M{qs?SVk%xr4Z'$/`if$Lt:;>yAܰ]SCË..f6E>h&0r@_7`۟ l[/h nVo`ce/>w5@6=&2KP$BV`]ω&6?`$agg? ʍ<<{@ (HAs" T2B:3#seF8(:! e} M73x1D132dhaزc3\<Ϙ~ж_֕G&PhH`Yбjno8l ^7_Y8}  $0r%$edLQA~1>N` إaYUJ%@$hQ_ZӠ hGT@E$77?wc`mW֝(?×/&wu#^fP/i.0> oEnVv J > ;cسg/}7^Α xH}t+hf `jU~<󌕍|ů,; A4hѸp0kWW ,߸ tb L,m>_pFիW_=yʰg~ko3\r㧢l,,\c:A;##PTF/'qN>E( ڕP 񓬸 #T)#:߯~ d񀑉Y使@>ut'w>䋝5x*h!P ^A9&2"!߶={ [z }JtٹP@-G= @": wGڱ@cʠzd.퉠$L* "r@ Ȼwn ~"&PH˧{7>8 ^k[66 > 9%ia}L@ZUy2.>>>`J|q0`XfMTT 2 ߁E$ZY 3<{ rfh;(O)%99>` ԗ -D5ȫa T݁J 0.UrrrՓH&[aTAz._MFYl_n!KFFF_`~49[^ >]4E,ǁr'*A")"A6E"eIi -mm T n-M:OFZl?00]ח -^`ֻ|W@0*j* /^e8 V49>}3ˋ!0._ xPM]MX0F%#c:~ TV pP@{  A}VO~-# HH *KnX$WU27,/@Bx )% RY}/EW G:At W`¹37fu ޽a|by(wTu =}%:0?/ ߀v@9vp lJ (&9/{I4Xjу253 7nÑ ":ʑ"(*}s:xB]4 AСka7A 4E$h"8.Rf×ۏ@[~|' ͠`O_2cb*B.Z$zp~_Dn74|=c`IJ\Zr[ jDP9rQ\+Zp&/2Rã(",lC ذQbfbdee/` 3A!3"s.Qa/O70B}'o1j3 1afgadP5bbcWWb9 5(2A   F#rah4" ш& F#rah4" ш& F#rah4" ш& F#rܼ\,IENDB`site_pro/images/2page_img5.png0000644075506000000310000000726611734670434014546 0ustar namedPNG  IHDR::J( pHYs  gAMA|Q cHRMz%u0`:o_F,IDATxڬOA 0JSv=׽*KeAHDD,u5nD71Z#nuN֚R:zrӏ?pB) C AQa@]'Z>7FRVE o}w+2Gbf)y~5e0 ?d?X R qs@J sA4)@_{pAc]!(5K  dq-@O,3)`ġY(gx< Ji 9B@vXr(,T@l %U \9@WD@&P/ D=ڃϬPٰy07b&@`HaI7A >P P<aXy GA|-O0 r dA0?3 YX KRR8 #2f> 0{AJAʅ$ XѠrd@1b d,4ŁJ2#,@4,@0G¤@MΧ% KX@̰yV8P5PXa HdO+`%/r!G%B >Q[`@1X)2PM#VY H%8m'hYX bjc|?FJ \ʂhPB VxߠnZVK:He d(R 0 N+(FOArOO={x{߿?իWq\ŃOb+4 "hK}u/_0S`cSSSQQQɉY333xa*,͠~@(J$%$$>p-Hڗ{!h^__î]l Y:@w Z`0ûwn߾͠  [22HKK38p!%%Qȍ<Y :>"ؔaPs D߸q>~c+4^bNNȑ#?P?@!K)c w\IIIxTQQn"""x#:x ñcl!!! ++bL]~B4:D@%:I1y}p* sAd0 !u;7XV Xי c kް: [1 ]Pl W"[SP1GQ P#L`nؑڴXQTT\6ٳgA =zvȃ {AU`ruBo EX+VBT%J]R02<}h l(x,AB; X,'̃ O&(VXxLj[W^7Aa8{,X\FFl*8H݆(  tXe?՛a ¤WAXi999K.ZZZ`s8@#Do$w*$@Kxx8J+-AfJ[P'TE=r?O_@ B@(+İ^:l=`͚RE wAX *"e h@@͓k@@\#{yĆ6IXʀ5az"0b[$bDkK Zb<<KF){rƍVanV7,/G XbFNJex'' 1_rW w`  \r:@jN[UIbT¦I:@!C#<[1@1zH! $뀐KeX Z>+@t/;y" f%ʐbfj'%aTH81rC &;`3 +@4@1acF Ɨ؃bK}@s:X "/ pɄbc&Q 2(1e̙xGh> <>dIENDB`site_pro/images/lineH.png0000644075506000000310000000016611730752406013652 0ustar namedPNG  IHDRo&tEXtSoftwareAdobe ImageReadyqe<IDATxb^8,45)mJ))]Ҫ lMބ !D !!돖 % DP@[*6qĩqǞsμf\7cL|s6ow{k()DL$S( %BIP)J2LP)d %B$S(J2ŴēO>9'll̲2V8͛6.Ka-l0Fc%"vmdmAee% $Sa!W>Ա]Ndl yd7y+춶6*/ύ>z->f[vO8H,a+.bg{ e)KMMMn7q`5-b{qU2E6C2, ٥.M#lܸ1ؖe[IWSSZN*A]l3 ᕐ69­!]NC_zi.+L^VH$Btѳ$Xf q j.5.kUɦ!VZEL./e\d` xO4ƽK!a±Xla.e*YGQDB2x<~=J+ɦ1V^MdJͱ*&L(T fd ؾvlcݺut̙$1+d2MWcm'CR%s*ɦ)x.$3e]Q1(E.d֤$ƸefU: z [;"d:vG}Ԕ7xmRㆹ===N2Vb~l 8Q%S=cf=v0[?88T/!ϋ+l?%o 3NL!E BL.3CI"%;}tR`C<9^7ua${$L{'&Tcr&HdsY~1K{)^&s٨ºϰ6,V`ۤ'`; Oh%~Mu~ߍ9Q[w q-ZzbX ƶ֍zoŽ} `R400 cr]$ ˟%^ǟQ&#-!W-ʰ\z?f{ GJp(qSl{5.%!Hkvf9zO!d#ѽCYH&2zALx_l6n zy7D+W$ϙF4}IOOJ$t>&XODHr,ekU*j= #> TCoD|>eC&{gݽp>~8Y7XY\I6F^kD]q\hIUyEMV[7!i3_FgylZ q˜OVAprX Ln-_2uRƢN}7 !8#(d̟s??̶bYs^&f3:TddNɪ,IB>=FޫvZSkGjߴMm6ZIt wi~"Y:c 2R\JC|"ق,xwV;qWU*(dd)]֪Ĩw2 /'9$$1Tȓ MW@7*$(5aJ%17CFe눳]e~W,kR7:%בɞkD2mzى\pY`>'k_L oٲ ~G?Rj\+:qX8FAɂou(fXONHtʋowI[H N @]25֛>QzM55T(e iHܴiսIL$9JyA]vY5_~X'&c:gΜ9mH&C"M1p, i@XcL8̢vJtps a5n:.MOG=KL5.E$,_TR#jU3E>ğ(HS;vHgIc Kw/ٞ#+>Sԉ:({"Sblw"Q0ⲢƩShΝyhSd3h| ;'d}9RmA: |Aڽ{wNdae%K%;jeAyǚ'O]vi$_%~*:k{g-ˬ̡֓a,/H3gÅJ}N8A۷o={d$[1o:je] Mq+:wһ Q%f<#q "]5R0d0aΣsҒ$۾}h$.rdvJ]gq58<{Q{t[M6$w-)D \?Gm۶ϒ(>J wHmGw0KbF}boWg;n| ?Tg+hT %EA-Ϧ.;>KQI?( >$[IV# `O>eWnJuMT^\# L yQRy@(j\H-\fd YeYF=B @ʝdldwBy^!aD ^A>2]^ |Oi@hB3xǼ2S/"oQ'>!7/X77WyyS77!0DcF~O?c{9QDݔz9w^ľz.Z81ZIIJ4${ u7׳ KM2BIP)J2%RvK`z^" `z%C=a%H"PD:N\Џc%nd#z Ɠ]!2z"CHO!˹(ڤX '@ oRq!wjT!I|.6dW/Ժր!!%"I(fF^!Bݦ $BsUhw(<(W O\$^]Kc=+JcGaո.qA&qmpRΚ͇L!o5=pyfQZcOX'@VS(&) YD%jd>v-Lo‰g1g-;upM )ցdaepϽ^Spb pW'nKhݎxJ֕ag+kiߥ IpބnTk 4hl;{LP)d %B$S( %BIP)J2L$S(d %B$S(J2BIP)d L$S(d %BIP(J2L(/$C靛IENDB`site_pro/images/5page_img2.jpg0000644075506000000310000007114411734670376014543 0ustar namedJFIFHH HExifMM*bj(1r2iHHAdobe Photoshop 7.02012:03:28 12:13:516(& HHJFIFHH Adobe_CMAdobed            6"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?TaOYUѕVۥDzLvv0Xy&AV\~L|C_>ݰ?jjCG2k]]c?4n*@iHw ,+_p?H6/q}[:Zwwq̾m\|OEuUN$'S q:7ϓ-JFd;ֿSCZت5 #ZeN`2#{tC#/'I'؆Jc}GUZZg=So؜8$ M~jUH܏!IsݲvU?Id-*n3cqwŢ(_"X˴GFCj3yjamXA y8W=~Hikӊij}YK$9q׸X􎞡n{Z9GVx儍>M;V|-Z6b==\vrgo^K)\m~k@vk;k?UHð3}$ڙGz$2B2[ԺQսL~\ƍI( Q*%icH]Ծ77zW<7$w~gWw_ id seWC.{}4]K{P fn}Vزv} ջSS痃J3{}vwG+m~8k KZe^;ҮkuGWXN_I#A4w\.WcYʙKf4w\Z>Ӌ9=׾N}+XvWF-udqsM{'7 ksQOoQ+!4{7/kbùOϹ@o.od$ =fS|P$;w7]]ʚ`l%s[i1u{ݕ{h5ѣWi-0:mux@ s~3?=afcWs'pnIO6a3k}']V_LidюKKcݿ;W/c;\rɴ5po}r' ՓK[q;iR_Emz/,xSK8{mgְ3ֵ >O6EX ɰVs"{K\ts:m5ϳe2 ca*˻뗥]uulb@qis}/Zt~._Nȱx,m6-,G*W쪆*zoc^9ݓnfmawcF8cFIg*>,1c~gq-Vuۇz/56zNOv[z?095#_kOڌ sTijwV >#TXzm $F17%Mqc c~467-:68#a6[-ƢMl4q o2~]u2)/}JqzПemPcl]C ~w1ܹE=_`YA_o On@A5ۗxSQm'rUc=gA{틉Ib5eD\@'|{Pq]<㲺=r$m8^Mpk]ZQ+sLsX~>$n_d~cTM]5ݰ?jjCG2k]]c?4n*@iHw ,+_p?H6/q}[:Zwwq̾m\|OEuUN$'S q:7ϓ-JFd;ֿSCZت5 #ZeN`2#{tC#/'I'؆Jc}GUZZg=So؜8$ M~jUH܏!IsݲvU?Id-*n3cqwŢ(_"X˴GFCj3yjamXA y8W=~Hikӊij}YK$9q׸X􎞡n{Z9GVx儍>M;V|-Z6b==\vrgo^K)\m~k@vk;k?UHð3}$ڙGz$2B2[ԺQսL~\ƍI( Q*%icH]Ծ77zW<7$w~gWw_ id seWC.{}4]K{P fn}Vزv} ջSS痃J3{}vwG+m~8k KZe^;ҮkuGWXN_I#A4w\.WcYʙKf4w\Z>Ӌ9=׾N}+XvWF-udqsM{'7 ksQOoQ+!4{7/kbùOϹ@o.od$ =fS|P$;w7]]ʚ`l%s[i1u{ݕ{h5ѣWi-0:mux@ s~3?=afcWs'pnIO6a3k}']V_LidюKKcݿ;W/c;\rɴ5po}r' ՓK[q;iR_Emz/,xSK8{mgְ3ֵ >O6EX ɰVs"{K\ts:m5ϳe2 ca*˻뗥]uulb@qis}/Zt~._Nȱx,m6-,G*W쪆*zoc^9ݓnfmawcF8cFIg*>,1c~gq-Vuۇz/56zNOv[z?095#_kOڌ sTijwV >#TXzm $F17%Mqc c~467-:68#a6[-ƢMl4q o2~]u2)/}JqzПemPcl]C ~w1ܹE=_`YA_o On@A5ۗxSQm'rUc=gA{틉Ib5eD\@'|{Pq]<㲺=r$m8^Mpk]ZQ+sLsX~>$n_d~cTM]5 adobe:docid:photoshop:235ed8f2-78b6-11e1-9a9d-a708dcdabd1d Adobed@       6'!1AQ"2aqB#3RbrC4$c%!1AQ"aq2BRb ?-ɎFTd|G$(Cc@]rł4zSIbRThjpb +d@l;. D4O!\?.|X`r4ٝ܊hxj/FaU+^Umh\@W8r;,*R/EmxUCT8yaXdsHn5 \YlY$Y r4zp51W'4 ߟmw%PX>5X miJT>Z\Zf ޿y.K{ )Zѹbُncۦq}+\\K>dZiGs݋jxWB?>9]:0SΘd+=z& :'H YBkBB3KW[qb"R s41 yIqs-ձi6#X*Hr0BZ^J|@ZBn#V )?.{sHjg<$zU ߷i) LhaPX qJ\ިwxWn}N:^"D?)䦃 _"+bBXӗ W#d &s7MŦE sLuY^Oؖ@eh9oQ~ Ja (ƸOYGЁkk8\B^ 2#J"罒5E2A!ɥh@':e8wٱ+Ц+~HA$4+=wSa&Hd̶<߆.]ؚ؁Lf9aeb?.V7f%M#gGsVҠ Lejsv>: qi> s BK;eUK^}S\o*xiE)avQJBUM+@p<~R,\Zvh0SO`5~MA$A\FJT b>Ue'ռ.4:I<'ee˥]]Zq+)+ ZY[̷`J8 ~ԋER` % Tseɗ'C Avv<RF T)0˹Ñ? @ŶMtoMTʾэ;鸶;VjsqC Y\D%Q̡S:ӱui%۬@md }$ADU̜ek"Nv4Q DiYfs9S m$ū1I:a]&^er =\&ܒC z>$ӑl~epe%3FU:{cb;/3^X>Xp@SFnm"j*jCG0qmPkI@jP9deD5oYPe< @{+.eP} "ut% ,*TfN![m((xj=mRX0 $C.#Qb1%>!JxbѽKG jfĜI@2Ichji$ZŸ*hTrê_XьW0"=Y Ub#XՉvY$K`l܊ʈ:PI6!*"6Ge[%:FPjQC0Ju" kA=Waee7ӼOǭPQ] s8d.'&[$Ƭ&F$DsRs@k~oFQVUb:kby4W -,WVT$S· 0YPNXnJ?'2#;D(kvT,AʤqS U!kC9REPLCd7hEд@tΧƔ,_Qjy'bo-A\ժH52sG*ɂK;E?9b0Kf}ר;;U]бB2O/=^jW&i'Sm0D>Vq#@kwa?C=g)a,TTrxav:v:u˽q % O` tUmzjX/5IOudRA )h bE.ݿIR´͏Xԩ]mtW2@<\64+nYoԬژpkQ9䂫b~貃tw2eenP׊{kynZ{yۮ%3/RS>Xu=Է{yC Y$`Xx,D$u g*QY ) ڗb05R95b@3rWӅ㦿R-%0^HQ4瘨ş>ۆAStS$M5hT*pvzd)%2^,C|ydڥįܻ?jt٧DE^6QR)ϰvm .xce9Y~&!i۸kef5/f|5K[ ҦgAB7`z/Gz5G soKѢRducԲ;"3=|yj%-l'-ZGosL{#EᅓJPV}ȎW;j/:Qldc iǐUG !=DfR1Aucȃ=Ȗ0 'P i"? *TmnG֬fDB24vm8AՕJJՒA1,\F{6˶#42_J=)ZӱvMt)'.>f3HK0-q GU}`aE3ŋ#܂VwwBeZ/ 03R[(iә$9 /_ݵ)uOlT֠a%tn VV[rJ:эtO˜KhVH^JJg\L$IRw9z̶ֲ~r) Z$j1*vܷ\ 8pzY8fy?v q~\k r æ̷D;{Y V¹^Ll~H'%]%`<犯,*v_<rk81Kq'z7;\;uïnnSm"턤z xy|qٵ]rcn8WPh_$N-vvئ\yVSIٻd߭acdZ CeVт[{2,* 2NHX)l cMq؇g7q3Jγ + 3H!~R+ ~Z3*/dfT9$\W{э[:׍^?/6vy#xmpte$T.Mjg҈o6z4 x'4^Z%uٍəX ZT*FyلHس\[Bv5G)ʘʛGViZI#-PJ/ '4rQ48udxd' :XS`T; aՋyqd=^e)vqawbVxiwlw/kO5ցS]lɽ-WϚ =2l# ٣Pԧ3¹{2njvlƓ/BB5f.3yHR+{u4EfT*A9Ti<|p꾢;z"#|>pM38TѠJ$DIj¼6YZ$P7V(]QPZWKWcG͟Ƞ7YYFd=}6h;>Bk@?+vlQ"h$0+UVO@y .Z.j5{3ӵMfo(?X-X@xq]Xn -u]-M ޱe!ܦe}\a&v ,KS,WLnf4&\mSvbu-QK9b6vqV?VC6dzu-`S"W5Ŝj>J3,p߶iɸjx}^כ"ko ̃28k _qVABڊ=$So.8ov~Lҽ)T!''"xCcyےٌ{s}m!`v~6j=o]bڣ1 |*86g^6hʼlqD pIljI-]Եګ,d)fu=kD]ۚ +!XpApZk# @\ tS%3dܶ[]6q3Xc$mTw*,//@}hAl95 ZP bPTMmj ībYSJ9eK"#VeV_3h Bp-uV.fGhʦϘ')׽.N*u_@I0J].w_vH4 Dɍx*ϐq<G:e,ID9bա`;ijؘ:H5THV-wA%Hi!+\1<Y|@Ww r ,hr *45U9bΡ5Ш|رb }eh4>$H\&SuGRZTd@%Cڅ[ŲQN40XEh|pѰi[UywlලAgn[أ$S*Nךxt:j/n+_uYa8[C]ۯʌ4pa2.O\{-`I rPVJk3G.,w4Ie*xmyU" Z],jܗbɂ;o{mrm^1ПR7oBym5p[Įh_˿-F^^BݡT,3;(e!iT1\{[Re(+JKgFS_7?1g i1t1]AG hYr['ő5Dp[4dF2F_ɲίVܶ;mv51 $OZO@lǷoI,Ls=Ӌ/V۫P=u]cw[kv,L(8>]D+ZPɳJhN&jZ*=r/o<{L3z{Wz"ffxǫ)iϚslػi-\ 0)ȑf*ស=f-]k6^u[\$|j5G%|Ⳣ_#}} K -*-ݤiHjVŶ~QZ=ON]\}+R9lEБ~W n:>SqߴiRO%+{M;6-&'tse= 2PxyŮ+Kbp*vOtM$A#Ķ6ѧaUhY9bQnы{v}x +,lH# qq[Oا kHxX@s9<f۵Wm>^_&К<InmO1Qe-I3,p4 E$ObumEToۛ\:ARy*zIq5οm۲w aQ. ƕ?@fU ӈ*>2UC!@0Co!&.j%Hx̂((vk(4D#QVrs4Xo- `̮+aFB=̪cVJI\jf2a.L'k"Uv.GSu.HܳEQmWFSҾ?fйgh\nƶYRmQ4BN>~8Gg l%DeM .ޯiN$Pcmp(9yckrXZÕpWV%Howq4<0֎@$q$9,E׻%ZFb~3g ֪$Óǐ.v8XqX0E~W-n<}H~Y۶ieP!CKs%h3&În5o&3ͮ2ڬ Hbj/VCcϐoݾe54f>؋+jU.I]J'X_f2[|Z.ۉsL({"epiT5pΜO=8ӆ/׽>P}nP[\Weml25i^sŷC*z=ۿsMn=n.紌 [\&"U7uuUL mΪ3,8+oedziv{մ[C5Փ0;+^+'BUا/j?sIrm.c49m%t_A M6-dYx7x~"rnmI\XFH)qk17?Hr*n|7r#->fj aS~hy @ցhN8Mk=aw7LX.#<#\mu+W2<02},iHῆ'mInq[M8+!MK lƳ0+KXBDdS) A8}n47DK=n cJ0U~PO w=-2cjH]sh0Mg-T9amqb{tvV5$x2K}.@HqYtF=_w6w),)%O`s}b>W5]}MnrK]FEJtpOndm&war= ƽH)deG<+ᡧ(Fǁ6 mg !pɥ֦:<ծJkڛCcnbBNGĞn, A^;6;iP[-19sm0?ݝp{= A@8PX2tjܭ_R\[ygovD"3 2*K#3 fW*~[.(3JK7;~5.Xu+Eu\A J5$8FTU[Kn}au.4(O!w߹u}vn%(%W $wyɸnd[!mk +0QFf$,؀-=kq}i.J>e "  ?Նڛmܥgi"JY i"uum=J*Z q`m{3k+GL( Zeqb[M6w޷uE-rGn@U© S@ @ΕdA$PkHjx>8$-cݜm1}@9n].pc5SFgDzZDMn&|\HѼ}Mi;E.d8xbqlmeKq5{ԪoXn ^d6CCm SQ"/mnwC%Ťkd\{;kde˵աZ#  wuz/J5 I=K"uVYPXW߈4 SApr:Ep2y=Ė&`_r(#]!Z 3jv#/{09mm6XT @lp~;d-dE xl}upƈ4iU3vNٸdJj֜5HYDI{٠I]C1ZW,H#w>)h+BVȇ@5# Mri#08pĀJan(Ǚ<'鵄f%AB@bv?"T @%{IfiYvp@ [v=5٪Y"M+@[|Fѷ릖ӟTn tj#c`+of'Ff53KWg@8(2ubH3 2=79Z#)uaF~FDWܧWmO"##Ą/M ůoڠXg>\q!J Y*̙)Q[GE9V0lG۶$]T>=Zv[뻸gQZ18Jɸ^M8O,XQY= >bsҤcc0=j.I΋ ?}=Ti&'~*mޤ3^VZcH;x6@'_ xY"ϙ jKLn#:tP@5lNJ Ҕp•^YMxci&E2%H\/#]'q l;x-(:bqS-tR\u$ū,.P`y`A$gPȚj7㷗TvÁWїZ;j RϗPo=(1vȬ~$(^ٶ& դCLpy! |XP8Ldت#nJJA&_ef1p g,T+w{wkڦ#4iPMP5(j\+c@&LMQ} uNT^1 O$ϟV(xsÊVc5f)Slx0PhCKYų^CAyvG+P<186IHmAW8_n|AȽ?b C-ZqÏ @.H8 x|pk@LDCx`()1~? `1@/8<0HqqD~Æ ??<>_xq82.>'ӊ ώ/V;4E^B1Ɵ8yb'site_pro/images/video.jpg0000644075506000000310000027063011734670340013722 0ustar namedJFIFHH ExifMM*bj(1r2iHHAdobe Photoshop 7.02012:03:28 12:13:20̠(&}HHJFIFHH Adobe_CMAdobed            N"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?7O<)m\O+I[5'Se #(Fdj[TLB[QL9 *O8M pP|mpTIP^d' 8$41J*.i AR&ưKh*m~Dv>(1)eft@>pBˀ f$r,kQ[E=DuvI &xp?0=T ck&eIp1@M+JO3#equLcYJ!DMu(ZR@SVAh՞kymTf7\\oӗGu߫ռbt܁fӛ}4:_\񫲼z+fʪ\r0כqz I}Ue~Գِ]Oѽ]*@]]/ \/p~E8Xu]`~~.clewjRU\:r*UFik=G5ӱk>Zduzwժb0߻g~bߪ#эSET~"׳.=$N_(9]%ԳSo>c ߙѝI}l5:.ø ?XmCشz^fO:"O16u+cjuy,Th~lw3'Y3u[mtnʻs[[>\2C nIf'Jƣ#'e/r{S1r)ueU97Sf-y-f`:cakq\Njmsٝ J-gՑu,vͷ vV߳OZ_T-x8ϦOi.ns?}VHe.#! =o>(̥3V;YuW[,SoQ:a&}gᲜ]ULgue.GOc8-S mP=7zZ}Oin曽+ anG^gzouєXY1ibX*^؂2rp+LS{H@h>։AyR܍H\h'KL%rEDz6p;ʁ-qBqB"Gܠ[_Grmݳ4M$FSmp 6SJVYJQWddc2,nN /*u̗+u̍hR܋Jf?%Zfc24Q=nE+?f?w%Zf?%EZ"ۼN%}1/s1** Ws17+}2S J|Wddc2SaiG%_3y%_7y?0Photoshop 3.08BIM%8BIMHH8BIM&?8BIM x8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIM?videonullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM Nu}JFIFHH Adobe_CMAdobed            N"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?7O<)m\O+I[5'Se #(Fdj[TLB[QL9 *O8M pP|mpTIP^d' 8$41J*.i AR&ưKh*m~Dv>(1)eft@>pBˀ f$r,kQ[E=DuvI &xp?0=T ck&eIp1@M+JO3#equLcYJ!DMu(ZR@SVAh՞kymTf7\\oӗGu߫ռbt܁fӛ}4:_\񫲼z+fʪ\r0כqz I}Ue~Գِ]Oѽ]*@]]/ \/p~E8Xu]`~~.clewjRU\:r*UFik=G5ӱk>Zduzwժb0߻g~bߪ#эSET~"׳.=$N_(9]%ԳSo>c ߙѝI}l5:.ø ?XmCشz^fO:"O16u+cjuy,Th~lw3'Y3u[mtnʻs[[>\2C nIf'Jƣ#'e/r{S1r)ueU97Sf-y-f`:cakq\Njmsٝ J-gՑu,vͷ vV߳OZ_T-x8ϦOi.ns?}VHe.#! =o>(̥3V;YuW[,SoQ:a&}gᲜ]ULgue.GOc8-S mP=7zZ}Oin曽+ anG^gzouєXY1ibX*^؂2rp+LS{H@h>։AyR܍H\h'KL%rEDz6p;ʁ-qBqB"Gܠ[_Grmݳ4M$FSmp 6SJVYJQWddc2,nN /*u̗+u̍hR܋Jf?%Zfc24Q=nE+?f?w%Zf?%EZ"ۼN%}1/s1** Ws17+}2S J|Wddc2SaiG%_3y%_7y?8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMhttp://ns.adobe.com/xap/1.0/ 460 280 1 36864,40960,40961,37121,37122,40962,40963,37510,40964,36867,36868,33434,33437,34850,34852,34855,34856,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37396,41483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,42016,0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,23,24,25,26,27,28,30;C48358C15EAC4360CC2B041FDD9E3CDD 3 sRGB IEC61966-2.1 1 720000/10000 720000/10000 2 256,257,258,259,262,274,277,284,530,531,282,283,296,301,318,319,529,532,306,270,271,272,305,315,33432;AFE8BF73262CA2743523B53CE60E47CA Adobe Photoshop CS4 Windows 2012-03-02T12:08:36+02:00 2012-03-02T12:08:36+02:00 2012-03-02T12:08:36+02:00 xmp.iid:647BDEAC4F64E111B89AEFB7C94A1F29 adobe:docid:photoshop:36fe53aa-78b6-11e1-9a9d-a708dcdabd1d xmp.did:637BDEAC4F64E111B89AEFB7C94A1F29 image/jpeg XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmAdobed@:     u!"1A2# QBa$3Rqb%C&4r 5'S6DTsEF7Gc(UVWdte)8fu*9:HIJXYZghijvwxyzm!1"AQ2aqB#Rb3 $Cr4%ScD&5T6Ed' sFtUeuV7)(GWf8vgwHXhx9IYiy*:JZjz ?0P^ߟsHϢ5TOa׈zi=s$[}Xxj G \zU4uIU X\ryX\{[XAJs1<"I+I8 %uXa4Ej<ҸmZP\(pI>_.Sȉ ,јgA=Km#.ߨoj\iaU>gCRAN 鏦TdpVڒ-ZOf,B/a~=$v-:Aqs-VY+~~K`Oqc#{s}qt7 qdժ5Pݜ0?Bԯ9@5zVfC{]ɰ.mv6@)ԁ &/Zgjr9n{/kmHI{Z3״,FK_{ze\EE]W>ȍIESO>U:;;v824#:sSff+f\4c'Jomib ,R7?KZ1)aNG8?q?C 9J+8qANlXC,q Ek =@@A_(>]J 49?:y}OS-YW>-ǷxtWZ=@Q?J ^#~?I~ ׵^I/}{8uI#<ہ׵dg^{ y<_k}xC'烪v^ ]4V#Qy:o?OuPXʔ$$p ==6(gIgT>"X,˥[ȱ}4qzy˥s$jʤIVy`"o܍=E$:Qᩄ8_GG-r+ЏlRX#Xe\w+$qNa YK}E+%$DSKh("`P[i>)CZcSnM%⣂yҹJxºP38ݽL/aڄEDмEJHF9?5@x_MTs"I}G8q^I77Ze uָ -Ͽu`է\Jloŭ~OXʤ;},}@G0rHsc{}o\L9pQ [_uzSȷ ElPg3 $svdNY5?#ꀖ<zv(QjI?>*k$hiV=;"*ƖFm"z$'gRQ@ NFk_垌A,)Ba^ d3N2SSUIY )!$yL\FT <{aUU pGʽK$Om!\-R@3~Ӊx:&Uͮ&xɯIس_ioj49[5)4#}ϩ   IdċosߺЯ]VAop`?^9Xk~8OG[$pTsZaG~cȎcl@"ÏQoz{ Xsk?؏~^߃n-{}~Su.=wc{m:~_'uJUտr>OВEͿ>G}u?u8R^GOިjTEd4u0yA:-D) {iE5jOҘmևikh#AR] iRU-l;YPLYZƑ7`da<~_>QPYE,m$UkHT GGD"Ii_TK{ :²#V4s_4]|YUlWI܀7ߺ6ٮooӛK\@sUPIkq5 )z~/kOz|ElƑ%܄6otKueI$p,Cz@%Y#]Z)]P4 j׏ S,TՑet rSJo,S=ֽ-M* 05v̄PȁZÙUxbH^ lTE{} 7?ۦԷ0ԏC.!Q FX#)yJzt.K31 |yck\"28S+$r0-OwоhJG ޻f?אEީa-}?zou\rM{}?oZc7p,>>۔AXpAco?{:ؗYEb9}=k]4 N,9H#>ީ׼AO؞~o{*9 ?AoӯxӨuғ,Kb5Ȑ)!`Y@E'o"t:Z҈bu*jXj<|h:fY**CZ:mT"G1S12ՊUDO/<, nh8fъ"Co#V'q4+xXEFbMOy C8HYDKۀ[ې&YV>w\#F"ee?*Wʞue6*ae 4U1Hǥc5a=&iҎjTB~ϟzP<[/sRu6'n9kzNf}yAPz?<ְ}~zq#}}ֺ-5}?Oۧ"zť"܏}y{OTR\17[~]qk>am]X^F?$X}__ȷ)|<2F]1WV8YcnKXG*+N4p:4VDKtpZI< O WFXcb)Lӹ-H ׏ǶY& Ҹ U6$E 64 O4sJ I֢2Ζ,G4m"[qԁ۱MGʧ$׉g:K"c^TSώxzWb-{XIX?cM:/i^G <_}?#ߺz*OXx}I}G~[2>[޿ֈPu07\[}Z-bMAOPxӮ,<ߺXX.-q6ulx@z}M&o~>]w~5kUPVsղE$:O\^ArH @[*c{`I:B$zk#RrST^KtmEABGX GnMo6¦7R'1KRREfV񰐕)^97Zm%,nC +R<)DUo%%M\G+;B#l~xFdy*Jn|$DZ+;ҵSn#gNTĩ "ufZ4rBG 5!V`P0}HEH> jDW>^ J ҭ$4"#Ӎ?oJX5[4]h/UDJ31f$ҧ_oY'> ~$zO))b<~@z}AV?k7# [PMOz骅* H?},MXӎz+x6?BPTN.Wn9 ~xߺ^8QŐ۞@ޓ;qՏuki[_{u@=vcm'-cuk_tB8klk{Z}?D׏]Iup5}Ce,?jҀhk\},M9Vs{~x7Gj׬@6q}moϺ9CZg$a>׺'ַ6n=jzqsB'$$Ie&JMRDNE o+ƅMiJq lRZ VjRg5uTVjxY2B{$_b-ՍG17W%[Ē?:h|8cQ1RXI%T^}qP*1w5s|9#Pzub,$}=yܐKcZZӬ pi^yߺ{u#'I~=_{׮bߕ6snTV`&k㒣W'6jͅߺ}o_ǿug]5 GcMߺߠ눱͸\>iO.j -o{^UղCk p9(/$:<-T_T/Ltr+"VTp$&JȦ%O>{]z"pjxdW>|ڗ2y.!̢B-2zK*_ aVZS9?A=mᾍw*)8 `Ӻ}"ߒy{W*)â5$1yM=:6k@$9zxǒ=\ X Ͽuz&}E{XuAR/orkZ: JT8 ?ߦ:]uM( >ZMY}P ۋ߈#飨O*o{??OvJW=QXjdN!Q +ݚܑf YG'=#hA49 /)cJ%*҃ n԰S'\.BHhFP#ѤqbNuQ % z_*=f4WTuI)V&)0 \\15i6-TcˈznMAPPĊ?1ǕJD#f4{.Fۀ=?9ڣ$7ZȞ'1X@K{-憭4ֳOu-c7,9#}='/Lu"8r6<[ߨޝR[<}-&Z ׄdعZxuU#F)w|][}Im'-Ç\ZBXLI}Ch. 7/t8P6BM-ot qӪڼnX4{Ki36VR5po r>A:`F:MEӀ|Ϳ^/{N\/?~p q6)C$ľ@bnH?_z!M oqk[kX zN)׮4-{M.իҪs{s{[y!?I4WW])F騪}ꂺż0q~]IJossE :@$yu0߷Źk~ۑgN\A :Za{OTjKGЋo'sX 'nOdxȱæϝ:>~ #޺o<:R@*>_ {T$+NSoo Vz+JfPK~nokOXWϬ6kHr^}j Bh:̪Bn-p-ލ:mHzG]%)i IR!Y?[,[VekQ*q+##]-1˞=6K{_uOSEe/n>~OSvb#z\WMb=6%[ߺQ^ % ?C8}=Zq^AYhiìNˎGxizkħjˮjznozV}T>}dD-{96xށl)#גn}h0렄_8B7ិ?`mŴ?B.9"޴7^%8W17!גO?=KTU+ï6亁r8Q'Iެ+[WpG~ǿuiUz@{a6?z@F:奁P ^{=VGYدӀE~=(mn'{/ &g_>7< Glkq끏$͚n-X4n#3Ea}WIsָ,#/$X}5=\88c_Vc=FH ~-o[{ƫN.i?͏Ҏ4#]X8B-r/uZj# EōАAtՐB:kz}ϻue'Nz%Þ4@ Yk]@sn.x^})\䎺&$GkϽ7 iZBvA9 $_:+lJrXͽ5+^G{\}?ȿ'ߵ|P:i G}2}8 =bs}LԯMגCiE?>2JJ1*1(jraou ii^bqv TҼ>Uv$>6'U]X~H BO_xWˏ]<8״Lu~ Kzԡួq֨kO.ի-؛sy}\`kin5G>׍NMs`cX? }t Ǜ}>!׏YIr,?C?>T: 9O 7a1'kI7?BGNHGtqJ0N?~un PtÐX`m p-s^k s}mWVYy?:-5-OMI$ȕ#?SiQZ@Ԇ}ysC<"@Q\\. Z?:jX㬈>Kܓ`m?E۷u|@P?_ň?[wSu a݇Ne? ӏ{QRzf}zclMɵ {sW:>6>S։"I_oqn}F<dZi<[ ͹`kAIW6p-߆ݺ\NE0?Px zD[<j[~8>˅zA/q>׃-EXlo&XG6t |}loo#}cӯ*\q>ZzXE._ߺ1^=be${{N+i\Om#8aI66<ӰV,;{ĆMǧB̚uDVC?_J-NJu_ozUg齗o-n+JyuP}I <?OӎpاQsyyOzoŘք[z*&װ\Z[O["3{J|'$)zyr[o~s>`O}}노?7ՉˮX~[mc}Ꭳ*I ԰В<Oᔋs[ߺ{5*<B"6G4*5T6LYG?`lP(3C!Bj^m7'p1)>+HJ襪^+sPS +D,7I2Xx+cCRDwc4xS8˫]IDn⠁@Aih k7XrnWn9GDzࠎ<{O\}nI'q`>h+i?O }}RM#Ѻ[}~]գy->?~]v&-Ћ^}D~O?KU>}r,<ۉjb<yZ=ON=O,<}EOJ2kOSebV?Pt5LwRAWߺlu! msoǺb0Y{K^W[Gl{S֜b}I|.zTP%G[?׋roǷ`L0@l.-{U.9.o_8[8uO/;T[KEwH'2OIT5?EAf$hDg:i5ì0i 5nRaQS@Ք1CO m!Vpяԁ{e@FC!Uz2ņ;PB2j5:+SM-%5(!W?ywVJ`͍?AſI8z騒 Hnu +o6?GjV 누ڬ=`9'xs׌M,O徟9{R}\2\^_>ޡ0:}JGſ8=a u OznBE1HRA>O϶=]r~]FEd.Io@ǧCUML59FSH7 x<K"pEiܧ+_ΔA4N ,4,E~ >31G Kg%@=:.Fb B%}+@@( :HMI$SOԁC]l|Cҽc`Hol-oݵN%ALQn=\\\lx7W`ENQG1Qi}zU)ZZUPR^\u՟ȧI6)yzC]&vo͋~:y]&1%#mro֍>M~}?zA-k\Zsxu:4^9 ǿtZ>]e de q26,^W1_|ԸƥQnS68|}z- Qoǿgצké@5sI5$mKQ0<AOO=w2GJ9$y<]}/ -Oy#JIiE ]PļRH//*Dg0La^4?qFHbе"Ӫ벬>?izGZ \?S<lx(={UrOX[R:bMHk܂x}]խ3@Qȸ&ϧ/<} j'[ EIX&?>CJ9A8 /q6?Q.oZ4iZ9ݮO N)r>,!J*G:~WF(9M?_,􌯯5Q$9U)'-YP$nT=EA T\dsxPeHMii;ŭK8"98hAq^#cj+)!,SEXG$?jF|J8k$q 2 ycTCUZWM6MLN]ڀtqZS*x) yp(Ҭ1\݋7قDSQ#G,W*1J<?NGǻ2 =YK:kW=DPE <,?ܴ4Jb4n&E~״$~G+'o?{ejhOJָ4ܭZzz?svaRI=bm~9]CBPC}ߧrz#h""YU{0 I Ef`LueE,K;@խx2TSߟ䏯:Qj^n9}?@?u֪qryմDuQV^Z'޾tVzhHX$ !CGk eitu  &sǷC@TptYu/k\ߋLin$uBlIpl>!H?_n׀`[׮QH%A fIHu\$ TVaPOrJk=T,OBdrbOtrC0QX^9:,lX WGξ 4yK3V $ifS,0nuκuOs=ŤODucU8 PyҪ"J*H`0ϳjb2: #a$ ន5NGjR5(7<OST--}>V&WS`Hs͈6ގOzK'qT7rlG^}ߤd|Ȧ':<:~iۭW4=CȬkR)jv8вU2lnG 6v8܀ GiI"VUQ5] s~A.F"$sHMsq9,sK"A L=Ohk մ vV|ݨtCKS노b>z3ժ+J՘.ocrWu:1- }N_@:ar?HzAֹX%=s8[G($,cSv8e*hLy SWx] ZѴO1H]9 5~sѥk4B:zOӦOyJKcĨd\i<uΞ:Y@?x~9F5֎E1j~`8V8T yCLLo$I X *vbBxseyON-,zUfv+,cWQ@_w1$Sm$iP9<8gӮ,Ar M3Eow\Xj lEE\/[@+z$kqů }MϺQZ׮݁ <VzZpa)X}IO׺p'^~?o{_>X }Goy |g^\߃o-ݖc:+Y 6?GZaJWi2X"T\9ym3"䲚A>0p ,ΰ VjPT5J0]ب n~$aV|5\h Epx'hx5+ʲִ2F{.WHZ67)I[\A"Ϣ˛X;`4Mi҂*zxptQk9PO=UTQAD4޽OFq\sGV#T$}/ȸ䂶}OtCuY 9RAU!M}: j9 l~JRxfBqԐ5)RE_?thj:žmeMJש(ꤓbXx< {~2:qE{X},>z?E=ÏSSblHH ҸP֚jzX 6ߨs:_u8okan?{G^MZYو ?}B*O\}܃WO^A'ŭnG+:u(뎓nXx?q5}u,8~>Jz0'vE?zE:htXѢyjj#ef PK} <{M$fHhMrE8;0-dwAj7Oq:HrT*yg;D:iX&ePf$qvCiD[&A@#8Nm$@CU 4ߨBIh'PU &!EQbFh2AkT퇩e#58?$1ƸX*$VNF^Q$B@KkUUu rI$`QUoEٜ&f_uSӨA X\q~UkçRG\IX9 ]mGrCY_7o~Ε (:o{o=:P^/7?l"zz"kQ6kp~<p?{cJ֝( \C)^=L/ϨϺ%h<X㦧zC0YX(&ux-e:k>:g},*WFcO BCXªJ;jPxԎKtFU[KCZϣ(mgB넃@•+Lm]S%Q(ijVgVtj 9RXO& ףĄ-Oӧ_ t5zTf ƥĖ7BjԯO34hiC^=y(7H[XiVpn.~[ ԟOzZE#_]Z=asbH_ }=ԅOPH]GEb>,O~71Z/W r :tXۛߟO˯&vdcϺ^ 3^'ůko?>ոpVoK(=l+qK1`^W嵷 ~}.XذTΚoӫ]k~}^)ojҝէ:']-pm}}tu\Pi,qޖ#uRV*ϗOGe$4ҡ5p!M5( $I,Js"H*i!M[RNGm8Tq!#*SI *ҙç} 2JxlJTܣ1,ڥ++ 0E8p?'E#TeJ09^zP%eTy4EVaZ{ t% iYJHrC`m齸 D\?>d#uI>?=ߦz8{u~F + }.>#ߺhRp5_"~/?ڞu%X[ܪRU1]u ,/%*tYnߎO ONqێu OO4T >G*FM"H[$*)?U_n)r@L4lКM=vO#%(Wj$Ӳ`DCc.'hèʾ,IRIG O]4gIOPQc`u)_nu]KCP[o>/{Z_\8-kV~__u|5<]=Q@RDs86k`lj|>+yVVU]ytS/y)%Pt MC!͛ybDNGs孴v&A\_Â⢠tʎc}A %eR% "3H.襏}cxN4ʄ?t紳6-V 81OvwԔXGJo#k\q0 Qq0:鍭~Uq WɿZ}?>:r A=7?8alխ:4DڥP3$`cUnlK<4J#IhN=I̕mDU"2ӳFTDO >M4 Q|ducmg4x>:m)KWMX%xT+(X KH$@ RۛBVMN(^:GIQMY04^YCթ@1 ›n~{I9=u}n kt`}?^ǶLGI``e[JZ6i4,2GquF[y7 :M^OѢo:mϽíZ>}7դUˇ|kNԺJ2O JVcMG ɪVDÁos{L5:Vy%XZB8yQ]h <(Y)~C=8L%L],=iOϧh)dQ$7HwmW$׬gu0Y.-Т5AH'@>u'{0ӛ~~'=#<2:̦GMnSdn86@r-)ONב~>wz8k܏UwF5nr.KuO{:K$R~/r\Hiԑ ?O&MF:ŀif]'9=HIkK@>OL1|x$4.eRQ)T`)YLK8'O^@o j W@CNǷ2xIUIj+~]ek5^giQ)tEHa& 4h0H؟avԾT8W#M7k\{TVz'EhYDThNddOըJ/ SQ1D/~F-eGsC &Q\&2۱GJ2CLtHզUI =94lW2ˮ@Z @ oVGIbn\^ߑo20b&jWCp>)<O[ŸϬ I1kQ#jXHGcFEʼ+èl  MO:Y]%W OOyQqLpöGlI>ӉƽBPHI6q ?ړ])2Iצ TNMN(t TjJxPYn?O+x٩IFGm|~L}zJԵe T;GYFBPK ꄰ[@bOY4Wn2Sˆ<>oth׍h„JHPbZZ I z:=3B"ju`UGs-ܨI_ ~}7-"FS5qtƧK3Y$}FâdCA(<;}?$/{wӋ߀ ſ{kElBQ7D<: :X?Po>CҢ3<^pOjIV@ٯQWomZXXk}?/ӴX`=a'ը(# Xb#Q50NQ{}"E:T*Ӥr#PT]51Կ' _K[>_<ԬQP#1 [\}> wjì,415N0Ǣ5 e]# nF*___X{Mud؛_n}T9#ѓk x* R@&BZKGP*s~ovhYUR <[^>钸jE-TۃdI(+Ǭd2*ORjrB*zGɸ$UYK8 \j=olԵ)?@52C›_|&갸 o:Ccx?P>s=aG?Cqqzr05`c IrrGD.uh܏=b&V"F|'VRTƞ~>&r9iLR1-t3'}[)hV${ Ӵs ~D濖tygh-Bx]G4yM)juY!Z*QVh95F +s=$ >Dz|LsJEJɠZSR2GzCP4.*=pEL5^]2fpv@O>?ntr<u` QMLO \>o*Єf{GHo. J>p!sb-J`g%lYl9 U!H-"&_V>-pa`M϶V n@ӏl}:$tC:Ml?sҔJП0NxOo}X/q>?ZS0Uf3t2 oȔi$o J'(,d]22 COiQ_tQ4 4UOPY42LUo䛟zhٝuҠls$qE*<=Te =+u.E%F="8]YHrTj-o~.}"*!-='R\4 ?C-(V-`mXA,Ir(A!Rp5I?Rx{ZϺ~Ռk\c>o߿h?__ԳSznq,>[u^oq?S/~M2P|=fP? n?z}o.L%͘?>LH0zza{8'8o\ , I>}?O_njkTe 9qOnSNxSzہS="rxi{sA~*IJ$u.A[Ny CAXʥtX(̎_8 CI rԒG? ~D>rU^(hEF2io<e,$^JW*pobE]a39~cm݊tiSF5m5$QԵTDH5~Vg[Gهఔ+aCz yn dW7N&U*Wf_ǵDp8_Ru2'* Hہp876ƁPNMN1RˬTL)V,Q4pbQȡoGHX7 @CVQFAnW  *MYFi^TX|暦J*(R# B):Y?4O^^ :K^$ |<|Ϣ( x*z.ß6āE@5>f`T}d3ҬߪiO Z_R:H:ʧS@&?7Ζ^1"뵕XI?Qؕ$ }4 *iǭʐuX!B#ڀ?bGP =aW?EM 5_<">P &8W֧M0nC-j ,=2ʹ0TTc1R@%'kȸN:uaR(i$<9&WA\W^G ds{,t!v2F\5,Hߤō˥G[#]9\j jiIS&!7${,记Pd0ǟB]7'6` S hZ-b.NhI,n.A x (}O\4}@%h ` 1H(lfE*+J` ب2Ł<*@XPCWG8:ZtPYn f7O>OJN)R֧UmQ<cQe kQè*if$(7M~M+JR6EzA*]YlI1I[NP?O _Q6 E΢F$}Pe"\j P#<EJO*pcpx#)P5>T$.~ΰܞ@;}qWN"*S5鞦~Ҹa: 0It'yo$pڼ2Q=z2Nc8 y~cCGSMRyDVI/e+kM"nIPO6(Fk`=kTKVcB HRxǙ3c4^bh^&i@H7ݚIn~ug'hЭ? YcЀ@,vK?}Lhn? ?zǟi rEKC(XFoX# h2F7# ~ +kW MoUmߴt}3ϯԐIq'9?_ϋk85/zGTpM3ԭć~I=gnoʏ}>vnE$LIWO@'EޯGI6ϬŀEr/>ތq=7sErÖ7כOnWI1櫎8KT,@u\\}ޥ}ۋn:Qrji"cף3?*:$qFknH4R+#$^ Rfwo \tohw8Qăh憽/𜿓[q[{bbNۣzU^J)Kd"ȱ6 {mmNjc,FNpW|v/j ]U_4Egb)lg j.>pⲹ 2fh+bjGC,p)*aygb:Yè"p59!h#rV)|Uakwٲ%eNU] ǽLH֐$ >(܅o".6{-Ȯ}ף~n/#?6\gnn RV1McA%=4N@>;xu T O->V/ޓ,NQ]?_bL;7H$eid?ȉ;KkШ5jU*N݀Y>Nn޲v]*9"\}='6t`tҿ])o$Q%;\=ٵ:OvocfNǧv!\^,GPDPjQ8C884|zۋS$jy^9H4>`u\rdJHI 2P$U{ѓOӛ{uXC,`|a^#e!`Zi5~#ccQ;D%Tj Y=ZDkP bm.87bGlM,<z`zټ1+;h-&jB~$5+;ՒS[o)-Ř:Jר$^׷[ŴKtѳ+ĒTKܔM6r6<χzj| K ?{>m۷vLm8@0Njzy7X`*VB: RHm~o(m_^|ܝwvs[E&Rm2[:9#Ѿf{$ڹuަ>V }O*=ܶ^_|{5m+bqP?epH6RnXXW܈:Y w|pPg흩^{3Y8?]fWGe53ѣVX0o{d)WO˩.\%jȡ}_?PX&oJ7_aC<[jԘ -MvBH JٞΛnlL44 Ju#NRz拖HoS'=]0waPuxnm~E #=+"Wis`a?3׿[{mv[:Ym/:w)iv=G:SGvSwFϦحER(rҺɷ ƌ=c}k>{, 7diS@3{3Yl],WuYȟpwO !t9,Ffa`b0+gZY$>%oK_nYuv*Xg?/^Z[=m U_wvU՘ W\ mJ~nOkAt/oJr]G%~QrvwNeЇ?ڭ=>Z1WkOÐ}{U@֫ۅ,=y?{uvevl]>ߛoqEC,)_ E&BiauV}>j{)JFIM^iu{"Jʪԩ$y4W?Nη]MgThKnyg8<4EDSPBVaYʷc$C/d/. 2 lE瞖Q|Yl!oɹmt%Wj{w_*zwv{s'/E% _YVdC 9j!b>s! 1`&=ۛY[fk;4j|ts*l>\|LGf.rQev4|䩒MP$RE1Ye7m\53#N}kun'8X08$y/ˣ8W_WA#k}콽ĀFŘ=>_GK@@׿qS&GPaq9<ΘIj0Zis{z&9d&|nofSX)?? ]{{qu_Hc֏fOٳ5.0SMHUFUTб&-'sCLVS3^nD |awSձ ou 0ٝf;i>XFI᧗?%=v[@[cuO/n}[tZMi%+L~ޅw8oPkv+]Kyv|>}SfG45Kvld)p0- "yПN\wgN)(akX'ាSO:^Ekqkֿj^4㞿dO{n뵔ZH!l\ߐOv钚$n > RMȤ*!%XcݵDtӡYك5'opCv.ԄbK^9=e'4ՁJ#IY#I=BVGIVHAW鶖 SM"ʖ\E,U4б*T5#{o{E&YׇM t({* 9.?zǹw/,'|'>DΚ l Tda*DYV8,J7w>`!.?گY9BNQ2 g꼩št.FT66U~?ڛk\ OjHd+#+Sz=w7>*3^lvgfvWMq+N)e*T0U:-y{s. TWr c˝aFV+ IQZfQJ}KB4(n/3Cvxb-k{H=qiP4҆QU[$8Okǧ2Dm{@ ntD㤾HTSZ/Y`̿]T.-l>@bms.^N::}Լ=n<6m:3T{/R2QG62O&&+hdi ;j4SsǬhyXshZyS ‹ݓ;?h6o6`KUEY iQ.I?_bF'Hh05Z/1=݆.˶1}[gdk՝Sy )؋Y+)J,p.ڞCQ^sX:.r i}BnVtj8Yz_‚}ɓ$/7!%[7`7ubeyEyϞ,(Sӌ]iGM*xbY 6a?MVUXb^xJr+o*|A~RHK&+svp?'}PR?lyGn}?'kZdo[zܕKC5M6[qe)}̴9>i<[jH?^{fֶK H*|<¯R;7ݝ: f1<;53!11RNV׼V{}D:U{s d8OssC,m[5K eQU 1QR rTIcYW&O}v_ ?i?+um]ruvS%cIT DC E6!ּ,sί3)'wx'nGO?2}\6P73_eamIrT#+k6A>?Ro1l.g?ݹt/@D#҆wdgbl"MOQKxdF̲RCE]rV VUZ(=hAe˨i詷;%{):޻pƑZ| Xr%=d7SO=[Ϸ\O4z~=>;t~L|jcϢ::(S$FV^X#$qvx(jGTWd:14weV~:o6#7|8-<2 jWl9{cۊJ#z)20d8MfU:V+!/.uü;]4teOO[2zziwl3_G7sl"3lVQ)ki0J eacǰ-0\0R/-}qCCO>3W~X((Ućˍbo: x ݽ_=5F7r ~7;M ^A10SHTͤX7W1Ekfo7\߶[I,"@gG{;"Te<}6YPTWa2x/xrZsK+H}sU"OE◛EJ$ $1?OQ^֬iq,EdѨ3SiJ&Ă=f?#JdQse!6 /}[ w}@cn8UW21ɁXT( E#rr+_t0ߩQ'ӏZ|oܱ݃lO[vG-`l >bh*+ܑFG"a{USE {.. ,7'A/T?ȯfs.35}VrvN-^7'XqkIB+j6<{?f n/@SX/A^wawyeۋAH? ?7Snظγaܻo+=V[3TttԘl|ʆfw SG\̶ַaq-J_^=ennMčn@!z8iMf?X3&ڎUm \8#ע~-זeJT>W'N„?VW:;3b0ymDuikt455%,P4"1=mYVQշ;ܗ0/s V [n8,r mn\$/5-=}CȈ~I`N-ZJ "WO[Asod^D?ӑ_6Z,~wC`RJ_݊WSxOMHuWKm{cnw_MvŊtiϽGmgMSI_T~,pTYTyj클eZjY0*O4f)at@{Jx9AJdfSr>@d)?oO7FŠmz\RmJluV3IF`ڕU4'!̖y#t;B${=θH㇛~\:=ʸK։?Z z!w } j[``P.p*7}vJ`S' 7OaLc?UI&/G4O؄XGaTsT;wqWkЅ ?(|M*hr[;-KmzKiP{}V( ڕWIUzF eo&m">w[JI t!۾}s|F>^?._: m)[/vcwp8v.:IA'٥mRG#"c?q`KKĔBg8fcԗeb$·w;˻Pcnn۰M%5~-U ?5$SD&+݊DZJ'5gХ WV^Fgmkd֪+ߛ{m?P ψo !?ƠΪGi|jgZMAOߞ?>bZn|ڹz1uc#3_;?Cwa3 N>'M* "mXݓSceSl8R}jG7K.gf}W>c,pT;'p?m=lK*Բd{8_bcɒ8T??4CR6=y_:{};u_N?f츟׭)Fϫ-ߊqSH`[);3LXn za-\}DWBzI)УlktMfRx:_)lymaq&8#R(K>#ki-߸F'a4zYoo߰5vNw4AY\)qTyLf3>aDܭG/^covgPJ8S?_慞e~K.-[Brcw&Ӡ֔X+I^Z d+$.Grخ+)9QPշs6s=fdq1W6#11$?X{vc#gY|FT'zJ=6iY^G0K؝jhğc}zԓ3:6\/>iA"' nq}dG5܅?3H otrUF"xOބZSl'M:e??l'N]k\}{T-AA'KqA8$mko^k_.yQZ׫xbu/Я[~,/#N Bx=eGpo`?Zz_o\[q{ŃP@\ǟT1Tnm$}_O_?v]HR5Xq@𷸹鞤#[7< ?=BM:eko'"_܂x׆:oG"JW$[ ^>k^z$>?u/ɱeS\ARioS++_psh{1gf Oi1<OKuEm:zǧԍvʛ;CXLΪ }1A!0RA t*lXq~O# ECss4f'sk[Q[X *8խ.'n^:Ǫ=,[碨S Q^՛P2QfEzN>)s\fE5phKՑX=.H.@OA~!H5݈bIN5C?T[w<jN) c ezeޙ,(DffPoc`=/oPNMRCRPrſivtQ+5=>V9]1e{a$KXLB9Um`,(@CH WS`k*u. c?oH|]6v p{,x86?oKQ5d@d+{~.i٦ӏ?I3#ǤJV_{hi+vo}՘j|~''( }sa `%}!UoΥ23Drf.@RFX%'}{kTS&oSJ+mߧ#RfX+h=|`OPi>׳m;A ?/ȯͫB?՛ކ2NB«N>SO_?;Wڟ$}.a=T^ͣ*i1gGhMQhVcw΍WޙfB[%>WWO-Tͮ]aMUުxUG7c9hқ̰kPXAr4{|0|O#1{sZQFi<|5>] ߩown /Sy˛=$STBpb( %ɹcݮy|q\lh.P(jO }z6 R8'Od/ [܃'?S\`Υ=$*[Mm2:)hf+ yL,)D*LQ( ;T== LڔyP֥&9 {3t/^鏗8ϛz}גޙj›#[C3y*Y)* 84EDG"ذ-iVڸjm<=.[%L*ܫJ*"mQoȋkawfou,si$k)Лr,^nV;!EU9=+ˠ0~dٴ6O_l|p3`xڌ\̮qjN{5>Qm.U.XH&sM4_-M%p^hcpqZ?£zy~WK\4HI)'#UA U#}=d28 AS b%zsw/`ugP]a<^kSr ۖ!vL ār07YXNyZҜ:}kѡ(P z*tu'*3Wl=[w>7dqj6-b_YCRj*.;ERߋ{EsJSM$q5~t{A Oli W,p3ҕY=oq@; HS?}}&%Wo$d zke;6#gd'TaҥoWMՐTD1!r<-6Wkg鈴Wـjc~7|`(}g)?/}7"FtMA Kx?Tq:vkJxtj|&$׳A` 5/#3TCVN@>z>>nM9yH;lu;/0ʔ?ʜ|~;xdڷڍ$jȊƏE!S_zl\o-7=p[v6*txIH{r! k:3j'qn\-ͦП2ztϷ;To q;G>}X¸>yYS4X *oT}H)^CBX0Gk; `Af  Zֵȱ=랞QIX{7魽zv뿠zsO#}휜bTTUQ jcʥ?0_q W?<_&]Z~t~=FJӏJ|:^N>I^`޽baI{{;M;:b ^ooo^VE:g>m#ԫN+o7'vY89;0zFI.<|;s%XӬݚJXnAo7Teo=LzU\Wr.G>RJzNՍkQ3"ے?j{Ug&{}E!='pAFRJP?[Ct)2׋>S{sc \"6F$X}}vӫ kBAU!=DyIJg5'Wak= ~۵Z Dz୾?BB>stz̷BlnI^ ǽJuCB(~yX1uq{O{{`u JOY@H`B]w޽2PA\,X2X1U!X5ry,*7WYc sp97pNW}f#͈6CRu9,M~i^-<琵Z8+ϪI y 7?0uzG#ǽ.D]zYcK"F(UI6X1oUH I隯&i| Q3"!R A{K=Pc[Teh'49,*t4 ,r!I$5E`ӯ 6<^K':`ӏtd t"J G/JXTR$W*)K)SH?Ksm**=JmyDE0QsJgVL}b2I[w\^dһEoOƊ3(]G?}7Eq5ASdn AaOMuU])O\ICXWΝ0KzI#I!;3Np5\A䵸"I҅J㮮#so6ϴx=ǨCBB<~mH(F3)/~=Zzm#jQ7miG)MQn,8I>Ӟ㮘SM*7$Տ6z*mrZQ xfВ:# UH,+p ա c`ҏ}6ZQ*%ƞ[$ c,}AI@0 Wmٞ(γOO}cQ8|zu/^=w|~^Ïz񮔧ৃ Uxyq\}N 3?ܕR&K1y kE`=I?sx#cT F,Ak["ŔF=JS{j>Hm7XoNӇDT=R<}TptҙP*/GLM0z-Xm+RPxc&ֹ~/z0JPEkߑJBt>}fmիTOk^._t]N޿kClmjUʌV5J IS5Dz=YⷈM:2M|_tnT2'W^ԶWfqaYVwKp #ϥ-[C'8/ˢz?v]m~޽sXo|_n-딢3ͿW[+#ʄi0/iR95GʴEWlbpԂ4W.}vwdJν7 ZYfOj>7lИe8$^6oxӆiNeǟ]UCWfaH}u}KaU#R>~FZ@O7)2<blfg]WcMBVC}ά{:TxE7$YI*>(zbo{m7~v!SLIEJѣ/wW1TӐIq:[@rǮ?ГS񧿩vfjSw,;;3@&穪g#aoTϿ& P:qQASm7u)B@l%ڏ&)wK`6ޡݛ#h5M9u-1eL'Pʢ,@U޶j 2|O˭qm iZViX_CU4VU$xP,8*%F ўf(4N?1~)K)4?5?,ܽ?]x|^)`Uz]` m@cj-`OAOzEo˻;ٻ9?n7]7WttduکZQG5R)1SX,-u,.eXRCeczN?Aktmtnc`g3P&;qҊJ4*J·*}-o &o9ѕϨzXt/?%%t/Qo՗jǏr.$fJh !O/+k'08,NO9֮?Q_{$T,*kEjY ӇKlۍ+p <~g?Γ9ʏ]̽n?iYX2RuB+I _v7h q>gTT 3hr+ z.K[b^[uᬩ]q9,>C)zuAbzG^8Opl:yt^"[[jKjySNzz}W}m|õ{Q.l^|VJy6fIX4XB)Rִm+Q"Pݏs Ws0uۨYË_Eh=XFJAG>Sw#E_N.ِ}wmэd _$2-ȅlMZ]!Ue0AM2IPGǠ1 }pO,O#MOD=59Oz9;x]ߛknp9ݳq[Ϗa閦SPJzl=I[I,or֘oGv]C HաhH>_.} _o՛;k&)N`gR 9r)' U/kn&g-^9/ϭKnܥ X ,*s= -7];q[+^v{Hõ68$^!H?gq]m>dj9\]Z2T5m-TzD2 =xELOqcۿo_mޛ'M[oe39J|4PUy_{bk /4A"hK7=l낮{ldjΉ* :d:HvOW* :Q=sTpTRx^Ttݣw!TUf7n٭0w"O +Ȓ (hs4:Z6A!fP@ rxzt_9ln~0vx-ZEǷL8dRRI,1]DgO/djǢ^=x 78$,0¤f=ۯ7T;iv+xX lCCLFJvFFP뤭{q$xc'U֠ï-I/Z  <ʼGSzotuzMϿ2:jĹ}=k-Ť\ڹIH?.v׾f/^waͥ*{_~B`w~VJqI=CFSQI5&6{u}@(:]qN\.RC+sA#Iݑ~woIlj>Y+7ˣvFK}o)3&uTM,4QG),IVK{gY&1`ڈ 4珧JM}Mn2Fpˢ_:䞬WwQV|yVo=Sin,&>GaUd.OO".Ȥc1\=7y -}9my ,h?zgf{Qi'|EA̚Ut7j/q;c>v]mǐqXqclzm U,JRZs+Ki KT,EP0:A=;v[GP:4ygl'nm՞ :zZF+Y֫q OEK<+ !_{EŬׂ{īŀZO@qK[)Y41O@~Δ_qKMk۫d.W{PËܴ9?{SV o#F\&P6fdZ`R֞:;^ ޭ(40C'vU=gݹjkqFl6IdSRM$q$a:Y;.Zʹ&Ə*M5? i6n{}E`zsdN_6􊢎5,ҾdJY%>2ƀZاfJV3JS>tf3f!Һh3AT.mww#|L+)vgun!n9+2&Z=QfY-b.j.ܿ5AT2)j_?꠷^kSAE 3N)@U}^ժncĝ\1tTy,9kn/ $N&$p)Zޓ;jע?VvwƟʎ;o/=:{~c1'p-1=C/7=u]eB,Taw6ĂdMF+Q= >`[, XMT W4:?'NԦߏ=%x͌2[ocv8q9tC*Tkgx/+[H@<ϗ^ |ɿW-#sr1SV/p S72>vX=^7n!%ʨx\؟fmuhc++ƾ}so3ofmoaMB<) > grC~ݭ7b,njĨeϐǧYf Q IfJ}*H}1 Uxd}Hזev7Yo6SY\4V:QF5_Xߟ!&6CٓEe6H[hUn)c{h4;ۂ;iGoĊvW"ش|>` T񯗯zp͵3L7=F"~ +Ψjm &&}$le-\"Y D1RF}F1i*F-ej~c;n')NW-Z`cLOS>IwI;qy[i=k|e*m(*عdžELoa-ohjʖ'Qc~!£˧7:Csz{ݵ?MU|?)ٽe7$ $ڗ++^=Jŀ> È8F[U%KX)jTFRpNquTe2nw#)݁}G]tMNj&RS:Taßm&Вosl尾kvHx5i^FEvMl UjS+ëMa{:؛jjO7dY<|2Jd+fy {{-HwM璁mgdPVwM|2krE/>?-ߵ~8zӵ7ݥJ;)dOO&B`H)'=s W{Y *ք= 诖,۷И @jqϭ>W|{_f?|/>)tJ:sӷ7Ed7qKBJTB/Cq[O-mpnd`Ɲޫ4nٚ}Aa+TYEgnJ1!nO]1^Uw^e_zEc #ux jD18@ 6bihd1HwiK2Nj|2>Ё}꫶7}m*.pdvi#KTV*콐e" _O,tj%7}k!!tDvS7ʯ}gt]i}M>;rov.gj CeSD_* {7&m-R:;T'antm>іR9ZD~֔}*CjH']Xv1$# U&uIlO핑*D%Go\|B? `Q\Ϳ?6VP8Šʃp>$ >>@@MLtXvUkU:~^)rkҿ1}$Ȏ?zFFTO$Ȍqr9!2 =?r' 8ԂS#8SNk FPH*+gIX5(i)*, _:~v.[9 WHKNӁOU}/k-kN=P4 ۓco^vz$E#`q钌i^?Ϭ#.?>4T}iʍ}7$ OtbĊt EBX)z!p~m?tTPF?u!$.oaȱ` t'q=r)Û^k֊5)Ԕ_R ƽW:J5 2n8X - T5#KW9QPFl k p,yr=jJnVGB#c7W*G" t34$K"*I*D?tYigm ݮ,@XRiLӏˣ+D/@tū)>8wWzՏ!{+Tm0P=&{eyy-욼g]')O9NiimeQbECW,[=q>@c?)<%%wCvw˓ݱJ:]{?US ?-oxn .>(#RRGtNt $(.!/ @f]ffFvjz>:]q}c&*=˶7CSJ!_ǖUC:6?l^ZC}o%ԃJVSקٶ˸mVDzv]*yza>J>8Q(teMyI(: /j4< |UVܫqdϟDjMZ)}^%aٕ!lҜ7v6#$Ie$VϠ#UhB+]4 :"սwOE_NVCAQ^O)?M4X$tONcdudZVՔSkx/Si\:2~@s|pA|O>p >9v/-ן-ڝs\a{f{VI3nt;{>];=2$A7w&6/+ijUAQ=&zo|r]GM?%>8ep18_m_i<ŵBĊR>T{n{[1NXXcνZ>;ñL ip8|vU.?E%4m$$@/kj7?aNo5_2{vW̫??C{}Wfl kBpX^L`1B:Z*_59BX@ o?,mcolIkfZRӁǧ-vMg12m-R `t?oWim#%=y[=ix2M٬jrJ 6(0ko;\m+0:X\K)(HxPgRz?dyjGkko#\c5IC5?/?rāS riǯJt5tOyvOٝ;f& R,xOQISIRQxg^9vF(w FZ|:<݅y?:dS4=\Wwsl##KuPex:C,UhHcbn?©ȻdnNt3 y- Н/SӪ/~?`˷_g|l\&#܄xWfj$lűфbl ڧi-~Vwrɷ[_obW \%(1PF=gQy߷E[{rtj&~1=rnRQ^ (8|r-+>V=>ܗ׬1Gף:m<\˔%y:<lm\{{\4ť`MHFkjXTcҝ&_6o9?sH)z|辝.{#fa(YPfp0tњg0º E!uV3]I4+]%i!ϟ7{H-0K<ϧAv:#ٛwlț][/olfcns3)&b3ƾybBbʭyWkA!R4:xTW5雮r,Uu\"1NG)kR|}iuK3IX^Gw.v$rN֋Oeq/YܓUJ:.윧gܻp^b<|2+ KTOq)p=2Y"Z~A^4GA{'H}iq5e/$i5+OQ%%ܒG#*@+>߷(nm'>8R.]ڛwo|aSzs,a!qŅ=Lfic1H)-n$\CJT ݧm,-60HA5R%Al{?}Q6>-`2/8 !Y,]a(h$_m5 7+0}:Gnq2u&fpV[ cdA*$Zqn P zV[%AJԜa|WemDY?D0fvLVOsY?M%SG[{IsuSE1y0:Vu\>ν?N̅N>;(hz_ %Q=c,Oo,m _͛K j~]W_Qq{s~m Ѷ1u鷱*]ZaIM!d(V0ƈ};e5Ծ$R&;r%I4(IǞ1lKE k #xtQhM>}F7 YU[ o@5''Pdu#4*H,@tMkN'"YJ}rF.Xr>&j)P|3Ď?.C/x|LӮ'@JHأhr'yBoΣ$UA(x`ӨR2ٔK}Dm,to?҉%iI=:55X m:i+^&Ď.9MD)Ni$7_؃>j#c@Oy_Xj=W&^oMQUjV˯=R,͘r?ܥd l{ޮWvd]dM7 o77O{V תȤЯ7_wާY UYVB6^À?y=6PWP~9~MϪ9=P RP 겵6X$jKD57L_uJLU|S-T}fP n>Ӵ;H|grSEM>C>]wMɦҹ1e@ćVs?gWP`Z.WcTz?AͭsحThpd a/W<#? f'opph4K Up`/[,?on@iE [JZ9 _??{,iL uK< ߪ+Gz4GВx̬ʊӝ7RJG8-–!k@i_AҦ1ƬH8?tUMW䆱T@L/qkZ{K+ί +N-PђAZ}?ǩT2XwOXӥ:%Kj'nB^_=%A;I /B?(1Dfr-:l 6!G"h=죎1z՟$ok} w`[WRێ-r}ݵ6Y-6-X)# 9ӡW5+X~}\pſߏ!ƳN8䔋ڸ:Zh:%B, n,=גQV?#yA鎟f~M*X!ͬbIo p0&':6mxqCNP=CH1*,5)PX0JR醧,(RRZ"heF Qf\ oN^P96$msc&Yb>>=C~o=ќ Hueď~_mBF*lJ9w8K~.-OmxzJuŵ#7)^#8!|Mx_ƭR@kFC(x^>:|(5X%G܏EuoN"kWm+v~$\i6"2U@UP4o!U$\sޕEj]Y8ydA3P,>?iڡTy~:挈,~b%k/r$p2'UG|}Q` S${_~.8Pr.@,'{`=uca{ ٬k9k@nxSk[鸿[{^}.ok:o>)?^u厹ɷk^WϮ͕7xz ?I ~ E~ToƠ5e_ގ8CX>c,:8*=J@ R~}d <4n0|GS?C,-,Ki#g_oǷi1}5G^/YW8~]9#x%o,k& (7 "+' Q˙ގSP}0S׏YrXp6ὨiTtɏʝrYnH"့ԑG\í4tPAY꾠co-ۚt߄YV}Vjk۞n/W**9#~Ikk7{^ q4BKu [<O.h<:&?@.8<8GjxuCYED_~@Oڵf =PĴ#Q9$"r-hWK*X=5NȒ"Y=b9\(y[17>L6_\tlmWUi£ q2%i~ꍀFR$9:}!I_nR(Iz2+çMO$ߏja^ aD}<77caZׯis\{L@#lI}V~Ey]K^W`@&p?[U_ z\6}_A:1U5g ؂9z,b%$cFCsc~x% #A6{4=iմSϮ .`?bmG]\ c:ՈPH&HU}KAYi u7PIh"H1y!t"5դGmᜠ'I\_:RlI:A>@5I(<ʤ̥<?1 iJdEպ8YcåjHDdhbQ*˩Pw%?>adђ3~ޚHb)DJRB*=T 4ꌄMKP4 k}9#byn@ḸMrA NM [\ ?N=UxthMi Z^ӎHo_ 5Xv7$\omۦx.Ic?P8_nO( ܑ@FVzPP(<>~~X{v"[Uc~Q>f|#'V!+QP2ͭӥ[kĎ 9^ϧzfyRd*) "7~?{J</FplMCϧ60LtYV 558SeKlp4^}yB%|aǦ?⺗q«( Mr{A\tݤ%Ǎ:˫Z<[vT=:rI[ߺ)$`<޺p#؁?"ăӾ\߂,9m$:d,8 kH^#cH9qUs[W?M"ߧ~[Cרx=ҿ{N=4:Ȳ1k<"ߎ}< I [Sϯ;v`xQÃ@5=yA$-:=KvӦB@A y~AO&p>}(]@zfEfu؍6ˬqêv̄ң:h]Y%kuviPm[X0'_.X@<MJ(*q~@o O=~!]Rz'Rm#I6?NyI2) -`MUuEƽ7ਨY~ԋÇTxNe.WC- 2+5DQ (&U cafA=h@  Җ1jJB8== L@1DLoPH"I<}= $>zc'젯kC)a Ii$pNıq`I?O-ҕT t_; jA4 qW^LΟ[=Y5=#X\D.o~qYҨ7ݮװ=6ЂE:؁oO Q@~,nY$N _M5:q#=ZI Wr;p~ǗSմ~qmW'QrIc}*+2n?:{E$\؛Oߋ 4#뉐[Mu?[kk&xO:B3Lu9Zt.|yc586p=#+ z"Ŀu?n?{T)l`dQoܒH:+fv<-C&,5I䋟6Қ9?.MYC$P jo">T1$v"q=@s$mYrZ/%F:VDMU,yzW\zLl5"IXhj@ODR9O,ԶxSeH$#RUt'H}U,ǻٵ =g"k?۟zo.іq,O':w 5 l/c>A<N"=qGvvTq;8[9MO h^2/. ^8t]$]WS-›?媏9u[%,GېmzIڧ PxqjZ15~l9<^~5ce7[p?oko^ќ.܎o~ݑPUe=f8~E>ϯM2:̓ VRYma{\[ۈU|m>%x&wQӦS~Z(&_ۡjt1Q}*(yI*XK;$-  1TWQe+㤘-C8CC\5qO3 |OY \G W:7H%jlAD$U ehMoC )r/:ÆRC|Pxb#錚At EGFf嬇R~<@=zA3 x/?J}%ݯcv,Qԛj@:ȶڇ<^z԰<8nG ~>|xFSBsi!K@ocsR=rIېO:7?\~=\u`_1<ܐؒ-bx=zo)39_H< ſ݃tO׿狃zk5돞77i':'ۓs=bчvGWF‘c)0Vu}=s z琴SŤJ )kmJ_*IUvZX`h+V^V8D M k`/\Y53J3uL.}C{MmNQ{ {i RyA [sujUKs?Ӄz Wtju.x6<"Oxu册3s0 rH>Y>gRWq u`x?`Ӑi 4H,,Hpl ϶ǚN4~y<~[\zpF|uA?{a4HUbdA+as2AȧR;k,-+9&"$5*\8CQu.jTB+єj$ǡLtƬLh#SR{P:a ڑHb33Oz%~?ǎs#$?RJAӔ@V~JՂ'\<NJGm q`zG\ j`I -\[{i48`P 4ٿ뭽z@''.5c߀/o~.CE:zW<kO~}O[ QckOԂ?׷?=Jϯ П..,T?ܱP@[l}HϧcMO5X~_&GVz/ǽx]5.N_\c!xYkR TW˨T6!@RqC{(oCE3^HT&wSΉ"+^c!?zK9V/i}u-X{i玨C@:nH%_=kd؃/lIs}q'߫L׭2c;ؒuX xzoQbdVq>Mk08udM =^ysqLA kjE}>F'Ɯ kﬨ-|[pQq?P9J˥ K!oԏŽĶF3CLA붚t K[{'ɺЎV=qZ k.9Pmr@ ׯsX &ro?߇5{k·Qzm_W)La@-H_j}zL=zEAk\Tj:ۏn3*XS^KVs؄[K$ז6%XҒ4=#Mmn*ǫN#IZ澣qu8񸞦YJg0YK/u&p?gN3xNEAr3Oϩ Mzf 5IiT58ݹcN5>~ziEi zWKY^{[/}&1ɩ\ Jo0QBlCAèOa7@'#V:}cZ.zfUSU~{iXSV:BOb/an~omth 397:_Qo[4ey}#5 Fz[ nlzR3 7??W9p?>'tQ!noӛ}=zw&{m6I6z߆+_pWk{aǟmA8P.AG.E؋ \qZgz,(^nj5ůn}aij\l5X ZRRoX|t9@iSմ´=bg6WS7t(OˬEI&Q͈/|6/~ή G], *[궞,o{uӧm1=tda:B}~K .Eu9:lA@6=Q3[1+6k׆it&. 27{A} t5%3%_S?:S& !K)d[o8k}8{~6f3tʪxh*zP* ?GIK;%?V:fc޵9R`1&q ?<{H̀qִPӮ_I7Ϋ8y_zG>γ}T6SOYIbW~jPTAARG??{A4j;m!{<窈:Ȓ<О ^\\&Ug.pÛon4'4c:AzȲ\\`Ip"z;qrH 9ko^ uɭ4rDߤؒϻ)srě {޽8E@=p,I\ۏ׶Kuj3\?xK{k>u.XؑrOo׏[@b-'I_x޵/TuXŅ^3N׽OȝwVU$ҝF3Zk[G{gbh=׵kVZ?GŚ״䎺ߟߎ uu?[r-Ϻ9dnU]Z(^/oߌYA~}zg|& Oߵ5:<-ĒlM&uI:cܟ׏>|ׂ׼*@Y]k݇rlȷ>[_u JPI ~{>}T"dOn-)TO>V8>[ݺ+R\D {JHf1=z{y֐ iymOlko^჎O<Z(I[1usؖ"ߑ~'ʂXR7$qc$ 4cn뀨&?_o}\J לs~E`ׁ{}y<{Szqi}/QC$#4 }x$r~o> 4v!# 7O Wiu[Xis׌"se~sbI$qA+Z]ߋ}{ïain~$SZuК2On^#zu ubHK$O:AJyX)uX|E>^ϗN`{:\A'_B?TB1ӡ5=aů&Q޼5N[(@iVfc׋~@:$HsseX>ӳ-ThďP&u'rA@^0]itջzЏ΢uoK?_nu#=q LM~G? |FiN򛟭--c뎭VH6#ߺz^WmV{nK}=^]rQ9"s}6mC=T׍@nmZu C &V1 _ݪzM:ˬ}C/6 `8GTꧮЇVSP,Gr~܍ֈǯr ؟ɳ{3˭udU?_?_v59VQ$p됗߁qӟz֌~v&ĵ$5qǿj_XRʛ:K=>Lba'/6=T|z&b.>b/o{BI59Zhazh;O\ui?O׋_kI=Hk]=_^,r}t mm!O֙z(Q^)Rn@n6.`@=s$_y\pP.H<:[} QGzm$qr.k~?ڀ_ۡAZ=Ez/܎)z׭xuXTXꌤS7= ,nHR?~="w5&zׯxctdkܕoX}G?`bzz~mWmkWZH3LXr _J7zگ·ٸ>_dPӧ dool^yuȷW-yҀpݿ?['yGT:Ѩ9#noAjzQLT#Ѡo&Dt[b,A8-dOcƕ?uȽ296<~P~_\~?X}yߵϫ댎 Xېǂ >we"=Yyu]_8ASWA!z躂=G^9'iP*3ׂu_騛oIE^>506%1:G7"8=Ҋr:ց: y*~ϴ>:^;!CY~9$^ 멾_ +6:@mB?^tGտN.{vZx&gAU@k[aڞ+[1Tv1~n,oqǶތMGN}p-o[moywS6 @ɤ^y=$_UCuTKW?I>5ǭЇzǭA_S-qoA½8UIc1r@7?ֈ\=TK$ 6a`JuR5WϬz_VZ>ۦqV.%k-_g]-nl.}2h}vܒmu s<{{^h3qr$G{sh%:#?ĞG }-k7ߺ*1sP-sco~eAE(`GByս7Ůx+]6Fp_Q*T-RTA"t6з~}v&CpҶ#kߵIM֚&ZE>޹y,E_Eɲbo{U )z~O~9K(~Ԯ)Dc?72 ?.` +½g ɵ?^O݉ot\xuX skoq$=WA&]m#U"={9^ԭ{l&C0x=A&$߼F:ӬۏY>rk\}={Avr/6YGZ#yue~O ,A?P=ڣתxy5~SpnH~by?٧Z)]w$Uɽ?Cz U.@b'?쵦xBzeX:!<ܓn*k׋{\nOmzAZgO"ܓ`װX[޵VykDTv)`$/mB흘ԠznvB̳q * q/b}ƧC1:_L,%*k>FY f5Pc],Aǧc5dA-RLQmPn Ϻh1Ӛ+_6{܋7r_jN Q]'%ԓ_~`WҽGi=Dd7~}}U;h)N&ǃ_kt-o~WFBm8snG{dʀu͋k<s~/M"i8=[N@\ZABH_#Mb@?uC^h`=D,Wҧ cBI鲆s{U:P/FrrBȭoM܏VZiHg'x`YԨf  l0,ONP/3#iMyr酈0*ʼnR8WP>)`Ëo?њϯMb~|Y}8\ ZtUuP5@,?CK"3B>yF1*HC{*ssY :VQ!Zhk=G\PTi &[A nxxhSʭhZ'Wع{S`*?:])footoeI \^׷$ֿ- 8PM ynMX}־P@?oYE<\96 kuFZfrI67wG]ڈ~=X:P!!GHߕ-o hh<+?!@KqrI{+43N _x?N9z܀-5SHNG?Ԕ -X[MS H\tI;RS*qbG>>]79=ci~<ؐm{\uf )N \u^㛕?Յm^4tH_b@qsÊA ~]pZZQ׽?c#7,rA֟n8u KGnIrB nA6\u]+Ӭ{6[{}0᫧+/Wi6nv|>,=$%pCPPlT \} H-Ï L$܆HP>?ORNB.t_ZBqz*#' ?ϻ$zmM~x"cT/qa{O~5ZQ=x16kqxs^_>xӭS>ua{ zuPg[[=zkï? X}z\k _V樐&,STj`_=_B+T\}rKxΒ֕ʐPscsMBBpz:8?u2e6]VoݣFq2T7Y6rӑk9O5 ^e$-ߐO i8S#=fsΛ)Sx=P-<ӟ~t| [}^zʌ q[ j"1^j7 }MPPTg-%ynGPhxeJԎ={Q<}H_Dk]gF)nm~}O^e:z҅c,D5O?c ǪBv4"v oI8b/_?e 7/F %|ǨTBi)1t`,JEJwqeV ^k BŚËpPzLX\?N=8b#jo[{hxT<~x6$j(=yGk#=: 1FE.6FI~4A\quO[^?ڧs# <9K#xudXǕ؟<[ jEz%G\Xr@?^-'~E9 ֻ1y8:nxfe}8#mJjq\ 42l$@lٯvV@z볬ԟ>S׆\cXǽjUuow}~K{s_.p_ѯ$~{c:g@ 3Vq }Oq|:SQ;Tex63j$(as'WӢ6W8ds!\ֲij!n ?ꥵfӒ"i/ԤMPCX"7]9;6-Ào=QbMIiש%M͏Гa]lȦzdP =_޼X{bxfG(}$ޒV#?1Z0,VƿNXT>$|H@*od_|ӫ;jG ש(#G81P.'{p:Z!UY|a@*-T~? ([7&>_^PJe#~}w]mӁNm\ZCAx ֵZѝ]aI^־=჊F> ƮM6*:1^G{{ޣ_RG]ݘIR玽@E+; p6{g.R$[*:鹽MΞy[߼D _>uO$+jf{h&ߛfptg#U뀈hcar/` u hSp=\ $##>)?PϷ=2[.CE[?z1Zֱ&WTNj3|>AD'?OxR:"\r8?o]Z]Gf(J~}/N GYOH:[ma=P$ѳì'J\>Xj *pm<~=zlq-kX}^թ_X XZދs״7Νoӧ{xuפ%_H]6nO㪮=GIw u/'J?*$_^ ư'z_GNjaF,?8=K"u @ Wގ ,EU/>hyXjӛuq_R #.nWݗ^hR݅?Z:N>"dS-w {yo4}ܿ,ֿG}n2[[?]G]'=f9Sl?xCⲾxuK)_Obq1WO{uAHw],~?nO6E3O{u,6wInK?)?̫)_֟Ylo"qc7t pGG[}Yݿc?a/h>VWInK?)O'~ =Y4_ֿ{wIne)SqEw\3uܿwyp;/3RpW~tOVa7{?Zzr{ z;s83eܿ-a{Ow/ɿԓ/~YgG^>mKcneߔ޾ýeWuYeퟫ-S¼/G/|#~ 1;MH}oN_G|H/e o;ۏBW3ҍ}Zzr`az)qJ([= t+4mƝ?N}ezOyqT:qKdT?[I>PB@QU}=aĞr9/?e\?M؟KX,O{uO@xu{-?_敛G)r֞][Oxu2?@n$VrA?_zYf_o%G;'^)ܿN+uk'ObXqn-|s?XZ:G[g-|>Ŀߪ~YgXW<տwW?Ћu%cz߁Csgg"[c/iDWIn-| %?Z3{-A"q?g1ށ>_Xއ|}a/icZ,ow],o!wvYh_׿/Hw\+}CPmض+27zZ:+S"`RR>W]je-{ʏcҿ/hbwOѺ ~ {؜U5~=}fU層-@n8J)G ضǻ4uܿ7ܴ8E[%뿺{{;p,?kx9d+uJ)?t-J)r֎=e}n2{?v0۟g޿c?:o/C*&~mأ޿c?>oׇ>sN~o{uC,}n>S/{={+ ,q?W=O*GUǝC[¿OQ,$ZM{/V"S{oe956trcB/I*= زX%OT5b՛NX2O W[̪ݿO_O7h_{8site_pro/images/logo-footer.png0000644075506000000310000000142311734376554015056 0ustar namedPNG  IHDR_#OtEXtSoftwareAdobe ImageReadyqe<IDATxZm0 u.|##Fȍ`ЌPP D+Ugz>Kx D~"?!OH'D~"?a k};cYDƶ5>Vkw>SGS^m=pR ?Eq 0(U|)gyR,3O0V|$qB쌁5Hٙl,sY#Ɲ$") ..Qҙ_B .:k5irF\X2~;L>\\g5l6+qW B I5Bq d- {?͂5`;@uHs\Jpϋɗ+$H@Q仼V:-|yDRPq=uGd=8mˬթ5WΈgs|  CjCBdc~CAÜzr?ୣefmJŎe$"|N5E5FzZ"HZ'B4\W&Ĺ'lׄD6rR$sOBĠ7 v7 ۂx^keNq=5XG|2 V$E܇=YdwԲíL[eϠoeNǨٷ ;-{oyȊoԞ{k:Wp+rIENDB`site_pro/images/prettyPhoto/0000755075506000000310000000000011734665230014445 5ustar namedsite_pro/images/prettyPhoto/facebook/0000755075506000000310000000000011734665230016216 5ustar namedsite_pro/images/prettyPhoto/facebook/contentPatternLeft.png0000644075506000000310000000021111521652346022537 0ustar namedPNG  IHDR tEXtSoftwareAdobe ImageReadyqe<+IDATxbd``h` &*QG 5pQ$8|IENDB`site_pro/images/prettyPhoto/facebook/sprite.png0000644075506000000310000001020311521652346020224 0ustar namedPNG  IHDRBtEXtSoftwareAdobe ImageReadyqe<%IDATx]}LWZ XZ"GԆZm㶉U?Rk~&nGv"bPiںZ[Je+*J({8̼3o>\޼73͹眹s'E ϖ-[\e4H(PXY+PNAIEgrD_C9d>HD" Լ#(~yD0~Լ#B`}ٳgxhhhСC2 "֮]tb7l0 ;^͏AhrXaaǨLiTX1 tT'I,MH" <w1GQ{uI(Y!P*h=*QA+ C{= &wBZJ*5Lx].lT:"uOm!|d׽/rC>C0 wT-Oo7XBN|9"V%^gdH :gmh<̙3f%x mc6̔Kj4"d\ JRJfDɫJvi*9=T$R"?iVGj C̪/cRdtW`He,M^5`howj\' 77w|C_<rJ+:(ἋRY.7v\ɫA;$.sPmlB˜E=}':.a.UPqLEB>y:V ʥ2R= 'M^5Sc]ƬU=>zDfh02T:s~j p]dJE 9fR6!AI$8DK=Tn,\'NdLh ^RDx;E/l\&[)0ӥ'ij~(m2yUdw $&NwŨ8]zz]aZ' -7/>'򥎧z={<}T)nԠԘj'j!%{dޡCq'L#---m֭[~?A r:,*5.M^S{^QQQjcc򌌌<'A pjP-Ӎ&wd/DGGGA{(Yp@zzzԸhni-fE|NM$:t&_ xCZ߀hh&Px"Vs)SF1 @CD&:>gP֥`,mc3(X2t:' _wX)a=CDsۄ5u}Ε.tY9à 36 L&0OPKE +R!!!,MD3*,jd+|ѢE<`:D`r.BCC|MN{8&ٛ6mz,6NL&wMX7&#FumDFF[YgScǎ} ++km|C>+Ǥ.k!n'zˊzIIIEFSWv1'Nw'MK^.((X*z>|'"455S7Q믿>N0F/sꬬS[n}tȐ!h>fJ}G;z źNV`d;]vuY/Xɪ"رuz 6rֽ^\]:*aժU/^xN-^!ÆSZ[[,P9}U]7noE}P/AxСvuul \CL Վ;nWTTډŌVeVwaiV?1o޼zͬs>iK/T WaĦmH)^V}}uz8),jSXc"xʬZ4}hb@F;BLDrpdd{Νϟruj6ڵk555u(΄h<\sw{?l؃( cϘ1#rF,u|{mپ}snOxxx/<3|e 0 #Fȣ[lyxť;2VdS}o޼ u3F ˗/_j'QԋD"?ٿX;)^}&!%%Ŗ]["x<쨸][",X;)^}&۶mi'Q47AC cvܹ{oY Yf5~fgg3fVuuu9AgNN·{ڬs"ɫl^֬Y:;;om flQ>AfKeff~1;qLϟ? , ^x jG~aaĚ?^_}U:/[`~駧,{7LNd|_~AR oذa^mm sLK#&&&ԌnQg]_* R3 GI? ˴v$ýj3!! , $0eZy0q PУW )";qX^D50 Ո%`rJ{ 1$ʈ!! , $@e6$Ơ` 3*=  P\"F`P-d5V"2|?n"!( )e4xyc?   3 #wyJ l% o^[b_0 V T[0m $4>'VZ c3$X%!! , $`e:D3 H0,'j0Qs L(2HMj#ȉB \Oi`u=YEVL=I  > suI WJm| \"_b0 BcV"d]*K1" H|@B?I4# S$-||!! , $4ea:D hI /K$W- 0(`3F=pf@tQ  {f~*yS*mg) enu E^Z^ g@ kw(b& -w#" xW"t ##%U$`to!! , $4ea:* 1v/Kdzk#  F Y" % E  Cb AI4$ (z:2 mI Ll## F##>F!! , $4ea:* 1v/KdVtKG227D"$)Qqp8 y l |~6zw2j# F " % VC ]6a$ Q :2 \  EF I&x "͓F4$]#x!! , $4eZi䠒J16e E,C\3 ^3[ S|?!;site_pro/images/prettyPhoto/facebook/contentPatternBottom.png0000644075506000000310000000021611521652346023116 0ustar namedPNG  IHDR tEXtSoftwareAdobe ImageReadyqe<0IDATxb TL TH`ٻwj 2jਁ@hIENDB`site_pro/images/prettyPhoto/facebook/btnPrevious.png0000644075506000000310000000147411521652346021250 0ustar namedPNG  IHDR9/YbtEXtSoftwareAdobe ImageReadyqe<IDATxܚ?hZAi5ZBmCXvPZ J M۬A]2Dpi 8XڪC*RВ1C bjIkUJRRHK{]n}yǍF#?8f6/mBin?k|۟xN+)@l RJHN3q@!65GidD9(4 yD"U*cM{Fߒ B~VCZBd ,ާ (*h4Vh% M$T*ՄBŀNs&>h4Dr3&ff") 3:??OZ''A VTX|b!-dTZ4 zVr&\\~h4g܏B&IlFTzC֐NLؖ-$Vw8V#[HZ@_]BbUվnvkssr^z ~@!}ooo_Veq* ;p|dǕZ˙`p [HT*XYYd `07GZ[[uX4@Z*$[H 𫀂~k$-F![$[Bn@b];8nHaW|&'Xĵ;V~0w6tT"5{ ~:;9ֽ0cUtT?_3˧'tBo/IENDB`site_pro/images/prettyPhoto/facebook/btnNext.png0000644075506000000310000000151511521652346020346 0ustar namedPNG  IHDR9/YbtEXtSoftwareAdobe ImageReadyqe<IDATxܚ?hQߙH$j 퐡 .3t06A]2H!lH DZ2:TJ Wm$&^9!-꿻}~(td`XčJMWp ˲:gx |G;5N@OH|j7[@w%yߔ5 h>t\׈:p\%K.Fi֗m YB1<0̋T*K\$[R*ë3&iXH,J5L&LLLRժFqXH,F31c0j#N7D,$^.--, EݾI,dX܁$^TizbK O\|>@RV\!2jj}fkI)zz'g`]d2{DZzW>zh4gggD&h>y<ױXHGdHשׁ+,6Z0#+ o!Ho} W=/xc$B^WZmBn @{p yNcwܼm!9t H+h 9 |D#G\uoɬW[\|Q]3:IIENDB`site_pro/images/1page_img10.png0000644075506000000310000001130211734376422014603 0ustar namedPNG  IHDRetwtEXtSoftwareAdobe ImageReadyqe<dIDATx]Ymf1f1ƀ X6/$qL;2 EX~_)$c-@D@0Y @isozFRW*7]յkUͨ2B} 2edɔ)'S L<2x2edɔ)'SO L<2edɔ)'SOL<2x2edɔ)'SO L<2x2e4R4Zx_5jOXKݏW&N`H)o3}&, oĿm~[=f̘߿_Ͳ.m/P>>c4Vрׁ ֎h) ` Z'/67O0 ~N-{@DbwWj,dGcPH^\A$x: ݻwq$/NW*r)ԤlILuԍրDJŒ\x':G=}&*65@gH2ahoJE&_.KG<([ O?]lٲ8yd1nܸr`'kڵڵ PAzc9ps`e+cqE(g-[ B;HCݰtc UvK)% }#%-vFc ]0X('(x8$bŊb֬YeT C6_.@UeiӦm3BRϻQ=먭vL;2:pO@L ТEJPxѠ?мysd r"dȦ:O>)?Ptb߾}%xΟ??kwQ7(՛6m*80sX٤IJ,fΜYr LQxڌorI>~3B*bxUCIgst{@L>'9fxUx\SFǩ|:{,-ufI;>vGU6Z~^vKir`bGAc2,L>%?,i;x%u̟rۋ,^iF!&:UF9sLqAWA{AdnнJJ ;xl X] =yzOVk}>[;Z`I)QQgiTY P8Z'i ##IzZ{ 5DW ua8&bW ;iY4,)f <'w+QŐr6XHC#e]:_ev틢^4.?ŋ1B:7n(ˋG€+ׁh{ȭS7٫n< xX`*7ރ#Z^eQ Ufrj#FݔwQ O(GjQSӹj!K\4Ql'lvDץKՓꦾ ϙ]oyhD,۩*}>uٳg͛7Wx4GXga7D_~ٓA̶â.Vfe` _g26,Z#k-hJ)~ gӎD,"(v*g:ݺJHB@AA\Lɇ%@- cAZűg-FT'm*ʾ(nΓYTRJTaE8*/"\S"Gڠ %(FyQ*|S|x#am=o $*&bn@>SR C.& i=(ޔ>|rj s}h$6JVEg+"ז&2ZR*- qp ,#yb y0N(754sg]ԄT ~fiܰb`'YǿrE(nOp0/^H[\ '[Ea]~qz~su>)0pumHsFf_JvTllz 5B`;70^rhC#oa"_/[IyL} :k5bBjMmUtJ믿^.njbPyap^ b oF3%"$ԶŒ7lP|G<@!)믿Nz I$h fDq~[]Vv `9/_.s frVr*)oa C Zg<GQZS2!R5īgpSihYxr ؋ōyUthy "[BjN.~"w5$( :5=X\ tl\֦\g ĒNDT[hM;ȌF>'Z^A󰺔7r3;puv&լ7Owp+iZxJBŒ޸`H)6nXn2 lƀ$\+-Bԏ!<@cKp C^|*ȏ{$'wA.9r\.BQu~!X]}hae({ァcﬣoYsRPKBQmEg*5ҏt08Lb>>ǺLn)  As H hs" ?~gZ|?lWa[z8cQTx>71'֯cՙ>G7.uĔ8C? Ouo${Ng(Jxv VGM(8N- TFzr&K5JbFy({7:a9X =/Et  H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_FIDATxbd``h` 01 FRG!ܞIENDB`site_pro/images/ul_list2_marker.png0000644075506000000310000000221311714627206015705 0ustar namedGIF89a! XMP DataXMP ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  !, hNd;site_pro/images/digits.png0000644075506000000310000005733011723503756014107 0ustar namedPNG  IHDR5  xsBITO}PLTE~~~|||zzzxxxvvvtttrrrpppnnnllljjjhhhfffdddbbb```^^^\\\ZZZXXXVVVTTTRRRPPPNNNLLLJJJHHHFFFDDDBBB@@@>>><<<:::888666444222000...,,,***(((&&&$$$"""  /9 pHYs B4tEXtSoftwareAdobe Fireworks CS4Ӡ IDATxw8i;v6NuޝĽ"˶z5Aw|k֚Ħ(Y-5]v}\!GYy?*"6'd¡mTy ƻLl݄|#\ԳvDD2{궰 S }yap#@:]-0wXO8bn{.1,Bt\K-Idb`2a]g] r|SFt=xٳlEwȾ-x~z}\iܧcx4.,>D⦗Qv!n*uO#H q+J|xOƂw"Fx?cÍ]*W>KqZoqJ&ؘjk7^B5_3.xx{-yhϤxSƔ8r"Y1%:7+p 7ϐ~ElǛ$Q0l尻y7WHK瑭8>G*1ܜ# LcG>(äf&C|iq'f +F8OE`\2C<t'|xYWreA'e>+#>a&Kk^"ZW\ySgJC8G Δ,i]ؙ*コ3yGB=?XR6n[z-#<]~|i ƽ,WX$š==-:ʵ.S>c*44+"*9*fn76 ,.xzLJ3M.m=ot5B.ZMxwdg[+K%rU*d%oll,{&.Kжzq6U1]kEя\̕)ɲ4)8r: g˕ Y23=;6:)I6"qB'\ NOO/H:@WBs[58P7Vg^S /a`u!Uro_JU}c-_"d $=NHڞ/i{Q2hu5xLm6dؗXdjS6it3*Q Edj+Tm92fw:r8Je=0ON;B>_qǸ #MZbAkgT8sx, b䭑kM{wu r-FcFHNkf.S߻+o^rEN LyV,-aFŴJP=Lݠ~bvK(sq͌ .sL`z8"CSQbk}}q¶w .?}!yE 1udVM:{OUύE#a7`i4g cohhtjˎ1[д{. !m3CAԸaE7з3f̍[2EߌVUӵb#Hcyf42a.g2J¾RMA*c2X|$dn⤵0bI&&sK3㖂at"/ltz@tz@:=ރ@{M Lj4gstn޴t^']/hR12}.Xy#[Vƈ*qsS,p-hrr*;AK9;.f) :S.US!jx6:O:e?]{?12LՊ'_gfYpBNqێ!t~b~d*3]6Y&SpTXA:~PF+x{1:y)rUU“24,:aucX B5#=2]dy|`)fՌ1 0;`=t.\{Bhs}zCdz\f떩u67+Ll)r'm;`tI 9W.y٫mvҞj=sfvwoq%о ӽ]KU~=zWWVyH>8IVbt`X?z?=z!ia=i[[#J|w>9z:U̲N<_[ǯ'Dze^{SS;ъb,uFըQA9JkT&IR~UP|XxM}tj, Mw8w'@^[z\WS7D{+"-r!c}BhA} ѯt)W.DGIFr!7QFҕ h}ё*.gz?:b H3Jr~R\@{GKar . |̭\`D\~îNlk] +N#su5@kT%Ntz@:=cuR_-MKP `]rb|TyQ ;_D\Xcר%|{Q=,v)WTrs1?c1Пw 6ᤌsɜx٫HZ݅zYv߅'p]KA事+AZh]a]Ӄ~"d==PԒs-Pzp .J.VcaBǺiYu8UA=S`=Y+MI{==0bӶp2sMRr`Ḕ'v/w <3YsWLѲ9g.߅d//aW^u1*cNk;\vqFZS w.l l.q \`tƧ@:=tz@s/݉o;;;-}[r>aKAʅMƗ^#YynBwʅ?Ek+7.ʅו_ruGS~ y7/\xiܙQo|w]1TnƮ?"+8C8zBKS[v7\3j-\Gif.Tpa.҉x,HlRB>wtPI 魑A}p ̅&3a.0?d\Tݘ Tݘ H@U==P=pOTuU@U==P=TKuI݃A-P`P[zjLغ}JHuT݃:AUrՑK=] &}{W ϻg.dB;p؛p.sԺETv|2q)Nsc1Ώ9_}Uq̅2SD-jҘ9f3*-[XoI%OpGK`.˧ven2QO\ aWiqc.?pc.?w61x2yB1N͍@:=Ntzy@}zN~xz@+Bk_8'q6瑭\Xy/B#x5']r!Qb2m~ו %q]Baퟚ/cMۮ+oK$ו { [p#+]Z`dzPp\/ljraPtհraZzV.|Ů?UW.DoaWWw\膗׼r!qzYʅ? 1+WV>#'r9yoa< Ar!O%HIkB" A.? j++vǢ濤eK+zF5uWeӞMK;sbB.FCrS6YUݤ"6$msMk: .)*z.od_4aMrWyL1IM G*^TsR4M2JX'6E,Kk+B`jAZ3),LSkKA/LJ^҆!ySͲOX%Բ<J<}܎&Q;r.-r3uY\eAՙnHlJU5VjSER~cbe=} ҃:]vz#l$k;(9Ntzߜ̅)4:b,g.aga> m3 )\ J|qTJ+]\`u;\vr\HzpBg ;b5s/MYFCKozsዔpsY3JooQ_+\KKX-XL`w2N".[,طVu9S 4s᷺d7@IWMNtz`NtzLDn.e.]v% DHƝ\DC4}ug.X:]] 5r!gsmj#j\WqeG;d̅]qz%\K\%8{x _voOxI整keqai/gu̯kF 4sf.@:=N.qf.ֿ!߉0x1b߬epF\{PkNik=g Q4Pa.hLo` s!>="(`=OPŮ䀬\c.$Y}:>b.;Awz@W0p ^V')=V(X%f.(\uH3(iN4so\f.X r -Yd.0"\w-\`Gz^]b6F1\9l ¨Z0( j38,ɘ ⃽==ra$2 $ S65saJfb.Lӛ̅Lzb.2U̅("- ) 00lU0 C0_* .0cQsa,'h;̅, dB3>RBj-xЎt1 ha$1uzGRBeۢ&LaD32@~ L sh] po:.s􀩚Xsz}􀪚XGz@UM#=p&֓\(=&֕UJ쪉uJ쪉uUkDe u)]tDL.?SU5Q2=&J\􀪚(J0 *=2WGUzJWM=W遮Uwz={ԮsКZu5se.T\`tB,8=V4]3hWљfX\D rQ%0Nw/Ͳ̅&c(g._g]3̅usOE}s׉5YppRLN sWON!)폿\Ntzp@:=ANtzb]:=P!G|[DuDt’t H]\蒻\xR\<>\߰zM\Xu]9ʥXG#U] Y,"cv~G>sT+\X3.\~.<3\¸ǫ}=:q0X8BL68ur%"4~saIbzXs!^ %DB.L\PI3tzI Ӄs@j rYzЩE&7I fHWO& *I7⬋b.H>zTF& W*[qJ!q sA,d7N`c[gf0Ů.a.Hnh1=\(Ʊqi\($0ƸG\DUUWd.ES%n%i,\H]o؏&o4ʅ%z3<.|34z#^Utc.DK :.Lg9B!x:NK_c.[[03%n1KOPn Ž'ׯqʑ s=\^=J,Gt!\ ;=M34sA_\HlnHK񝨫 ߿/D\C1sa'\s!c.Lu;"̅)b)I aYd444O%)s!x |H q 0^(%a.\L2%x~O060-\B$a.g,rB^@ yN*W\$2Rc##Sۛ[^ s̅( wX;yY u\a.y W_o`iY|sDnl,Te[Lu﯎V.D^6]V.lz7׃z(ʟ'Ĕ+.7Q9 zmш99r GOq0*.Vpu~x,jK1,BE`OH;T9n,*{77=vQ)fGCmdUu2߱枋nJ\~eu]_"gv*q:;0-q׉wR.Wz\uHU]galMSL?Ԑ;f_NP't+sEYnc'㡽uIuNwtt=xb,aEmH"=j.βOXk|yXv"=IWeWS[Nk)}|"H67?*DK ;ĢpU1˾?yUʦt\\j5r?Sj:OuḺ:MӃZ+`#YI@%@ٟtzK:=N\ }M_~va^2¤(Ua&nm3y5i` G9Fc|ܴ2pan$x o-.p\x̮ Loas&q`V\F3ζۋs!?ף(mKoQ{sԶ}1qҗq1rsy| 1?G_ݱ~[͔Xb6\[:H_V\u; 'P%ҷYⳔ|зj?~›D¯J2o;Ccw1~st&[8\\~|Gff.PUuz@:=8= ۸jҞD/e.o/M]` dViC\؃sOCNi '")4ì+;rB^wbZN?3< pu.B]P0wGu=!_@*{'؆79\M6gg. w\ɘxBf\];\f@+;F/C hnat},N 3\뜧C̱,5I ޣ͎W\Fߴlmk1&`4sA3T@b.@JNtzPЁl4&߸W1I6\2wkQfU޲k̅8\b[`~6r qB=gX#+8foX r IXi?#"5 ,s!{B6 2d x7(Kc. 炤=Yrxڙ s-q̅ B' O#f E ڕxWJCilbg8xBWU'Bͤ= T{4ĞC[v/h~ˤ N`Ι{H݃k͸ASDYtQf?c.ye1\YU3XCFO0U|ur%: ج'QiU4sf.@36\ 52rT2m[ rs~|*c.O̅efwߟ +Fs2YU\0Y /悹!:jagdnc/eaI\(BCѭXX$a.C}X~xA\HZЅ#c.g,HX{\ c1Id.$G-°3̅ڰmg.G43TQ//f&*̨ɵ0Wc.`t"[g hH`.d&,jR|.jBhX˜h2s̅#)Ga8BS5BS5XOzTM'=PzTM'=p&֓PUHz/PUHutU{zTM9=Pz^kz@WM==&"՘a_@:誉s՟誉 ]5wރ@{1- oݬ ps2M\e}9fwr\d( y;Nd. 3L0u$S|z\8/43WVDY / s,PWR\8l?sg.zT\X^Ӌc.\墅#z.\8ãaݩ'ԂS@:=NX@:=P{@ez~4a6+~\C*k{rᓡ3ʅϮ.ʅ]7s7אrު(|6]W.p<Ǯ^ו 6a+8Ear^\oS}r]{+x+,`W2+xl4m\}Y鈹\tu[Dҕ -?4,0akOvzgZ x_%c.8_d0sLc.x@{2?̅-(CW?OAX>=YDŽ=<-H6?x=榟fsTJmooxgkk{g'̅S e]8.q.O1 CwgAe1 ƹ,nT\bWX͉sNYN:s-jpr^pB\>=ۛa]?]>qlr B_'@Y'I U$Y[]Y5ϋսdڀfI̅y\x\x+a)Ryg.z6.>f 0| mA1.|l9۟|\ ܼYYXX˚P*\ :=運w@rNtzJa.}),b q^{厏g.8B@-K^0-e.8|nVqwvsM_dyYyeB9\~`qVCDB!?M DBaƚbm;{saK_, ެĮ c~GUV\,R9`2]\2zim.y~TȦ3) ;25s@:=N\` XB.z` 3B] X~M,sq/a&*31 7ŷI M~ [iLN+.jXpM1!0pFz"0XŖ-m]G;kHXޔ 1(YȄb;$i?;bXc.POu] x9OuNzx!vE%RޢCV$۔Ffr] v&) %70(u@Y(&Jg{Q"˽-̅K\qr̅^LNx:ˎ>̄*eiq^kBVm\Luif.@.6ޥXNtzӃ}z1r߾r6{ ̅Cn~;3~9O~r|"sa~5#]]c.Eu 9 OG8K`D0+V&g.D`hu'IJ g?&_qc]2bcܝ"kxB\lw|>Yzkٹ\(~l55=Jѿ ̅R)3LL.0{6vg:k0BӝEjuP\-OR`);7|ѽs[5sA3@@:=Ntz̅BWt1o?AN9;\HM)sqȺ V!a9=K* Iƃnr LuAn"07Dp̅ ]27§%J I 3cQxu1`%ʦ̒c.-[i]a.ដG+g\08ZWIKO(|m^B3d`@1fQ*[Cs/ǸyfJc#26-QU+jh跧|vU8|*t+2V_u]JUA0m%POkƲW?F>⛛[ -W+v%s!X\F\Pf.P̅ߝhަ SKcD:[ "s8#߻~ _x +Ip8RbZ.18`*8 a.to6P,?٘B\(eG{{`a`xnE%sׇ a{|﷐ ;N'PG a!fPj  I.P)-0`M8Q؊,ʎ mXg.-Z0}~kG[xBǢvS~B Q7~? 嗭N"sal 情J葯\cdYɀ=RF1b N*1MnRwi*:H 5|҃ LĚjb]5BU5􀪚XGz@UM#=PzTM'=&֑8IuT:҃ O൧LĚjb[5􀫚Xcz ?%=VM誉s՟誉 ]5wރ@{@138CԿb6k#\8;EÐiq,:)3u2x+\嬘N8`` *]1] sWr2"<+L8+fh=f̅c<3 X 3qngszWY' #Oҳ f| AxIބP(FI\0p40TA;~/`w M0T$VABz,<ٚj ޴yEwj~ ܩ)@bQTދX<.+A 3 ㄨŸgkގep.?oTA9;aXYxPAXmSZ5XzZsځƈj BtRrJf6WRJO8- :JOH/,,#az&p&%6wV0@|)EOB6vRǧ'ښpch!<Ow([[물 հD<=!GDzmIǬ8zB i) q =`w7'v̹qsV c>haWA{-:ppeQl:_ܪ:3(MOMOjzN\(9Ntz`@:=0MOMCv  8?X'ocs 7 S?:y8<$5GOlﻎgO8LȢs S .t{M <@#?XYzgO7['zOOվm]q ^eS:_N'hGCkDDV':x3M ֎IYw,QbC-MOu gɰh"#QgbǿD?Wu%&h<٪ KVlJNtz@:=4=!~4uSHP^=, 0ھO }Ge# u5tn'9zZτE|:?4 ]rRD$xT%e R4;a;KOH D `A]Xz/m\Yz#}U_ T8|ƝMP(o-=]`6l67(t V;덡HO\ OwũHO`\M/K^FO8 &#y^V}WGقJ *izNtz tzPc@xNo#kr)lb0ʾH4չ4l"w Zt-fvy韏tС'X(|4WGPc~P`'Tcp8v`3ѭNSK Sw9M=A&/>O%GO(ԭ,=J8ELFyz [o;$80 dkިtYJ}#( L;GO`E3%kv>\hhxg7r8=1KACw3@O(@FPsI' s`PLU01|EzB^K 0d*+C _ni|O3ґ\8% 'H\uH(izN4=oMOJO"zB2+X jzBlsgWW׏_ ns2dr7O^cH 1 =a&Kw 'tO su 㘞;oݡ(7$˘{nq Ov= έ<=aa'w,xB`4' 9Eo,O08ma9zְEOX`ǞAF,J zH,'`v:;,X i 3 'x-LuM퓑/GOcxqeOqNXGmLSPt\I@O9=֞t_(=`֜t_n5tC҃ =1VM2)LBA/{JuER%XGzw Xsz?5=`֚kMJ@?䟫@?izN} ;{0@'dS}0hzB?pZ;=ԡ'R|wI G9!E_q=2h%l1GO8/ä g,n)<=L؜~={)vxX`ߟG' y-sv9zB o /QBqc͝27Ei Rե'0H># =A:=u|:=Ntz@@s@\|dw;n+žvf%#_Y`;1^Yj1x5MW.Dy DV.Dd-QmBt ވ=XK`G=+dv,o8ܝzB xh{0Ki]2(_SK`˨jBlVƮ+~ʅ8^Tg܊R.`[r]*~YMӛ'1A؂q=zTraof\7.0Štt(V.:)A /W.$:7+_3 v $ 얨"tc5Wv}ǵN`v,`6H~%u% `>C4 v6V*$A>% Ǖ\xRE6e Wm4s[_-lr /2{JYvOXK |i9yɒ!w"\]ƻtzC:=OHBn".|[~be.$x=B3~_GI\S?X% s>zEk4p̅)!BP哒0mj6 Cr\ȼ]Sp?sg.^K沉Pq@d.d~Bk/"sXdQ '/0c#~] A!^[yvf.:̅=e"1K9w `VSHO\>~ n̅_\X99W9@4duF\&@:=NtzӃqz@1V-sNe.bpIL.8,s!5IW}Hș axwF{pz$(#/FH\ j~3 T m hMO'J'Gd.V^^1rf X`.V5|LPn;[^."sR)OϳW[o?<'L\PJ3~_z!ZfIENDB`site_pro/images/table3.png0000644075506000000310000000024611716256622013767 0ustar namedPNG  IHDR $tEXtSoftwareAdobe ImageReadyqe<HIDATxbLKK@;DΜ9Y4==E3kb&Fhh /PI; ^IENDB`site_pro/images/panel_bg.png0000644075506000000310000000021211725546076014362 0ustar namedPNG  IHDR'"tEXtSoftwareAdobe ImageReadyqe<,IDATxb;?#@d0.5@@$s7IENDB`site_pro/images/3page_img3.jpg0000644075506000000310000011635311734670406014536 0ustar namedJFIFHHExifMM*bj(1r2iHHAdobe Photoshop 7.02012:03:28 12:13:59.(&HHJFIFHH Adobe_CMAdobed            I"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?iu<Ǐi~棼깣vo~v!̦jcf棏Yans[o?1%"CKFhHMkv/yll#av9Ls_T NǺ9Z1؀?%M)r,p`=˄7o'h$4xb[QCAq0HӾ)ycW}/1Xoh2O:K?1E-0uDoiT-{WcD%]Zw Ax?S٫^,[w/Up{;./f9wT7헲,~o1u8VEgw%nMb*3^_/:z~movU_Q(}Ypdo)ίvG{-^GIc&_Ys@vE^,꾦`ѕ~[ -ST,vӻ!wuYIvd~$A 1ߗɨ׀,XksvYWٛnFC)evȲg#+߬5D:C!AC)P"c\ݎ:r6}.ߌ}0KH:/^\kd}&tfKC7kºq$Y 5-<c Ba5*#O1` UOy ssnͧ Ր/`ZL5T:ܸslS@)jiuqk &7Dl{ n3j7dE*"@s,шSa0}{̤U\si5Pdxuk7{wGr \=7f?;_Aci^KXa8kvZk\C H77\Zr nL__RiB1Keͱ-mB5ϻ蟢k=bqOI}O*l]V^*9l߷,׻]{,ݳsN̷qnMEf< d˓aw2Tqq0-Ρeklsq;d_g ֺ;\w~z澳zcN%k%gjogU[=fѲo3sYʷ~H2k[̍Fq}vux@;]K}֒ 2X\ pq*dqp)M~윏wB̆ˠ;tN\}F>$;diZoɧ+5Kn.c?+U_01jĚ(om@?z.qʜ)ѧRw=VykϨ>}uˇ^гG?~czmN~g1)nYK 5s\]5ے=6D nk-S=^ߧWAX1w1s4Ĵ?UfnԹەZk{_q- nߜV){Ȩi)sTk͇S7軇5n3CL5<wOެ>ikbD ecWvsGioٝ+C>Nske[&a}o{}h] y5e }8[h_pcoUӰ)Բk?H֍&i6j 01s~Ss{Q'/I,gXnlk:;oG.oۍ[~{]Sp[q-v>'nRkkhp{lӝVci8uGdkoN$1ߢƫ#]6ﳥ?vB~(K'}VL%#C27"Ȩ9@,{?4c+:@vddݺ0mts]ֵP [(ŖDӼg"_݇gW;<}k9a%ʜ]Oѭ.42mw{ӻmK1:vd ZLGm??ԬnKut`apyso8?ݿXc:2X22UAuۜӲKZgnѹr=cuh>o!gddeLy:#Zָ{YVac]U.v\k[UoӪ߽/j4*u[Hto+,d6Cz;e-SIe3p'ocp}*}FDz(֘H{|j#ov4d{G$*wjiiu: vb97@566>-BR=;2>P4:n,Ji$չs \~w{^.1oF~G}?-Rfb}06_V"GXk+ſ.Tg6]oF<7Ӌt*z1MX (A=59?j6M՟_qR|O%jWwo)mcv8wACNuqcZrk6m7ZK/O q#;~=ͽY?џ}]ߕcf#YȽlugflk>'m,,X nʫ~C;=z_A-~^A3kbOg0V+o8o9et:=la3D]mXmn \=sݱG-6 xYN?~M!QHhPhotoshop 3.08BIM%8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMI. 3page_img3.nullboundsObjcRct1Top longLeftlongBtomlongRghtlong.slicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlong.urlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM ImJFIFHH Adobe_CMAdobed            I"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?iu<Ǐi~棼깣vo~v!̦jcf棏Yans[o?1%"CKFhHMkv/yll#av9Ls_T NǺ9Z1؀?%M)r,p`=˄7o'h$4xb[QCAq0HӾ)ycW}/1Xoh2O:K?1E-0uDoiT-{WcD%]Zw Ax?S٫^,[w/Up{;./f9wT7헲,~o1u8VEgw%nMb*3^_/:z~movU_Q(}Ypdo)ίvG{-^GIc&_Ys@vE^,꾦`ѕ~[ -ST,vӻ!wuYIvd~$A 1ߗɨ׀,XksvYWٛnFC)evȲg#+߬5D:C!AC)P"c\ݎ:r6}.ߌ}0KH:/^\kd}&tfKC7kºq$Y 5-<c Ba5*#O1` UOy ssnͧ Ր/`ZL5T:ܸslS@)jiuqk &7Dl{ n3j7dE*"@s,шSa0}{̤U\si5Pdxuk7{wGr \=7f?;_Aci^KXa8kvZk\C H77\Zr nL__RiB1Keͱ-mB5ϻ蟢k=bqOI}O*l]V^*9l߷,׻]{,ݳsN̷qnMEf< d˓aw2Tqq0-Ρeklsq;d_g ֺ;\w~z澳zcN%k%gjogU[=fѲo3sYʷ~H2k[̍Fq}vux@;]K}֒ 2X\ pq*dqp)M~윏wB̆ˠ;tN\}F>$;diZoɧ+5Kn.c?+U_01jĚ(om@?z.qʜ)ѧRw=VykϨ>}uˇ^гG?~czmN~g1)nYK 5s\]5ے=6D nk-S=^ߧWAX1w1s4Ĵ?UfnԹەZk{_q- nߜV){Ȩi)sTk͇S7軇5n3CL5<wOެ>ikbD ecWvsGioٝ+C>Nske[&a}o{}h] y5e }8[h_pcoUӰ)Բk?H֍&i6j 01s~Ss{Q'/I,gXnlk:;oG.oۍ[~{]Sp[q-v>'nRkkhp{lӝVci8uGdkoN$1ߢƫ#]6ﳥ?vB~(K'}VL%#C27"Ȩ9@,{?4c+:@vddݺ0mts]ֵP [(ŖDӼg"_݇gW;<}k9a%ʜ]Oѭ.42mw{ӻmK1:vd ZLGm??ԬnKut`apyso8?ݿXc:2X22UAuۜӲKZgnѹr=cuh>o!gddeLy:#Zָ{YVac]U.v\k[UoӪ߽/j4*u[Hto+,d6Cz;e-SIe3p'ocp}*}FDz(֘H{|j#ov4d{G$*wjiiu: vb97@566>-BR=;2>P4:n,Ji$չs \~w{^.1oF~G}?-Rfb}06_V"GXk+ſ.Tg6]oF<7Ӌt*z1MX (A=59?j6M՟_qR|O%jWwo)mcv8wACNuqcZrk6m7ZK/O q#;~=ͽY?џ}]ߕcf#YȽlugflk>'m,,X nʫ~C;=z_A-~^A3kbOg0V+o8o9et:=la3D]mXmn \=sݱG-6 xYN?~M!QH8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:235ed8ed-78b6-11e1-9a9d-a708dcdabd1d Adobed@       .& !1AQ"aq2BR#br3$񂒢CS4%!1AQa"q2BRbr#3s ?KMXNsqdP(5XS/ 3[ZI:Feh֢5~X";'vʉ%[WB3M-y`|أIҔp t9U 0cw /~"W,6ݖ Eћ*]hhN_g Ek<c3DtЎGZnGDq.A@"74A"g}F 1㉈mxC!e}hʕ ~ÀvZ!Vb(d7rU ] r%M 1rhXFO,젱` Zͼƴ+%3^ He "E=! xq26a$ǭѫ0nQZO*83tƧkͼa" [ہp'3E2+1߳[i<БY# i_L0-n6#u;*W,&_XFIo$r1 yxp)p!{]JD"wԢ(j-*|6kdq^ÊS7f'j{I\N2mdҡ [xv]m:V Z+TN&;!֙ՙF}%;3ZB?@ىVԋSUR 2Of ^ܵcEl*3Sol2v ӏ+}6=L$uEzngj[Q6 b49P9j^*~aIiVIu%\Om_#^m>{ap$"iy]),cyf;BR-e Ս9rPD]a%!iOc+Fi!O[$ylX݈VTgHÖ)io l4B&/‰E԰ԑh^\ni,)!XzR- k%<jmB \a82|߄ʖWpR3]޽dhۤb#- Zq,tHi#՗8[ Ou f14 Cs ]9lZ47pBF Piͳp՟qUID{j]BuO b׮yh+˽01ۿ1$r5<+ݦhPrŶ%I` ][HJNN91c]Hw%`ZDZ#ŸUn$D W_geuĸ]Z+=km,yceW\Vg"vO,w7FEV.#tC(FFq((/aC9TQyu*9H ѵ` 圷F*&>$r yHrXW< m!$Cp4#:uq! 66[j+R)pxh0[K)ࢤCw;sqKdMP5gĂmOu-a']t:oۈ *M(2$UV2"0_d+nj E&Dr2̔\ ‘[DiEwcf<d*vhRoh,)J(5=.6ܻ%Dc[+~.A+z-3Zl mG<3H"anrR4*2+JyS_yUCSmz!Pdg09(Gu.<71OUʺV$nBЩ^Pj']XD`EI3-OhEI& t iqmȫ< .a OUR[ENٽo醒" :%:yqԮ,~EҮ;ŎhD_;-gJ iqcbL}7]$1峛qm&蛚j(t`V;{.$8Vp``ƀU 'Y^jn}ǩ ^$ALTswkUhYgUAݍn5\ 0 5-u3̶P@H։(̓UQĞ@bBK}p&,^ZƦEjTם"Dі Tȴ\鹷[O$m*Hlh2 &vyZY:I [8&jS>X1Amo,ǀ$ &WHBjVY=i ;FpUYm%)|jj|N"Ɓgx%n2t(H QMZZM DCsZrp> kmTu $#=Qe5(ySrftNh[ҥT`ՍerCK11 +ΟĄOwAM: BRّi.9gWDcڳZ=:YI2, Z !NMH:,IM`Z-K=E@@@1V*mͳsB7!]ƶK*]5Bvk)eeeD.8_XEhu$I5"~#1lB&A#EBʇQ̟:ï;Ωm$UbyFS f+ȏ##LI$p*JIӫ>4Cei'v$dӉFf.RkK#r.4(j% ݢ;dI.QZK Q`Ne@[dm B@'eVS5ͤMrBiW $p\/2jx\Ip! }y-̤Jd&8*g{vQ܈ cZJށ(iP$2Ď4ʄx&i%pyfkpGKR%["NC͍'mar&,29~op"nsMH|uo)!I#NJlŶ\JWțpvf7Sυs2IVﵷѺ>fnFbI3:>\mx{YςVԬ!53dNZb=ԜOm} 3'Z^ Vڠ_5VBbdZQ GیE葶 qP*bnIRZ[kc3{BB~dP=KC {gAo/ h*㏔e ćp4.kZ־00=]_%N%\!BtnC@ k"Hsk-P% {͆۱k<84$("$[2;ECnhdG_|q`}MZ_G U4gΟ~ i#e@r Z7Fՠ#qb O 5(kkԔR@Es5R[$2 NC I!mmP uBjJ}{09Rƕ^xD,hf>gn.yۯ:^V@Cg_4WVgҜLMbXIN@ Eh8 9a)] :uz5}&RipftCBUUw*Łă;~޶HK7R‰ᬭhiN|LsKc ȻQY+[('y զIckhW;a2u*TxaGk٢Ug΅8JА +L$)c$e;wVhYX8<4b6S3cspӄkl941NpyY|STK eRF**>-^ƌVFxבԠ:ϑ1ڌ2S3,i D|5ӽD֎KMaa GkE]@+Ѐ{P\[DFxd:Y &/n.Ѝ%ԏbxw5oYKx:N9Y/Pz>'jY?Ջn?hӿ -ݲ7O]MbffO i|V֯>}t Pkj%C1_=1&4c_$ r>vQZCns!\UҦ$7qY*8G`zhHx b,)}r^IcS8?bO@-yVӕ|pn$ <9mnTT0Sp^x`'L$LD/? w=qS==C=2`܅{-Yė6]h4\U86^u9z.VA ^ \ ylwğښɽE{8sI&H pUB3GNэQj 8zEJʯw\_D} X$-y0 :[BRϛQ\ZKtc: RX΅վ+3 m'DtP^δƬY:'v:cl[/R)RRPTR{y=Am,IZ5`*cȚm{KQ@u x{,A1mO y1*( cVl #y+CfWE,#^$`xw[6J%4QРpN֓ XuXw0D6Ҥ߀`y;w&5146jFs/ACoY]ڱZݡV_@ʞ vۭjtAk(]HIoD""A;|O?4]YKcWՉPdMquZ0VL0A,$}qIn.6e&)䊑N U!kʸ`V0`᥁(H4AEO㄀iU3UPYMxI-VF YV jۑr( };afIh68`jkgJּemsLIrc:ѩX}+yYkt|8ǀ2I3ŵlUZǭCsoS;%{$]N cb*O4]9$mUP !Gx\5vlֵ0C+ #DL$++ImF3Bpqw|$R5o(2iGE М{Hb/Y%}`Ew|lFH6It,xxaww 4MոR5ͥ$p{oYMCۆ>t`2dž$ ^p Mwʛ{ʹjVaŖ;KmE @t!gqC EUHt 1ewl zΗ?M:@mkCZ6$FHmfgUo[^}IT->Ź[9M$nW\QyH+CBOߎ%tɽ.h]am[d1nN2 ,I%7wkGwoyeVic6@uऋÆ=uR' j;Vc˷nv{2އpbŪ'V:ZAξw۬8"렂xDU#MY"k<[Gԝq Mlh?{w,1NbځI]/_3WY5b}ؙ. e"0G]+ҟ7XZ@l݆[ .boq 7Q<5CcL $O2qiR٬F:'I>c+"@k{jx[ZlI/+R , ݡ[cyέ,L4ˎxL{eRٔӸI*c]FZ t6$fI!$({Kicug"Dd5s̊a,w;n͹v5FNr2_v.  3(jr40; F7cbmYnnfxURU⒪I<4Ӊ,-iMŻqTA*v>-m(o8ƢM S2)W7:KyPG+'ےF>U#]Z4WDPYZ<(,b8Udi==o[Ͷ˸=[XyUP +5cˎ$ϓs}qw/˴kF[y6nx+q t/6ƫfڢ NMo,*Γn{#dUtӥ2d]_Տ#ϕKj tzw = %HP[Qk㑛8}YetB6!ڷ ,Y:r#Y7U'~F`t}jQި"7E2&A9Gj+R8b{E}{Y'H( Ipy{ EգtK=R"_wfTo"[.$%D˖t;ZN)an6]dxG@~u=[l]`{ eɢ'fAS,^1eV/?ݵ4'h *BW0f0Wu2BTæIa!+ Xq}-#&x"ew֥$x~m-e홒Ƕ[yf9{NKkk[U=)$NXtⅯTskx]\wd`V8e26Dj5*)1n>kT|YFN^ k_R~6=4 ݫ:I@Zִ=.%_nj_+8{onq"(d78,)&ilUnL6DyҕzpZ8N%_}[f뾬>m)l渼XM,ˉb[.T׹}Sh{t) {;K0P9uEYһ7cJƻwO-0E@ {/>,94i H1/d.ca D5Y+daZT68mP_r8Uu_N¨`YA%7Z{p]T:n[KO=YyF:*AdҴi$bdF9S3\ű t)nȽ6aRe׈UZ!0rylcdSE5HP~r9Q_W"~cۤ}:+iUvO1SxDhe۲=B<9Xx]?Zv]良jQ\Yt9d'-{aANY̰Ւ%(Zj[8o]xw_g7?MXUӭh+ltrϻwŽʮ|(|~,HtWsb;w:Jڹ)>EA件O{oQK:amPe TSO qiS^{C$Ics/EHhd=*bwmjv#VV0&Q£0TH|1$[*ׁ֒,}J7- Zs' NE5mL{WoH{6ڞBՏvu~¦[gG%)?fvܝ'k 8yWd[/s.g\m;΀GFE&)C"O55W5~g-+@ץ4'2}UMdЫnКAWky] W:tۦcЄsmW0IՒu`ҏ+V 8Zr2tv=-=1#A#MӭBx ߈AF-HB&Ha9."qCe۷*͵4d3 #,FyCZ84n`N32&7GjUgnX"j}Z/Kv9=٪4qClDz8w?Ի/ko[ɶrM $U~a__Uq?Jœ ݕE߻t۷ۻ[2۞ٌJ>T%d(Y*ٱS ZA%s񱒔΁\b0\Of;_n]aꪎj1}{}Ia JB)S 49\XIo#JnEv5tEU ͧn(3ΞYA[Ϩ=i{+%ҁE_<p9cOh{V欭ϧo~zv.B ]'Z|qGIlՙm*<˶:HU2_!zfǷÍXkdm-ŵϙ_D7Ү7"T4Yרr=m16⼓C N,t}dpq{˸+-d,k\8U2eZGnA81iY n4Ugeݮ$F-$NUD-U?Y &Љ9Sm afSAqAYҾƦ7ZgOnew۠ L?TP"oO!jqm=?-[mtuQT(ʒSCa;Y[yRXŤK(F@dJb3]\i Fu4KԸ-_ :WA~[[eUB8#ȜTR$ J6@TpU+Af+hx*%{aJ4}72y ;\M=.u5ԓ8ӆ^ NUZ1b^hoTG 7H/3׆rEw;J>w&%٬]GҼ1F 2-ﻛXZ H9q6ڥSL6[ml*BTb2_LJR=E%e9m䌪N %M&Q$EoT2\qx.8'KW#]VD-n( (!FSƞ<ڔHϷvh(O3QK/W&C76=/Ll)+Opƍ )$YIUFLVG݊.][H뤆&T6ljUL|w,+@^Pc3޲/JxcyYlݫm$m0T8^ ~xY=U[3|tO~(J\WZ7mfN/'qڷFqy&WSsd:Ea^Kb(+wW5kZẹ5ŔMn4LU Ku"9aG_YFZ;:[ɗ"j^Ku~?>vݢ$.v7oCsOZKQ,yXyyvvܣ˹\jR']v[6yH*2_vVЍ-wlgyZK4.08 n-Wm7wuܬ22|D $W:Osή<~ƪmyob@o-6GZj6 ,˩>)u d(x~lUMdg-+!n;7a V9VX~d>5n_IY-koA/ z>#݊yvnigsuk,rkN $HV 2Oߋ+-2$"[pz^4ً7hB5?8Ec@J)j6GGX-p\^l׈ڸ>&J'v؂ j}b;z e-^7=p"Xܤ[UeJ$#>^SKKs E>r q[i,YX5_WƼfn³m@S<3 56GeV6I˦iX5뀚tT<,KRiCjNI%˝Ice^&K&9z; Mp>73X7oY,BMps~_1tƵGO;Z׷tvyk.l~|1<&=n-pSj4/hVcm9Lf/j{{tn;.rGanTFZ3c;Z4X&,ʦP|u5 iOZs{NW'ʭ}h;{|;齄 DH`P3V^ ն;ﮝ|hmvMyKV0LרYtX3+5RM PM=kK{ KmpUpچ9gp96xhƄ ƨgyqM_4&ɿKKg9ȴEO=h_-3>~(}s˺+ .2f\Q/Ms<ߎnF_9m8qGekOmm ~Lҽ!ƟF=Uh eglSݷͮ*b:ۃP$)ާ[QJd{'r X";B')ʒ*uAqvcj$n)+Gq=#*{9BoϤqRJ~Jɞw͝/ eU: (E5#4Û۹o 0Zʭ)/MEI bN!u]hY֠ imvgi!HhKg#Džqrr(O߱m ,eAif)<[McE]ңEѷ}AQ%x#dugm]|F*U |;c{4Sm$iXnuz/Z)]Ivܶ&S-!%>W) *y7jXꧠVqco-HU)7k}I0Ɔ+I2ʥAp Kh&( U@frdO蛽y涼)U}Eje5 SM;[$hń(y͋HƑ"Ҋ܋(ƨiq!f # 2*GpJ+xmc"RJ*j\JDz$H_D\SPd<$p j,m#i-T!.)_:*TirZ(v/JTrQ.־bӀ$'&Խ߻I=\3O=-8?g6IW,}=;m|_. T+͉[%=pO#dQl$ r, UfkuN e$d+rjH.-wfj#*S5 dEӼJ.1KO(2o ueҿUbX_? fW75tlz~ۄw-`LNtc85\g͋zө6r=}3dw^KcecFIl(âY t]*2-I7 =U4MuSMohyS1m),]/زF6-3/4zw9M&X$ OY(>ysŢ8S ta&1x\ r-/J4R+꽗V6v{ĶhS@#U93c,IWj|٬l^.Q>]6Ӣ`C>JAumPXVAC ONVfʹM8ci{m)-*|Ƿj˫^E;Ϳta;~pF1&1.hPwslotVd#=ñQz PU7/U`d?١+)/Y oI(Dv=1P_NKjQ,A GL0JbFB-clvG4gLUңR58fqYlHe@ZTs^[pušG(=N=k7;rɶ\tG 8lIӉvi'34h-Kyjp-,m18YRte-~[#+u] ="уGEںJS"Ai).m,qC6`$5JPG S@&Y>ELkmSIYm}{ܑTra iqqzfAf, i.$2[y4U9',݄VP9ȆP"046gHheEAZn"u$FnKwHV]A2< yg̹$Rm< *ĕgbf7d 򿾻aYZC,G‡\ 2YN%t:5gVC փreah #.LNh*c''LlfH[5ݣi,e*3S9cO{'--~iwg/B A44٥ڮ{QZ0jE?}T^uZ;Z m=~;o'o3=E$!|>?Wōģ*Znc[K AXM%G67B !cQ$&PìOspiV HkJR8yHh_F"1u9QbZ ҿ ,rMv=L/NxL$j%hEOjL;ܥgN ҭEN:@JjHChM2ŤFH,ix-=tӤ oY/H "֞S@+im;BISi4Ix`\I"Y«µ$,A&ۥռR;Nಭ2Uޙio NxR=F[-RT,nD@b!ݳgR2.]W ֜* `еpVutҚX˻໸)Z2Tl6s6- %5*i\yA@êmi)e/VwD菋^,ÐbFLo۔mlBҬrE[4Nt>\ NEh[͞Ha`@eYu5Ʋ+RcQ0RQgվ6G{chh)AS_Xy}b^U:]g6i.kg,QSOR?[n֗B .ںGFPn"2,Z|-ъ;}e}K{o6ڝߔ>dX9% $WU58ě^Wo7M9q&3}gv.{ou{&nv}& *O1ǣJg˅v7n홧'\1U<҄x~Ij4љCZi. U[،$JY"5ԫT( U?*Μ+q-QݯYYyEҒ:R)5Zku ɾoWE\0y? AᎆuVQf ya~E0) s=IUARbYbwК$2q6of6E@20`i?gg%A==ܓ]u!#RB<<G%ma1]cUSJq2o>4r3(r'8;47VYrjj1$Z;%W* #XP{i_"MQs=gVxeWQ+Jז!Q01&QOêҼi~l-zW.,hp ZKfxx&v:@x~jgሀ_o6pR3q#tkb0sށXȥOR.^eW ^[Qs8|?&4dE˧St j2>k!jzz|ծR5=u"Nd çjS^ouj5kEiULqD Y]j0qLdឪ6%wcDff[+DUk~3Ć 8bn"̿zk_u05ϷHՌ%tvXBlT"}IZW&~뽾b2/7N;|H*Ϟ-cUk<˜ng(a3h9nj-'wţ]Оd٦FֻRIENDB`site_pro/images/slide2.jpg0000644075506000000310000100465411734670360014002 0ustar namedJFIFHH ExifMM*bj(1r2iHHAdobe Photoshop 7.02012:03:28 12:13:36(&HHJFIFHH Adobe_CMAdobed            ;"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?6:J<>IIJxS3?p HT2~]G_>)5T]Χ]t)!>_OKԲ7s~sz@} [i.{?Is(G8ӺNʚʪ>=O~tX2A` GU ԍXcĹچObM XpYkV>> vw\Opn潿KZԺ?۲- ƻoOOEUY?ծñWU,ŦZ/9xun^>W[ܖ57-n.Փ¹ [J@ 6C:k{$Z[ ݩ>PG'DgC-RdeH=*Mc>+X!9LDD|eKORA>\" ɍMTsINFN%yC03θu?j8q熒kD7=+\OIV6f"R~Rzž3]mnUv'\~G+6>==e_ɨ:W.5j#@ӗz<z2Opvh!1l+Ptn}Kڑ#hL cÅ4r{j;#Q`Oc @5E2S԰k:$k&8SmFC1!i⒐H2Ç6IeeLcs+϶,siM:эEgw'A'$ihs\Ɵ=X[ Q$LVNʠ ^?}c,2]=8lPGN`?R|};%W*w6@ٶ߼.v7S%'}Y*qn־-qR&ҡCjSv[CZnk>9Q@ ~*U ZO4W@ӿFL ^^=?{]#~>2q_fnY?>wAfZOfU>,m}v+nq0v};;~oȝy?]q}XJ~z=wTntys3Qw\gkNѡ:!LG=q?$Photoshop 3.08BIM%8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMAslide2nullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM ;XJFIFHH Adobe_CMAdobed            ;"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?6:J<>IIJxS3?p HT2~]G_>)5T]Χ]t)!>_OKԲ7s~sz@} [i.{?Is(G8ӺNʚʪ>=O~tX2A` GU ԍXcĹچObM XpYkV>> vw\Opn潿KZԺ?۲- ƻoOOEUY?ծñWU,ŦZ/9xun^>W[ܖ57-n.Փ¹ [J@ 6C:k{$Z[ ݩ>PG'DgC-RdeH=*Mc>+X!9LDD|eKORA>\" ɍMTsINFN%yC03θu?j8q熒kD7=+\OIV6f"R~Rzž3]mnUv'\~G+6>==e_ɨ:W.5j#@ӗz<z2Opvh!1l+Ptn}Kڑ#hL cÅ4r{j;#Q`Oc @5E2S԰k:$k&8SmFC1!i⒐H2Ç6IeeLcs+϶,siM:эEgw'A'$ihs\Ɵ=X[ Q$LVNʠ ^?}c,2]=8lPGN`?R|};%W*w6@ٶ߼.v7S%'}Y*qn־-qR&ҡCjSv[CZnk>9Q@ ~*U ZO4W@ӿFL ^^=?{]#~>2q_fnY?>wAfZOfU>,m}v+nq0v};;~oȝy?]q}XJ~z=wTntys3Qw\gkNѡ:!LG=q?$8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:36fe53a9-78b6-11e1-9a9d-a708dcdabd1d Adobed@w   !1AQ"aq2B# R$b3rC% S5&'!1AQaq"2B#Rbr3C$4S ?Z0 +@M*QA]<4Yy< @(zzNjCjxqSq6O橁7si"Հ4+=ZUp28&V@ ɉ-E7U(H(_-0ىKDI//)g}"_4L^̡®ٔ{_AC[OQq&6p&4gЃWuR*FE_;X#ygS}4%GEwE>M Wk!oWzSP ]6ɘЖDpUV-ZUW@,]8y(pw5'%Q iIF bȩu[iT}Ei2wݕ -5Ťqy,52[[Kwaq2 $䤼hMn)63cɖ1[ˊK5 +i1<ʼnU_HfZ1Pz1ػK{@ ~k$Jy ''>v*6OF,|Ҽ< lNvuB%UE'BPIP9@Z.H'nO5Zҵij4:aBx4#Ƨ:A4R*YA%OSCңe՛Ia=8E)Ou$Κ8\TDbwSU@..o+{bYYe1Ϋ!`zFFZ_HY8q VSye,ҴT%Sɺ'oOkIk۵ԝ->*Vlh: :=ا!7bSJꩧđU+njߘXa1Y\]Ns*EgnwvQj#58vQ{oֿ? 'e|dV>ws ]䲹ϔ3 Ie0r\Cn0?_T{v׀_4ߺ߿ rO}ڽlݢvkqg12f+q`ذlw9S#q[=$>vzRV>]j//>}I2k۸.,]vJ&Bm@6G<<ܾYKD\McVat׃,1R;+F<p۾vcqݱi7c#fk# r^<{/M":4pgQqzPEz_h2 z}&aF!w[ĝx㛸_{/hYY㲾壱}zl0݅I&RY^cL*FA>N1\VAPf.1o IOو#7LGj^{S^"|Mf[S3 uPɒ;m6ԔjKЉ2r8!ME<]+iL[]erKX&Flf8؏bxq:Ph/ˋEX='ޖY28Eŭ8\$ҥk['I 2 ys͕!< mq*$VjTR@nN0湹$ѡ=ׯwΰvwqO}ӵrSMlEeH}p.+Z+!v/zwCNThd;d` joUuvy8eCLUo=9 #e\$s *oGߞ91 K{w׿#5ψsz$~+Z~o|cX lylRar]Gp(ݚÊ$4%G]{>aE(+RY0Aa'e!d q 8 Z(OHhD*0|>Rhk+_A$A/$ɼE@  HۥPiT|ܝV4'}I-ANO~|U=7 @5!}b4:Mh4I|)tmv$kӭ@'oMSs@܊_:nx 6ź>:DTlM!>itZnvJ<;Wyc^ NT}i۱T0aVQ㦬1 +@@G W.ݹj~kNm] Fg|~heIƻh9=:jkJH?eha FTy_hZIdҢ4ݐ M 'WeuT( @8= ҃icRtP| *<4e)_ N7B<|Rh .܉o]!!shT`F,jQP7ByT1M|EIۅRc.utHmPMP?q{UV)[e pQpc]g0ݮ^5.rx̤o-ŵd3.?r5(cJ@Ck"ԡ ød foo{%S2/0"-@㿨ニPNAۛ:ץ>@JM^ȑJvV{R5D -kSyVWq@vQ t( )L;m:T~OJ6Ϥ4T%e 8R”>~_)l%u}a q֗Z3*,ۛ ==%h An}"]cX.Kg/BPtHQ*wMz{~BPTB)Nm=蔇D*Xn@.:Rn;$,}I#j j &vBSđPQV;{R7 T@JFTe &lW#%ztUGX9RI81'ꢍt4rWWj\XlɎ^G)#F%׽4j@+n)eͬh{:e+T1Dܞ~j[{hdF>LM_vl@.mVC!(W&x]W[ p5jc='8 Śzm\{JsirWxv6הH߶P-.7ws l44c( k\MFtNX@2$z:\7nY%͆6>'uaogώ;;)۫#iaqHr d}GSzDQë1qЈAҠ1gvrWv;_(b.~U [&xiWxJ?o 9m5 J*#SnNޛ8H']s行ٌY̬Ӛޯ;*Ϻ}cs]]yژhgG#yG Nv t0Fu]VI1D77P=߀e:.f--+D<6??{gu^ZI[Xbp$h/WkVlGV t+kyr13S}hcwK$2}qꕀ[l&"Y'֡ aU⮾2: h7>: dDՈqEX -A?ZyĞ|bX9LoOX)a_ i-&{#aB1 [4Y{[aGCI{=X.fLRKkU I'DK!N5+Æ8D45~V~j- @ I#$a,D _0 z {7晜9p2غ))bR˰?|2 H~g,nߣ%XѡXDE"f zA4Z,n!NY%-+en].9Uգ=+LI;lu#J _ip.NV);{.*!DT= ҽ5@fʯp4V$b2!.cN7qR6>?Mf2`=% G2@ 馶ŒZX0q1u@vUSzk$rJ0a|>kX>@{_cxy<0х ѩ ҧ'dwn!q4hXH<|Paf/ud(tVP˦c(!ɣkK ݴ-NQ4x#UòcI¬~:z3Yۚ#<2ʬH-AJe)~~=k x/!+dWW671ߢD2L!i"}`w=:ތi6.ׯ x -۰/ Gos 'fqbc㙡Z.W^0 ,:w j::.c0CeQlr"EZ8"z[^==T%(u/Uṽ(7k؅߰3&^?f5_SdŶ '0ZZE*L1kokGrq,%{Q@wC]N!ytwSZG濍W~Ù&R xV|eJ676q96vd$FBa÷N$Ҩ#ҔR JpuLMuW(H^lxPINa6I@*@ ];IJ{ !BWk~L]CP7'MyP/5J/&ҨGxwF M7nIĸzGAd*On!PK]M$jSZ=D<ӗt!4}H|+J3G%%YڝM} |4'w4Xp5>=^ ~㸦‚W>zRB@DoŒPWA>&P7M((5A[o&(tϧiI^Uޥv ?t,i:;~ؤSVxoO & +SN)$r'jmԝ2 ĥ1H%Vj)]jAk)%̏}vwU:n"BCǦj& =muQooViSʦ:֞Z|9m_H; M'`*<_#&I@BDv< #Y߄`@ jlY1K[M̋cxGa5-h1RKC,}!{Mu9gCuJ$w5餯hy)zxWaEĎ0Hj;7-VHނXmZیR3 +@yr&PvH,‚*ւO~Cwz2FU*O-PЊHKk>h)=vz*) jqV(eF<ͼΊ,F'Pcq4p.\Io1y,O.>Uȵ@+`*F՟%#vaZd?>௸ٳ[fl.-LFַ\04vB "E^Gr-@ mVF+xC{hVig$P*&į"R;ӶSTԍ#T'r"P:p|B{H۹ܽБFxn&c]ΩƱO QPӒ*fjn45aӍElɘK;S6=kGw3\E߇] M[MJƊ\hɘH*Tyv?LȚ0̴R}".z aRܒhJº %c{ "P7jס۫TmԀRZPA#}/P:Q.]d#R2%bٵ͍,.2B6$8 ]1/"F,z[az9kY#{ KbhlOXQBrSnԠU"H**EqUQM<5p4$؟GoՎvj*_4-Ċ£c[-**0`xա?(+҃!g#1ȚP*wNLġH%=D֛C+Q OIP 㠖-ww S'I*oP +CJQ=VVK;y{e )a֠`JGwUƤ؀)PIܐNh$XGbˮv{F77גv_vqJ`rQAQK$yKϵ9;|O-U[B91]Hy\$Rkr`KB~. uskvVvA4VFgfa /DPio4:tbAPWp|5Ct);' PtAjs%/L\y#*@ۚ ڻ6$4$$ }_p;Ę+Y`9;y\e^vnr 7"ѣ\<srHo0|JS?D7Lvo5Llam3;92RC="$M4pĪs!" PUJVҝo2ɒO8}\5Vܲ(L7;1sk-^lnCLf+ dhl,{ոDNlDrO@鹽vgB9!qԱ~|.`W3iعrrl1Y 7 mS%}ٮulg5(~ⷌZBJ@ė]|B11]88[G58-;kLbi.ȑGGqyi6FZtɭ B33_HQԯǕD 6f.Q AHjIﰟ%wi?%d,r6p|ia7q6xlsVֶM-OHyOSC[c&jzCݟ/>9ar_̽ƀm-Ř-6q?wXC2bN_dg;0yKoPr- swHc`Wt&L)iO=˾cw|cs.';.Awd8eJrKqe4)m!G2Io/')^`ԫ8Wos&8{M@jף=la[q̣]Mg\Am\]A71q)@aN4'(c6gWR?ȴI:K2(m^)U#JIykg(0E&1z;(v5GclAᑔ Z)$]H逈{œ<9d;A*yEjb+"UQ!%  W'MbyɆ9.ۜ0;ߢ>8ndhdTs 88K =xaC 5!#T}jhx84R%9 *Cߒ ',h+Q !J#$ħ TW57$QuIH@\9:$0Hb)@O9",M6rt o'J$edr=rIm#e$K£jz3ƬZME4j%b*xg"2d>-.>TM.{n%YdJ;jUP  $6a'A-J[wY= _ܬ7tX ?[f 7ּ}_ )Y%"֧uBZhHYx*pL]1l'j1-SY)yⱏpB$.# FʄV rjR Қci< lmF[AaX62q*d7 " Nbƴsq^.X$Ę/I>an? FH"or51QlI lpG ae^VQ嶞;9g;DB0%>CđQیIĊ45ӼlC_+֕|ۯ#g'>&NQ G&f}DD.%JwyX[JHL]jG %ON)7=A9Ke-3vS\wUXqf!}ԱǾ^ /*? /cՁ*-B\<.ʿufvh $i=]ğz }s)J'n:Kr6_A_//|qo2{O pvNR*lm{_6MCxY{~G{¾ۼzxrN1}4 پ?$ӒRq^VTרښ+0.AħZMu빭<(v}AUܞtPaxM($3G HH&v & moVXRӐ%5T-@"fSQOAmSč mȊG8$hxYP)*8]QNmu@^\d0P:tZG%AG])}E)_IZĂQʄ'뤕*Owm)F 4"ߍwVһ)\D_`i^ 9?3MljSgW"MJs MUm ڣjSZCKnSĞK&fI+ m]~[D44M@NhS& 7$ 5vLcd@3Ty*ƀ@m%=^xTp*:nt@XVDr^5cJ#`(X =2> RևcU A4ǂ'F,JOkL1w]k@MН96BUNա 7'T tܝ!^n4_0Or!eZ(cZN ڬ{y{KcosWVE$hS3H RەHS鏪.!c%߱%$Tcbe1 hL4=͕ĎAb#)j8)Y5wk [N 3q/J)OMRDzw?{c@UjMi:K%&/}ȕ؎@T]Hf~Ij<$e#?EJy_܍M 0t⦵{^ ׂPJv붘R y)P wqp[DD @(5a_(?*PcY(z B~ɥnݼQiR7#P(FAJ{&QH)7T#m2IOi-T$Rvޝtn.H4 /Pj3( R]^TZ؞$~ZnVMƅ$ii]FnAޤTYQIb+޼PTxhCoA B 䌱rR6ZVxBa5U?M7TzlG׮ӷkI!xٛj+H?/S`I:'v!}+Zn6sTKҕW5;nE:5&9  J$Wz?WG? <&NŸǣ "l(H#@ *+ċ%Kđz)I'jQ}DY+Cu#ɩBz$u#Ie<14ZI$h@Φ&6;] m;y6h9QJxց~ 6cCTDWD-S(\drJ :1` FLSmPZ?Lܙ^<&/*(cRe.p %lvoam .`|s~>2$?䳘 [?㥙\o&Q0.Sgt]6Ym\@&j` ;"nK59嗸=?ywHvob;i,5&hn.%{RWN[cmyXC=XәbOUwe1W H=KȬU8MS֦xC$pn燂H捻^x-prDIWy V6Fjvɳ`g^:L8Ƿ\r4Qpt)4 )D=4,vZ 2Ag!gJ$a纷FLPD+)?Z2} mQ -neLvN բEco @™Z"sR4P]8DέQo|ִNU5`=Ip!~O"czY(L~ky {~L)86`WP'YPze@`W$Y{ݹҴXS= 6&T8obXoőRJ"Qbd`*x|H;m7/q*9qn)Pѷ8ȁg5&@Rd\~m)ɇgÛpz3x(])" 㒺cj($Ǔ:ڽ5,;Ƒb^F=I5;Sopc-i qWoP-pKTֆlzޕbו;5+=Kj^*L=UT`v 5bץC޶T%QW~ bbن[pi BzҁYEA'Yb+#KQ/@Q7ݔɘԵZ7{咙b^d4̅&}Ď8ƟCɣ|/elpXL2WeDdv ¯OV`fŖYJ\}C]5p@.70|`{ϵv{]- .K^b#AZΧەK# ?ڧgɓ9}~v{?gߕ;f<a{5gء?pav8.қ+Y/q<&|&?Pkq$5|y[$^-O[ڠZ):yb676U1)IrA4&kndUXRm;zN*43HeX5Y&h5ݙU@F]O@䟂g{;{16aɜzbov2ȱZant>)M,D)BFE$I槐*VjH>.ю+>+Fr:hD"]5b^T_-*7$ h6%"kPoBz r)%Lmzn6 Am]/Ϸzr)ZVcnԷ n̩F-TZ҄j3jCV4A$mB4F^$,Fڔ5ֵ颦*퓔"'~]MY# @z |5)06%SZ=(Ewߐ>QtLOSI^3ksspZTHbKvQ'rG4U14 6؊ Ŕ= (ZҴ ДؗvnFTt;N~OWFƜqW}2૷]LrDzXiN\r;~?D'qY- +QBzV,QZ2hV7=t)T;tfS_4Spj@[!UGVBw']@aC!󭝬 -o/0-‚*HK$9 t"Ƿo?_ ?vؽ']~ֶZ盻36y+ ywU[AO61^[oeÊ13*S_.|VIQ2`G?j*/'ƶxK&G[{x."D{ nC+Z^]EUʷ99K(2ff3=+CɖLDz nfp1|aMv;.!6RXsݽږ=.6J{+[92K,no+6>Y Z1q-L@mbۯkP`ԻE,0s&ÚŴ.vյ_ٝeK M&nѓ&W\䰽yZXKq[ U 2-ԗ7msEkZm[^j -Ɗ7-Uo1;˴-%Kdd{ M[d> ;w-J;h`vp9AhO>Ǔ>!ni0!d0Y;|C.] ʲhdFQ<8\wbC^]$ӤjjϐyI(&1pxPJWk)a9VRIk {&,4Y;˫uS 6Poqb;E}(VS0 R85!5އmm;uN@1ĩgcr86r⤞Ik;,E=N`9^Gr'S!lbc-Nd@4v[w͇|C L\v(,rXp$r2D5 v06\h.j S0'[7%ٮI3o{4qF I;NvXC r=:T1ez\3H}̎Kyzs.;G`9Y% vh=A'}`!-"r9e /&n ݽF[,jDCB4)ZTa%#v-9T/AK_\ hLuT !5y]C1vDF jj֥ߟT׷ó[ qF&dZ [jPqAoiĀlP#.6K5`ֵEEYՙ H #.Ÿ5(=qg%9pe#Vmy &,B` "k#~+WkPEQޭTsڭsdcI C"J{\ t$\I2 ۚ}mTѤa0 ,$zk>,&;dHK5;ǼJydDX5;҉מR͇#+)T31dೆ q.Zɒ{iju88hNdc"\G2G<"H'Z:m6`zJiG #J$cw~;)SG9K+ʱp9Vor* PզXg'#^bdNP1l#mx['yeId0;<het, 2}ހ5|]it\] ^]E,2}Vt6jS[jnņH}$FOuXz ]S`2ψG 倎'ei#%NuJƋV7g܀ F&49jn=~cSyA]jv㠽D֑<^gu l^$u7V+^G[ra#)JDZ-n!]q*TFf{'"Й1Rw4MJ4 ټh׹b^ƖuȞݝK=[30y? GFIY-HCMlc_ݺidC7HG˯>c *7X8{uo9+d(S{_T:X 54Os賴XջϻZ!(Iف?Z ]$:HQ<$'Pd] 1E[G|.,icI,n0nҞB+FkO 'PwaZ$2mPU|vI2n@]ҿzoNMln}(ZA 5o ^lR j9rDPJO Vt>:~DR ´~_b;2 ߋ" @巁Wnm @mY,F v*Hr ;x4a+Jnvh0 2JM6=CQ"*w=XzI!-T#b* CF"%d(|(@Su&DUEX'TrkJBA;+M>_!%#jP ҇`篞e[Efy?P;sWHٴ:FV܅(QTIՒkzM# .ە(+= }N^aF.(6X&o )t֦OAZzyk( w/Z'b܁^{ҕ7I֌eP@AhA,^2m|ڕ&Rzd$bO^$^ ,ԡ|UA4i)aP)+p7؝Gq`?-JUhGA;l;yEP}T QR@@㤓G;װJXkMwm:vKo _v>j_D@%T թֵڠBw x*syZݿU ICnDM2:`sGSrH^?Zx(I- cͷ'ϡvN ΢ :/OIb((*xzk:m$84޴"H/u/(nAܞxTJeD245cAkJm6R D/nvS[0#)F@Ő̆^oCZ(70[8 v&ƣITEwr^1ۚ(kSzzjpL1U[񨡭zmrɲ@TlB;rw.%ɋX-.ٯHB8}-e$AM?5ag^ST?ga[;?"w N,\w/ra38.o62ÅtX&=!AsmHe1#OЗ f^0.,Y6ZpgD^ڲl &K{3>TKex3m!Zcr~Ecuްˁd0e ([RM%znq#6<.=,*+-\ʽwv?#+i=|ea~f|Y.CM+$+#4R(y<{#lQ8ZWcY$[횙FA!14l7rA_WyvWlw5nxygh 0ߟ61&/ܬK/W8Xb'(djڒwח%0eC< HĀ(;;CEae/w .+쬜)s.ݦbe[5 c+pLSQ~TP(LPq`?PR%- .3?ؠEͩV,.JƏr3-}) uZ=F,'ASR xNvр$\y.?/iX;kmMYkY{W"W[E~̄qI!2r 5kIb[:8畣ٌv]gSwƈqc݃}X(sMp2\JfID#82rW]E,sNj%$,ig2;.2!@BiOؽ^'(51گ'>KmPk6A6-a7վc)8ld#ٝ9h:*W(  AI`]VlF?l}'C^.f[61^k~jڶ;ո'q$q>4ה2^yUga6#MU. -[tQ(prJSOd`eѨ8njFINɏ aG%V9M,W[FP4H\db! ]Z۱[; Le6?:{7^ZaM9adj_e-t,eP90telݔccc9WNs5)hw#uҨsDF@ђ@iJSH$G%hn!M9J u;ب6A8̮\S`c  bvyD`j]ב<Uo8R8P;s:bbi F3^ܱGט<ي^=Z) v QаuIB5Y6QE< |3r6~ĝ.ɖ~duv\SHQy'33+)!AMӿJsֺpe!y~.Gp+]Mv2<6ܯq6 Tu'¬=BD!Ѹb3ѣ"p[Roge,?g_ .Srqx_`,^~r)1q}7|pkY #--Ym9ye rC,i^ TWKv!VK۹^*G4&2$3I"pXo|,Eu9OE1lIdn2cF`gic2dUdfwu)RATHT+xQa1( 7Q ܌5,jhM+ZPyt[T5) qԫ(؀\qqCt$P64OW\ ( r 5x Z?ze+R @#aP:6Db O҆EV |kZ(5,dz(ECFH FQިT SFlU0xf /F#CZ.;X^̐;uҳ,ZK}qhF'.%Tnz.RY0D'N\Xp%;Hk ՔI o-2HRܖH=?JDHV{+X<啕|4^Y*hBǕ+TLH"D:Qq{#G.K#,jZA-K4i*IfUI$1dvwQ]p@4uLx,ۋZR)JRt{ELR^ǵZ0jwށМ$wBV҇r)_вo(obAe5H'jқ~LC;r;o޴bj:hӼ4zH]2Z=h-c[2ă~T56J!ITj)Q<z,kQyy~:Q@S*(+Rzu $m׋SMW`Hvj!uJ:z9 TtРF#Uc>(Wq i:g$J-_4_ߦ~ =?@@o^ݸY̊yT.oR܉zJ֤be|Q( iquZ =@W NƄh $蜫Ɉ|G*Ҕ'sKo45 ](﹭6; Ў>}Qx^iCڇšҴ, J$}ZTd#S]:u>$NeQ&?ҪBN~>[,2ҕyb}^=iL1X} IQ JPޣ](j..̍zքq*N=Yyꕵ}G~DPx|^IsZ)$wZ F ܰM^%;{zU ZGw&TkB`7Pu_-*Hp.[1l.S Ѵ2e#PUI1k=]{G)ayXn.ŽrN*Msw'rט A.M6Sm|r:MG}=bRSBxО$|k(zRꄟXϺ0=]ޝzq8l['zw766-,lĦY`Jn߇~v/~u]bYr9{k\xj LlyUPo,/v?[c2+);eg8.;s29+'1*g0w=3ؤ$eU>#"@ MR /QC`I$4 ]r=tm>>?di]e0ҋpv}wOy.eb'y]4Doq%<.8GS )DK;eA] s RB,&qv32ݳ{2仒<_q[;^ =}o~f"~LnFsb910h䙈"wقߖJS DDŘ\V\~&ϱ{ckYa ~}>pq? K}m*q+ W?2b_P kS0W2z7[nv-@"y"ۊ[bcp,4|VJTPm5&HAOU҄v9by5,MݛxhV$nB@bj[N 1>/.ߊ^qg8~ Q,@-.$[dJP _׵Pq1siy$5"EPd1DFJE3k +ǑJ3ЫN@< ~=K0uB:f]ִ hgúweM9J:d6LV.cbK1E`YeK~B% k :aύ+"pOU9e]^6^㸐d8S8Owݶ9;2Iom'lK(pNk#BK`~WZR<'W>/pwly2ҟŐ+,q=՝3+&V^ T̈́Gt0dum(߃l`fc"m6X\Lw0—q),M/mf( ;Wu EG5Y&?>tMʭC2[$?(U!sNm@z5]!OřΚnéc&oPEG\*p.B)OpN_/ݨw7,uv7a]IcgEf7)0*zr?ڡyl!2x{cqWd=r(Sg@ Enॸ~VXq[IayH-$h1ʒY8NuP㺽K]')k)G'eG԰zhgjvZJ _PZjl+tRBx= Pffi5z7"Q;zMi^jM.f7_*КҔIЅBBA5KӦ㧉ܚi*bP((hw$#GR@Ӱ HJ?uQ Mm0=\]P!p@ƝyT\+\v ^a2L滎\FH U\e6\K ^E[v8!~n1 X^iTRCV@jmoOs@Jw sy _T[H#Z$%i$N:m*yvRk^#$MU ̶Ckvڴ-ZED<@u>59DǷjQ۠" ^gNP7@9݂lN[> Cjod1/^RUˣ9l~C*-!"(ik:QVfUU+W,ȉ%' v嶸,QD-N#z" 9|eq=Ke\rၞ h (yGAC[HNw,&$= ;|wמgJ0PZS$Y`Vք}QkᶺKbF"o)EOz_K()GDC׫0JPhIKU NjdztN>4ۍwVa-]V^&;JWRC'szlܻ~hF{u\I I/1q+ITCf4phv +ZӧC۝?6@woB<*ocP[]d۪x=Cʚǂn 3$r'n!v;- C0lFK@H 5 x'^r_x+CքI;m a'U@OrN" "x_Ш] }B4ʅ G ;?t&c(#NieX w;?ӣsCXt|EF‡CuptFT-4 tsYLu{*JR"H³K#3/t 'hjGsmZ\FZ-v`QCkd"f^x+7f$vf 񵬭 <$5"䩵>+8D 8Ռ7#/7,jIt5D_TVަ.H-U TQƴju~zPxסSඇt5;n П*hHJr#u+ԓƄ覨 KÎ$4P׏J躦rH[_>4zSvATRBӭi @z &䄞>PkAA5QPN5ZI{-r'#I:q ,Uj$ZP,yv]{WqA縻yEqwfXG[ Juc*FaD;{#ZXWY rX\vmLkFDuc382+)qmH"&{tUbR'FRMh1gMUހTԝbrD ǑeZPzCUCt?#*ۉ(RUSznJ_Mzo^hUV(8p7ڄh[BDJ"E$@+SjA $([⛁Cz+Жj#DqA5*Sv$]_q?#]_~93+rxZ۹g+nag3%录%6S-+(t.MrXb=ry;+./ѱ7sC)y5ma +\ίG"T?iewQ@8ǎY#D{r/p><2ڟ}z|m7|yb=vgݖYk{k  Rʱ\*s9=gW_ P8֑4}W򜘄(ѬhA5-j8q  v}۝V*<O]=ቻۻ>%c2ݖLnxfc eC:Ϲq H#6aܽwE9q">,(m̟nBї6VG-kvK?rX[+kS,xDviHB@6."Kxq$L~q1Hb ػK/ޖ7M3 'acDݯΝqldFKf, qbuI$zH-12D{<$V$1 A!$% Kv+mUB(dVo7GXIo\ ң_O7E!Asؽ]ztx03RE6'["T$aeHT?LG-d'1 F .q$2;=8߻edXZܧ . SY\*_/A1ց]*5(RXK6+FM͛K*8)q$3\E #;20ڣQI򈫳#[Y^)aƜ/=t8F`p~ jPPhz5aE{7.,HsmiࢹOLr+3NJ21L Vk1fÍZhÍuiIps|uFn'_`IE1JDq;TPq&RK.cÂ2ȁ 4'?q佒dv_sa-k {_c =l`dLrjT[u$t[vlgqh U*Ӱ ֧綽x]hhTT7G.U R H@BT 3RMpmfB=F&ܩ'Z-4 H )RR4}416@P0jWfƻT RHM6 Ўi8U\yGtԠNaZPQR@=H%X2y[,\dD+DÕkūq$cCt0屰ۆtYn4&"gYσc[X`/&rItyUۣ6M[,bhm-0B5W3ֺiG^ƠԚ@*IFreڶtu+M`wNj$!=h m xyhk0b?tIVk]֟RG*}<|y$!j7bvfAR7'8BvfEtTE S[ -]Bh4$ofS"L/MŏJl j AZOVL*+]FS$F{l"4$5K!ZRBqW)%-Bq 0ʓ}FM\:3Hj*uFz,"IWpvͧp[vrܪsh֗Mfh%iS2Cz{5Fq}_-v&KX}mERbm Ev_ZCQU$=zz ƕ҆MťȐ14%6Ҕ!t́"" 5(GU|E4Q3WaZAt,?4V/vHѥtHG HFyޚ" _'Bo ۵+LnR{!8V;H%( JS͂*nicCFV|Ha{'`m=# wwDC4[8 㥪BP۟geXDۄ:jr^@I4 oeL6D)R #+^1f}ʾxڂ=`{2 >`I4 F Ozh e"ZE\XPJ>>ێAx#*lv!vFA8|t&4hq m]4CM$Z0#ժx0 l>D\/Tt,aMۭw. C9 JRnG~T:dDwּv7o&V rr'Yn¼+vjHyJxH%,Gko'Cy e7Eȥ͸ 1e]ck)7 819 {;g|]SL HDI4u'pk%TԳģps_\KOu-<K&$ΐɬP(Gjm?jEU-Am_^JƲEW =|)w- WrTdҸyt<}%$lWsJH#BXR =5B mk]v;xB{A4L/,s\-ɤG4a4M'EEVv=МEr=s.6%ۆx%M2nֆb0n nֳ̦JPn*? ~+(亰Swxql,3-%"M7ªmX^0=gii`5[ίs,Z?@6i(%+Z,51-QpDDE8hGE@RM8ȻVlOi^j)}T<sP+Z+_ fP@Y(h 5͉ԗ[I$}}mm;{g;,;'k̞6&[[Dy Q$zѐJ1dL^U:a2 01"I{p=r wn C'!~߾F|԰6ߍkiu9l.s#ws?F5[\Ϋd5/ByeMNP3aF/fL]vmG9;lwl~PoQfn.riuasţM%R̓yز;LiAbCܟܔw}dr c{Ua29Bۍ32=hs7P|N37{;i {ˬ5B(5S^gHǍ$tb]YVe]Ɏb{($';n޶WsL2Nj&A7VdMLeo&f+p=7r6 m1I[\ q\{ʑNkW`;^-AK&nl2J-5 !lCYr{ s*q/5K-&B5"h=ˑQ # Ju']hqZ j[䗠F1O)]S|ɞ)᷁vzBE@E &k,P WQ(Y# \#q4-e7ýt{'v$9p ]si,,&6KB-`eCԈ0)HP \n/c zxm3E(M K/{[;?ٜNc/^ʵg }ڨ2Cٙ\ܖ٦ܓIdf-0By܆ūkVInv lɺ/,(]8ݮT?%[{#ηrZ2sY"p$ ~5W~'cnعx] L/)0k9If.<י .2gs,S+:il8GHT<fdžN2%*ν`Y<As1k xbY y!ҦvjȱjqcۺzySEFQxk^C"Kk+ #Y:zXID K2@W]ٴ5ɛR> ͓&xz&~\8.c#0į;q}VX<ܼ,ΏPAgϗ* {fYN9Zѹ_-S>DY]ͤ\gk$S)ggǔ,T)#a]wpP崢A߀^g:}2bZbK|3fn;enY IZm|m};BdIO*&T TѼEtH< 4uMa_ k=l"7C^p-@)V$Uk]^M$MP44޻ ! 3 Џ 7I1);H帙!%m'WC5ih'*re"M m'd>efAl<"r%}@.c+F~->.r֗`lV۸H qVY&5'oBSAYQab*Ŗ6wy ~="3^ԫV@ 1"" UA#xI ߀¾j In2C-PIjj4 EKYQ@ ԃCiVq .h7܊hCpO5_UTUb79x$Q(RCW^ N @ ܡp^uMAACOG⠐hl2; y}c9VDL!K1 Ոb)ҘeBM&PW63֍{kV>anp-l)Hn('kj'j\,m!+6%N7e7huc,n\RFؚ+k-qdvLU̷pZG<8in_IH]=ݪwT@06հ"8"MttPՍiTWպ`6>znek)T8"X(Б`mHٷ9ZN$WҠ H~@ RVNҀmh`mŒU,(ZҀ'X 1Z[*ENgM.Ӳ#!PZ6Ay#"8*W ˊG7T}6NV;!M*g|>!"CY"He,Ѥܔ1jZ'w 8,qka=7_9||IrmVwDK1YgUSMQ*_E=}iesk|m!E@26e@kb(IT\m)WऐE F b$UTTwlΝqDI>!KN~J0_[@)B]ʑyP5zY;Ei+:1gmgb=m (v6  m?* TR(=Q۝ @4%+<5KHm."5-xbGdUa3ACJ*~ LJ%o汙9!nCD6Z[ wV-x U3BAX ԚXvgKH_#3X5JBZF*dٝo qici[A BFf~45T%/`>iIs\%e1Y~{; ,23GAVrH*9SA FۣKqecm-Ar7C 嵱!dY#gnU$|KAsU"U+BA'fɁjz'BW,*@M]b;P,Ej꧁އ 餥&)I;lĮּ4 ;lPA)ˮQ {T~>@PM˨M^狄NWǍFܷIJ P6޴vbkPAz㷂]+QŎߩ`nT RdGt]w@Mxn/+9$AdUGp@hG) !Ym27Pw3#us|w6ynK>"ZgwH0K斲]ɛc=ԋn;&[qmr4(0BzO6`(Sd4ZB)yd,!Y$wB1^%"4#ILP@m<$*6ߥ}DQQ=\Gܙ(;R'~|? Vd"4Jk_ D HperտOM,8kč55ԇ4 :Tr@4$M 󧇗Q*ߐքtz~ [!m\e.Ć `YUDl@ 䁤w$NJ"1y%tذO1\<Jг4k,]reL6?!̱4{ yei IxPeN_g|˼~[l6K2vgvp-.sy9}3˴,=WuY z ֣t:\Q K6[7*iIdy~%y nn/,仇H̳ ra2,]wU3c!CAOY}K- 3?U]qo|f#sJLw_.,2xGqwܽ{ćp79lW0w{=EpJgyaF/]j-ҷOpHMP*]E|klGkc2W_?;G$֖w=횺r8EY9"Hܹ_f$IA1zQNKsK1 ĀdjIiueeB\2;{OYn{W9qr6*A::=F;?r異)Fyeqv"LWw[4 䄄H{M)*D鶕4g;MiJmwnز!XݮNS9OhF,wT._pUt&2ۥm#Z*v"lO[=lwmmAsnd#4Llܴ;iS^K\^q?qM=f֮(!0%(E`gK)J gݥBv^ q+H, nA#&yna)nMƾzYut UJdV+iER}N eIsSWq4!f3:rCU]8᷃4cH1 qhJcc"N3ܐiR)R8<kCD њɎD,Owg`ߕ$mn@RO!Z8NBDCL3aN-LD!'^szry9kk%'K+,L"uY"qTWPhw%& j<&yd"7D pS.!X{n4).%{wʲN$(tqF9#(FnZpK$'}@ T$-b͜|aKy4;*jXt1c2.ý jf' zݸR_I4#F 1#:AUdrOS)} [iۃrzdcs Ÿ'd o `F82HNS*jM7۷za{~_P.@-8ZI#`ĩfhtz82ם8ֿzn&J\s[E;+=ɉ_ -y/RN"2:ޞ&Cv\u]Ǘ$D_,J;<[Vw׈& yef2-Ŵ6QNy =HwC>ɊrN8Cs'UoanIqܗ1䅥`Eo'(_ G{ezg}gX h7FB' wQ`ֱƋS'l=MAJj]4XǙ\c zdyd_1?9 ?hYw6kK_e1 ylʹ6%Y晑mK?@, 7H;Kzd,4?;R#w5m ,]ܿwOo\N``e,k >nxv3v9XF91ғmb7doȹ ٵ~3}Low#7䢂 8 h*UjE)|4 T#!~zGw塚IE[U(O&4 iE]J;V3{yZ FtƮX"$#,q[M1IYw";c19DȒR[[ωsiV 'XPxƊVoy͐Th,"XZAyt`B.ZHy3oAUm݊khȑDՒGڢ yPH$"SV4$Q)kdڋ)P@$Ws*oPq$q&rTM˾nyzoJ$Nǒڛ5'AeEdjά^ƪ,hQp]L*d/(f?STtCDB2NJ_!kkωE݈xF.R2s%I#~*mikR,ca~'mi=mRGGhn>&)dLt⤱Z1y2E0&h-+^_z nV\FTuzk^J4ӟK Q5M[Lތl2Iqח K$*b jm]K_[ouX8GX_uЂү( ;A:QxN&ICd&D}OT6թM4b@>#qPzvݼ}DI*鷠A|MIzj[ܖoʤ_5)ZPm@%6TҔڻҵ: ڣzuƍM=J M& (aEoa5r/1&,~y*m˅ j=( Ӊhf2Y\n #tnw 2 EXdum/O ʢvPv+Rcsyg-an1cQ|I:,p{ 6f$ uڧ xrȘE+EzxҢ$ٓ<: r񶚮Pu#ny:p9ljHPP hF^$Ot&ɽ",|Nn(E*5HD dwWrסnI m]P-KTƌzj v߮暀>P[9Hg: ˡQ&Ѻzl;} 44};3 @[k@ueqq$bx嶓 ً⠎#Z*),DŽ{G3"*MfV6R7l:;3:7v1Gݙ~59\IifdT;u!OyAYLggyK8Hd\>$j]ٜҌF-'7a߷{4N` %r\>ő`n!q71Ֆ%gCTu-w 8C~\7n$=hEw4b &B sEXm(FH|rƤrj*X6hYv#NB5},@k1:;|wų|ls8̇jen{7.pOj ol"x.agOf [3F w"d/mR«=&8g#̴گ"{R[o}aÌ;0"uVӖ~)cm#=KmIpRHFI`~GL!c5m4>tgZ#)" w&S$_U?DƉ9G &TQ hߓͪ =9:AGF<Ef/;+q v2_%kb\ln'L<[h<ƱOo1}_S5p=Xr}psASv+j9_ =ݝk{9q׶KLwO9 %z$kLE̋Lf1q,xr7ӸWLH w'˿9\Eo{IJ[b5Tqܸ*'Z/s&Kbq_r g `|ݿ VlYC/;{F9?2_$Bs*G?$"2^rVpoۥL%&%pg.|V;&]\a{nQ`FNYchBPkNsr(57ߏY|{1{cÃ)Dc'$+K#I 1ѝp/㾄2/$ ?ݩEGvOn}ne3)䄟sc]{ \`=[^!ϣ^MԮևW %p \=jKc13=: Z 1Y,ķQd"S0Il/9'}9D,Ik$2qgq"L7 e{ {/y,s5gږ8|59oMYbM͢jGrfaӌ dQiƋ|d!-c ;wMs8;lVuAK~H%C(<+'42f{Թ-̫+44P-k,=ٖu19 At+p0r166ٛ@EoM#$߉c>2:7fB$1 J2#m{NU8?^i:19Ljs_:n̻x֠^u"2Zh־[lzR몟P-JMJրk_vC%MJ#,}%FYAIM HeS-e3+ܶ珆 l-V};I`<Ъ;d'`Xc09\8-3l'[o>:8'dW8HP NO!Ic0<,׹ d.ʽV((&$̬ނ&54 Bj}i(]Hк8* ((k#@RI=O.EӯujSU J]j:tZʔHVT Cl Wڒ+ą(};Piƒ|8PP |6SM ̐[C=#)'CE en 1 Iң՘Ur)͖+;lC,w<\AQ eA7Eeb`17 .]om=Hqd I aK bqj,>*8dEPnOm$|+C`Ո'RΨFMP[AjAļcX(XpHQ; Y.oMEӵQk҄SPƼAJjI-[3>O$ yBh AU4Ӎ$MJlm+zn@'jdǤYDPjڔ,7F7hx;$Z)};@v?](>R&ȀA$P!3(AJN*GDz@$x4؂Ek .ԺC/F_ #o&uf`%\d.M*Y~NQڥ ؆v RALPˮK\.q7WtF 1ZI_ +-S^jP4M&׵2Y#i2F {* k,a}ߎy#FIڧp\ڨS^*,dƒsw-* R%(T`U&@ QwOzW=:Q0r&Fn:rjf5I9SAxWT@NGO-l87 !U EJYڅbǦԔF*JHAa>UZ Jȇ&| zcMUw6in/t/2vxEr 7vsK t~X"L`$b?$ TDȿfRH9L=/(,^i9Gc`}H IqoJ{Vrgn^Yi-‰oi40yeR1TQlsCTnjNt"ít"B1(!|+ARZQ/۶B܊)BE6-F2DJ.2iiMw[mmHm"4sERIiʩD+4u A+'"T%N@A5ʃ{J(wPsP z`QFÑ#|Qҽ4Yx!aM7MR@~*VtAiZnzԯ~IB3ƃÐImM DӰ T$B{hfII0=^nǠ}Tvj(n^Km*5F #tVd'xڊ7ԫ *L{.. RYbĵ!fҎ@!QKS"ԏژ].roxh0R!hu&rچ(H @:کb&4H%E+PGMj_P֕iJj%jM~LZ\P 7 @ڵPTR~mJT-hEv܃Ӯj5$ֆ7V ĠЌU ZPIš`_^06+ᶨGӸ]?!!4g~*1TVakRn~Cdd @,͖ e dxs]j2%Q*ȶswl;[Vv{qsazCdʔ1,{~kQK oc3Y4<տ-MN[0LTӉ ye(>Wnߚ_ĸvLfF[쥝9^KW6*KyN4c(}Vazߓ~:/GأR#9JGб Vp[ڹ?K;jk@|^9c`/bd.M XVxEY$fe[ml{. ioy&0}a7H~Y;;rCy,_ch2<''e~9 -=ֲLbh|ޣ)l#2Z*j-v`ŏ?P>F.Em|!|sd̎6 ĝK;(߽~ErOiy9W}Fyl@}^gs'%# EExFp;|C+dr}(\K<>ds`+ڹh \\W6yIxUSVYLR9e% '/KaS)$Pw-F_ֽ̗g>\~8ۃ=ߟK8%;b%+ /q,h:y.y6|A&d1cڠ%ZqBi,sIqb ]ɗI>Gܕ-6b(;ݵºޞPL`^Q%J r6ޘO%Lď c$yn廱-sk[Mk kHElE/8TPI\8D;+EcG&ڴnWelw5O e.l%ZY#gKspPݹ [[ȲR_zd:xH!&V91gqs)5ݽ3076w&> 'r۲A6FI$GZCɂ.31@ ^$p JSFfYeIlXiik':rFuYHd4|9LN@LͫGnTfA%I##eAoߘ~V̜NXwgq>l'\<FyR)T }/X0Cx6/,z=Õ|_Y}e ʅ1Rh)gkcob;9sm`r&v<a䴊y#,\Ƭ""G}ߪX8Ykgwe=<ːܘjuqOneMsnŸhdl!{|\dmI+4P,=.tur1q8ܗ"m/>㕎c s ISD\'͝w+&Cwv'oH0[3 $\CȬVu&}>$ځ^+hനK}@WV :&|A=Ï&KN-|em;{.{Ān#2xtXq񆄣""ĚNYY#*8-B4Q:.YwֶG]]GlLʖ蜦nt)3=C|N'O].\F|Lw=G-¼,c\0CJV HOIeꈗx=n7k{ >'_-#e{y2imm_)plnS$F5aU"r^'^(xH<5}|5^^]n28 bjXMhtΘ>(18xl-L0A j,c#Iwu=d"NHc$Ww|tu(g H5_'Mf=>FY Wue-顡2Qv/ 4dTvx-)mYIa/2 BJ҃Jc6٫ίJ8 4v9@·~/+ +}Xߛ1`jE&Mp~7/JrkBk(Hmk'*y$aD#RHNW4ZԐ;eQÁ<{/Jx4D>p+DEʈ%|GU} (|nE)"'F7t<|0uM!L.[ 4z?kU'&`-fKwzr5-5ک (wӮЍ~:QfD.Ro@w=O^@i@VAY(l?M PhQZ/j@{"2qޛW= +n WS}Hw)؂o֛֚{O$GRibd\VeP:mI'SKh2:%*$;&_KPӷgH j(@+^znOsr-U"Ev(rG*8HzG MR&N70,u浻Vug.nȚ'kErd%h5 T" SLm֖4\L{Fg$TIh1I6)FǏ_H]hQ +%x)B`7tpd VT##*zE0\҄yNzPIS`ۃV] ǚl8$*#WqJ*NIJR7ڞj֚`\ tToAew^?TONJAϠI@5KS=E*P@S7< cJFt' IH%<,dx>b{'u+0[PAK^Kc15E'''[^M Mo0hOYTU&*^o #m C8/)dkՔfU*Ю(I=ӧOCCJNmVobڴ,)^sLBq>BBq@E ] S"7"tCVRO5ڂwhЩ)@S6KҍYWhrv}Mq-x^;+қտdG_c.['X^K;dcn"؜r !(kSS:`=x- #G,[m 0A 10ƃG i(eH  \ӔMUIvi)$KQ(t:xJZ xT*zuШOl |Ҹr7&q#22wRDjM#r4ꈉ~(0;#j~|+jVIDޣz Eæ([PMAƕC]1ߪ@ SJ˹鰨 }h 6]]Im M)DJZڼfkvʱx5,h`B# 7j/qCo61lX^E||G'kG$W[sB/E@fMfyDƤX4oE6iO#H*1⋢zpSGmb9 0,7cjCob ) GʄAՈ; Eh4)#S& nMàܕæ@2mvkCP$:`jnT56eT*J v&|E+T!T!'m.Τi#̱UTzmR7o4NOJZIjƬ@:|E*M72N,*1,TͷEpH<>Q{fǗ&KcRP  ѣЀԝ&PHI,Ov'`R\+M1{,YO%xנ5$ OǷ]Zd2uPg^İ"i7T[T҈ Z+d( #(8d(Q#UتƊdqc]##m iQHy{u T(J*W[d#&RIq~YoWA:}.)e(D)Cdj? {Gr8'jKHS*T#f'!&\u`qxYIIM wI-ħސ_lT%8AϧVG $1wf*> y\Zb6Z;{/q^6EԐG/EVtQΌ,b~AQW뽮xǴo$9b vn4|crX^vw{-s|NkIcY1ykƽKw3X).,B6C$3{Fӓz93 Rs>NNR(F6~4um2Cq |8¸hyisc}[,qЋ9e+(k["jcm#"#&H4,H9:ozpg7.Fؕ>/gبl;c{i3)/"I"KF$3fA~qcJ $D\p_ĝn3q@8g'! ٿfop_̙8qq\a1f2qh(1B ݝٛu,"Q:Gw8c;Cjl$]w'*KG+T:cHbY6~bpXHdygbY g(DLϻ*j|`D`!j=1ǯ<οZo}@Wy4ci|Vd ŃJ |a,p#L`|ǒ'(rykV֚C)^('%A59ZNyCᯂˏ! [={ r4V\=sOn[f* d75I*Wȴq8 >Yat8{c?|k( 筯,3w}nbŽn/c܈Ɏ"ٙ* ʱOE@jkc]gLS3ͥ&=6 ZL>oZHVT;c/H,nI9#{au2,rCr{g2cKlj<琢= K!Q!^7z|_q ]}6+}Ȉ* X1/MkB+Sp!QΜޫt?5^N ^z,Y_O k(_l#3:JRwQK,Qs@š؟g=QicYߛ]Nwn e\#/?`osg_en{+I 2xncbY'F=u:9 G#^[9.o<^K=}\}bVeSgbR7S;,=狒#*X4LTSⷵ;{x$pC8XG(P7m[}QۢLA-dTA N6އt&'jVTt=~ꔀ@1UaƆ҄qLlhR}݁7NDRI:H,.mD&PEĚ7@c@Ě@p)Zou{њ~`tڂ)*(:yTuB5TAq?=iܯޢW~ BK#MOMj$TRjHWcߍH]:ʧE(f3:*)PE4FPzlwmNJB@MFZt xT:oWմTpBkJBh؃_]ChHpsѐSoUzRAvᤙm8J- A$Scjt5dM%X, v465"B {d&` w"5Y 1 ,TSAAJŝRaK ?$@o#~hLEAx?ƃ}.hp@ }Ӑ#]9F 8(.^"ВToka%QT!!HU2ſU݀U v$u,d_UnO]"؁i*PYM:xnʜNД^TnM UaCdÓHNjS?M TPV6@?hBV)Py}E=I&6@ѩ Br45%ŬJ'*8BĚRvŶ#֧r2X!Ihamh[754ZJMb坹qKޔPIJS@gf{ҨP: M@B-D@}T&PSOƆГBdt$8nI isJR2r.nN| o+xGUR9zp=ܩu$% 5PTUW4qD,J|`?[Ԁ*-@NpsuIV׸VQUd%5vL$OmHǑT`SzJ{_'[-g9rϬ0-^'yq,jKUVYBoFl}meUi!5UU`I$`*փ*dR yhBSߟMMt$P#)e*oBON@9`X0~c}vЍWӽ@;= P@uNjВ @7޽:hLl#JMOMDEJTBBU ؒ6OUh4#,ɏUcȹ T%HuTE2=B3oljQ cuD-ܾԫ#^)$!ЬH}|fVHk4RDhAWOzhd=x~NlU@dk,]:[井绖(K4噥~91 WjWHD;UȪ+u5$?HN@  P$lj6f$̍ŕ8Pœ„ƝkX&ۢ4c!-JuƼ:@JVb}AGEؕ,(E|nH4-#'4'lUiw% J`' u=Niwj*O]UnH땆[Hc߈f,P)mBaǛK(y<B-O3qw~8FroJ9 qBɶGg^c]1PS<'d+dlVMvՂ EE<<Ǘx5M 4TyҫgDM mԎYB0xWvx RHH#TOAZj-#o4`/p װo;[}J53v]ʼn{%:evPO'Ϭ>NlhXZD[ 9n#UǺvH>픇$=5$ՇgI{BAgsfk*\q@lUwO]wkuhwشaH[j/qhwXa>4&/#wѵj3n>Ic A(Ҧ]_s݇Y m̷Xۦ-6wC#4j5TW]ON#mj j<\6YkaH-gW2jw0BВk>)޽գqm+Ϗyd8z8|֗|=Ɏrpc\>Knω۲4fYE Y8rSYKb2pvgmx ݌39ұms|e6K!k\F״,;H':ۜa%KT{4hpuoxc"S 4rx\y1$ >d.[a50%o_[Z[r?e"oG7[좤r!Y0w ڳB莏8AMM;9#|V`xtx-D^SO',rL+F8Sͪ h^ŎM[YiH'{uG DŽlx]=>(LB߇/lJwn  o"/q(8'we0١sd"U^Cƚb^ۃzOPD݈t?^o{?\bzg FD+:pw㟰{1y&4Nk︗7;k`뒰݈xV $B~m=NL?zKT}.@Ah@KJ$$b簼kx E RKR>Lq+PG>ƚΠ֫{d0%z z \n&Kp4h!2vcĵКo^r1_\V m)z&€}OG,F .Ě0אNK}IQ"5~}sOI[CӖ1p{pZI$jg$ {xƷ<}apM5hXvg`F@E,5be% MinFA=,18Y݃馝tf^[ܳy)f@i~a%koydwuk{s6q25k]z=>>=/G,ApՉ,_$ePאzPH1^y2I#++ī)7q "$,~oݙ߇3W?1|sKr_|eE(QAc&7B)]Џ0+NH Yv'"+J E?-&.HO 6#Qp)|W3 5 o@N%-w:oQvVVZnJNߞ,nyɊKGMҝu k$m@ޠס]SD7n̆'+7CF $PI#7>LDږuBu4]A?P>Cٕ zIЃ:n$.8'Ib*q+SENB2/Rr"(L //K`5("M(*7ޛNa}3J hhwFlj;Ѝ>:TIJ2(SǏR:Qk]ʖ*/kgw<,9 ZcPђ&iY Ucg[Mpw`SǢZhtnvtJˡ#vӨ$(6;К뱦϶(DjЁ:iᨘ/[&w}iuIqokqcq0-n) n$QGqq%v4yHXc $Y[rXnM|tENSqScs)MHznkZJntFDRI翎j4kd#( O-M 'J]tm&[B (d.yL0⺽L9YRX)u"DdVsQ/3/hOd#DËG\"ξWWN:~v,Ϡcˁ, (xw{{-g¸JF̖lMb$4ebz~3faV1gG ZM}ߨ#"jH-Ȇ<[~+6;c0ÂmY`)IJ(_V6hN9̑9>ѧ{/39=`ͤNvJر, u;Cq-4HaV$2ҵR(:\)~V]:LHAV+^K +T6Խ*?cֳ\B5IeBAb+ƒZ}Y ai C=?_$<~$Q#{ m \ws㮄q/[5_;~ddLVWYad2,2RF{Iw$EYun띒dJO2.< :}QL\,xwRxv7ZA=GNH[ 6E(PXWzQᎀSN4#'o%wu.%XaޮTD4ץ[SjzoNwDXF+IV7cTԐ |)YIa6ycc~56$r!F ATFt%z]Tc1xmtxzH˵T[![A"C}+O=@ 2}J~$gR9,g(RdXҹmXȋ]hҢP :s6{3o@xxyyj^w'vC 0VI06P Z3.Y0(ǝi~4XS{-屙K_`FbCrE27R6u:.=ř.^srZq⵻:\Isa2џnl;evK+ku>OVJK4q0r?QzrOex o1e4܋c+n:-`;d*:b첌A pXE>as%XǶ%a+{6.7scnl#7Y׉b!' )kt(␌jVZy~̲c۬bLI"M"Uߎ/o 2m+lT}8HT *7֔#O0asFq&<1$H&xk;[;onC1RI7N\ݔ 嶞N&}s!|@~\NNF,qZml{x(U` cT&c ntA85 1)F6⯗2ldxXKJQך5łDJ8,[k\vX_ߢOFՂ\"$.zcp?*0M*xgUiΕ$q u_5_e]s8+G omPUfΌIjHJkղa꽿 CWW_|zAKq@ WJqo dx@*朂;)u20(w/Ϭ8?I1l|OL-6joEUYʆƇ?Gq__U?k(5ji{ Ĭ54 Cq!̯Y)Op-AJ-KWBQzP 0y]d>cb<4j blg$֏.1BЯ5JCNO8SC^woy~O9DA9ڕj/qFK i!hKȆ!Iay-J  yspbrZK_k1el~˿;%kU85V+"Xsł QKټYqLe$˅F_OUV^ ˳Dӄ?"ј!t4L{vDM(jkN^tґ9&LԮ hکd-ȫ sנ5aM]:WrЩ$$dWjWmЍ 87NΤWz9hRZ: ナCR7MW]OZ ХƱA ɨƥ+BED:Ї,!~T8#juwЛ"NēDJ@^馲LAO PFߨ@%[Bֻ҆%kAM1t *]NLHIEȿzGԯ4OǮę>9;W[5m]6"uf(&BnOJНD[ ]PPuڀNGIAJZnF|uR YIZ1Nlz$c Y(#I;=JوH)C/-|Vڬ%AMKoV>'Wpڇx$D"IMJ֔G "q`)ZiJ05^{Weo?I4#ڞO^su21ֿ"bN߅=&p4Hcw-T CR6_R;>C9܄牨mROhgzV8ϵ]v~LnC*_b&Tw:Mt;SZЊY7wF9eH쨵go ^\cndH9_㥞H8"PȥUMJ܏I MYC0{_5gu-Km33m%)e 3QkA֗zb{n׎"υksI<Fo Ԣ@%ҔşOli-풊MORK7SAz,¥jKH"PNR""@ ʛPvulMziѹ uTֻPT)"9m R ^6D* 3JACJҥiNoV4~ EzaFo ҿV]tSIòin,.KOG Ude'(Г}FPnI>G%q S tEgwkYI"4326bG}./ H*q*<%Rj+朔Sp(KSBG0hE:vTxn?`CSjhA$zWBJZ܀)/"ki@*z4 UkyҢ`~:&SNPnhj*uUSW@45Eߊ}۔cBm}m$鎷3C{.6F ou{\8Cu,MefHH. 2-k\\O[-ͥ);#KY!Ы1e@ fI-Ger+liRGbIӮJKEȊU7ԚlߎL,UUJ@G^BH>#ºR$Ud$5C^)Ji1nTmr#QʇZS}P<)aD*=:ҜiJ]4CpnxSqF$u=E GrBI>9A$.zzSso[H=:Ƅ(Jj,”4MI4%-cIP6ZM:?$3!8é՜*$xm? φ7Acx!4aJRqDU3l7ޤyj;jKEnLP*H4#q'lGUxWxlu{C YFJ~TXĭ}6GkeI&nu#R' vo1n,w ,/G[SB%Ǐh~[lsw;z=lk3v6Wo񭬊N5vSˁrF}{wYқDsSr@{Y3"cW^cVbco;y%_=s=̑EEE6JwMWdɓ$!C}aanJ__|e,ۉ!j x$|@|*|)]dzdGq˩٘K~wG{_Oyt_鉹%;ܟw=M074\xo,V|-~K[\Xè3Iz9}-ͥx,UbXwٷjj: 7FjCv{/pkacWD2!ny?Qrf<55[S,u氶#..kۚ8# 4jqCv36(i|J 4Z#QEV%@}1$:S] UzՍ-~ ^'B ȏ5 T45>۷[hncn;RS蒾{֡V= #e+Z9sɐߎcbymϼ$R* $֨CH+;] ?}T ŏoDv=DWb2 i5<[Lտu1.?,6m `Ƌ)8@";ēO-La) nӇۊFx_pɘ~)>:ɸԊ-#}q SۑcFhf0Ejta N!iD+ "TyugwۈןɨxɌ~k\>Ll$&A,oS'6!c"DF]2IUNZ_i ^CӿMnke 3w_dȽɍh,!_YQ^I*YW]^o&M>PbFHjxGh~ђUov$?M,G jL;w=.;a3?x8OPП篯u)ϋM_{'4zyH@Y4gEt{jVv?||!u.N5o`jTƤO_my^}Ѳ􋶆ܽA> }$qǓ+d ێH~I|f['%^.9/qQΐ4ɱQ}"ּ<9av}}2mЯIrQzޞxf50v)z߷{c{Y-rY$t#iYompWmH Q|\ˇ$._q5isC/o8jblmɐkd"e"l3H|FR /zy?r$L r/pe$ʷ݁{ Rlg#V&Ȋ3`mdkt\q z/_3n<|fjĊvGEU s4Dk((5i5^\L>&JJ@6=77+MP嫵Jl+ZVYdN;7Bx3BZSX #b Ƃ}xV4nTnDTv$hLs)=*M64RkS֝tIr#PܿvY㧻-/ ֨1sm̂gIn J 8O_ Cq{6-;糎9 ]H,3T1"dd[" dY~9-c$3)0@:ĽNQ4 C<[in@gH]$u'zB+# OPiI޿ME vn_]*5;tБOC 'm]N@PWaƴ;o - eA$](ǂAC+SA+O3JP_4U$# ~&/'6MöZA5É E5ˤJ o!  S|NLՓ\,--Ķޤ9$l.J azRDCR;WA<*zT>4;T~:/ A kR@_ jƐIj(AVKUpƦOD[U#3Q -dK+a~jט=7G5e"{rK/]c# ͭyobV[ifC&œII/h^Iw7\\I0$[Z ^Cr{i$cEP@e=?k J,2Iܚe5<-ּiRɵE ׀o]ڥw.(u`tYt?UHЯb `bKJ Z O]4KSWS_~(ӂWLI%yy K* 6rSeB214n?Є`ZTrw?Є Ơ ;a_6И$jPIESj?BH%hSQʛ/M PApvI VD-J]NiՐ% Tmֻn>HDXm~ \!F}; H4ߐ:m4Bp X( V XH_aAh'aOڶ:ZDv4ҽi˥vsTGaRhfY#t` cdj $A;k+{+x"H 4(6U o3RO]~h<Va Pu&DڄjPClB ZtT?HPęj&ԏ_o}zS<5n.$(/=(EE [ VIxQju;5ӌvP<+袽:+HHJ:4]:2a6Tv$TשAd~>I~$ڞӯm$J:tRң}&B~cI6stPoOǕ|tՙ'܃)SZRD o,%Cx47;|6LPr;W(|GuNJ"]89_YHmя!_vظT4FREN9Ep`xQ˓/^t?A]hCs_yg{U3vA ]0aOD[po9NƧǯN#ö2%j|x}nmcy˷U2:4qA* 9CMhF_KaOoQ0RQqk̥F5v* 뾳d/۟gvJR86CUy)R+Q(('Ӝgxzv=|C,JRvj=N6Z[Jn+}dF}O v*GQhQ7L[c)fҶ6~Zi Z\l>ҷŸsgj 8*hۧkV8N[-Ċ MGQ"DB*'i][fDM{;joOrpHJMx2#lP룉02afv3Ǥpwuq1xۋ[kIcm\Kl2FJxR}*Yyt1_ɗ9Jp.[6ER[O}|q83:[[i5[4O9҂<6 r\\u}3%4V<UU$)/NEDAZ.xb<>MFa.{N_5PC:7ch*ۭ)6țwn'I`⹊)-#͋R#ACևZҐ};kOG3ƍV5e2y[%kQd!=aԓ֚yO4մ$2YӖ4tYh0*K[,V"@뮟G$ 1hǻMH?=.KUi಍/ $9+G ^K q@*-2g96EÜeqM~N~,dq.F(P泸Hg"2Hmkè$ |(#zy;֜xxv.;z\w Knɡbō+Ns)^X7үTk n(V @5?"P+vQ/=Г V4ic$Q;;ݚVuɐC~w4wO9a꬇ƣ _w#]9Mm$S*F$n =)d}#]Wf%di%G2oe":_>.Bݵf+y'ƞ, L7܃ROTpg'l6ތP%ː][/,uk/d,09& 3c[l]ԃonc`T"9;QqPij.EYtcԈH!2G}A+V~vu{swve[\ruΧ>%<~ xc , T7ӿ:}w[4䄥(и{ԋh?7k!U:|-vL7&俖3K5.8٦cwv0k콟7ü|߳ }TLK+ (ڔ%NSe Oo@^r[N(()RQbϏ0>*[)DFL82hv's`@ǥtܐŜjk@ Ei]j . r&n =2uf! YbM{ǙHU#~n@q'9[,Oi3xu=z,-}b~1$1 BfE.71 x1cfXny8琰WcJJɸ)oZ!(aUsR?eEms}|${x}ƄbQ0kVmiY$aQOzj KEFZ8-"Jռ-# J=p9+-l9+Ukwͼw=rbK{f#%Iqu\|N}ԡGLrⅨ8qg飒byR\/n]-g9{)HvtV.ZVs!nqMLNZFl+yiͬ/=]Bn^YsSCF]TJ;sN8hy5WA7h[-? FH:UU !ԗ{rv:\ ҟ,8b潏G ^-xr"/q͘%Ie:PҞ\%!sW"tHxóߑZ]Ewv8?sCֵ?aA׮}c#Fn{rx;a%ДƐ3]vHb3;I>N} Aw^8,"\8E XwtحkѤȑؘMdМNmm%Z?KV,=|.6q21 ~޷Zw*rfԼ l&K(KQJ+x}7e2!K5IhN6&{&XŰ,;gX"e PBq ⾽ަu"8%$%L`Ӄx\V\b,_|Do]ۓJp!*:s\}ORN[ZSQuXjiTf~0fS+EXS 1;HH1`i]bz%}(|˃'^k5ºd&ܒF=De, #bI5SÓ qr{jt]>K;kw\dR 8ۻ-/ UJ$"LYUVFKW/]vu7Z8,3d{~{T807vPdWZkII;mշֹ,2#f1?r js7ZC͝ X-M/aV{tf,E+RO.3&[?U'!xBx,)q=u;i- + mhˉ&XVUB?T@:bipHy=\/=Tqu^{[.Vٿs?^v_ou26E3(PK4҅&Juv>}iO /#5>ۥA#Oq{Q{ Yw8G &x[ع((*WH]2 D$ثTyKUguNxF(ZPWSSP͢ >v==92 =M9W9lDG-@lPU6 %Xa1v[Yٕn%{#GffX} = h'/RE(`7OQ*k PWI`4U"bcSBWA*Ʌյ.>lq8aIȒIǠjǹ" \ˊ{.crmۆeiYYLlBj4zn5Sp\V2KvloubZso-7xe}ݡlBihS %u'~ش-k;klm԰ш@#7%DU_+gP;b+)=_1OR ޥt>'c&W&܍Cej܂jiZnvԃZ]2}PdԳ *hG:thI [};I@YI`iRU[؊ԭNijR _;G"iT颂U'z5)OT]r-_wDd TJxo6)c-ƦsJohIJ)H tBd5 (@=U*jON^_BVK(+E 5hB8J¤tjH,` lTKviR< h:~ ],-pEIۥ)$ T&}$JAV@Z457jl607IRoo'B+ZSa@%WQ NdZ*[ym^t}'D-CCA]T 7&K ކV(&WrToӠޕ-JRtJ選sgS7EIi& xVGiXGigv]#jr lg+okiZu,O\:|un!hZjÕwZ/TZ4W iB$W4;qA/AACE>hA2K +PDץ z_ZH]^TWj@h-jlJjxWj )A3Z%Tl9P)߮[o4B @Gې4$Hp^ PMEM vneCƢ(u1/Usehw# o7UI.8{h~r H呂#I3N1#Un.gȤIke 9cOr02$yr_s^<9p"n1j*4|U׽%%""@\1N\;[~Z 1շŸ5\?}Xr2v$)]w\O91x{` ""Z@Xk@t0@jtf чwM9=vG#e:w2ט3IedUD9(G`J:y/gtTs]G/Ox'KBDŽO}|1W |o{V}#-ߗ걔[<\yM!(Ņ7aAh#6D"Y]Gm0Iqd>RZKl彲Zב;{'0xʼMH`uf1 Q /? 1f#ѕVgw@1VRpl7:A y$VEQDcRO$e)}<>%f,ݎ&ll![x8e V[GZA@N麨'4 ƥJ֚9zIF#e~? /e{qʆDE!9vuccaԊՋj%#oj||պ01RcͶ4)EzCknUoE1h G>Oykx3#9\pzjVS@W&@d27P{eD]^5?xs-wa͌{iwrb-n%#"0,É4?9e}DGsoAjhQ{dc3HD5t[/췰5-ϖLOEmm8^ݾtOXB%ap5{g^{u\9bb@P-,F)#c+HGIݞIܱbzt4P ~VW^cGQ0>c"G7svܗ8-mݣSdx<ã B*([L^;;ɳW&xC{ǹC혖 Km?do3uO:Lec6{9i;28(BĹVXvKsE&9n#0^㻯'fQZFn9Hz օ ɈJ4,Xs%8sZdom{|}䖖eXDR 469rcXp40I\'?1\rZ`ҜVomܖUGSG#8%}1d S^^:ӞdGF@tsߘ.MNqձhG{=msX㒓5$ ؆;%-ԏW( -u6^;<}F-D7o=E.A?AJůɱ+^vzv.+N!Gʯ~^cm땝y EҿSa6MZxYh='10d`o?լb7( ľBk9KT1Ͱ/R)=u c:^ec^;T&=49 'T zQCVNzb}9ܝB-Z9HBbQi*+JS뷞/C@"PaԚlM H8E ]7sAF5}5*!+Tj:*t)kH^ɍ鴅PTyRp"坔E*H djS9w} ah2{OfLD.nx ~ miP'o}de<gS:C,)5P􊬇e6"k.AHZ{c/IDDBIR_O\ Pj+=j6BJ,c^5Bf<Rt)cQq鸮iBkQ_ "PQhGT:ҕ@7֩ MkB)C)4vFj?t&P|aLX!:MGQSIz)M=v?qP<SGډ$xP;jQ@mOXK>%>]zkĩ:0SHri@ I5'ʽkzT@ӄ/T@ԭ6ڨ$i%\}dG%W~:%K"㷷C#^-Xd(BDMBWƃ]$QE@PΟS#ə44NҔT`?&NDWp7'D*Rkv "z,6"U]-4XJҭ4#RƺZDP PxUOQZ BEJFtȊwtUTgEXzj+ڴ&]H.YK<*7iʴVHr(%wtCZ0ArXRk_$\yϰ{$Y#[H>=Sqn~$PĪ=eg ^V-H`ZT\"FoTR5@Dl‹9flmo %e]&i(T2$b,2ՒxKmyr)k?qm$ i'EqMZCm~]#VM)ewmBPJ)Z* _I'P6ЄTcq_MbtUZmh+ !, ydtPoh HIUvjFP<WAch2,y?o]k;:nC D:o}we>1n(A<~d,a;}V+TRZ;VBϲĔEZǕIfQFEH"#UHEV4DZaRPfk)>J^ݸod|8o7=  v<\v᳏!aN޵ŭFj=7N"Apjow=W9r > _ ǹ?,L2'n{Ya.[OT_aSF,Fո/]>~0F91_Y3ACḥe@B؎+E.ޣ]`JDzN|*O?V9joɃ77R}_UӭZTSgfU:_oDq;߅7QGv̵#n|<6{Q2o:iɏa>*w%䐀)tcŖW`v5H)){sZ6Xv\|^QQ;+3:TbV֕D>r<[63$p)BfFGziRV)cM$CyK9g+ HAV4ZXjcH wWM)ZbHRi$g?BTHZ@'[>KӒGu-ord$qv:1|5EY ; ^{dc0wk (JH˺FVx=G8q\ȉN^.tS.]Xd؛$;"glm U3FP.axhKs媟 pF!'h?(̬qP'X-Ԉ7[19\U2"ȬHnTzlD}" R#ͪfQ;&X$a#n/ML mS2 <;O1ݡ )BMc?Q+yė TFRNcn8#b*߭5q9'ZB{}HPrU=|ٟ/po#?1Wn&S=n s@=Vؖ҆{?YIBDߗCڮ5[w;vԹF:\waGK)3rk6_vY%c쬀f䡾wr_\ ;PܪɓB{X}&f7,d\ww?^Nvgq09ncseIkyqkp8IQL@|{?xoW=mD$`c`w(n ^ÙV P]sd;Jqy-mkF;\u6)$H%޶5=8>*1#Ǿ/}_Qq!4wd2ןw$`1mtƖvW[/2qKX쭲?"Xc2 l>#ere=/IbL`]Cq]6V[UUT!B/4XPtGվg\"ve挚u ziHV&>)SGr ܝOd'!Ry "ClfT`@H j9ǟ#^cAo?ld11-yԻsNmʆ&f:h?k/peW/{ qAu=|jo5(Vhe!tIJ챐cml8OuKiB)Toll (P lB@7r:)F4$W$e27 (@ƤoZxʌMjAVGStWlv$w ΤM)i+P`2HnP/&ʇUq7SS#=MMXHH&EAQmtDPҜ!FCl+Pxz ]L$qd8WcI=_ !V,h&hWݞVe!$( #ZSo% ~Y0 1mr mṂ&kgHR+ZgE8~C0P.r2aa^e漓ȼ+vKH.n Q ]CQWȖgk>m'ʗ%7fB.U*ž-? R(vU!((Q"5 Q"h@x:Ѓ2M6G]ϐA_*h@`UGؐUz̚LF?mAVUuТAnH>avBZyvW]Mv])] h{wq*v*w$p'L6A =)?]I=EPM6ƕO4X]D5?)@7TeeE-IMkYUm"*ƲX3PGǍA'wj1:zW>W/\NO/?a֪ GtuI"Ĩp5>>, tуY <ҖXs? _P>EiʃR؟tDؔ@'oQ ; ƅ2w2TE[ ZxҺuRh\XXzX"htuU!Q@A;64뿆c- ȟAJn ;MjIU=Q ݫONábl;7S5 jA6w!ŝ~; ^];!xQ\y${yZ*NT]R]v w5(O#M#E+ZP.WcJԩL`Md>,7S@NiDng<4Dk 8jH o8"i:B(#*Rd\ E9,kK1mscrHL(W>1{@V^Hw 'aqlh 1*6)qaJZLdBeY~a K'Xd G2'=\tМ2brI4.Zx Ws|zhBRmy t4hBP7Rs!"(kkP*m ThxhOZ@ h )^T5iZoA娈{G$ cԐ:!*gI;xB31F&IYR5ߩ4 / NXQ]ZkdgH[Q rQ`MD}]x&W᝸wy*݅zHDp5Z("օ1r#JE7d@K96 ;Ŵ|.0_RMb8'T)FB$ ⤚#־: ۂT})B@LK)j ƵTP|u =BK0Oif8q6%?w6_n-sKmoyNM[# ̶sdF.A!q@!̖[`:H'&?!?~߾8>Ol1͟Nƶu 66s 4 T~ZusitmɴlMKEO}tj,/p_`;k뉚Dg쮮Y,Cu_jF2X5%QuaLRp| $HibVm!-ЄxwҬ݇逜}uvReb7KIYNò39ayy5 2ѺߕWzdq 0S+{oe?oxge&1Cu@G ||ujvcrݵb;q9.N@L+Olhs}Q*K\w^{O{Qsnc0c"Ɔ9o{$%33/nեsgK8mZWK/&hj >AÐ>E|E i]{Q7*Ȩj;l6" RVMԎ@bMS1*5 /Z1-$jEMAzUH$r=7 (ii|t3P(s.9 A}n5FسGx/.[`eeZU PĀ1rP[.?uaqu<#d yg].@YFQ:x*Ӊ'V>̾[56*XWx|vf2VI.'톕} T5*wcX+Y^YnOj[KcHIv b$Gո; _MTZVoJΛ}P@7B` o ڻӐ?ԒcdfKC@ Sj@;4zE[攝W"+Qנ <1uT5h).I5_Ě՛sI̓ e&ʠoUwR N!dhKPo_S!+8]'krh-eެy!lO+B*[Z:ո n׊P/C:;wH m/xӑ:,ƀӏAZ B#qTW~OИit狞*Tڭ4餂,6#|VNĊX@SM<]-T܉"ȓM9T@H"҇sӦ)Dp1N"_}|ӢGҭf\ώ(cJ?yQNV^&L.IOr6iVOnyK(bp- rYC/`#Vfsƕ3!`6jPKI&+*Y Hi%i\A,x-Ab@3]t,[\IIħ7`\:zր^&@ !ZC c1 dY $ g(YvV˸c.Du$ΟޖBtuq@j)DvA Q H"Dq" @fբ"7n iI͏o׊|:PIbءW+gaZXx5ko!T8~JSPCT"$: ցzyl5!(<暩# StDο|v綜c~*q> tui'mD #n$籑dd-#0!CLc[KwܼB/)8h4mhB/י+9 ;ln[޲2ڳJk{ŤI!qm,FVK汰\C-_,!Fu6v2\[AU+teP9m>Ecqr]IͯG\5S)P5Qɫүz ~ժN޺{:ZuzS}d/N0RwMb"lCB4gҢۦڴ44(zIsA'Wi_t/re{_geuOrt^dܤI@`Zq}98c53>Ƶ_%Qu_Ẋ[i%=}^tVPrD lZ&M +ϗGެ@!@E_?ObdsY?Zk$1`{{LNn,I tGzqAFF8˩qeu*MwC.LRɟ әMֿ__n>z'yw?;{ %݌W=:v d/ Q2$jtxa{~,xn;#0 UI5 q. Lg",;Pv<ƈ*y8몗ܙ0pӕ;Y|nfvxq5b]Xcs7 iQnծ魢siFCF10_{Pwm%H]#1R$1# 9ێ`;kM`RNnו-3_\|},xˣ#pG ʪؚ)/- `O3@x U4^c;F-|6cݨ~+ڇ5yDn1ȶCWXl #c8\8D㐿`ǻfF,0B82%!B->^[ LMK^Ғ0DRFg(Fza1'b xiF55҅dߗ#vr$7/{,m,^ڤK^5@$t  鮯Irݜ~eH,szhcl2' g{H pMY"Eg]O[}ٞ띗b[Q.@H!s^{ܰCks|X"R)7@&\Aa˃&:Y}/f,I=K[^ùuiHqb&1'$n9"@Kޝn@+kV˱ߟ!:(t`)RErѳ4--,_)-uِ]^%x\1ʆ4cKҼ>/}Aed"Ϥx,,a&V#AYU)4̸]YzlDHN2Z7]^n 00k=IawK{DTW# 4#'Gr֥9ۊz&RK Қi۸v8^K-ͤH~)maT܂{d>d}5:y[u>EߕELj;{V H+β I"8:A0G-@hTcPynU#!=bVW3_2kཱུЂ5 MQ齟2lf}?Er]>Ly@21fpqMB r;='cݶ-Y/m2}'re+emmmtB,2w['YNJP)[_[ٳbǛ}j 47?~<іLہ@ w7-?N}msi)IoTqŠU5; [jymtoK,-(oݺDZCV6O~ni?4w'{auw ҋkܲmb'Nv&gkcnzH_?O.;Ln`uڬ,.1ζ%X"D@( hJS],2;y?ޔ v!hw]5w/?_E) f[h㙮{=+-@M5)"bVk9MkhjL/{?wr?>-e,;s]1dYeǹxqjzyIX"Nq10\r~*]sq{ݖkBˈ79LEA-;1+v֒GZr9cR3E$)VYe%Z,6-.,dKg+!BTBQs[&A b-ⷆ8 !$T(QGĪm)|]ԚII5 jdjC"(֛ xi4Nv3~iH=,G;* 5viܟWZU[ ؈cHiե~6.jJX,(G#t"bIdn7OR*|iN ~OH?TA  :{ 3*3+ #-]87 -{KdIgd$0!L6$@{ON(8n07-&40Y0qY9F$ENf8qkmK$,/f[{1"Ȉ-kBAȽ۸"B4y{h$ضWN*Hpp+V]: vAC56O!^l}|@)釖Hzy!0`? MI0U$2I?V  4 aipj7Y7'SӋ? з'2,Tuߨ>*;KV$TVP6)K}6?~a *i"(!@\JX숬Bk.gh2[l~N( ."I!%PԪwРv'K {osEɉa ` 2qZH8eLB>L-7;q9 sddI"+"'WQ̒;zJm4%$DVpQF$(զpT@ TTXh "xQCYLOM(UN€o|1Ed@>]tI}Gj!{WsA,nm,E|>])8EM6&]QŸ4SC+C9kƴjb(|vhUzn(7sһWǦ&W[[]NcA%[*Is 6$qHO,Mw+Y`LC2x܍MwmXܽb0TIԓ s0+%svēŒ8$ہ^Q)H D)/ZbRX\328O٢Y$RGH +,K 3^1(J1-p_no~%׹%v^N[_nw͔^L(*PX#<~jzqp^X˽4 CoO=8i#r Zؙ,SƳp5bnrTf)iJ֕qdr RK w Ѻq}!?5/~_(Kw?y\HaFO#P)ء茌}DR#츲:Z-q}68+K[[81vq,Xa;XХ*vLo C-JbW <:po{_.WWQ&[s`Z0$VAZ%CEț?IۧONTBqU+d| ٵ^fQ c al|i/ Dr8뾗יwq!oxR&V#vntS[HR?/y>^0Q$b;>Ç?5=wWeJpaU I 7 OBܴR16RUʕ qZ,Zo4aۊ8zӂ"T?(bܫU澚:o ~x~XF_qaLJ+? "VTdpdn1;Pp T V9<Ƽksr5W2ej>C}4s G75DX꼂) (G$S[1Ncp/ܰG 9>V~0*%k?ЭPrT~:{3pq~.Q"epXp| |W^0qѣln&7{h?V4%>C"{Eb2y&81aS)dDVW=@p@ÿ(f[`/[*/mqIC@;x}{UFi0j G֏v5-b xP++_m$;MN?obϢ9RCQWȉQ$)~4nTZb Wi"j7W)]HumkBh(QMAK~6BAROTWM1愉$H4@ 12Ьy .{caд?u#^N-m$ĨLxfTHs#t23/l#M5К.%V*=ZBrssےb㊰aW.pe#9t[#J{|"cYOfFb@&Eq%Q=՟-n#‹R  ҝGi. V @I>*AJu(hTV/Owj){cub JP_:yc- ®/:EwxzlnCe}Jn6㉏6HeVMWsinn?Hx$x*#*L-jXk)+MYVQ]zh. i@fX @@mTNLB(g ɂc]48E7u'N VR맕w:E)JɭE<؊1RǪPֵ ZקAq@7L4^Rjh:БO6LzV\j.I.$G+KhMIe5,D@V8rėe e1UYdqcosvpڭH/Jtq^lu^:yo'\{F\>2nm+/g{YOժA3 b\;wQ$&9湒T?o ^7bLqᑔKg; 9di6w yۗhǐE(:1(5چ#DzF:҄k.. <#K3.cVY($h R^?;li- vIn"Ay,/"3۴"ոI FIzEK-h!!8n[K>e$-M:iZ7EH,@tzYLX0gL> bc$RZ[hutI#gaQAӦژLQFa08-Po$POƔ fAX&5'ȍ_*@?U=+N*B+z-@JGPmJR6DJN#>##l +M7,D5~R:^µI,*s_C׮@2* O/I)VLm0{̤Vem#a0VUY EqWd0!W5(v]A8żXYݹ`ZwIrcv@Y WqSd֯mw{I%%bR2]%:jVL&YH;$`*3 :n dbǂHe?z=|O~v;<~>h*mS5?lmPOӮtф4"*.G>coJSMBA<)7OBtK A֧J6ꐗOHƒMw2EBI:ݮon#J)kYkIoD z TF׸,W neƋfRDoaeb<}TBiA_p4oF=}&:?e5$t\$ع)qƬ&K'̹ı\\wF%PB& T򄵍GիJtj2(qBOm,NӪ4n]{墩6Cp *:h+ZqWWʆVN׿>.|rbbG9׾wM$Qzг7ڝ(qc?ܾU3~)̃c~L˦1-*๿LlmԆ8\L&~2, rpT}6/P0-џ^}ϫ}R&ùMynde{x\.=0 Y 8xbw}/9)O!˴8`:x| ;{nYf-s%V{,g✌3 49؆#1ٲ4ǃK(a!bvֶQ{2y{'yKt~*ۣQxEN.a;ǞJ8F6Hk&>܂4(_qF 0/ ;yc&Ly{Su ꑫxq7 YahjD#.}?`,lTWcZW26ll]o{qimvIHci$,v5n k{7BP 3wws[~ӒCL>po74vD%+-V;;a92]70[=-@)9!#!Dm,y\NeuJHHI KZu ٘wҿpX>m29ܘ-ǽ҆&-,%F(fY}GG<2F9[77,{Ul!]"4eDZo>0f%UaɬYcg[OHTH*9oGE_.vpv/+i,y\ p}=]|$O$׶FQG~.ka57QcxԹ w@+绶eK #cL2X gx+?o]\e$7C$F֑јse˒f,\ZZE=ņ* eTMa v 3*$2A{$e8.āBk/{6s^A b nMuZIg_1|#0a~Ϸ!erK"{y CLDvyYdAPCR\}OLvei(ջ,c 6LYH'ib '3Ƕg4RE-ݝŔsnM2+ϴI`7ælo@oNGQÇfG$'& X1gyycwRZ̫,P5Ċg[N@ PַڟPvP??&nG3twJ$@9Euժ8`|l FǍQVAqɨe<~#YҘ.:ᴾe J %Km{{5>WfKh1;,Э9 Fn'5Ffy1ɢkvw\iW%}obZ +daD):{v9c)HEM y5Wi )OaF!{20X{3k-EY&n)iV/*)U!бu]y2!ː7qcK/8fVr﹩'XrLѹQ^ 2Y} gpj]tY ƸKIZiŽ#Z/0A kJ-s_Dzq l݋(61{q]I{[ ,)I+[DŽ2D1Z V? 6ٷ枘wWW˷w|U'_(bB[X~qi嶖~9RA+״}Vkfbq=_CɄ+%W yQת0&{cݼL A֤Eҕ 1۳D<?N H&Zz(:Aziz&$iP:LHh|jv|  H]i]cAgrSRV=(B*@ښd&vJI̱[A%̭(bid\P]QpO >DHO'Î1r!]FlQwqՔnh(H(G3wf8n/);\GZZ[^ٳ1i7+ V 1qtԻ۹_mpk`ְFDiK;BTf""2mE}*v.kݍI'Yd=Y& ^eN)]$Xd{۱@БƆcQJW‡u|Dv%)mE*vҔSyhg/  l~diƕؓƵӤݪ.h#@Pt"+?LVʜLR)ZқPmo3'ݢ ^5"A]~gE_(ܷ54"!@!C; uy O<5->͘PbG*Ő :nu65HTߴm {rX\$1er$i^_M(iCx~%r,}:{$VƖ1(T(Q&)h!ID"RiNTN|?A*UoVb5O_յM,b8ԐEiCRjOO@tJ7޼A ]K@zS+SCNF ,D6 SVI>=t+@#`( $WRIJq *^ƣ}Gȝ;G:ȨE܀ܒT X- KCѴQ seˉxg嵂;;vfD@JUP~e ۋK6Wegy&hZ4YY8m. $YCHT4,cc VegkI~W73;v>>iޕ܄l7HwVi/"8~K:!28Չ"z+J1j/"TJoQN=PᵈۊiT741qBGv}3}-N̄픁]GPVw!/)꿫Mjv(rU]D1y4/.WZ 1vHH=fG( wo$/bg?#w=Sݿٙߟ+h.G1p@1Ћ9gs !+>>&@\q1c#PM%$1^!v̿vf^l J#e9_^VS9 H70W*O&Qf #&1YHdsyHmb%_%w Iimm ݀yԮ34WPGGsC3}Xzxmf{AjܿB)DxI%B{D {bʞ2l.涮sWH{dה)DuYHJK5 Ia@@1d2#~l~J许"`9H)&6R(BAum>NN%#wxv{HiTtH/0Gڳ!wRYEi7'b?n,3č3ra,nݣ7QBTJTM Ƶ63]11&η(=eVD}В+Dҹ* +N "ǿUv9\eh$)BIޕ:CpܖS8S~ M}ܑk*\8` 4u[DU < F1 [.2;zHǯg#̛a^_ ,;o,^50%IHD 4G"82'}gBrH$N nW"&+nCܰ%B!.R]-).3W롅pöuD~&wSnk %R៻-VkqtF:ݽ}5jFY=E@ˌFw N5Sdıp~T |#Ńumq)aUbg @LhVTy0\Irg9p]v>qXO-6y ; ..U 14+~OݟH1sN$ w1RϴV~̲3 YcnbۛsV?*;Gl`rY$\r|XlO+qeC4a^L`2$XL̈wiB_ӿf͖su͐e伃h,WȝῘ8Ǘ쯓{x`yl!svId׺;jYqًp0LɿtGnN 8&k*!=]}9L&V,obAQ_lwO|ː2ddgYiDvl%Gu=:c4rY<ۈ],zomɎi=mYEY`(͹0V,}u(?\eЂfj xٺg:AcOx'O~` }CUapI/kk*w=Ǐ;\]\r2r܇%Fxr31, CZӅKfzo/s͈Iqrb֯Ä;Oyٌ2e1k۴;pDǡaqIT'H~L%GC̽=/t]?_f6lKUs=ym1QDȜORȪ$.Ŷojּ8>t˚p.]tX-",,y馸iD}˛"RΉ0@]q`}4sr=~ca.u:>5kk9|;>C}+p8'p 5\iVC H9=i)T=c\@rv1_І+u{v5,o-LfCJH A*X%rjvu^CĀGׁmDaoW4%i(b~Y*>:fŋkŐ4KXZ}NxKgw~㮧IboBF\ڤrӐ"VZv ִW?1C!~j{i AM}B[r//WWM+S;Tj)FE۷$tei҇tlr2>P_q֜$Rw>~8=°WRƨ.ԺcsPco.#$Q@b̲T 6tվX3Z{p"k3{E$RJƪx)Kq(W.?#{sc@bnG͓.$+BP5<B"ȏW +J‘8۠NJ(f$,$H! "}VWM5~`%X`"cP FGDھ֚\Q"ȁMkAP鯍i"z{K!yV6ޢh+~o$ƻ>DqiMškzPxPLlءYvldeUkDE'3,qEJkH[B [d.]];IEc[i ux2;HJxPC۳!]q] {,X [ECI'aY6CNļC[cHa|eFB (DpII5# )+AQ[uz㶩W zr((O܍j (P|J7ԝ[1y|qkR<Ǧ;VyF 4 րx"J1ԃRrܞ_ՙqBgs KyaT;A3F¤4r7 "}b1ٕƧH-u]_aiH2i-Nhrg|-ͪ1Yx" y@ ;-|K|/#^b7+'Qkah96qW>f?  cgA6j_K0szIs2V'SIY9R]?oCЉ3'x܎z;~ɵ>YiM?(]&xTUW mCMt7b`<,y-xF]4V{ܼrR}F,] N(Jҽ&H$r5 gsjKjDUe"YBWDЍ.~CR֦{c3$@F2+J(Tj :mlG۷fXiɉfx 2&,E MXArP,WsY DαxpZ,υ{xh"f@P8HVMzy gD Wi3ExyJ(?1wmیJֽBA9 K__Ǖ.CS Zlz~N/#xrRz/MHH9xEE{49%kx$'@qq){vPnj SXO`E͵עF[U3,b63_FK+i~ 7JڳVyX@9-(*co,aĆ/i۶,'+g5)c7ptfIl$cV,ѶBX8{?qu/aq}wuo1BX[RTE6& a(Hz uaZM$ ֤'Fހ_:<v2qIi(6=.}aGFn_l\MN^GVH$F6t" j{,/.c-jxI[|'j_Iod_k.zQ _Xc.5I A_ǜ~2 c@.?Jiu`(@9X !noS濘#wvZ-1ldb;qֽ /9nx h{`g/L!gh@Sp W[z/)t~ yIEzX 1y?_g_c1m|t_v[&oBsݽigI"BGuE>r|}I,A0qϟ}}̓&nr폸"R%_Y/{3>G}׀.;QySϏ }=ddx$^{7}y7IXӐg@h bC õ{Lw>㳳^s`67[`"߀W]Qjk՛,}XzxFdr/@E&=8{Ga빲Q [eFBbu{⯕nXۥ2-.j)I,DzqQS" .?^XYK_l>qP{iSڶPC= 8*UנÃy`w1 ^^3͏mb/2EY {Eﳎ[?kZ[4ro1k}7%R[m2`,t^j0>WqJy[?6'tvۋpƝp1soN->[+wU+,VczAQ1Uq'{GHxtྯٓ 쿚(~Ӳn)#{!mq &clbOۀ$('\.rGQܾU~}>.Gy8jIPխw=:Cb] @jvo=4^PK)L]Ix#;Q2\T4?OڸLFA] )mGsYQ b}>ׯ dat6@Vt-jŊՏT}(<MUfֶr&8LjfH]K!$VbHKQĚJ0I$ZtTЊ ڇB'M$<կR+w H n:ɯ!Ij6cP1XsTQZ?Jmu@D77R딀==kߦxjE>< ?+ •5]87LU<ڴ|@ C}6.P7$Sp8#mCkdzCZ Ƅݨt OA.O4ƤHkiAN:TS:)5š|հ~e DjIHL W֟JҢ%`;5I!@Ƣ rD]|VB_ZV R( M-[T/*;ֽ ;SqunB~IHhƔ5>mOQzxB3w 0FkL?p,?ߚIڢ5 H<@B䳗^.+8Z,Vr߼i X!Q/΄6,!K9{/20x/.[m?d/1Q[6.KA9W ".I4i բ">5QqQ҇Qn` ARM+u^ 5LQĝ N$í@`< >nB(]ڴ}E6EH|wґnډ%qI Rwm5Zk )SbT%=EH;]d1ܫƵz<֔cۜT/*M?Rjw,~ݙ ْb06_he$( VUg`\ +R+F[~(e^3}ݛXFy.>NYb--D5s^8`vɇ4w&X|>W-).0=L]52EӔ-Z&1@gB:KZ$x7yPdddz,8 KREpMMiHuoBGE(*Ǧ*H؍Ƅ%ڍSOAۥ%q4 >+M!S=6OkFR]SCBtsGQيo)1 C>ja$ۋT.tHoocnj#vPC?󧈠iMPO1M3l#0E0侢wPE (ɣ'WX#$D^!T RlARYF Tܱ{["^bNь*[Rľ8q՜UQ1 F(0'֤"fOؤE~&v#5hcd򐅠awnɐIbŸ{:^zwD% (e{14Rq*Ƴ 2ľ/ګX1|d;RkZBd oޅce b^NWcɜ`Bיi]2ak&EF@v5N eUBÞ8#pX0–c2,̩(!+r,(|XTӱ2Lh-EZYn&;$y2$,<@@ v,1$bt*vZJS]Hůoj_} T͹D3`O5pg2sYr2NYd(6龮9gq z. 2Tkt-lJ[,xuc$2G5"zIОL3RWUz.ik`9G*65,q-V܀3% "S 80侜oE.}DznA yPx[.>s T˥nK\[|/=kؕ9L\kN<]Db^š1'uwWMmxg'@Zp1k!˽l[wpoYu[r1k3({{m0In8K=!c#B|o^xzqXr Jǚ3?A2MGS3?xo.^1~wr# Mýg_றw-Md?9? giXDLHׁo[?s,;=1)Kj J3 ɛ%~{?u׸k/ύ#s廃~X>[ ax^lY8im{gtWc/߃ ф Ƅ91,>I]ftz>(SK6'en { yn;؝7`vid086nbI08ՙ>`X:rfIYqxV;[$6oX IbGDnIH=|1j;yqc1[2{~,qf' 6o=CkdR7ֆ9Fx劅zz~25,Xj*[xr}P\CF[fhmtblFsFiri=|V^Yq@ ?o?kL[<fk{24v}3e(ø%;}?GJO"/Q:r?p#ak_oiylwp۵yŖ Žf3s[sPa>=A*&(]7d^Tۏ2}uNމWzrz4?]mއ >sT ¾ lHq'Bt=" Q?_j )Rz@b׊6^* uR=4Amt`ڡ QPCO&骈H Gµj>P"7}TC"#75$t:ꙁT#zR60eh+QO/40X] W6TaJ ۥi_㶁b5M)րP-I4س蟥Bd ~pvٕd xЀ`6F2w@#ԚZ;Ձ~4'iYA҄E?E75DZ/qBC@zPI57zQp Mۺ2&b=Uw"$̩NSК ^-1`WO q,oQ#ߺҿPY'/>w!> lek"Ks0&xpTv=pPwv6[Z[m++xkVW$SpI,(*h+u'LR“O;x^z5@D8VƦWMA?ID_.;VVzwJߪϞr5ԍT@<鹩ЉHDZ~GqZ4;U($(x(܂Ue-{w7> "@;M$z P2"]ЖQIP (v4gjl<|:P5QݶZ҈gV .wܥJrkyt***:!'MR uE?[M[t#qvDfQ Xtb| E*Mh6:D )HJTtܑh~$k Q-Mh:nI*؍6-Pk錕O\0|kM|#c)m=le"Wsh!BCAǍJ &Qc)WPӃY`#-,E%DK==y'/# <(*@،cb$"GOW? u7qSf2pR!i':/Qq.`-ƪm?cAwUbKnB{;1\$a>Nƴ;of[o1q~+S<%9n+Ry)}JdÓ:4OPPIFI57kcwϳnJ-i]iZ=wzZ];;@4`U`iE`")JH_=7 M gC:^ q_+c` TEQvF5U,#<%Gc@8 0D#ȴRsR FxTX$؍fg8Gᦊrt*F_ Af49PyȮPASR:,1V,Ld4;?^R&$( 0@Hb gһ\rujdu GP*ԊZ>ZڌVU׏#XƯs R1h,h)ˍG5ۊE×UٕFY=ju sw@18n/n䉣*8ܢy(S"}|RxAjwr`0p +p5!8yjF}jvHL\ Ruw <rݎGqmApEhէ 5uюb1>{c97/K7sA# PU_f/.@,KP=_Nn,gZH NOϽFsK d2*xixJGCU[DpuHgn21< "lt1QT=(By,PҺ|݋ jƝ{^ /SF2P۽˝m%ؒxm-H} #{ : yA)X t%sQ͒8OS"Qh Ȑ\4 yq줳\ z%NIS&OC5؏_-ž=`˟h\R(ygv"{pO Ǿ2q~q}\.%(8tx ,_,.=g ~kYOE)@ǓL_5oTX 7mK1DY_5iLy10 \^Â2uyFјH M"@qkR3/Ǚ{^ύ-Ow{'Cuڽyޛyh'Cm~C2K&* *1c[E?L>oxo{H1;#'SHNLI1;I8|YkhS16Xӵvn+n$_'ܘx-hef9o8@q&zj&pQ;;ɭC롩6{Kݹd-o-h b: !!Լdzв:F \{kyhSc7:rjY_?ȝф~޾\We.#inHyHl/IFYAq}hMMI׾ዩզ0@MT Uuer2{37úW ͎#N2ڑ]^ͥ@?hw{Qu8-u4Skդr!Xax FM>˒1s Llt֤noxV/<Nv*;qj 42#3Zzoj2v??]$I΁ۻZtܑjr.ʣ4TQEQ]M{0v:o%Ш;3S=Dɕ-JԓQҽz3D<M$_Stp 4A(0(M']|*5KJ/tC@j zVM?V}t\6W6֢{CtkZqZCXЌd , = 5Ym^'hw&X?ۄH$S zSODNFuBU J?NɃ:ǑВ)@:*j*$ugM CQNUE S Km,Z)SPTen|SQ)<>PՒWbiM_rQ$[᷵^R;B%@$RFP*hYN"k$87Ogx؉hefUDhޥ ͨ p V>d%,/qtE{KlʠMo 2BQBaM.J\V=CntJ\I#j<5CSvHŃE:v&-S];nO@6ʉaނ@I;׈tMr )ҵj׭zu$%8jU@Zu]~ F@hyqwztМK) CrCPzAzH5n ҃^D ĀGﶄTޕr${"wttMaSVh=h$wYA-8Nx7ZڍMz ͂bTw=^ڒPO./ [THJD4MIڀmQZLd]EtusJ+OJ{}jNܚbF5)ȌzmT )HMmb+CZWl~\;jR<(H<5f;Ck:u5lv'Y\wz%*zBH,*]mK;#{C¿:}zxHI㸦{=G]4)q \Y)"V[uT#q])!IG6:zO !")GO6޴JRUJ! >5רxSUB'wVWoM%5Q4 _?ºHEE*)[J.c!pR^"x:f|Pu;R>5M$֦_%5xt-@ЅPVZSM A|@4_S$Єqm|%q}6|-0BsZR+Ƽ+l|@BAZSnzH}OO Qg£^Rנ4SJU MWzx5+JWBTVWzt 4,phiQA^Ҍ+!SMڤ"%};  i@Mv+]rIUj >@ot(L +P6ڧk1GYw2zsm!]F3.tKWw䟺`6V{ D ycHY%  X܏oY{ԅb'm _suGIQ\fþWpr6bCfhnnYdopFʦHQu;1Gf! Ilkj3 {r93OƵ=I͞6#`>X)@43Bd*DTYCyRHswg47 7Glv Vʔ =2F3"4j2^E}В;&`EI׋6Y Ď}4ӏ"ΰ⅄  sCRz'PV|Z=.u.2X\+\"]+A&rۡw"Å|]VY%%j-(ʶe~qFUdyw U;{PVZ'QUT HLTFWH4-]64#$9j~Z{NQNrYZH] b9, z2KӴYF1cr<^__\Z@jJE*ӒMЗ!"_gdJeFE1ZfXYZzYbKE4#iE1)l (`9ZrGd@< N @# 50f?1zfUHb1$T@]V)DvaTcfW؃9 `+'+1&0F܅%Rx˂+0˱WiOzfhFʩ$wR<'9' }ݭ vଗࣙ0dEJ Y^5V(čƸtJr&m5yy_<{i^j/>$Cm'uLѳ8NiM E7֨<&1LAե݆c&%f*1wjEJqe*b9{D^hl@jp>K<&wOcu[̍0eiդeDSOr74!$rcTWFNґ5F}a"e $8RV(vw>>i`'obqY]M)d"PLxLIpO=G5 ٍm"#x f+P^robS*ɻ!!=G #7LCP#%._opD_hAYh|v,  Sh[oY+657uoJNG)( ²%kz|nha@M\JF~lo/{b,l`,q7Ow5 )",Oqnd$Cﻧ%q-X%Ӊnb<rc&^5:}8dcg'-qn__7yqc/"U-r=|7vڃ/,-w}eW/S+=ŷ։溕$Ėy7!0 aL_ׇ?{e}3ch: .ug ;RkUfsdD6Yץw:ΛZ\/{UMpROtr]҅eh@;sJ֊ֿPq4Y=FNfڑZaNk&ge{4yd[[Q D[ܫĨڻkŷ{^ۥ2IRzX-|Ïɥ[yr峈ɍQx1'&W>% KWV^pծO i+5ЬfKkR=lb*#^TJiaieudI+#Wf74BᪧDPq'^ G)3Ztv#A- iNsO]~0Rىk]SP^(@ @зФ w$ TV%E'  m@v#aQ}+ @d-mZw FN h@5_II&GRU*+SOG$d]BBRiP)JlkhۿrJvڻ~{j*&*z^"uEUTaR<(jޣBI­OӦ45&jx"=>biD"ʦ"@yx U(fWy;lwV%V /*j+wj阋F;Zl*NۃtSwJ5oi 4MRC4ܑ)*s(v;i'Iާ}<(4UC;P;6SF*q6=+O蚠QP:鱮" OSxxuR^>[uʾ#T"M5v$޵ #{,^oORUAb|oU*᷉*+ԡǯөHЄUju֤WhI(n+ƕ$+[x$$ҠTӭ?+ +cy\8II|N=Kmkk !nK)cR5Nܲk^"oГBQMmB] u"m@xMƢꗸOҾ+]7& 5U޽WnTڂ u11bIw GJP`)5~!-gXxfFgEY\_x[)e E &H4ȵi# d1C뜄G|UǮÆyR菸^̢(d7sKHB\I($HU]W]uy$H9Os5Lku8.1-1@5 eq3o%zfu_p b$RQQ_A lr1ΜqXs=GR*)3A$q9iA7EhIHbLbN:>_HJ`N>U EB;o١hybE w*Z)"eVWP;lu~;h-e'cSrm]y({~HF=o 5sԱ_r\,Z)Yc SӣUxgE^XƖ<[ v^vuwU$ i2)Lev [!NUo%є/SVi$jc2z@ 76b|:F2,)O qO<ɼ\B17\5[A54/` d&Q= qz|;6OS.}a+Pf~J9O MPNZ>pC:*;xЫ]#$q0pU3C!$ SHއa#.B# [nu6 R=¬Xঘ$BaDPP;1r4<2A@l{^X7nL2W$QE!VZ#[xq/)n;%64ԫW ޕG$_ ij=k(!JY&G/ssARA^_ߖe7Z0ᮉ7Rn 0Hma]U=G#Acn_궁(b7ljaU3.NZE껀U(k ;BXAr\Q=9[$XJxBG*xP: u>1:Zy[v;PkےdlC+L{8!p,)ӻ}nz.{kg wkÞsX-G\։ha{[xctdÆbScxk|[nzOTj#F+%+^,Jhk/>'kq#O{[ߵcF1N}ǝ'^38{&ScuB\,(.$E!x"*$4 Mr>f%b84'h{,,g CW38|QN%7(hPGrcV;pBbHڝwk$EtM$QZR?6*Y4`zj}SKjU+MԯR41{*rʧU?NڽO4!4Tޚ2X&s*`;Wc} oaZoj!]c3-_Xl))&}̄(Rj4Vj9 yVioVvA RP"p*ԭB(qF$"\~ߺU$qJ נvW)55NZRM;5F AedS} )_鸑C\P'Pf Aw;ԡ /ރ¢җҔXԒu ҈#iRkt/BzT) ]$3Miqms-́u A45 +&is{x-7BfM8; 9Nۮ>'} YlXS,V$ICͦ 7>IjF1d fcUj-~J1ً;7!kۯsi+Emk6F#mĊ@r<.ذ& d'Ho ު\LFGrp}p]% n!UI5R}roػ>M1:sj\`Dݼˍ|f"5 1.|"1ߋ6X ٴ, - 'QTȊ+^u4nuVM@0:q xNJne]Z0uYtdeOE6sdxE,`_jy^y}H>ZŤYc6֗_l퍜5}=2s!ӹ # e(_V8f{%&bΤ7):]>8Lg/ hCYcP䊝T+15Z~Ak;n #:b~ںx-nSbImpҕ:3U=EyaE$vPN QL&m"~#Dѩwۀ9kC_<|3d# ?\?CQ~_nbBlq573j2J20:Pvvm, Xj8K,' ˀg7UIe;kSo텉K*,.*ĔQA qnvm"(۩c=ȣn%Nziወf#Rԣv;S&!sPAG~OqYY=kyoyg8di~VwfNKce %n`i *4n{_/OF]u>}VI9]k|6g74ZmZ`/>ȭ/A  lg/-۳EYju@JYvܸodHyHn;o/ ש/EMZ7b1QF8ӷn)覸\)O$Iww+\]M+JR hcomm."!;\eܐ%BM *ʀie,Rulܒ7%EZnKoAe :ۛp~G}E@}jPlz}4 UR ﰧ:#u}-tBou Пٛ$xZcnM%cLrxbnqp8O9'BjRZ Qt!!Hvܒ)NyB ]2»u;%j |T)^_OGynZHgI.b{[cWkns`ߏ"hK!E>0`"% #[LQVX.D̑^*I'qujj S7B4D7DPtcɏq  HoQe91G&Q%\W%K+V =ANyfu_ᐌB 5 ƎkҌ0^8pq F'V-"FA2HrVcf$y(>Z۲2 >kc[i^"sskڪUkݸIO :mЉKC4py.ϏLrUF4<ޣs˘q}@4%?cj]{YEm-իrxּ%JҼGߡK!ǁWee$$~B!oq=C;ec-B kKxc 'm){u_nHcI)aR73#)}QWېƿU9|T Luj V("N}%FrZM܃R @̚07}>odKEjkgM5 xv8̃fRiZZQʕnݸ;dц2})AM,#P9UncP6;Ha"6o$bjkufó/6Aefd !UPHfZQSS]-6YeW,xЈUg%T, @aÅwg4ߎ߶b0IBQosMH P1r)]NK(v1X+aH,УLxH} TYC k q?rБӗZp[JrߎD*7X7ڳ@Ѻ/CG&v20*GH Ezk!$8,G< '˷}ճ3-kǎɜwWdE tac Kqk~O&LPVOai=XYeV_gWYZ꼘v/{Kic5Ku~ubcӽǙ`t;q} 7/ ,Km5g{j &k)F[[oy+c5 =MBu,y34-ůK1]oJd$5E (Kf%CIY2xS r1T`:X 5fsjqdre$Fj8b@gmalm]h-Z#[v5ײ2 (968"[џ0-@5|p̆#Ң#%YM=tV<;l6 ܟÒe$s5j8W0G#NJnLMo)Uq$r-Ṕrϫ" hG*xI@nvǏs^56f{iw(YVve _iFkwIݝNQ# J7T1.M@ss{+Kw4Ֆ45Xi擊lķMiRrh`i pa#vmC? nHmŗ.\%PAkln Gs[CbBX嵣Wp|xge 5ZY[A,K7Z[88 4mx&0ҢoU|L׹#GqA@kn\nV nC4rXחS^K$W iҤ> Wt9`16ۼ 7K. qNl)^!./9H%{iqm7po$RUɆEpK5G }>3KŹ/x$$q :kq_erL^壉"K{_zi!yVWe0!fgop5(};-#yH֎[n|fweH8/~h)YuvQlN3;9gn"&IzCShS5]nژ|u],9swwɋ+c4oKwr(ASK frĹzaoPGU "5R ږ~~n5=tr9{e[:,Qe{R kkU,O/^)?tl31:q7jGE^"&̐ƸP{j@%tl`MUKnM+S M@5Y>ApiZ(æt;z5e٪< |(ihBlFƛZo^M0<+Q龂 JfjKy: zIE߸ A%y- 09˛}>0b{K+]"zG2%25YGŭȗ)Ҭ& u+FPF$zA-IWr*%Q`~ZICsNCxCQR9Uv=+SM܂$U;ڄЁ 7(ezP*iU!b$q&mO:ԑQ*Ū.,HY#K BG-h m ःy(o)'pae8'ÃF!Iqdb‰'ԂmԣqJ͋_478,dy,mK753T$i6d >l2[s jo#HИ-CM ( ܚnNU+F܂5o ,ZE4+%P;Ytx2ATP xkJrhAƽ]@4tƄvāBiSPxbiht!TDn65j)(JAMO̝qCD"{bBA:*BL҈"WY$Xbb"D K4vUU,@B5_3/1OFJnG$a<-$Ò]B=[lvFݻ-{w2,$̩OlLv[k dKne{Xm^ +m\)RhUG%-u&ŸHHaA@z忆׸O]!(ө@7]O=PX#vӯQOwCBrҧ4HuowiKTշ^iq>n +)zta]S}GE&nH @=Ekdbd%XB) :y^϶bxg' ݹ習!ZoSLnk$Υf?!z:_g Y4D;_[pF!{9&gvR|ٙ%m( * Qr#Uc24/LMD6 rnԧu-b!2qX7If-rv9pkwh"D*D\U^ӎksN""P fg96>zmP\^p .XϿrRH1 Y 楪Sn1rOx'(q& }_3nv~&?zkt哜ĭZAџx֖H 1'M^j],\̑",I'왑E}l8P Sx+4Z@2{~ ?y1n k !#d*\OZi| euF! ":o5Xc'd{Ϻqx|FY~Aow`0CpZS6\GM1qGsB>+:>'S`bii3+g}k|x>>#a'_]Z+A"x)avvgby!073o5 ea"җ`،6VeXH\qg-&ണ3)Zq$dIlXFea}( "b&\m>M/[ݒ{ rmZر.M>5_=?|C ͅWv8ȗ9 %C~QݞXZu}.`5]% q/wk+Xj@ӌ7[ەwK08WyX-GjI״'Z^/(m  qhw87M+YR b <9V!J(.[1eHAuo6ƌ?~ .3ֲwR'67q hmE~ %YOU0[I&N]zvXqa&1.jwgή|[qv#ni<( |EQm0V򹺐pUfhfq2'Mrk\<0tMQ]}?j|5-vɐ[T(c{D^Օ跷@HFoez}s/: [AJOARHm+_ᭌ@i۷4WR QSA-id!0WƄv]"@k]OHQRí~'M4piVwoOƺTVRT@4#}Y2hMdƀR?7R<4*Ѕj{h^b"YaFnRF,m[m l1kpkwusLg[ pH#0 b#e'! ˍ/V s,ػc}w9ojSIP(btS撘;/ciyki HlⴰH-b_uq\QO9ꚿAյHNG?O6QBkmB)M6"*hTc J P lkC@ )馄޼T7a܁R7cRN=MI<Z2C lͱ"SCn?Cdw;Jjb.J$()E#sQ@܊jLhx$ ~zT~Wqֱ^ Kx h lkյ[ di$P);)%ED:KaK5EU ͜B26n A0*lQJ_X(Y+.No&@@Jʁ-rXAwMiGeH.MuO9Nf0QE41{ty ք<&X_N︭@I)$#ۡ̚:PT ^;y?@֨+Bխ+nj(4D]ZYz| |Ɠ1$pڪTt=EtJPAJ'WAoE7#`O]:Y[nl}(v{Ң{3HG5#T ]clr'KT%. el24~lJr:$$*f%,R i`vEIa%KlnY`E>-3(=#v6MQjInu+ir4X`Gk Xm6T"EH! qEDN*zᬟHi$(I>Q1HABToOTyU+g5yz&s#/T[:7U*T_-wX;̗,G$0Dic(-$ʁ+NK.95*/s6D7{u5d ?b07IΥ+ 6nP %ys7xwrtxleŮ1I㇊+)5^תB)08KkhF`X,cLz-'&4#ES^#YU666kco\Pĩ2I$@ZPt)Iك:SX'-I6@NԡhWCd@6^;M7}:n]ިEE;iP@ԵЄ`>uzv jBv SRuRΛl+98eleiKY[xUH,+,I.5LvB|nEf>Gtؕ8x? PZLdFwKs2YU˥(85A΅;vݦ&;n#|׺[L.j" Ol( x%ҞPo%P 6"7*4!z~?Ÿ}!Rmv+ %Ekx Ѕ^+֢uGm 1 Tnw#cJMkJTq7;VuBj*eYYc&ʪ*NBN8Gqc#af/ V܅PI.>Tb$,|T=7:%Lw`e7)1SE&+mRVK^6OA=L; =OS+23bZ7v]P’8YjB.V7p)-2H9>4Ѝ4T)6xRu'rKdpHJޢ5oT.F”~ )E԰ t&AAWRHw. R|.>i啒 +KbȴknīhIJf}*54?@cF^-:]-c7'&pD$'`2ɸQ`!ڬH<|&MUW%JX*X,C1*Fq*ypb*ÅYhV_rNx(Ral{(R%z{nTr}c~ @pCUO*,;Q[P$be$#tN37cXYURP~VنY˂hU$Qà ^So<ٓ rL6T"V5rxے"[zojC0.r$j;{ᄎ}5T1"'P 3Ա:<\Uc0Chܘ3wkyoc52BC/86 9 >ic%\2!deAԡG#^nDPF*|H\K mv8՟2#팭-bv,ˆ49nRj6Fr . Vp/Lqܜr֮ Z_ t~Q5dZ{Q/"82xT_ٽe#aP8@>މe> ou6#aʭ罻iolawk%Kki3][Xd14񲐄Ιa 3xWoc6KEǎ ,.jlOpa9aGIVOzD9%^,G3B(5;#9J3yBAzfnB{l +V WSEV'(qlVU&dyduX!xH,ܶŲck-eIGg|{D7n.`ݵe;L77x{_"yY׭녓DN]C3 {8qZ#|3ww q-5ţlf+mnGee nf`)Sz\FY!g;yjHKg=[q翲8lLa[]$#/zPJƦ6U+hK c@j\hQڭ#>309.X󸻋-{xٲGH֗NIHwH`rj*5cY>6֕ZgtGܓ5+ͬܘ,'z+! 4Ҳ{rܸYjW L!SN٪Ѧn6 1}R&$~+bnBhckdK,mP?#eU`H2" ^ rnjsM(h?_ܮ-& 㶰}fH%d)d ֪Zɓq~z3j-%31rѯe.Ye!jb;sapk׊(>08w`ں X:\r1\kixu#)">&jq4= Qe YRW&Z: ]8Ĉ x@5}9h)GBO$(VR8#PJ,Gpw]VwdmGU5_i% fEuECTM O#-[,23U] umrC%e#P&P$EX:X"E hE("DTTJS"M;ܦ-()Ph 4 { xWXSj$һ ֔Aא騉2Cl<c n|R4=DgkJtҔۯJo5'!ZRi%K# 䌉\H@Tm| x!B`bϭbK8ƽZLr6.Oh7ԆPh XpKHW Fc9i&{~.B{ap/LK3 (C~dlA,Bq*\ERnoR#t۠I$bi""6UUTP LCȷԛ}-Z;}|a:T۠FMt< >gmDn]7 FOMWT`6HԯE $eNN44P(:ש=%#o-Q -G@OFBK%akv 0RHU䑂A$zd]E;1[[ioa_ʷ9/bF-dֶ'cH;f尹2\|i$yr1+l􊥒Jtb퀵#D)/n"At^^O-Vh'ym#ȴ2/d9%`&B-X܉jtݍOM 7;V)^c47А x-w]<* ЅR@@+yHR n:WBiҿ vXQu휗ӆ\S\[^~1[w2E l}g=1.5UIKO5b㟸wp/p3c.-1Ks,yM\ݖx)P<-!,gQIaǥܑB.MlƊ쁊W-Q?S?m>Wzꞏ V_ZR}^h)֟O5QCZSO=7t!{GMM OM+Q\zBpUr `bm۟Vӧ^6A7E M<6X rVX>uȐP,S+sq/4VvA rq+VR566 %76Ԍ\d%yHT:lNj`wp=+ XrZQ8n[l{L=NK~4yqoiQN_UxF t?1k"̂FP0XZ142R!gR[ViB^ŧh{j-L6%\B2U=$(XݔOXg#o%P~l;5xNwG IUU!J do.|iDžj'n##Kү:pNa<#&F_x,B U<Г@_Ϳ%)a)m&5oT)md&B%) snҹ hxKXvHŋmKpj+DO q.uVk~&)kpI#sV QuJdwm-sWRD\Abrk&f5Y+ۻH QK2Z5p&DzC=6u7id; 0r| :UnVFdtX)ac1gx2Mv*%$ >ecZ W36G/goy^1qj{X጑ʁ k#7ߙn\-b@ ;. R.#,dLA<6֦U/ {¸L@5Me x_/EOmeovrYn21lxxxv"v(ApBq@' 䮾\1$Rb(t?.<Mc(`@{7~lmaڵ!+qމґJf A5%!AcL2d' ә]p!UI!~bK23œ};Ɓ@=po7 ^˳2S)z\k~Rd!AWޔ4:uSe)H}}-P5=yN3_U,5ed ) fVY PN(.xS.=ɇsx5CU}ܷ 9~,rט1 y뷇Ŏ"S۹ljZ뽓4NH>VIg9;!bxQ$ Ft0ؚotfjw\A~Ac&Ccc;h45bf,zld^E<cS z'Ԡ _o$ ߗ0?mMW4Z[A,KUߝC/pGi$[KĖ^w@ƀ$ fYFG`֔.ƿooG.G0qez 7 ̫,"R1Ž>Iڄ!1z;y+/DG7e+epWZiIfcT*HqH˾:SUscg '7g0pc9Wm22'si%Z`,&XjBr:puƒf-R^ߐrdLq';_:~?m-|}LVfph. c|ݳ"V jy=T繁M! AV뿁}Y zyoB:WR]4P74*3]$!׈6wңšS1O#I7(sT+ZW*w7'F]@$PRDuSBw&"6ɣ*mӯ=(}ZhG OOZgQJ_礄`I4C羄(^2XAG]]Z^7XQ.GMmk1ПWPrYWweG+q3xUoa՞jRp)ߝ5tYM 緲xm$_.fhlI%{{8/BH㽁:ڷ;x#(")yUI'9᷁;;TSBBߠ&:Pj:SByP qڞm_Bi*7:BMjPBCۍ C*Mv&?>uhBABkJT@jPN+Nc/k+H`X,bknnR x(#%EX Ԋ0w@;0o>vėSf-Ri[[\_]GemtDZ8άtM2Zw VFVԹ% ٥ņb[M՜e $*5Nݧag{6V{ yMH.GDfRCH¦;Tz[馨7b߈G4ЅRƔjNB]O*w:T* xSQ5Zz0 B6?س?iPZ/q`kAQ_EZWoA`*z PmԡAs" p{ϸIBb] 1>F}Ud(-3lmN#x1dɕCq㡶4(}4TF9&Nێ%O E7rXYa _X)˓{f$E>w<ӂ1NOκ-]9|*9OwiGncck۽F{yQ29<Ǝ>DGg_9Np!SJR!~+oAysUq\|.c#>j췳,,uܙ٭,l-lx1 hgKfId;<mo{_eå,`2\#_@= EK## dycwf8L[_L2f 4_j!=Ƨj|+*:#:7?p2)5$*56Oxwbݵ߃|_U>LK1u r݇sKBa+&f!mb{ar۽]R&YBrQ0q,Hmт fIgeHnqWHK =Yޛ&1 P E :|-12 tzX1,fS5i[![ dJJ:)={qۭVb@q1-z>=GSu\qlUF_ V{Vfv YHIfvbK9$&5[ZOgDliϴ5Pp8 ABv A3HAzҵ4ބAUҀ7J& Sf>t@7^ݓ~k IZПioOWkJTI}Lȭh7ڞuB SEi_;/fb I]>@A7*URO6 a +v"&x bڏH)BM7.3GFhT/Ew65;-e$u_aLQVBFŔא;ֺء %>wqO?/PXsďM5[HZ!H(7T~:ws@< MEIimaMdAЀAڧ:d6*&_քԎhDRI#IԐEB*kJ5$6exaD$RK+VwUPNDoQu2į%ܛ\e.1YhyeNKy&͝{{k٦#]d!]Uu~n} ;.8,/m%{Ŵ.gQhTbVX,l- ",e'S@\L<57wfc竌 %p֕_Uj&?%xO=$ʊ=+C6$ $}~ƛb6j55B+u@hC!nOJҟ]41g ʴV`  @kƟ] (C(=U;Г^Uz'ڤT]J kԀ6I G9#YPr*&CU#Ȋ !DHӮ I5Sj}؟Vtޢ|ZPyM A5 *t%RHS>>$?B kMHI|P_#oWAJW]g bJhr?`I 4;?Hek+cqKx'3D,aٿRfd Vi$腌7r$eqG/.(Tkt`(Rcm<,x1TUdK!v!+/298 Ґ.{|Y{~=b=rO\Mq:9'ӯ9ur`w?[tM~Qa;klDok2d -,\f}z R0nlS` >Qc\5f)9I;7vKqZvi5vl}l[\Or~Kt].&y/Tԩ~n@^|'oO>~JO.K#uZyvXHF$PjP~44+=|`9nvc{; ;۶]\OK#*AVc5,J")б#^ /U7M@l.o} ~ŭ~=3ʼn=o'N Bp%^$>:ߚ)N̮Aɀq:FL!#:xrs vc՚Ƈ_hi~pc۷n܍AT#6v2mӨ؃zX̖{ 7tGo 1vM$A PViKt$cS c=; .WI۵ЂTҢEJJ$;1cX[J X7|5&,onnnW1۫&CoyiT&,]H3,Hې)8%$'K"yknef{a)fas@*Ƨ=w7 D\=;xW}5OPjIv֣򧞬lWhIV !@"PhCA+ffl*hpvHo]sLtk$MiJרu'6)I uQ.PƉ&<=b& J'BP$VtZ~;!$ҜhMz o{ M<6𮨳$>=wj#Beb$R<Vi5xFv&'CZCք$9k%Ry:i/]om妡G ~^5G>ש$C!M RvKY%R5waӠSD'F4+FӅB@QҤe&$rFC?O"b63g8Q@7pN؊1PWmkRPoNM4u ψ;Wb6WBTFZBCc57wQ-Nc}j^&TB);q}<'ez$]$*( 9{ 9ױ&0ܛ=a v!ry%BCY71= W eP|h&JOH4Aޣv!@]5 ldZփ́x'AUϏЄoOB *6oR:hB@o*t! ڴ?Ws }DhOPhBd18nnq-y"Cm6f"ZTD]@ kddf~<;h.3ög4r$AstUP;-ǵ$u[fר#J˘8VB"G$iQL`r>[xE7L.Akrmƺv榶Ec ʯ_)R+(L#H=DtZsNj_F \RJL%YDvԆRy k]4t@Xq9sDLbFMۋvԽRRejL]DOHBI@GJ!&V?*`Hy6X*'jZcAX渪(#r?dI+B[BuFM"hy6bwZ"%)=O͙4fp Xomi~m5+ -/bh[i Uj(:1cR /Oo511>1$ڣ{'5ve9&; &{OKIT*1O ({ +uX)ed~'d=m!H̲Qbyv1;4}5@s,!n3]j Eb[%ng(dYMY4J{t~X3[~\!%fPQBè|pn?SBTvE6d &4n*b&`qn?pR:xRmi}{ .<2FXzw*|13,V?lTW =kZRLJ9ozr!q$7drn5+ӮTn_[ӖL,l9w8`FRGyM:VTt8m|%H(ß#Jf}LIxUn[g 鯔eI@y,Bd12m*x-l~{k,&X#Q=bB*GL$e֬B:h`Db5oqYpw [J_LB#MPOH;:Шztס,7cV݃浰Jx8h*C$}֢%Wy7?b^ f9vpƓI쪙'( #m54-ziq.(ōY?k[;xD1.`''u[hio ]h4ZNs)DDv"i;lֻo qINKPJ֜gW{Op.C!Hc$PscF6nb%29.DCrS\,y)̱ nf Z! d 45 Yae勈ͣI'wGe"\hf;wbHJFj#hXUF1cd_1=Ćʦ4`k/w5fp:}ϳH乂ۖAۇO6s 9v̊-#Hz.I[:MUZ*ФGԛ8mB?Sv85s&_TYeH OZZB_曟 hB>;~F 2b5Td˹ z}H5<ZɦjIߍ7֕S}d;cediGZ3zɩȊoһmu4gBOқ tЩAoґ`HBlߩ@PQRڑt!XқTWhƛP8נ#nAѸGD!ة֠ Qj/PG#FEj|ty=AmSB$jv"zW(zР6I#G@hmi~Hd Bw4 @7Ed "kJPL% cr oը-9 ; $GSJn>k'$ P*”q֛y*T ƖB}4oJRE ]@$}.?$RBH5 uy'HZH# liG܂:$LGI(%Aޠ;|?@vHC$u lƆl64oXK=,@ZNh,d$6$xT$ <(GU(Q$n H>^Є+R y FX~55NP*m4dL]IoMOQP*76ZN>IkBG_?BPMA Zl}4 ҵ޴, R7`hOAȀk_ǦԆv<ѤɶJOBmL K]"Q~WUt˹Bn ܾ_w y60') pǜ1TN(SYF+0_wXøfFgQ)"QT,e[-dR#p[ >)E+zcѰr E,jkjFUV*MM75hzZЄUCPiZVw"=x!B?m^:ֽAZMEt!-u$PxhB+ԡOk_ TޠyMЅ;ղ똚͞TcFq-}յi Aj0 $;nܘ\\Xa#-<|KvpmJ3b&;.ZBTI,XS-č48#vaZMX$GnOYh9t'S}it7BE*E|:Bhjkm$/q;QөjЄ7Mz6ZAS#hcIJxҵH;骑 5=)U愎 oPh # JSTcP)硷HIf*9TƵ$S'}Nđ5u%Z k;+|mZn9qy;,@&|[E#ClS! EfeP4TGnnbvaN~)8ۋ댾LK՟re.ݮgke0HXbXƫt\vSi}ݾP;D2N%ͫ!&)?>EGY7K&%ðYL&<;0P{Y؝ɧ9d +1. jl{uN2(d*ݸ*va mFWLUK?XTR?nkVGts p vG.ߒbK(k[5z{?![:tRSbfx@ zvUE._Ӟ]崵怵W˓X$p=tpVU֣Z-(sR(1<+׀'b~cm;Yn; -;aKnfvC\y׿zs}{zYd")#y/^חܳoEM!,XRMCb vvGcvhv-,;sk[K.QH15vy%eP$knsO&nגav}(POlcfn=νoŔ;2Qfs I5qLFMS%^dV`|bS*L:LH> H蠁Mnb~@0)Cx%if@"rD]Fln1;ڜ$ r!֪=dd8)ZHhyF@2wlt c? J1$r掌aGsG0n^BA$|v!ДxTjqo.vX 1oP:Chx8' nr9yvW^qs,9"#1;[gd~܀ǖ!q EU/ JUl\+ʻ|i7"H7jTZ.q)$ݴ^#WAp*=C6sz{fiԍ>PVik'5e*PJ9.K^8@7xg" 9%$hբjTx+̘ցVk[ c0Ӆ~֞I GI,K=xl#<).7+ zw*EMXxã f& n#~`9Y::(]} STh=U:͘1O#ϑ?jw9w4нGEv.NDuHܱ9Q;Jk$eW].]˯0ba-u/;IA::Nx\%Lu*mώEqÎZ cj 1I5HH݈܉ $۶LK[+s>8Qrnjs7߳-}o"EAp2C0c)9pWX7 vLu! ,Xs, ִemZx xw3ďKqh9r^;֦b1hϠ4c[oR8z Ua)\5ͻ[-d򬊾 PQ@|HD㌍H83n,o7Ѹ- Ec$scQe 80bˎs Sn40K9,Oi[:G 亷n ,v1H0$M$S@U0;upCps VW1m&DGkZ,y?orCYe4QAge+aI Q"\ƒO!2un~2Hd p fzɝfoXuswn7j_o+0UiERdX]0F`_Υ.[jDLJWa?/ܧlx+䋮lcG!6_5ٽeo7qw/%RcgHdiLnױ=rbO.x$wCǀr҄TP}$~F;5 B kovä JO 㾉hA.YANriZo#(7=jh7_WVoRBB>~Ц 0:>>ʔЛ}Sg9Tr F=Y6wu߈4ޚH|x4Jd)J$ܝ=bNC }>7#8`tx] "M ~7:B=-u|w )}AwDlNQա w}ֽ6k]^ o*6o+$V!Pߦ#zoVBl#jyE4!W`v5}&>nI*:k(AO-3Wt!PjoE"WG_ T!oM(|>Hɪ8+PjztԠ94c^A"lt UQ]axtkUmZ  AڨZN鸠Nqm XÌAow~ {aDFM!Ê id\%'{xGqykܑƮPrU;&Iȑ⊃ħ@Q +J֦直J $MϏR<*5 L,?Je uڟƃP[&&o]#Qn%RHN} nj+_ʺ`:סoB <7?Й ^^NT⚰mS~:R&WvV̖fW-%riA& EcrnTxoMMFµ$q :jIáZO$:StJu&nc۷_F}^@h} QB_5:q@SA P޽N4 ;∊9Rz Q,xXY\nlnl\fdjE p27F{cKk 60n-8;1n lH \CH opbuX2G #^]DKHDC E(3d);g6hV7Ik.fܺ,3'ad+k$uާǩ::M+$K()moNMBڭ7G]KAAҞ5y|*k pi+`oJ:In Ewۡ~1#&_BE>khEWXÈ.M4.G=7Аvtq<+RZnkJhMU@޽WЅN ҇jӠABGA+Nj=,im>ާR6]@QAB%P jNt"y!x-zTƴ;p )!$ y=u =7 Zz@B$j_.TF?RH SF' n*[[_Zu"G*HGTԺ2a%HɀI`l:G i8$b6YeWXqS.o\4@/ytf"7rɳi,eP>LM5E E֚N+LZq(:/k_-1pH5ROtĿ+jBy!_k0HU> w ;~.?xkqjEy(=˛!3r $zjL}[uy2vLo!ȶ,KrjLQuVe/R1nq*^q(c0i;whr09)2Ɵi^}K/2MքC[oWXFsŏkX_"0%7TN$2҄Ӊ d ySQ^?1/y#-V>LH Hܖ ұxq2"? .Oϑ%D;\9Y@G%S LWF-cF^1qkX_5(4`ϲBeB7dY=vٵ&'c婯赲b$":sq\?{@~?zNlrz@V=!$r1Kc@QV,LG~ tGPf rVy0%>֛zYm A4?V~-^MZUJ.Is5A{<&Hك+st2U֔'GN4W.}nIS2hywcus XڻZZפbv![w75=רܖ8αcBdzQlfEJ>.$$HUbj%~o;wA/;v[|Vח}nۺ{ua Vh1k,DZ{u1l}D!CqTW^3͂b?YU (6'gb5;9&Σ}ߕ:V90KoͭByy aF{X¢cݘ*!$5iIJQmPZAvBI ]BR ;֤hR'pMܐ> S=N;7?Jλg2PTmP|'ի8;xTTn?* 'ɫ+޽zu>u%GiAi~I$WBգoZzւ~_C)_1QZmLP"9yo D~!7T/t]7A ~:yy |\zkz mJ=4!%lcZCe`-|< OB <6>Hoz @8L܄&zCAAǠ<41'i * EA;tƻͬ&T*v6#~ZI 5BH:tUIM%[y# .ZR$bz Ԋ㜁);+仢LݞG y`罛#o#l]\ q7Q4V)܁lt2$歲A0vbibqt7) Y' "ВƌmQbݷ`f[K[7G* aTY_շV!P7L xݢpkM孀P󺡩ܑA]ﰡqQn cAF=6I"\I)hEZt޴Niq$aF$& jiGQ@=GCJ}OZhתx4ߑޣP9(`ͤcQ@ *ԓA2(~oXXs7F,줩$ݕ=VXdBK:qN j!(^i2i-n>.1Ʀi[/&E"QPitwxr!Ag4e}w呋RH@\73 X7P+OAO߭iO@}Y Wpj4& 9~[yH=N8/d(=B ](YORA+E||6$oMW E@6ߡMVN> uc h6mOuoȢzҠhۺPl6)ZcVϺ<ͫ{ˏm\ ϟ4'TK.EK$q⢍]"@ FOzUxmp(9Mu 5#Pqֽ+Z>`DoB*B(zM6qBO<*MSOԡ{TyoϦB"|)MR?<*_.#'ZMj>wIW;m#G=QԝdSBM+NTmBzAM55R7ʕ;_D{xxZu?=JkhbԂ4 KEYsLnָy GS\K)-k,@ɹPfN,hȘҳRYЊ˼ܶi^r$c~÷8#s!4h =\ڡ/gO#Dv*qbxi5> ߐ1 T+qجrNM] HXdhD Y$$.TpcEܞS55*÷ Gꎞ`^B3;M%XSA" A$+Ye{,]9)U`0$8׾o{W=67^M:'gϿrj۰GcG#wTQ[!`Y# H~V0G,$=yqwc{ɹ}?oJ{6Bxql-87PZ|CNɝ'ζ~rY:]4Jh>f[^q[[pֶ"^8W(1>_5HzA;.E!@`p$ (X! f dN Q2/7!. \3K@c<XۑH}AWoH* )rOJxf# 8nnK2Dž#uin -"HoD RVH*J mS,);w:f@"Ÿ7V\oz]B61H"Wd`nvӗStvM_kK*tLrO&^㏏y|m{,n,fyN# ~ZB*k'1ˆPfn=.H}Y8GpA 7ׄH\FLIT_Iq DcuqZ1b|T?Is@9se p#6=K=k]I_?C,,-=}PF/9 @eɶ!̶nm#_o2-jU95)_:]8jܮV^fr~{uǥp[\ r9=bt=GMƼϹ@=6,jW1k$! dԳh3L9 vYYA#swa,n<-*@w4D%HiG9Xދs(K> r!1jzw'F^ [UEEp uzLt^ } ,t:<` z<@Z`.Wҁ_SZO5뽃91ϧۃ[t!YVd<Β@dبP x ֺ\eFھ*MZ7Ju@V=*6+Mڢb pR`8]?U6CjjH* ( :VHuh%@~$ӯmAu@o1jpwie5% ⲼPܰX-g7*( L9@p}wk 6:2YY'\I%39A 12*,$eHUx]ԅYv*j؍eZM PSʾc֛HI=7ڻxoMT$ ERv$}z]4$t" z}PINHAt!$O! @?Q6 i!( +mOj][XA5[[@vUDPץYT@b[EjJms[e#sa f!{v`53xdRµVR hN4]X~9'ɱhdVn&{Eh.Z$/lUibM\v\ KY5ٳx`+]# ב H3ȱpYaH3Pv# ڬzjtVUYx=wmjЍWC A*+]b7ojw#(]$ )o?|<9jod.5$RgN|;pA Y%G<*i]j:VVwO"\B?ZֺHV w[ir-4qNmђY8UJ|P-{?nX^$N\d"YVhf2xb~I2OaVk2ؔ$bs L$4r[KkH 鼄;F#U$K ?bco3d[~2 0'֙OÑ *I:jP^x|K #k,dܩ7؝'o=A *izhQƛOz~Z}^NT~ oMHޠMcB2)Zn;o4$"Pۃ"joBPڀhz-{тti>k_ITJoHFk"IЄpWq] NUI"#qB=JRT?Pxg'9V^i@Z}O3BXRzSzTy DT|iJ箄%txlwo Bx ߯gB(umB']a=MF?uڕMFBwn5O*?"o^y ֢}^)OК;m^`  OVIЅ^ w:[xZ 7- [!QFTڇ뾒sCEu`S`U;ğEdMPT:V$hFJ$QDiXPjIhN:g!AR+>ic[y,0۽/'S]Yv;ݏ 6 5e+RT 1ψpZԅ nu2:= )--mipXӊE *V^ׯQP.] B#XDzGi1ا?W#^zn R* lщD}ZUx[Fhk/g񑼑&#!}iGI^RX1!XE1ȑ#ZUnD.q?hbG,ZRilED⤕hiKykCkF"iςǐJY*Cn2\+2'M+B}v.cUR4BIuNyF~ŢHs irubs\dXl"i=&ye0 dz7O,q 7cY'ln,3M.ZA8k0dzWY^G x3rnj'S;Dݟڎ%LXV$E_^4u."6]q^?j{nUXcd[ݽF+VX)چ1cH`7a)xȂg-%k;m[\KI Q!ۊWIj@iИ&&Hv{+wWΘq7BX>aO1?r+b9Zl2,`4Wp; T2•3$~X/K"uaCG+Čy41WΝ._;<^+,MYO>2BLm%݃PpPV[c4$;-{}Mj{1,%cX͘D5|{2[>4wUK #+:`ONOw39gU^K&x w'>DR\.R(ĐK‚RJuR2 "l#!{ySC%qwq=Y~1{jCkn9 ,d(Tm.C؝iesўfc!#5"n{IKH&k`y C:'!cK2uc(QůkXp<4(DN-y%&JG Bt9mݍM,Ϲq$e38&Zжfp_?~>M_{{a3uon$T `@C.1?2VrQ|ۺiu~^> 4\P*xQ}!K.gn.n-o`XZ{dw˼IbHB] ׉֌:)os!F,ot쑄A ST f[/oj0c.Wة,rx̬Ir e[][ʤT+#7t@pe3XT=CA&ߗN V5XP .{&RK|g|=%F$yFP+DZ*n7rPڋv[[I+=;Evw mܥdXlm%]^H^W@#v;=I&,,;Iz܎H@zȞq;yn&I 6:7"dJ|Wj5pE7&Zw;W~ԒMJ `M:U$G (qko>5 :6#K*ð{H"ʋi_ A**~TML ߠhzk:rd1g 6 EJ^d-m('}.#}@T5cE$kd,[k&[{qhVKk-_B2fvHEs}a.%2i|lx2xxdr+C-L!k" ibs%k1z'XRI`5wuF :ߢNI4eLE$@7P-Rj 'z!I曲+RkFAN꾙w\iMïh=7ڠ$T0j+Zw[DU;@hBp FE5'>]6 ֔`GSZS4ܳh o7ڻi!Rt'B;ܸrbol왌R](1TƲ%A݉3*P+A \DNbHܺG?ҪHUKn@Ȩ/"(޾F"CM_ wxn:SBP5w5jJQJWB6-^D5#cVyl75ЅPoN@uVFݮZ6DTrN$!w$A_ -6I"vʶr$0a ޞD i PYXrfňzMڊ;Wʻ-($mx ܠ1AzRHhsUfdp-ROIZ9&+(){(H$2b,6]oq{w4Xm=u 7 ܆4Z|UGT`DOx_o>Mc1V˄1 Isw1 `=@Z2}R$v=UUC#3,pD(ӂ(jmhDkH S>Uō6I 0 bMR#1\]jMИ/PVww,J$d0ZmF..&Z*QYҮIMe`i_`߷wfZ~]Gr"'/y>״Kpcn=ݢ̮F=R/2P_Wqv=EĜxv;o |Vl~ofymT SI}o-oH!/#ՐZŗ꣨9!JFRXbvgocN]]ImyrYpF[[uIcfb&=ߒq;PO !wm˹fJ8QBlܕbѫAח]N$*Z^RJV G",2hѪݪTu7MҖӇ%KD^`4!JӼtjH?"8 P*7ںyA omj"'hwΊ}l_ۡȆ2x0E0Fb>qt"?j"LgU~ D'vT(UhT҇mmz[x+2&Q;Kkkː$DY$hu$_6,-)dj>ExnXWm5x[3+CAR mK">#REp iΝ Lj\bBAQ=-Iadɏ x|C5췾 #]|A 7YDZd).o4nƁ"( $`K1h:kt@û#nkČb$I_icQɢ܍P7xgoYCI@j]:)Fcv+W>\w[9 Oiawkk=m= Xd%Gm :֔<1[u٨4Pl&HM\^V+L??qceʷl4tO58.* \brOIcU=N9ni&(b2x[$Zx$۪VMHWScRö:b)TU"Lޣw PYvWzfZmWJSdj5fh x+]MjuYe( Ku3M2Fv >|-g gV5) ZGGuHSǙPYz%Sw3}'ծu#_R )~Iq6+eq`K\Q]II" R0pPҤ.x{SGG=ٚ '˷sCsװY'm]޴R>? KC5mzv$R\I'.B9&yγ&N8 ûztԖs_Ic|J`p)OV5#mC_M>A/2v9C&;*K~ ^L <g8gTXKSrKA q5$O t4+ˆ~J8q]u.Sy1 quvX,YVa%"ZTt!7ɷ W? M>prRhnͣ|ua߲,bXn۰f2Ð`JS)s"0 z?fQvq ^mRhOŃ>l12"Z%Ԓh*XU}us1}.>jH3<ٶ+86B[{Q_C̃a3y/eLq2#J~鋇Jޮ2/eq},r6Rduou _< d R).+' C Hz3XvC~C_✥#%:XkxA64w%Ǚߍ!J^5$QNkÝ{p1s[O[)Ǎ,`-7t+l&]^HdlEΪ/sfVJAQߓ.rod uϊSJt޽ Nf5~ BJQzmHl ئv;u'jmTؓ^5;iB(ЁM9GkU%A#oOM(+;xIRM܀kn62"Y n O҆?]  EOQd`ɍ: .o. O"|V&WX$D;͒;(C>$Fy#^,[a9K̭yNp3=ȣ2ټCf1s;WDA7[Z7eY6Vu|j(EfӐ%Y]-9_Q]D)A$zQDWhXsBHmP^ZAt!u= u;miЄA44"zR+$_ =/]z $Њx=U=jk墆T)ҟĐ7}Y$6;^gGfbJbz"C(t,s͜;1se<V?"Y{m6UVpxVlq svg{k G7Wx.,V $U B㰖eB\Lm P\.AOW4ʹ WV$ HO#;h" XPyQm^~zB$A`(aZZuyOJ0Pijwi]R4i |kNҵ ݪHpk PzԍC( h6i^*I.]SMՠšzLn FbZTНPyA?w RPlw s;2Q;.lqV0^_Q!O *JF X=lV}ڱI.^xidc6USUh$DH vb76 D1ƢK^7<`-)Kp!6(W{K[("(HjXUbI=I$Dcz"]ңcSҔ>x?t=EXM$wjI7C[X?IԮ j5 yNoL;6 @"-R+@EuGlvEި%H;~@oJMzjd=}W*G]xvPs_wNԧ<|Ԧ@*75$#bE:W}^$P;RM ~+ Q^փʔ'BH~F綩jDҿiS1g Ȩ0)J †$BKraqG9qJ3xBYN5i"{#i%CiԓIK ۔>$S@$Eq%Eg[s]x,mŎ% a5g xdR ̵Ew$3ܥ1Pl k5c* :E+*vwxhB*Ev>])BA5 !/AMIhBYZ_hH>DWzSm&Y($̕R4^MW;l.^+Ybr)̰2O>r}OZ:Ξޤ&c2f`A֮..OF\zmT $uo[N78|bx۾Sr7Xsef'g:ڕPHk>|1¾@DTyvK5%<ZX-pY[YZoA5ؚ>j;&8s. `Gۂ>ܖ[Rqe}dYG\=<j2TqD;Qmf-դ%VwцyJ5 l& <lU Y j`>ͼ@?jh7jO+٣rƱ榁RV8@J (,${ V(k& @ڌZ<4)3 ^<Vlܨt]_mWS1nm~9{']yWsal_s.OLy(2~ roN{-f/$(ŕ+#r.R5 D;V6^ܖR;겴6G(onOdU>8pc0zm]tHKQT(*4Nam+bWj@㢒ガ7 PSY!ՆQN8:ۻB⥿NԆ4Ape'ؔчTL&Xz@j5xZ&R&0R7-$ r]r ٺ+~oI54/ص$ޓ/HYR#/ bN i%FULVrF zj$uP۵|aRfYϴp1ZZ)EKVW-Ɂ"/5lq!)DmW뺉K'ڀ癯'vЇ j=Ԗ(BX(͹ S[E&q`ccwb1s(}{{(^s)~pX*CH6髛}xkշG؎,O+Mzd , 'cV39+IV HǏ`ݨ&qfEcs?dö+y̗pY#.>HA6Un*OY*7GjK_tb Xb<3{muLy5$8公YfO4RBPB8 07w:R˯tzF@i_Vg:-Xc,IBV]}۹. q^\?PQxi몖1vri ?}Gjڤk@bb$D %[46~+v%Neɮ;;jkssSbPZPqAх R@fY bkXg r197" tA Y֕#=~c4dh#o84/ۗ-Va^ᾟ6 ֖'JDһTM;GVe Xz8&솜o[\i]uHM#B;٫,#Ssۮ,96nA67Je )Fj GWR;}CMXxlrLdR__r8r7yZv6\ 9=ɄCTW`#-n?P&F1Wbbzv`ښ_៍,3=]qfruى34!H$%p=Dw2XP}h+N+<`=F@]",IXS&'l4X&i!+'+ld0hF) Ei_L7Ql'5:І$O7\qϓ7s^MsupK=JƲM4w>iKaμoF{=NLrhȽyX \]'k\S/mgoŦ$T^k[C,1*EĻ֗-jsYq8F]론 _=??™wr\7>纅p_ dnغ|n+׶G2-A,XAvK$=!#% ;)ekgbo݁^/A$Xu4#(-ZDph%c1 z|N fS;vvUܶVwR`0G#k=ܖ(7JVW1#z7^` ŃrpGr=Պ' h_ {ŔX]&[(̇<;wrS;bCǿ^|E[E˃{vۗRbys8Ր{Ycc]sYT U"G$e h[ȗw_|}߸ܾV Zg;㲑:ИqXG%+ڜWRP Y($ztē]Z=OQJiSZ`zu)u496;nv)ߖI'jw뱯CQF!R7;nEOZ d 7qXpC]tʞt֑"Fv4Ve-Qrs71e欮ne{_*kzպG,J4Ko<O6.)9 ӷ)pYw^cƢ"^s&Bx.N*(Yی J;Ou6a{fۥ +LcG9SҀSUeFDJN?6ܚ==::Hٺǁd 'j6ۧt$ԍڴh8JBi@P  P;eli]v멵 2h5TB ZM?߭MN *uQZSL֨pN 1 E7a [$TJ^D4pTV:d)(UBUUU@T((4טTPy~h!vIJ]snzq4?@y ,)ƀl@ õBuHJM}$~@WeB5+JU -~G`Mz oqIH~Gn EOGMBNr%*E6#*#^Xb_gnLk9%"2rY^$Gm5[XU{bV SM\]%qvBql\ wn%sIOlE ikQ ʕ&@i6[%}Q +};S)v?_ն7Y$PrڀylkR} єn FMȧԚJZzPCZ2VڛYRIHP`,?5'p({pY7Rc" MA7BAk&Mg,by$n ot )!wZו),gn^$pT E*9zBQ@NNJ>M;hڤ"UZ##s0hHG2[مAQIQXH4߿H>_MĠqa44$YGm0qV G]&+{ɷ ߑe =i?%'sFg! P[͕.1ݖY0}Z~ㄱy8 `1 ,-1u4 H'Ź+v%UmjUlS|}< %"Ɯj] YrZNoq$B gv'ݩG%E*JmZ[їz\2N7aĊ;1%tvYDсU"%E|u b]k[60O}fHc_ڒ*7ݐnTQ=;S[3ldTVA5#rU\9 G햎>XFJ@jUI, !O" @EIoo ]e DcDQ8ȄH>&~ƜUc,1.EOnK3\Ř+ƀ,޾U^5Σ] lǵ;kĔ66B;e m-ᦀh#P8羜NuQłe#U(So!n0ِ[بfG%kf<t0]Ggbq7RFy8=B'$,BYDD&hTlZ "toN3%"pՈdcQ;v`$"5KdL1O}YؐA ]^7hŸ{-RxV3Aq4]Q3HL "V(F„J `g팜q,^G&2jpWHe1ƅ“ 8ξ,B6;.猞See"+r@V@J_boqJa^X 7B,HkKJ&y'r54h'xWnA('e^"fFPe9FD7{.H22:@j}#)ז]3>UxPˊ$&SQ!e#A{ W;!bHY;[VNMZ\첹dꑿ)BDb-A꡹FS?EF<G3ܾSx]+w{7 Wt&%dazUbhFW4w']g1/r:mڦrB\'kjhw1nvJ[˃L.'K%x8'a;Gs{1^ QrZ\8Şq4/:r,#W'7j zl1ҷ=2ÐӒ5rkP.4nKA1wE^\jb @b̼+ zzkf>dw?0'e2G}A+SR,s D![|F&E|\M@'" Ne PǒG[beN&yˤXKv侘l}|?cs7n9N)Bֹ>Gec8[ ,*nO$hG2_GqnF>rOqЖgk2= e 9f://5l461_ȲK\_+8ٌn}KƶwdK븰5݃ۤ\Z0<;jQUx21ּ1ubU) &W^C7Pr$:M IiTt_V*JDD%\*N[e) 4rkuRMV~e*y.um`CSҀ27z4߱Op|?w\!U.޶B sScF?>kq"EO/MQʼCWjԟ76;tЍCZ¦@O4imSASߞ]hbkCjOӀDT݁mޠyM:@~Շ51YUqGIuD$T,k4,C}!{K^1/p'ކ=վUɑTG(^r$bk:O? s{y&J"){;K  ľ(#J:w2X:Ȑb`%p]eG("$+$ 8/JҴڛ+J֕ФŔqAJ:(+]I, S]V7j`諾6@1WItЇdMڿBdt"$Tn6uޔКAStSB4]t!!Ww8Mu@FD ꀱ 0M'ghMD_헟"^{m=5h"p0=pPBSՒXݖDCy[-&.[,})-4W @ D)mopakY"Z=L27/gs[+/UT/HiuLYFTZA*BbZGf5ie,K3I$tfmQNBКlե zCВwAe $JJvDw I6]PPH2qA5xoA$41,JP(kM(A X@"@dn?$ UY39X̤wsx-^Bܕ7xNUrJhiMI曍V4;K+.-qsKqi\' Iqq.iEg*]+nٴK^q8\&> 6;)%nnrKR?PLidtF6IUlEԀ*ʼy1]4D2.$tXɓI4sjzB6EI5d>&]džԭj &3RTJ|yPmִϨm (,A])t$_[3)q_zjXL5Z\(naS1U'W-7"9.~.Ʒc-͓\-ڐbjO"Yy-dێ߳5(zW`E|uSD (x|v5, xҧ†nP6 $Y PQhBt :FؓQ"v>_hB2GRzZyȾꤣ鵱co<בc4)rց6Φ8 U+Qpw&.-rԹK&| S/+K#&f9Rk5Tg5ܶi']ne[[yiZGh[P O^ wJ{:Wyc?d쥙;zq]ZI(h!R詶ۏ$ 7aO70̀%ݣ@ Wp)_k,^4 Bg% 602#1Ư!қ]n2H\ܲ"M۷r{V[ ;7^x[J3U L'#-C#-gL_໒S].`XZ_~`<;%,e;|lDeِHÏM<?-T߳a5wH" iڅGI*$z9A.cÕfcK@7{ ,[Gbn:F€±GB@T:TIj]c^Hch܏D T~^9 "Ly}NdiJΒGE-8r'NTɋvSv{vEe+%,ehHf(l .OOſDǫ) s+ 0nExAkt`/q˹g}kpVLM}R4 e$S*iX$~nJ+9vpK;rq-sZec &,8,r3*Mw\xD䌉2D\TQb2\lxyX;w^.ݺܽR}s!1b.^n{ .bcgx-[N2 #ήCwj^&|xOκ7o]'QԇF#x‹^~Lr~2&'dWP,ɓY|Osޖ8fX`"eSJ1O:|lp/Hıj|f;o={N.o;9$qOa7nݽ_ eek+$DlϊS="m[Zjb(p,w?neG?OyG32d,."cX@ )\x 6Zۋ#ڕZS9vY\FcX c||됁Jorj)3o~h'XOL4/s9+gKF2LBy8vkM]-/ i{ֹxoqr{r.Mo*.8EPB"۫I)@ @ReIe _JR}+HB">qGR ^]J aj,C uڻm iVA4$ UھBCؚtڦ_4&Jy~CB=OZEiM:u3<#(-&6,dW 1FER?,Gܙl[sKV\Yݣݡ#/ cĢI$Udk76e7qGmq,\3 m-^iy]cFRPKOr(,$@'$sȎMRb?+M|@ZԍCЅЄrW $nM?$'A_*vW$B:~4nH u=E)BnE|vAU42H;Ǯ:R!=&+ڼ4pWuHd!EM5 rHZ {G}Xa"[+;6{ 2ܼa5Y>!A,]>% eT?Pe x-cS#|6zwM~ENDa {CZ 1}QW)!{s}v(q`B+;,%Rm߇Iw LDJKpEV8cDN(⪃k4KޝӰ5]F4$MM5C^ W[޴n ƻo"Kj5$^E66]Ξ2H ZoNwߧ堓d3tܑN#rG]CZ6Yl:Rz*}t2ܔV<(Llװakw W7UEYF*J 4V<. /< ۄ[̏C4oq&,]j pws#ع?u8z;\$Y2;6j)a0Gg:i*ԯMoNݵTuT#Evj(Rn(h@҆jwFO/jSB;<>?hB2iP})֦PoJOP9f ݑcp5I}k`Ί$Ovk+跋Y#Ċ4,}yی f Ql${l8Пwsaesi {Al(e6rjU.ueflAB?[OH]feܲ@jۍЯ zB]MkC% 7P<Mw5LW>+_kC U^K͐EiKuV9TO[̱㏮l;wC;sRf=ZgWRe2aruL(k3d>1{(|oD3w]PkK4B8cq$j%3GnWMOq%8÷k, ÷c|`\f[{y 0[##Ji]㥽.-զ[bq<Ζ} iebWKQMDTۦmlc夸Y|u0^G )-֒]R{Fz̎^c/i}#X/o[YT3}\yyKl3"$1pZXժnGo4D KxOz{Fa"e!o cn2J"(Rot*~FGBl}6q$vZa&9XDjՉidw.@^ݚ $3}Ym#fwrwjdw$o =v$uc#QfIj*kG FSY( <3!z0&fZʴ-@Rݟ"F'] FoH.e9}{#\)F!;kMCq#PIO]m)ʹ2IB+"84?ktiKFWGdK{|&i&*'JQAARt  >g 3KJv$q\1=@c^US旪fX>~o7rq<ȷHYh++ڊG)IY rh=;DTv)Α =۳\_a,(mK C>"᠆8obj{2Қz,\Ĥ"ZN6al^.XsSrnLN:ɠX og[@ dI00z.x$$.?ga-DžQs!/νsٽX\(exyL^fA Z:갃 +s8:,"sD8vn.ZaIQ:hˆ UBct4Od)%xFJMtH{v|"C"  0)P8Dztɘ(Qu{.8-xIb˄J4QZ&s0ڜ)_Mn~z.B2Qi:7t͌cF$O]đȦ\]6bY#=c*($j22b^#9d"*twMtǸwH=\vmqik5D$XߺZȓ̼ʀynN!k ͸lRZDh(%l~8lnVkyhbx~Ok!8KuSIQM)91X1 ,Å#BEqGExfbŒA'WΚ[#۳]iHn(.@̮BхJxi=tāqaۋ[딁qPGvR~d$L~(\6܄U`3 \cBNYZ~~>Y@R W":/}|Ug9ۇ232)O H$GKT{76Kt8mٝ+rr{ ~?sn';;G{{;F/}bݸ~c2梟{%73O-fWŐAsNjr=]]6t'\8<[*8o>0 D{B u'pvbG$ 6 tYīx-''>DU]އ¿.;QY6yܹcvY#/q<z_Gk;f&I0A%_%gƁ$ DxWuZ1}|wmr 2NZ~dBw:HeU5cBf zjNTҿ] K iiF4X3L%77)$XwqBO+ok TFTQր]J[\Sw=]F5[Kx~:QLNcVFiC'!0˾!w.RX[7T p+ kʵWLR xhE,iscLmnFHgyC\8/B>PB"4 J @ 7ZM;tЄ@<5VB:4& P<Ѕ`23KWVh2QҼf՛ҕn_Y̱bA c>Dj,on!OEH?N7=-CSI'G]5l˯Q T!`~ŀҚxnRw+y"[v 7 G܄Uºn"z-]'ll vk]?3+ @ZT*u^h(t}H?G#!0 e'+,WF㾱7&k^K8,p$$Al}[m$?wkW #'5J'n.$+{fϳ{$<$YUv$QRA|O&[vSow,u_?/).u֮Xo1!Pnc) 63y GsZ7O$*% pz)s͝yon.__d7JKM/q~IDY% P;F0#lwhvp.27R]K%3[[Z]B%(AHY7+g,bISJ ~trtbWsrfX2@J&yΧ;ԶirB%[vn5`dD2O4CU ǶD0:Ȟ5[yx^QݾiǖȌq5rosZC-—wBw(וv<٘($'(2med.A*(Cӧ]c08:`CRmƗfJ\'Wȁ˹\3Bpiٻp)7,R[G1H Yz}Mr1)8|_{QP=eS~IǀwRUI<d4E$J7SZk$&=`a&Ե/+F1 8"Y"d8B lΩX=w!Z֢ ?J-(F5l^bxyE#OJƱxNcbǒ ewf{ۍ[UO(lھh=2[eeX,sHbMk~yH\?,lBc}Z? dاic]e lx,(}L6 WZY6'/ϊ~W0w/͎C7&>@]cpv=H2dK_Od9GO`$@qqg~t]o; >̯gw.?vϜ ۺ4v,e/XGk_wٍwln8;7\O gOmXPPSw93܂7"ݹH2#ϵnO.5q8Hjx-sY!jZ2M/ V:s/LrSK,jk}0a.dwpG·Qb,jZMF,w.长;gHl-ETS;֠!=Eub'Q9s'Q6oގsq2y{a'v~/aCN#nJCϝ ɳd5GC{C<;[+֗{keodY$#o4n.JbՇ̎ .1??仮ϰO.[; \N5|xv>a V9 y<xـټ,QہQl kSa*󈭈<{KķT=ܭY,f~\@Ķk=YdAcH狓pH#Y6.ĥ!h4-bj}8<-nckj[I8=T0 Cjq!PMk\'?o5<yY_Ͽ';тܹH,{Qo?oyo [l~jI Z*Eqli&?NQs)F͂&BXbXw] Ϸ{;O<܊o-eln0sˀ6-#Tld=֐ + hGJwۯ`͢Uzo]4 ƤPҾUtM uMJV_} tӺ T?ҺBNFNtАCA:? R'OPM;M TyHՏmoȼlT"T!`V/yW>ʢ #0CBkS'Zn9I^;[WK]vec#,$WJ+ {6VaX[}Ao,yfiʰQ 81j4t=YJRG P=tB`T@sQЄNT6 G/A]@`kM--Ht! SߦOtt$6뿟Bi.*TO'(qf­GlXZ< }̋T{2ʈH%B/ĊDn_'˺( ZDK P u[?xQ ktԫ LudվC#d͕kX e p@z7eRpB{[h!8ET1 y ORIdz :3#ԕ_:Jx=7y1#!AA@H }^]vZ/$[EBu=<}u;x6z l]c@ 05|)֧VR PN)Vһ!{~G=64rvE[VI"}_鸧Ci"-@Fu]A4>I&ǏJ@?=MD^hI55iBjx#M?\BAV;WoPABeӐcO6DҕԦ5(,P|ViJouq ZoZޤ:hvv*tI<^3BO(7:(QT~u-|kC]Qk,Y[ݽ9X+%QhiOoFX?Y,<+me5a sݵl-/!22ndNK5m7nc37jr>K<!U#⨫(J)5`_[ֈᢵb#fvSG(`Tqq䢤m(S*i}ɽ\ڠ GB'A% mUVP#s$h?H5>:v;FMhj˷]g [-zĻ,}y™,JKp,ZjY dGP7(N$,eѻwr }Ŋ8"XMܒd2RN|+4w\S×}s JHUu #s1ɷ%pSZia>J#'XҟC{4GgF51hdMAZS}jegNu]>&\ckK> 2ZHH8jNZR ڌxz,o25f{r;HrR.nd[Pxe@mir w{:$4Z]bӅOkˇYo4Y}[myD{Ƒw*5وpwL]"N>7Wj\427oBL3:պ[!S*FH)kB^Ǚ1u;{x, 4073Dd{iRI% *RO6r|%1!/[[ۘ˛RIily*X/"zyMn1><֮W*olOj.{(="PL7ᬣ=1+[)~=ovWJաRntqqiH{;eXͭas/ۻ1?enln| !vf3OK5W-"cf$IRA׌rr'Xי4~8,,5:hwaaBk\ХMuK\:GD/)PnT̲}" }H\@z7VՖK{mK=WWRIwq*FH@T(P,b1 ;~9eU]xR4$}":SV 8G'IbbϢw孔QZ4WwU]wJJEcy"9B"DY&_'_^o%lo!dsX!;wN,K+cknʈP)(_tt=1'u):m)a>f?6|r.8N _د;5W s 4k#y +UB^ׄn'i!wK1`"b b[{rٞ㸵ėTVVegŵ[ri  w U!kj1Q^N\oJQrbCŘ"fdz7RZkErښ <\?%!9RVCBfzMKmGNY2c$D?`"ȕQUzzjPݹSͪƈ֊c_@V4F\z|p8iriDnj[W2{KH4hP Bng*i9g/ڶFF kZଲ]*'; On8UDaU%ewӌ=8:-cG?O| 7ӭDؽn%28v4%&#UIn"[R5;3P 1ts 'h:Am ,k^$nGO=q5Sla TWϿ\ŏZ\٣8,2!b UۓpRgY-&{A 2(G*( UbvcaYP,}ɐevHXxCch{'e%^,6{N۵-FnPk#", c0#ꎼ?7w\3Xv!hvvY)t[{˫ҔweVwceUT1_2aߕhԻכdW3DJ8G-ICIvd $)J6j:]wr$ցeddUs6P!Pk]g7ţ/öSc060ב_ధlc9Y:%AV iVź[K<5n>(3O`^`&HdaHTZW_sp|,Q\~NBxiOaL{.ʗm4R720^Bkx|)CqI?VZ=hxfnauL37^m6^b]{z[ BSm2Cj^c2,r*?&eÞ=1g~?Pږ[[wOolUceD\|v@1P" bN m.Eeǐda5Imuu[=@ ;2.Hdz(TR PJk4&e's,YX?%^̴`TYc6!PICC)W5 ;p֞RoB{KljxKOlf^Co4{SXstў9d?qշK>Ûܤ z簸!,vMjE4,$I/×hG.2 xr\%D_:@6d5^;ֻLr:j,BҀo܍D8nΐ}T]@511(,=]!]'Pi/MMe!=z M."PTJi/Fz ct$7;Z b*]"=?}.CqZu'jh*:ofTUE}B⿞l#_]s@v Ӣz;G}oko2XGDV'IY(ǢIбC'+w"f:ט܎:`wNUG BvFB'yraycYYq+w12 N%i=R&Jb쯮vVP4!DIc"_l ;nA;s!_AƧӤ_oO E*GoН!8]*)ZV}!A ZR$Bl!5=ܽ8(z?W/K3]VHD^Uih*VH-@U#QEsPYTUE|Ðf Fjݔ@n@ДXEݹTP@$.7CU 6|ңsIvvQMs!(BFAbVqP+->G >NcBJUm$АO&M1gM;Z)=0Wmw 6˨KFV,t<#{Veaq^!LYw48x>:֒w_VY<>KK_=<`Djx.(eUbɰ Wէ##)Ew.(z)3})bǟM f9̗ⶴ+d &ϋC%L$5v!Dۗ+^hӷb].+;{rp_e2vcrP#g$@b$hIM\z7ۚx!^KM+j, ,6_幕RIb{AʧZ }DWϷƫtur~ձ2_J-'RKnQÔc܀< -P{[J7Yf4ooXZ^X2f+nv3Sj:|Wx`0rŸ"7~]gp̵e :wqĭ,[[EkH@4J+HO#ɔ'Z Z%`( v (޻=kXI Dp|_r[[.H.U(r`-.§6ˌGٻ]wKӮvȲHd_x*HTQG6NMKŖXmXikw$MxUR]e`! O_珜qv UŎy-m.A<(gq=K2YYm'R5"LN-xt},L-K=+g~~G->E$gƜr3&7-!VXWc̙o>nNڰ2I inn~cr0bm0YWد洴ΡM^H;iѢZl69p\7Qәn*?Fמ:SKwqqN!K{3-&xTn^9S(oߵIWƿ!cٺoO]{ L#K|BB>/GԃGKkP{ƫ~{tL}~R;{T~nDžh0ݜϋd孯eeGX}×zZC"n{CY/s.{F6[K!.5O}a[H}«u @''$MfaGwpmQ1~c^,D[r^kuJ*M?eNIivB:+'6j6ƤSE|5P*Gq?,O/Cy&BI+Du+4ZE,88k^F8eAM5 wl=mmbDkrУ\4  Xy X9QVK>,⿍jd1D! k!{ub8$wA3EQF;k? 㯛.OI:*rÿ gm:x/,. I>L, 1#bk88rڞ]~ Hȗkf32|n=r [gh~iI_kَaxᓉEk˪&jv^Qݸ^d2 6?lcE$kgyBXH}>4{pU(Ng{|ϕ {fⷚsi:VPѾ1Zpibc+Ċsr$eu7۽d"eZ, B"x >q~g=@%s;-Pz@ S݊w x^V/u+%QJI5r'1m~*DlQ[=4j?[]Q%fx`~bG$oW BG*ZacvӁz]Lă}$5+*+H |1I}fwfHXnbmswTF)G=tqˏ.9nTrw_u"?~WRr]gyc3xBNڲ9sYp> udk{,"?׸VH5Jϥ R۹LM.:u;6㍚PLej~7u,FbBQ;<]gmbI 6+b0 ҟvѮMy\=W7F|Vsض}Q3H2q?p (]ٕN*$P X&F-/ |%Yrwo}[7wvd)$Yn,AI+4f9y麜'o:@54j:QH*GoN7?R.]pڵ&l+_tx!ɳ 6  򏦈HcOM|ziZB!֔45h;+HjTڣ|k]dQnܿ?wp_;֘/pLWis 6cl})":uCM[xnf[{*k=a pʟ}OD#eQwB}v؜RcH."4Nv3\}cė 6AWz!J֛SVҢ5B7=zt'yhB%:⦄SzZ ɕP,Eń+J)OHܒ4zަX&ׇUn:,miF0(Uj 4H ēA;SYH+p-BDE= RҽN*ÝS EKQ"1I*$@4RIGkI>}Uor$k{;0c%yt,ҏj4W܃4\ ՅvY#m/-ݡ3?Lmču7mW+]tnMf1onq6_ `o CnPOpC!*}9hPlqŊEiVd q$Y);$1빭z 5VIÔ6pHlabkRYY?zcV݀نXYnI` p-%NZ񒵷zd.. %}\PEw=h3}|VRe(.7*x[FDhƜ0rh7ؒu;u p~=/򼱳e oK5XuԂT.iI(4,A!J"@{ie5]dMw[]o*b"l>$i44orQ$\'nk[?Ϋ2,,i>N30 eH&:X eo˵'k41y*TF5r /;Jwv`HFJ,` x5D n~,%A D ]?V_ tN$w9$]ZBhH]sPi7F: fXw{},oTС%I?R4& ڞ$rP<&7iw@%5^v$}u]X!LlI-Fꐰ or2=HZWR7ZrnCN~KBXWY"kK 461qŌcMǏMÈZx={y2?0_\w۠t> 8ZN+u)"1k\{iIZ0%wH,{G1gnchw6c8ys⺸DF>P?}W혲n?npS vg+="kKy9k}HMhXF w#3+٤K\q<DvfZjnV{[7#{Gsa}j]]D㐗QN!5ff>}. Y!M/R5RD٩ng)DP>gZ`{ux$M2x70~˟.k;vO&0$RO"O45w]J*z 1m *|M)ӾB{ ԊP)C1H RGO:z: `4W}]Є2ӭiO˨c:@b"vN]Bƾt.4!:uikMTА z<>BhG~]'oB*l74&F>U(LV,Ɵmy)RkrUmI@8Dxi!;BE8NGqs|fVq湰DR$V姹1[eCHv!G@Q"|{;];w?$[rZ1d팔+4W?{c '<Zw]+*Wdcu3~krSs66Ee RI$-@&+KfWFesE2ϱL]eH^LDZ$Gi#;kgUPpH_WWrA^rk,I*"9mJ騭*M edEUQv,(#OB q$c,3*#P?^:J4۵Un}_uk %gH}t#οt"?;=n1듉W8(X’we`i㓶Z%)C/Т]=NQVV3L%MX%q1~6ڝkb5pDBZXpVB@)QC龰E~ Y$'#uX$pj#3Q8 +Ҵ:ڋD. j\kJw 䏟"($~tiS9iH;*&-&mch ZMM>@+۷ND0D0y.-@a)@oS˒rE"d5HTaB1jw :ʰ\R)w4y Cm * 7I`}UqUU{v;VE d~NaRCG{v&W)Q!E_&y(IVɿQֶ\nEǽ<OD&XS$7&qJđSPƫ89 -nVhDxoH{/-K+nBYN w sIzZmcݱ[wd/ohҕk`*) *u&=bZp%eg;g-うbG#*@f(#pv*uil.on0+Him&[B8p~YC$ aw<3>_+(lv5R]IdlXG+C!n>bU;f&>ZO箏QI Q$R/cؽ |]| #Hͼ=hY`gȞ̰(MJQb'A^F^LBpnݿ5lYtGN⚥mdX.B &X>U]32M~Y9%X <;7)>>C*I\"78$Ȇ>L4]̶vFj0d:$qK+^9#"Fk[WˊBR2q^AS3URl^y$^Oj4{I [a/:zMY%ȉjEܵYr%֧IG,g(=ϧq6ׁ)Z4޽Ot#@x"QϚS\tr~WZ~v,VDf-e<2>g#Ei/g7cwsK.H{_!$01[p[1PwA±qx,ݔD>58#з:ӂ=ۂKX(`}ߍ RBhjmy}E 5hc$Fz{[Aݰ^'*xcQ!tܐv;WNq-SFS7HІb%MH2^>!,B9pyK^dLIM%˭a Ddq #Zh_{m7Ia[}38An+ƃmd8 d8 %@^jvЕ+ij&.F!=T2cۏ,ccX2Dd(HqJFhn*;YK\.8ظxâ7yk2ues.-x=sX V%,9PKu'jS}RI ПJ֣r7M7bmo_<r$:S *w5N'nSZm 6޵&cXj B`= 6 )'zGhdЄ9dhki]"La9;ц*>hkCЄ065&tЄ2 :|6JlF 8vlOJWBh$'OZA]&?B$kSZzt:"B"'}6Z!OZu=$xBvMݐp ʦC0X/&^97&}ֺb;O7sK\7,vZDnCh'*TE({|dfm")qwl h \J-q}-ҥtUS.͈Z,7scz{~EnF%FK%RKpHj[jTm/pv\h**kJI%$z`6t.LSAMoOWEj:PXaMsZ9uۯփpFt7(@e MIXS»YJx !bZZSI6Ԥ0A밥!mӯֽO ѝP+)I:) *:m^)kHHhPj@+铤_/P$}+ZmZWzu|4!hGV%TYFD) a(_^rJ]S}]όzH>:vnm>4+UfnŞZ#?vvٸ+7R 4)r%+;ofNA<:uWBKr& v!04iT+d;c6mnYsZ^{ܲ\PF×/T\T!Q b4!;e9U3Fr*Q^!O@jjm˷fJ=+ɞI9}GiAP(jN%GM2HAJRV~$} Sz}> EgZ/4UbR̻WՅ4%"׸P-,oA]N^QOSMB^7+X>/j^{nMDҳG8R|wXުz~KnK$qᣋֱYƁJpܶ!R5SӬܕ{+ȏ'$*zPO׮eص;]7yE**F;~:ko+D`:D HwPӓ9aQQgi,nF>VkHbbfpMCUx‚cL^+0^L?PrQRKT6d! _X+UZx ކV54 tϺؔx O<ǒltbR;RciUS_o܁T,c PZnI#KJ|W HU-"RHTP[bh#Ng|JᦑX2:uPB}?J^: pR-o_@լp[q-I3B{i}36oJ\(hdQ]QZu.* iZJ+mEԖ5BI|T"rZQBJ-8@1ݢF΄&v| ;*#'z:!;(TLKSI!^DS,R1#iUUE8}3VďzdX\'AJ;xS2lY**=/?ӯPYKynDj(Jtf$Wg3-֦mf{ ITP) `xЃ1ֳwTv"`7TzM!ܹ?G#׷x|=Q -boTe5`Nb;UXJyćKQ?n =\1ZRDY͊3HǏϒ&Nl$;pi̳, '$zO-Q#$HH݇n[5]㽺$!E)$aiM[@\HMoXvV0`gA)e)tF\Z#m4]GL|GH R`x;t ݅b/vD3 wCPg u"'UX)VRx,E"ib V(!Vdi.$ 37o{i.HFE"P ) hbj!4A]^'!1sV̭0]Bnm8v gh C$nndrRåB ߭~n}",PCFn3H$bGwզ-OBp;~wG۵D}.$$|=gP r†S)?ጯmFJ#*H)սA#%F}\Ȅmˡ:OYzb4.gJ+Ɇu9w?4/d_ 4`Cpvf@"v#;d ӑNj^Y 4Iw7fQOR<% ŚBVO\D". R.k_~!$=/RC8~Nnr 7(&(.2t;0BI92^9jѮpbv!JuzwzC?dcDrdIJGfBRYm u]ky}rnA.pWWeg4ZG{-)pެNj$)yI/,FF<.PTW!l AWLeRMG$j5qF1D;U|2؊χ# W@ -2ĊI(#Y~:cvxvWt`fkp_rW?e!X!@ @UE(|%ˬy>$qƈ);FNDp%U׊؀8jjzhT zO eJ$uM՛c~knߕ^&,ےYvUSZz㤨Hҽ sg%Z/#CP?˘ MD𯂢*IUNv0nCmCx!ޔ`[~z!gT(hkvҧTh6H}^"J1*UJ Ȁ@UAZ?IbhM Dq6DH &: k)M4J_a] h%Sh ΒJSbAjsP] 6D)u6* <3\12h6"(e QIx$"aU{M^MDXf AycB24z7 Xܽb6T#>#CmPmת-BA"xBňP$ YdE,cDڢ::~ BbՑQ$$ /&u_~ GքPf֪5Vbɭe3I+d=HDӚɏZ[M @cX䣍#eQ_KO&{đP܃c|E8K(O(RN["Oh"P-Y۷PB@>cuؖvHYw@@U8-er'J/ jkD#n5czÂJ2,ۋ@w4${ww֑m@>d H$~Dk(Z3er>*ב¤ !=u N3PPR2wuq! ET%]@7,(jH@n<K9n[;uI M)c)BXlwX:g7Icer}rE؏`Ou#h*Z `H$nuu3$7zyAn90H4+W^Ѐn+5L6Wa!Ke d# 𸳰3(#8EiKʂ6={2*ݛX%mrE-b|6X.n$6j<]Ag ǭ3*R$,g$D$ni殽|>2|L0XCl}d# 8`M W1JVaGU*$qw""f$@$溿6 fMӷonΥ/,VNZCNz8\Q/"F<.>Eҝ1GB$j>%Lm>NL\?k@~2 y$mL!qkvq#&}ڂ"~(2YA*_Yp7Su qn^5-/P#򧇅\ip"n7"qmjG!Ji{@8%#3Zѵ+ba#"Gdn) #L&W:J!@^]v&B%TnEU:c@@2y.u-QOd~"7#=gk3ܴdXtBzX0B G(H}r_}h_Vkkamk)(Zkq ;'ܵ20ڨZ}`6gln[[<b#Snܝ(Jȫ f @7chlݥe mk1k3{5K:h洎e93qtZhƴ0wSG,`~$y,ݐwͤX^Vw-%`Un6P"$o=|XB$mnm˹cXP_O[fme8{V$@VȤ^Tin^m7bNG/o  &';eHe0T{#!>K9X \C(X:yǥ.coÊɸM򨯞Φ6}ܩJ;%ӖEw$TxtM I P I"AJx;@$Fh@ Йkา=si:;Y0dX]oA(B+#3z 麐 b ʷY|nK W<~/& 6q> s+F)#A"EF]J"G)Fc5c`d<8kEqpBWB};)$p,w58{(uk&UhhVHA`Iݩ(  )1o%ڙOcOǜmg+FLJ/6eU& Uo+-nLbKJum,a~ EU(E]S,%Z;+eK J*2"8xSI$ PU Wt&Dy& H `MA?iZ)gMޣSJN[oQ6wu@aSzbj?? d$֧'zҟZ顋;Q{]L߁BO@$!"EI"I@md!wvvSo3+тI!嚋Q4 *A|L/!T(C9K,`a 3^Nh_zfxgm W8&!E9mryq77_|gE 8M?VR w tKVn(|H:)Fh:9荡pW|LΑ/ZV& @yX3|/f&,#4"؅fm-VIHOQH/db2#uLlm2XCawuO$u{hȴFR8[Frg r f[TKi29+"3-ʧcӮk*~ 'hܞJtb@DtAnTcԚ#Z+A_J D,FD.Oy0n2^Wv>?5\yqt8%M;P گ} PBeQ-8ԇ&zbi'pVMFXЩLeCRzuiH*20J(#ehYBWYXb X2h1~]y.M3Xݕy`I2 #Q,hEHaj }4 )b 8ąLCA$q+6YCkj.+1bLg7bRrXuk!;~I˖F3(%S;NJLZjo7d(Ԑ{i)qQ7~*Q^1+;P@aRᢞru *[ҁg>ѥf.yuҼvM%@HƨnLEC+Q5gr?]DϷoorNeI+PP8Z0(A;K(frt!4h}.jTTaJ3ը"LQ\\;IO^7 ,dJsOxX$lU=ΐDK'#ԬnN"GxZWRˈѡڕ琭XQO=fXfS?•BH/UKn</V DM?4++ ">(q-N3,A G m#[ .%S?njK~Ɵl&{x;r`iس"$ dhJ:Wb$wOA;kQF/>K/uS'/2 +P Y&13 jb Q*-mϒ9:)vfzx [4+4D#P`&Y0@m\߆Y%Zҧ5.i/ou)y&Je1G `Th 5*2HGQP%#jhJPxƍ¯]\P j8 da#D҉VBac2C`;q$wJR}-"x^ "KV~Ֆ]2QKl%d(aKЖe@[Vt`e#'&#?Jcc1ʏrͬsC$4 I2WS J^UjҺ.FAgN@-\z䵂y#_f,-g>$V9m,DWC #i1(˹&q~7e <1Yع5q~Zrz n;B9d9RK۬ eMh{x܍vW򙲹?zT3!N΅V'[q?3ܰBJFWo*>@rDXTf-jSkveqB-ݾ<͖@nԞ\b+".ږy7Y mr[Ow`8zӹNqsE|Gq#qVf'p@g`T W%?lCe@p׳jrFPd$DK@`M hLI8Hw!pAyA .nIanJ HC +A ;ջh9 zHB ܣ^YIkq{:0! ԯ@Lyۂ=PI[?)b Px **6@ind.ZVEv6 ?/ݿuAG{DS^X.E{I>B:Gmk\@@/]?GNl ]z/s\KŒ_%6b!6Kxb#6, ՠ݉-ݾd\aeVb{2PB}CGol X{T%m|>H{c<#WyE P{B7:3^.vfXkqe?q$&fR?t1ӱ5u gK~z~0KK^|wB4dGOe3$ļL43;I쏵On zW}a}Vy¶$srYlLՎf`C4 Gܡ;sHZ˚ɋ$L&$h_:gbFI~E@T)p|u,V:%RkbeJ|2J|Þ1CcE2EګsY|Ͻ|ۛMvՋKᦰVCaȣ${!/#zU,[YK=Vnp󵰷Zc#Փ$8g]8+Hiq#7#bHRڠ 40GnNYjj #Zu ~M[ՐdTqH5$֕;>hMQG@  $-74!7<@w"}A I6Hn OF- h 6_ ߐhI%M4?A8qB7{hu.ۣGL#dT( X)?{eh&Z4L 6nV1R]$/ogwg2Xy nC+iQ J!XR.Ŧc.a%A @$aR@ h):]lm7ɪ4v=w ܩjmu#F EߠbPt'joyP&IMvkJľ$0i4h{~) ր4N<붬цU$PWoā$7$!X՝(3*&-$n.}j!I⑞>%0d_jJZhv;hJ@  D#-ݚ$|u?HGrFͣA$YYqۙ{=49ݧ.W|!dܬLfĹF~dSf6?Tv32MUK+/eCsmc">ݑ{eı 5:MX*ݨeSuO]kFK&L8H Fz5G^]T%Y]'W3#sԾag}c+1.4,J_k?RZ|*\׻wqPƶ2mǣwuZml=ߘo zz^/ޗ6:nu-s79zKAe hh=YLOwSĂI Qpw)f\u&Go>HmӣuWo-{d_H8X'1)=H95)ƆֺU. 8ռ@H?/q\x4um9yծoZx-z]XƂZ4vߥWZ<:_U GkEI۝V~͖ dD`1uK2]~5wʘEkJѿ ]L ㏚n2efuʗ_վz-K+'֩_qSskQҩgˮuh>X5X^;_U#W%g6,cIhw%a@iߦEZε߻zz5"Uc+iPvz2|4){>95"C~@<|MKpw=) xILAN;}ɋA!)qA O~IV n;~I7ay۷"0\eceXiæ̛@YKc^V_O RTo_n /F_PP{7nm vKdt߫u6;jiYk 靈O휉w}ǩ?gCoz~1rl}oGSb7Ju}lҟ)/&Yk1@r^4JB?z!s/t't7e~ ܊f}OٳǷoe.8N;->>^' qؾ޻*аon&+cKǡYgs&3Z̆UFkq/տ//fϵ҆Iݿ?ֽcѿ_CF uV,3w:{L8}&쨙れ~9gbi'*F6~O$ ;?z"]\J;AJ; C…DDJwyyq$>Photoshop 3.08BIM%8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMAslide1nullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM ;X {JFIFHH Adobe_CMAdobed            ;"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?v)v``~) $kH2D6~]$ӣuw|Oi^}5?ՓelȬmMt5͟KecϡdPoۚw[-f K-{wH@{`ݺLΟ+vG6Lv}DX]w[ؿU~UX6}w~\F|X H#_g&x.2ǚ=vKu[ٱz7_daeyn05C:@{(x@clLJcC-8oc)}_WzUoXülW}##GrÁ0Gs)|S&:>$n.}j!I⑞>%0d_jJZhv;hJ@  D#-ݚ$|u?HGrFͣA$YYqۙ{=49ݧ.W|!dܬLfĹF~dSf6?Tv32MUK+/eCsmc">ݑ{eı 5:MX*ݨeSuO]kFK&L8H Fz5G^]T%Y]'W3#sԾag}c+1.4,J_k?RZ|*\׻wqPƶ2mǣwuZml=ߘo zz^/ޗ6:nu-s79zKAe hh=YLOwSĂI Qpw)f\u&Go>HmӣuWo-{d_H8X'1)=H95)ƆֺU. 8ռ@H?/q\x4um9yծoZx-z]XƂZ4vߥWZ<:_U GkEI۝V~͖ dD`1uK2]~5wʘEkJѿ ]L ㏚n2efuʗ_վz-K+'֩_qSskQҩgˮuh>X5X^;_U#W%g6,cIhw%a@iߦEZε߻zz5"Uc+iPvz2|4){>95"C~@<|MKpw=) xILAN;}ɋA!)qA O~IV n;~I7ay۷"0\eceXiæ̛@YKc^V_O RTo_n /F_PP{7nm vKdt߫u6;jiYk 靈O휉w}ǩ?gCoz~1rl}oGSb7Ju}lҟ)/&Yk1@r^4JB?z!s/t't7e~ ܊f}OٳǷoe.8N;->>^' qؾ޻*аon&+cKǡYgs&3Z̆UFkq/տ//fϵ҆Iݿ?ֽcѿ_CF uV,3w:{L8}&쨙れ~9gbi'*F6~O$ ;?z"]\J;AJ; C…DDJwyyq$8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:36fe53a8-78b6-11e1-9a9d-a708dcdabd1d Adobed@w  !1AQ"aq2B# Rb3$ rC4%Ss5U& !1AQaq"2B#Rb3r$CS4cst5 ?ߢNgEe^Gt=q]te'%$Ҋj}N2ir=+]wSӦZCA@Z$JRJn*Z oQ$IQ/ev 2dyp߹=pHp~YSý%vB3UqW*FbƯ2ɶ#ꜴF0_ԖuM)ͥ!ܡڤ<^C.Hn_ۅu[ę-70L1?jU]:\@gNl\z``1kB֧wdTQڀB eGk>ʄzT$T2RC:eBB_ACe(P)QyPl#ֵ_FRIakO\pU7J5öD>'SPjNtĢQdPI`$u:ҕ7 ~ MA)FUWn }pEM9̻B66g& _IMpڀiq{kbTKlzܲ5mUnj,ʶȎ⡴gW(7W{eaNSBWhFKj֋Qsr| Aiďi(ӏ($* B-$')"CZhksM^T>5#Rw~%u=5tX"QI5I9 `+ kQh?OŵK'M@Me4?0ő*jszWDn5!JݨEۚ PQ EEDQ TM(38%tTKrv%qA̰~nm\[ {ŌQR*@ĪzwmnݹL6Lrn=pZzzG')oEAKl9o[_}IRBK[o5.p6_zhlFd][Q-{}l2RI@;~ôYm =*QZuKZJ@HQ^L\5˯—ۚnASMrG"H($+0Ms#:\xK(գgYĶ' =qb4Ya yiZ^Eh>jD^"yZT|㎎[y]\>6剙ݾ [[1q"4tRy-:ӑ䩷RA"X>ةD3c"?&:W{1{[>)ѕ8.yYrFY-sjEdǓaI P6CGڋs؎8.q5ַ/Gg|3|u<׀|IoMp?\n㨨@y]ͦb5xݎn%frlJ'&91+؍MI7,L&ݹ-N7mPuݳpK=%xͲjmmr]yuia [9rُD ?RI' 89Lw\y\cVk#1|[aNvR7ѹ8qeSVwg,`1݅#ld =ƷڕJǘ84k[['&q;葥,yc<<^=v%ЊKPmqЊY?wּ[JC Xv`jsZ79,{rISM{-W>QpLg_.LBq! J}NSl-M#+KhN&ѰM; /&v |Syg r8̭,y*%l%ǥJ|:Ks @F4p XKpLI"ٗ5rN"7I^8i\?ۮ7K=Jj#I\NS&1߮M~4R.M0@njHs궄N꺃($6JrQx][>eU2y/h,W[MtlV-HyB~R<} ]A1D4"ѩ5*-7>Sx׎n\ͻp?RZVu[pYEl:KF !oeFWO6I"mß|ߌ1Tϋ\S$C%1@663w~M.hStWtwc1lz֥¹M~m=Mlvҷ \+2`"U}XA9fn]zhǍxK7yeȼZmؾ#|?6GrȲ2nMQkŷ/䐹1,I{8\V0!$Bj.ˎ84ָ&`׃W>@9̹-Gs|'o9'(]]Lb<-oSLY`W,|[dQ95m7l\Xo8,vBA"\%ƛnJ%񫓫qBىtߴ~-FW~9C67~+\K"S3׸ܫ]{or6/f[y 4uD6pCGVxn#q< w=̵&L#sW~`qx-#@y,VSm1wbKo4(,7Wc7ӿPFSF:/ 6<ӯ2ei_O.-Eb}x7v de*7rM5e>2ȝe334,nl6İSvS6m\ 㿶M-En?AkK5E91o,On LƝԩs3V(m6!ݩPO EFD<;6剦4/NɑҔT$Iq( L'n n) ڞDIvJQo͝7(qv{Z6memے 1tnƥ@ omL:ݻ=n= ˁwsE+mS2ܤ`$>dtYk33"Bu))eՍ XM_ۂDǓv2q_|VxȤrMXAN{ɓ&ŷM7*DkM8RD8K~zkK߻.$V,fc~; d>ϠKBRVT(.Xxٻ|%𯕫Ÿ\i/x\vdLa%Vm>=riB3Ne6iLr }fm+\HmA7_Kw}mϘ>meAyF/+Ap)t[_Ȟ%Q}W%MUN8`_sB@FǗg^.iNs_g*[\9oBO ب7mrS.vn@u.y{XU;O]1ZN6mG$1/F[.2$Y0fYdM!(]ZVu]mDQ/GzJFnW)|lLKF\h#H}ؠ?%HHm(JvPКtJEN*?"M+ :%`j?ە0DPAI u'1M2 W,#JrFN@'Q\u8"NAzҵrָ"X JgʔmQ"B$7D8"1A4SNLZS%'Ѓ@j™kM>x"*.d P&0DΆJPhzZ (|^}5%gQ@(jIʹۂ"+^4e\4!J9Ԑ2\Rz:WB} 5r71qO.} u@ijm6芶KAI c G@H!)$PP% D&S)dP5Ҁz|Dց92G?3P49 _q8"- ~\Q 4ƚ/?S?#t̏LSx"=(T&L @P6]k\S##B,ʕsֵ'AP*UFtq]b2:QTgLM)0RriHȚA~md9W-2`DDeDDqj+qK^AP P[ۓI6h?[-ҟs!NȵrUŐ1ZT)&ЊeY;+B&>;ÔHciw{U]ZD9L *iouG(Cn!+F6fb S_=tԚ>2BQHē6HMs9%Xim*NFgU?Ď:';d:fTt5em ;hEaۋjYkyݡ낔;z׮%V(]zeOSQRF Az ʪ$WATzҹ3*Tn0FO A4?M~X".lH:K1" }hTH*QF Tr8"y'[sĈK,m8mMJJw`Qk[qs-S1 [ ҭ!I{%@ \>Qxs5}-_#[_W۵VAhPzu Aq.^+8}BL=(h0U%KqK{{J *$w Z@!Hu@VD*JRPmOÏÁϾ_E6]&pKo䲪~#>ڔӈYKW_UbXCAz^A½߹ߘ>!W^6O{ b򍿎yhW9m9s|!H9jF0-<[8sXK A 9HSr//FW'{ۮS|q \'pTV j_!\7ܟ^Pq]g٤HZjZTV/6D;q5$s+r1?7_1_/xOy_y=\|=|0M.nA/|7(/8rB,ĖmH5QR)'.Z"X jG.`HݒFr`m4w^/9۔%vй,w<7yjݻO,f~+2fR^yܬ1Qoջy,9% ;UN{E+)r9bU5wO;`[7J$0r;-:G@Dc'`f<)@#B'QNzj=RSoLS ZR72@QW_=%w4 ~Gy\mIaI ʶH&VMUyHKKD L}ǙsqK &3U4ߒz rUqx$pk˒j_ nq閅 o:bP=4OBiDOT\~A"a,vc(ODw#_ؑofwwn!1麪Sh$t-ݾ=#Hm&^.*by{JH\YPVv$tJaėcQP[)26δQ)Hw7 Q> #">Ɉu2qVߎI(T&@DrQe!/5vUH>Rs3fnX1n,N_C)SDLKl )*n"}Dq˝¦$;&9Tx׻Fqw Ovb1 {uEBKO9 lnoC6.$ k0s%Z )uטvw7rX.œ&eEO(y5Lij[np) WɎrpc V4ۓX[}̴ wKtpACVCxjbܚk; 1ׁ:6([҅mj|>ǾQI6wo}m &ᗶ-ѡ䊉1 r&]&lX2dxǹ4]N01鑨{/ZU.֫3ܓcKx쩇s\I<ƚCG"͎յ[HF&[*%@GcF/|1 DbOBk}sNzgbr^9,'kCgn362KKm9Z[6`]J&1`58QV. bn4,KڌF'ƻYHOѨ hlq$]m<-xF"1yh^mE\zB:R 51n$7_j~;FqթO:(AZ~c[c#F=ݸe,u6šK_3j+[muCVYP 81$4Vጋ;jF6mʍknoGTuM\(uY#˺BRB[661_˸GtH'O;]Xa؋@qٸkdrgK˯T%k54D)n!h dž+RUm%5^e&Z7'XcLJf)L~){zQ[q 6/1֚Es 2Җ%N ݌:9YmM<-έWﺑ3ebD=ȷ]a=nƕwG*DkmA֖Tv&vrR6bjil6XV=rZg<ĩlW7aG-̙=ނʀqmwfxEor'6/Nn֨.1 @mvQ"nۍmJ!c퍦Ʀ$6pCLljAˋӋ7Vc9i"q~d ܗw5ؼ%sK)By3ާ~2^7%M[R/|.RG*IIw8ݾo]߅j4-iȯ4˼VmN3]-%}dux]aIbCn`s]zvd[śݓ'Lh t;t#*d@/|}#a6mXYͩQAJuU=Njaov-X/h܈B~PKd3jD'6F#X. c2.|K_q_l_||4m\55-lj{qednO p&ddifEёz?A}UԀ9N w(Vv+# %JKQ*Y̒sU,T`_JtL(HMsF~ML(|Th5@kJd*spDuhji5kֿ?!':uθ" e麴~D?h LOO"Bm[qZt!IRp%+-,6UCCB`}>=H$t#DT5zIҙ#]45'SO7|N]0Du*z4M*3 uJ{'bڡ/X*ֻd(KCڧ V2mI'l)DE&17D8\ٷm~y= +=!lQjӘ2z9 @7d- HH S5v'kOK9-;fZ;Y%9[[]Zspp81qj9L N9*"V$){RK *-(6hm;,$FVl ǙuPYi4[p'h9d-x45|+[޶,q (x}sT2N%,-6d{ o* R1S$Lhl^F5 Гiq(3f!ROx4-;XVk)Ă?#AD'lC\pw=Բo5\o¿q.qp9}pW]ԋT-DvY~*dgKn6EonoɖB rdi9B55(3`Omv Cݶ[D\UJmJAB_do] AbB^5<7U i E"`Ð1)tAK ͵䦲ۅeJ X )9K"ןwuR,Hii1rp#:gW [fs0ܟwu\iI}A搶tRJiLH ppl n4cZqwv -mĜ82Riw>yJRO*096xǷ8w~3lJԶ9wqL?IZ Wu2T›8u @1y_]}_eضPܑ2fa!ۻʹ!J qT)fbFn&Ĩhg2LMv];1ʸuzYAzv+I_n S~OOFYҫaGJ\-&Xs%IK6̻cme uN]c.<8q䭒$e:갯\ 9*}"jz*Bc\.r3ܓ&.c.R=RKlҠ'><5mEH&t}\mf%Iu˄(fָ#< y!̡h[hvca^ǟ5hŸ_-TVʍ*)<8WL2ە?ikqT{m7G6ǵ=^~mgfz%\i% q.R'%P1-EĠ/z*yI~5II`j3JԶB|Xxw},.QqyZe7&VSij2+[D;a.jR[xxEy)%i;Q߸)ÙG°춡x :[;U<ҮYnHv>-{U!O(we-~VŮG6IB]~xpg%s;jeT+zg'FDߴ~t[=q [5XF)"  tG5Og/<;~ŗ+p_.sO~E\[ȼqOq\MarBf% c1ku n55jNU98ys"5ܡ^9^rmV)WHj>(wTi V5Gnݹ)>_M VXB./XU]3_P)~|D^E2)SAJ+Q_EGSZ\D\kZ,fk֠Q9e\D`]H+@hsSDHI*5!#Ә:ff@5ZV4`(JL4l~">k_̞"22(iBϮ_:`'iT*Az#PM*:֙ +#M4;PiJu9:e%2su<LtӦ^"<Jj:E*Fs$EZAZQCpDO҂*=@ZȂTh)i=4'%*OʟDD_ʿZw ѭp%I$-N(4T+Q!&kLWME~ $EUƘ4Q%%H.B׳zAUJ :nνOϨ`G3P3u YN?^֚n_PH59 Q*"*+KSLiqВun8XJڄn-6WU4q9ڟ}?(AP>8"P~pDt#"Fr"߂#3:`b9P4J z BS]*3,?Y1#i=LpU}ܔt6өΝj+cxj %$A$vD1eP{ ÷DRPM=pGY8. @G}Mk"jte(b·L%[ZlSZ@&@eYJwVˡzbX.WIW"̼N|vzOl<s{/Vr;\k_8FDɾqǹ:cHYs#(헩zm,M@}Dơncc!ɌzD\Dpğ;]|}unk}}̪8pE,p#,ۇ9 K)!}.mp2UqԞ<٤&%ER]cHߥ˼II3+F^@ؾ;|JǥCL[sx3,/Ǥóq.fXKI.ĭWg1SRbGZ}s d4̇t4&۵Kq﹪ݱWYoBB.\q&;$=szDEX@6wKl$qfښS$dwWjBA7QS- /ʕ >k1/;qw$+~d&"j*#KhƒQ]Ap?tuy %W'“uêz$G,C}A܊`+[ZveMRe~)Իlh5" q -ﴨ{>y>2$[})miw%h:+ ֨*8H yiB݇m63AZr PF&J-"d v;Ya ܹۋ]:GTy Ne҅*)Jd75QR[iHA~ ԣԏvz^V// PnTmPnn6&vf<&:+@u,F;q8VVO=˽nϚv77_W;e壋K҃/^S̵/% ϺqhɄfm:ih/NBƬKF_vوX<ƝΫ!𛝋D.7wi@e4e\'!YoIW[+2]qycp$c@|97XD_t-ž{Mˌbp[1Dpa|r*|D.]&deor%[[>{k )6J״(75#p޷^;>FQ/.[EzB9,Q,SI=v%\2α6ԥ͈XX \eԘh\V/ߢ,L$_[ZOX-wy<\z_#0gDt͋wT8N<ܞeRPwA!DŮōѬU1e ^5~Ji].mzE\1 'y jHXMLtlP62Z8IFx]RV{v`3`MjPPęW.-*.0AȶG.SjT 2xD#{}A=RҠԎ‰Ʋ6o ?}΃/sϙb/[, $ 4ܴ3U Ta/QkZ Y6wST EewI~$ם(ӑݎ ˩Rq\G$O5l2R=Ax̾rH-Ęe\N¸x6h[K̕%[Yi@ϲ2g+mr2'N5*nļ\L:]r[[R%JqOֈ?ãe{w{Kq;s¬ZaKn'kD)K֗e@MqLb%"Jrp[m¼i|8+Z6[\~LrHatb<"l:hv+-Qm.(@1j}UbT=ܢm[:.eY2d7k'J ̓oB }OC"O]R""瘷~B^KW\Ð*'{*@4VEq%(Elӵ`^ 22#]-'_ՈVʼnٷCr*s!M)%q_h"; Rr@5OˍJb17ֺv'D[w܏_jLҖJ7e 'u+jTA1=*Z-wM{Ԉ2Zi'cÐϲ+ "PLM*u$NQb z wۍH )UR }-Gր$E@ҾRMsz*:`(@$i:P ֙~v4)*~ =(>4=?݂-yreS$33) yCL6?-V MI]pEC56bmWU!Q*Yeaڗ&ƅt" IJ((:dAN]0RfJ "4 ֺ֙W>"Rik\ r0D553PCrkR(_ق <KOx",: Mr#t?~* rd)փJA9!-p#̓nrEf\fBTbG2䕔%5*#ܴT0D\" +"VYVƸ" r'1\0D5ҿSC@ pD:SOA2"1tΝk":?_Ez?UR)ӡk\9ZA)#"'?ӂ @Zud? c}c0!qqA 4I.8$lChI$MϢ[ſ*Tc8]Sv =6 -=XiAx8>K[DƤZ?KBLGӥй )ؐ΃":͂/kgJh21]t_NxK5x6cVvҳi4낭%JA4 邲04"cQQkD̍ RJTW+CAIBE}?ؓ\ V@+JdV4kZZA,3B':t:J\Y_"B>b#:BJ~l`KDd:?傂]!@ JPcbşw'&F彅.}e$䴗E6vEjPzЊTEG@kjuPpDcm3ҙ%柍zCZ</JOE0DyҴ b'ԒpDzJfHDqJgԈNgi%j 4L.Z`C@_J+@ Mh=Hր)9$W-~NeOu0P;2+Bk˦x)F:iJҤS r 'i򠠯Zn΄Tt $_ߺ:RFW*/KJ7ʼn9܋r-[-7)㯘7çly6R&E˖/BIrFpDDpb⢢֎!k#ufdZ8ÊƽCLl"tC+v3cFZXÚYaQbj Fm1VUf&B^r uS Bd.yA/p  A4cy|i5wy KA iH\ H6ߏwAq(M><+Ç'㜚xĹ[\s1yLNXec^JAI/yIr bc9;㫩 XQ ծ҅E3mfL;t,Үɲ0&E>MILh&![K5!&\av$oaK\H5׷>J۫&n>$~i*yݪhTohʔ8NZ~@RÙRQ3'>jJ.ۮ_N;:mؕ& o0.漶.}3*1qBD2')svUG5wpnkǷdE܆m9 9"U czcu!Hm)c>vkLnSEۍ͕9ğjD8VAo0PEJ[t=%=q&DQ1d*[Je8eCQ^??Y>W0Z&x08tdĬΜ%ۜ>m󈲝Y5-m67…YeɫN5w.h+>6U?ߒ8Ŵ/-֛|; ;{ [C nXX%Vݦ`wHVXI-rs>? Cjt_.n͑x+xl^Me=_F^LMj;8v#t7:o:B{ ơWkjHr뵫ޛ!΅|㷿EbՖ wHimn-5&VGi&';'3cWf71V>Ksdp$GNM\@W7ߏ˖k-=;}A_m Œ(~4Caz: 1mx 8+U[M9ZUsM\m@YRے 7mx]l^e l^Ec i"Sa=+2Bv_!K7>+E녛^.$nr=ˇ;q-PaDe\.ꖘ'&Д0Z089r]IOd)t%לrHy1-9Sp8E6Ë>fr2'_F!9':d9%'~Dq84ޙK*2$.ƓqRSsvÎHZdJ!bwDjvTD6dhGʍ^\KrD-WUJCHemiނq*n%9LQtLOq<;( CbJ%}ȑNLN.))mBJF@e;F] z΃b<;.^KKCq BÕqrWRJ Iu;vPiNoF\ !ˊ p4"HqHX)HJiH⑍F֩wr[\QqB#!8ьe! ِZ (Ua.$jX/ZНuTDJO>lYS3gHtXrTLJS֧-md sP F6+JTi//1fOnR [u + 8>S}ЖGLHDhvf"#& hwK~G׮P:9ViYA'!-jv`$8,6 _xG6֎Y V[KǴL gl2C Wwvqݎ~%ȓ3k5KxGo }8]Bk%#]3n34`Lt43#ႲP|i(A>x"­)ZMIMh0EuF֧Fʡ[rqW^=mML 括--+VHMi!E;Ezݓk!eJ_3m> +lc@5yjEB[eb-n}͒^rK͚&;ofH…7*vZv5ˑ8 HNU"rQ*ISFg Ryj:dAnЀgL9BupD`ZeOUsF~"1փSt4o߂%hMi鞕&ەd%]ǃn.BBthSrJ @ oy6C"hyUqG$LvhTouJRCZ YBe9kn| <=Wȼ6b@r{$8MQ]誘vMR7#G5δ֝iLOٯDteZu3"$W\ѕODyn t$ \DiZTT V G<ɡ?C. m5GZZU(40E`Tuʅ L2LZ-J`ovlsZCõUQHkjܢ};jo0%ZmI[Y1ZP}Pu(8zS^#,ߪͪ IJRܬsbSi{Jd4qK@.vj E(EXCE\Y"*3̇*ӦL)(\ S:jLs:`z|N>8":S\=2",ҙCRM+C#Ud}5̌ }A\Dyr=Hʢ"25ВxCdR2~o!uҀөQ/ƀdM #vJu ?OO (N Z WZdyhiuM}0E$(P*IOĂ@ҩ9AZmseN`q4SUC$2*LhzָjQJ:ҵMA4-rHĨ6,ֺ?J}pUz:i@ @T@zbT%fiE*JўrI@uF]hs 4!NL)ʀEG@BւPIQs30DAiB g"1=A:VJD|~y\#|55H$DZaQ ;j2$Q2(W"=Ƶ9)%ץst̎uҵiPt5~т#S,i2o4h(NUϨy` cj%Gr9DfpRX}w%iץr߿Hk?~̌Prhq(2IΜP Q Gj*:u;GR=0V&ŖyF瑮X*̘c}QGvRC4.<ۻY[QRR5[Rr$۵\7 .[\^/vn 9|~͛sO%ri[T#<uSّ ֟\Z(?3Xc(Lg!@MMX˃VEr1l[GGbvח7$pu䯷9{[8?,V[.3k{mKy]]3&"cfq3 YT!#R<Z a9J@ka€0` *,8R(`QSX&`@kaQ Y6zx^:UR x0j~sZ-ݫJ7:DGnW\gC!]62Ӳ eÒd9 [,nc-~x|w8X6*uݻ|lxn`J%j2ĦW3jRå1 Ҕ 22=OXКG/B̩mIܕ"9l}Aġ %!YIbGŸӳ,{ w<+D[_^Gi 9qĻqj\%۠ܮזQu%oc`a-o8dH*1 $H;8rkг.3Qsg)E:ߏL~tip2w,9!#z-څq ZDLʦb5tLjUumq.j*Jfԫ|U:S=YؘH/{R* &Wom2~vԙ˺Ǽ]p.-Llۈv8(.2ݘRcpZ=EbdI.FR/Tە$6 68 M}4\[[p͹y|y1 (;pRH1S-In;m첛VìGjCQʧĈXmMTU.C3֊w;vSnE;Kݹ´ Qsu`;8ҍZARI#gCI F{ upZ\!|׉LLMr)ޅ!žL#!yۅ18dvraXGQԁ~?S syD*p)|cn+'E}WH<Ⱥ"{MQa^2v36$qqgv js(V{LZ=kJZbĿTI]M2*5zP,LOp-KJ~L†Rq@KQSBBMs`yovxVʔͩZ@TB\y+[o pퟚqtLsT>W-VYBTJB)r&\~dƓBVԵ? iJqš!%BT:+-GKM5S#Pt"^i`|=2'"idU<҃EsԌ+Jf:uҔpDf#[k Tr˨`jvD~Р5ܯ-nr>L6cfuaH@p*9pE^ɚϐ2mB]ǎ^QO62p&[^qւ\Bf)AJ@Z39Mmد6sX)[ m2cv˔Qg"-m&\Soh]iȰ䩕=-/<}^ *ZԔTL"&W2ZgejpDc s:W_~=k\nF$&iJiMuy'3E$n ZX^}̩/2-{uMjT#<1˻fl7f}Vr" 6mS.-3+yHQ;B yf~c'*L2E_PJҠ`JG3*\yC\dHȪ4P*:uႫgPBh']2+=t:Z[Nj)c#箆* [DRJd0StTA&q*dRktӡAg*r5"?  49R$nĪΔ9f:W\( W2hj :~( Yԃ>@RW@(`.ZTMrʸ"- u9gi0DE)٥i]nW8xo\.RQ#4.<6\qhNwmqEt,ǟ"i-IUSN6u. mP2ZڭrT*,Ɨ! izK`<+ݽ[I& ;t"UHh2˦03롨gQ+%}n]M)Z!Li,J3+jt#APNC" JUrU~euRPv]M2ʞZSIOPE4DM%+"Zu@"w)۷mV@iA;?EFIooƌܵ)\ˋ6BP⾡B78B@&UvćS0Ԟ>·[sVDg?ۦT*Ue-&0d:BgExR j\RЅ$Ha B JC nkTMe\pp.[bwc>236tÿ]bO{h̷ep'W-02{ݯ uҶn daQj04|p$r٩w2""7sz<ΐ2/q'rSǝi(q⨬b@.N:Wk  P>ouZ*NɎUww 4ص%HR rJ$FkS/Ҙd'v@!*2ó 3vHH^ޔ}㶩Yxr_np|u7훋o1m94kr%,t܅,lni}؈ $)X-.%V~ܨ s/L[smKֻ=$K-)dF7"2dyor'Ql̳_(T^qZ VR+|JhS|kǷ?,)Ro*g!qʘ-ZjvnNDULYg1T;nO! ύ%x^\m_al(ωrnXg|aok膇ХnbEwx]mc@#mIz(-χ?nIo!+A~UbnO1m*]&KH)o,2+ekOiUǚ9F֥A5,'O,2 @7NTWɹcDK,U1Ez]$;*sQhn?'Zky !-Xݪ{u(7 ԁ7ym=Nx˿q&K@ue2!BJ*d˺ԗVƂRvwDoiAg7sZ0+!^U^Zq\Ԇ0S'MaYUi|&ka>% v#n2da#(>WC3fojȋſF+ɏ!MZiM)dJY&q幼yke?Fe*1ŨҞN^(RCݞ-vUrDFYӅ4jpdG֚=,%[y .LHZOn: P&h{Dմ卨O&e0Be[>(UyՅwt( &߷r,g;sm5)qx )C j#g\va"Ij8q-6CkDts*Sʓ*Jl=m$!v&1an+Dj_l[ ]j Jfq:qoC&;K{.LǪqLA~,Oh844Nrx #8cq-n)a"(Z H$JFRk.y_5O*V__Nsxž:|S<8]זqYbR)<Úq[݃IX tr ZY5q}qzCKnf:8 Oi;EޠsY};-Zݖ2䳽V%Dc˞y,^=5,XN7"mkm.;[WfHsqՔ6IUNOtW!B-[No]."'2B}Ky>S%,- Ec8{v!"3Z[ɛf:s=:+ܪtQV␬B)JJRM@ Q@ L^zֺ8" )I)%+BA f:(:zC!_MMdSEiQ]R C}+O]0D_\Ԝe(eCۮ-MӖfQ onj]δq'~W"T.HY. aKfU6Si ޢP$ʅ>odz& Uˍ4%~CFD{4fB^ H-!)7ޤ8K|y[(|8(.O!IJEkLR=sʢAL.#1OR+JW!Z@jjz陥N*~9kJ, ?e?W:D? ZW S!Y e&Sb$VRO!GZ`7ˮ3IxDw>7^.6].3dVԤ!ImhSyPjPN&|ɛ"0DI9\uJM*+OEP:CJeJ~Zj~"3М랿s=29n#Br8"yt ;7./޷HjO~y&<څTL{F㘮U(U"b)8Fj4QBA K(KJRnTPek-Ej)l‹wM\"7rg]FS*OՖ,$(+#:kBҳ Fa>ܫZ@DKJG uB]pF A -GMNz),>9V( 2 ~kQ ÒSʎӬu jr-0R$E+\}ug]~5I%h~9#\%TnUBiZfwPmT8FA$ZTC.%VCZr$i#sAָ F T9f J@4zZ喣GCORH$*PA3ОT҆:moen8ZB*qkRR#RpE c]\tɚջlqb@ ɕkZkJS7DfF0Q 1֝*)\S G^#Ϯ x1)Mzs,C8ۓ55ֵ낒 Btmp⃦[FP:mʂTy*%lUV412; I|en%smԆa,3=҄--ڒ1(Z-qڸ[ݬƗڟۏbD:д,crr BӸWmZpEPIS *夭d8+HqYpoHRti)?XdXKk<[(_ҭA!Zi ne݁}%1o4fxɒ9͉<9ˌk[|]y\ɓوڸˆ͡Sr ąJ):\:|1}$U*P+b4e1C?ÉB"7rIrm$Qt>B/N"&yEHKJa`8{fjYɒRZ?xnK,({@@#2*4|qu8ˍ=D}KrCMYBWqU$Iڔӵ!K0Cxof,F;!NepUZZk]"hzɏ6"efACm%(2>.j?HiɘTpQMDw!<_?6ܣ˛sd-69 -(q܆Q2D_LNbF08rM!3h. 0k.Uh!53m)ǥˊXsfb \g5H=eS%J)cݲ_~kgrmag֧_pٮ\9Ĭ-Xn[nL7d~a%Q/LݒrG6ȅ$F Q8eQ1*ݴt[p!ӌKTw>y#!?ܸ]رow.ӓI$vWG\JMLp}N1`H i¬)*%m[UFCL%.r6iqJCȊ5 Rַ*#p|/ w?8"i3&zePPi ›"J7!r, GJl єw:z[aLEC^ srQUťFnЯvS ˇPwnKf)1802v;!RcqoRle^Ł")~KW9 rnZ.Q/qۍD(c&d$U\ƖN2ISIZ%-(+SV^<ϭI g2f>y:4J١±&-Vpr+h$ĭ-|v5o S^Cyl{m(w<ս7ƫA,^ Uw"]@q ]MXmd]GQnl"C C {jQJCaH5ƮE$.2'7S"DSl8T(J\A?q^ݪJFik{4.p/.EL$In;!ƷF%rZ 5*~Lrm.!?E3D0O 4$Ƈ j*R^2%>Z RVSIrp&¡<$(m1De91FKqu!hI'mp5*Uta:CңN€pyu+Զi)+_*h(~۾{]e Sۇ;<:[[C˙ l!+6cɃޗ rS1)MFby؅ic/񧘲g7 eyÝ}O[}3KH$al[ަB}dhIB b--8H7&6 Ӎ hT=҉aVvp<lJ\wrR\ݧβj٦gܻB\y wP CІ-wx߷Բ7c./Jqʧ"g,{rxnx,RVZr)ʛBIZRЬK(IY)[c R!Z NV&h2Ԝ+ =2ҹ  25J zTt`$%fA5L3h2Ι LPNkA&e6t Ҙ&SmHsyqKdr%^U!SpD95ô[~\SsWpzT:TGpP6杻żqJܾ{vcƂFUJK32PQ>Mb1lیfB; _j"q]B6S'ۂ)u '=sL`*)J Ҟ8".ҠhMJf0DրJҙt)ҡU"kWFZۂ%tӧēZB҇S~8"?_x" g_Mu".<{lֵ=&u%HiѢ9+e 1mwI72_(㖾G@)* oMm5~FEԻ+u)a e'+&]vmK֘iBQ5O\i@קU u4qպ; AF;َSn][9LPJkA#Uc/8":j9dr~4_۩Fu4 x""MW9J`:ҵk_Z`R+`4.wm1pk[D.%QM%␤NӸe)ԀH4jSE3ㇸ)t PN(iEj5KE k.ֹt)Cxg!B]u,8. $HA9 ZSRkM@0)L$]/GϮd"2P̴K,h(nZSA*eE1aDn%=: kSQ U&$wH 1G!P䁫k+JvkMIRZ~@ ͟EVT7Ē U# 쮖ԲeP_mjH*ozrQA:i+t5׭.֦֚9*JҀ&AG:W*  'R",>:H!1ܖV^yfa~C$T(OxSĻqE7FQtD1vݱqI/JUAAGJU6>M\hUp6kՆ]"4謨-2ICLMR4)rc~U^2t?X1O֋ezzs;i[-)(pBU; upQ&".߹<,0PDǗ۵nˋ|Z%C2b{!))*n2ɇ&8D4-aHXc~Sw^;$#.^BasHʅ;[E]9\]%ĤH~ RTm ınx}ouAC m[pzk2!ޘ%trTn!'ǵe+#O*F$Z|gQ姰mT@M]S@+Cʼn`QoNqmrm\ly.2F]zL7Բ7^R5X(~\U!>:-7$/LUo*J%Q*כw%oFH1?4~V5>'s>N5e>JPZ((i26&?o)J;$&/R-[eK4GOL7HVVGu)KA_(h?pǴ4w!y dhܾKe=- =5mrHM*ҤPq$Tu5Ŗ}ZM󭻼|/HboD><umo7ŻWL8\+ջ-YMn"sBTNqsZ]lCIj{—I^#y5 XAEPK(<–ˋT9p)#D{[Ad])N%y?0ݺ q%5[=*Qd0߆Jep-o+0,?6i̳FԵj^j~eܖC ԛs8kur1:Zx[bl2C]u"! rWp`3l%APEӟC|yz2}Q@mjrbv7!mqWaR) RW[NQzU=%>[_DmZjmɿ&A)MkAVK㐎 5aC 73wP~E,xd`Ď1KaWiǷ/)e@iW)TRDJo[r1%/҆iќct@ OvkeDX?0K~'_mrn Waǹޮ &~= dJ9dY" Fd^R`k`/À͒$E9!D#'JG%F5LIh]ǿh|fb#o]e6 epL}nI?iKLe~lq vrwu11{԰-'hkǾ y٫ `{dD\\5RPͽ2% % ; [uiK˞8IH {XQ <]6^AsYwi}/=w0v8󥲈k7IO-@^uN)4|ut1r\ ^;IF1sJި"!؎^V8^aѐP[Vi*-.jV:b\׼<͉55qJo"M>:lȍ__Sι-xˏ?hHl6e=l)F(y=vF2"ƭ'Yl]y}nHXd2eH܉74y%eF8Km` JFD8m^Rz#*j3O:[ࢱ,!UR (I2X$[EhGN/>}-ߛ*L|xbflC TR˕ʪ p cKU~:=ErrNmf/؟"$ȵDKnL(D 1c.: {j[oWDCml|S nC$ 6:xDOpL_ùC7\Q,Z?.x+o"|͎})fB# " d!X{2h *9!:,@-IѼXnCa2@~yTEjMeƭw,hBz2Wn48P, u\y'WJsӭ3iŔ-r+J5Aʾ'XT"+jF`@>STZTtCRkOLX"ϡuLz{MT똩#+θ"&C0?.CCrT:R ]Wi-Ք)*=8"orxrc‘s~dz`#~b4S  j+}& y<$7)"U*te^ON" J4t&=k,kyulkJADTP$HWiwK gXd˵w},ޗmlszje n:Rlˤ*⼊fb~H|Vv[s>U<$>ھ(&̸kڶ rE94VcGfe6-64m 6D0RP TWҧ!c-I,N5_#ԑZTW*q]u@ЍiNu !/tIs'Нe /60!1fDvPR_t (s(pk]"qrFk.3nml%m(PZ)I#GM|*"w#]jFr&lWdI.,ԀqєBŁnmdFb+ [(e)BAZ$ Qn$9 Z̮Q9: ő:2FkG]4FtG9h(OĨ !hnQ ]q(@H !.T)=iL6^nlv79y"7}kumܚIP^E2u\\v%vn!*L"(,Z*{Ӵi5nrUʸݹE"w_X-]$ 2P4u+RFPoe-,KDɹo4mձ!*q8JIWI)RJtuϭ0S0}ht ̊R?`HU]uKSk+c:eBϮyͯN Ҟ>g }:\(p&*ԜC>=;fa6P. 4Z\WUmϽº͏ Ү+䈒Xjf;D-QqJ+*\ES!/Nq{2nr9R&+KrJdFqT(%;Hj*vw֍.{unF oMh>ò9KmB@2n0w*,2;D m,j|*i=6/Gq7窔Սkz>QC[~_ey阩,3e\ll֝([ҤYz~fg~9S}cn!yc4vT+XJ-RBJ\ FU뎯\BӴv)_6C;1{ۆMPdM(UDZit$Hvx=ay*Wrq%!J))RʴJݠy snW8Án՞+E~Ajk}erX)R""2&>:dwK%M{1#z.280^KI[ŸpR^%Hnr n>m8Okhcs-Q!Ju cv*_7&Lcwk q/UOyHv#mjԉl2;Zl%jGzR{IHpw6K.jfwGY)]ri)uSleEJ&b|r$>!bZYR^B8Tsx+* O?}?KrQܵ@mqE6 }IB2kEzvC?ie`wFho4V_/*߮&š&);tb=;!-DFH*Nд*.+/yhǑa[kq0!p~~-}sیp8 |k-vuoHsu*54ڈ\T-miX:\5ۑu2F0mʥKW+Z?ds&ݛ\fD92%(gL- vWy /r(oO$Zaɲyϵ hٹoj\~sA\[q#,+JRW8L8\YRNsSCa I*3gޟI XĚIRKz_+Wl9l;7K(c2%+|B,:G SJPqFl͐dN&51 Q-.ie{:Ȅ( ^1[xZX?}rf ԫSIv*&uڜLe-6K0eŃlp1HJ$z/.?yfǚgFBrhmsfʫ.>*fx^OcoYUJ2+vy{WhipD׬O&4*ҩ!Shu^Ƀ<'WI"D0sxw/Y/״K[>uS[9, ;4 {d?5˕kB?%q5rWԗf[K9Aejmiǫ`>!2r񱸭.O+Ndc$kw(|!eZEz* 3 rnC7'kRI܋ 0<*߷ vk!=&;9JW& yKpShWԖmrMt[ZMa?gMjPmɴӉ)őv\ʼ nf r4-2qU RXi RR2C n#l7<^FwpXbM'teɻ5:e [L;U9Le [PeBxTH%ɓH5}Gz`"MHkMw(ied)=wT[=uV"|=k3[hзU!kBP;G۵CɶGv5c*.{{d[lg9+L.tfa]}͒QnYw4xP/`Cvs X=fA?"uj,YQUql*} RԢ6,}~H^$^zx| RU.'9ȇnn^vyL bQBD$ PIH;x@bI̚njfkxv?n+ku_aֽoS1CT/Q`zZq]_f̒M(9r亽Bfsu*C\eTZZWLaPӪj*29ӡ9V"uTCE~F-M(Oȟ߂""npDʭ2#O$:Xiol ue(CmR֥PY"~%^d'%-!*JJI P(-My7;yM{1o1uRcC[*KF!ErmL^;sJcZ8٨mM6cjCWVЖJ"OpR+}3s pD4ʂ\/N¹GL{AZr  tЀR45jz>CygpD ?@Mk|pE,jb1qVhh+K@#P)8".WWV͆|t]"K/ݸï;iwjC*e tm_Ry+{h$}e%1܂W huVx%{r%TS). Th$+&š[m7^?l6'f~U4BJgN1RCOLCҚN֠V`uU$U@i2  tykO* z>:L3+!LW!ZL&?~)y-0DEiHZJQ)JSED $7"Q-ym)קBueJS[wQ 3*RHA(U-Ye7Yѯ SK,JL%:P@IE`D9DP!vb?":Lv:Qq"ё5Ŷ;ԯw Nf$x]RZ<}$%&AM*4)[B+Pd`fkLM 9P ~ץ0Dy_40Du:Vӥ_@5)ҙ"7eLrZ ^l RPEҞj<0b|w}nP׹Cjݦ5YiU ާO ŗ:T&$VI3 ofө)s{KHnYT O!ďy5{Mhe%W&WW(ڨ š)%KQnI'eLJy֙[IU3E+P"Vh)~5LBRjIRj_P>xWk&LaRT<Ԓ@JSY@+( $eB+H5&P59{Ŕ]js zpUY WQEE%B&Lf~KKL0qCJyvƮ0.[Zz\ka9s/8kq2G^*R*PT*ީO5.MZ/qb̐iE'l:k,$2J*\@[_y"pIfN}SKf-ШJ B4CNHcN}3Q 5V*n1U]:iWId\~QpLbqQrCqзHaHRR&UkG 䶓kLE&"dHvBXi%#/K¡ )$GrrX8#X[[~qur;l.yiR[m%!!t[+m  B KiM?tIHLOA*ǀz}aPeJZpP .;q(=Ee%Xm۰Y(͵8`+mYRv<БV*0TxXw- ABROF,XCTnhqYsKmoOyZ@[LDmqmXB{S"LE_6ȰE?25{$^sk|am[B 0-oXWw%f}BcG~-."},Oj7ʄ[ _Ux3epr ܇62K5*utf&&RTEqOoH[\Є-mRvcf~K2yNR 5wVmBcRQw}u!%o$P% ja/<ڿ% _l-}A q S9:QR3P1=04mpsx#-sRDJHP]_T2FaF_A:qm(y/L|)2Qo"+첤vV+U(R5P8ZTk]H$1Oҫxg.)EsYWRJM3P>LVzvԵi_kSS@u4}/OkEH&@r*ZZunT]~[:g%3xZX.fr >4r^~> m,q-($r;OpCJ"Q?޴ᮈ>蒕\փ7quѤ?S. N7)k[Jlb=NDH5UT ώ1?*°p$?ۣZ!lCAB%YuQ[z$Z7=@JTcva9K6Զ˛>(S(iaf:Ě155341jaшIZ"-1ZE, :v)[8X^@/CT܉-eQ%!z˝lV*K눗dC!Sb.QfJo؀j;҄XncuV!蹒#9 f}: m T Z[ a^]o- MX%;w6XcKЀ KF[1\>qT ^cXOqh2۴`oRx)cYJDU{\`-u˭6Vd4źֳ)uirtF:z8U!JH)NpIpXzp 4ɋR6Tqº$\\G QE:Ǥ)Ge7%NLJ[zM\u罰#rKqDڤ[ZO,R8? FcX@j-e78x<<(yX K*@BBO9bbvqw$Ս,_Ȝ#% Q^f͢uJ!lyο*JBS./#5 6Pܵ:g>ECkmP z$Jr1w]a"b8[HmYDd3! m鶲G& X97!yO0 ɢ*H- ["FfBݜˉ0!)[)*[[, ZC9)b8p`Hfg' M6LrZ݆M߉nR`6kmr݋U-]HS#)E8ET}L9L',0ܖkJt5ß610#9EhnwCUùdL‚.yr;(- QBv W:]CtZ̺0prtOU)cc#RsqM^JZv'`hq،ǐFYdBzqR]+MJBXvgzRyz̟_Dd,\U٪^8/ 9ezͲo3&]hژO5ql9UXpcO㉋_qsN-A[Y:Q3 = Ehc獗7&gYqn|n2nojsfF:|@iq&A?>omۓN\g 7c3$9靕 k.lf#Q/JG֤w}y^&SCG)߯! h]s8rz" *L AJw^1RҜxE%%Eq"vsA‹""~2$5q R 7b|T6jFϩOfEohRw:_Z[h0cmIy/U\ 40%?%.R|hS^kz^-~TgR(Jˏo J U3__1F\U!y+-l6sj* R_J[qil)-!ժ>2M>l8nORXyٶ}::=[a:mWW( WɈ=<73IՅxW⻽"$f7`hhA:~*O'J`'!tb|s#H]GC!9(נʵ]I#H'<T kҴRpE|5)($f*oLϹ,-mW-qd(Bpwk=]unR$udhI>T* TmdGݱd}R䉉6t\Ṫڋ wQVUVaN$謫5<uN":[\APYG$%)HԘR ƴzS݂!#0k>|DzGSJP!\Bk=>HO)Dj=FUO}~Uc3OraK-^EDŽ>@ϋnn^ wÒ O,Zh6oJ'P!dJ^W3)Kte+*%.٫E3gkK܆5/ř/-Ri TVwM/Ɋ16}dF,i'㕈nn![ Ebd(N=\~ ܣ DV֧*l#tc25Zm#',|r:apqp.V֩ON\ݎc_XOɣ?P^X!jK5<_uO!L!Pʊ-bTA2hc锤۞俕m\cӋ{ٸT%ZJDzB$%nLdN.#.ȷ7Z<ֶ̧*})(+ -#bo3c̼C\.iiQ+lI.ikJtZs}<"wEp<Y_K|n(6 :y>4am6Y%M)3%JRVI8bщ$@cdBr?"c։ ϟ1IC(J,S@TD 5:MͅǜkJuqШ$MaJ$mM0DuP->^}5&ZPVJ 38")å0D ӯ kZg]թ_1N"VM40j@m5V" J!~ڤ*RUT N W?Uuǫ:~!Z}Ksa>eqCLF&P %]`o[-J`Cf3[m%o)kR 8TjiSJ`9ԀN"F1"̃PGjzZCf0Dt:zM:htsWBtJt i!Qz~a2i\ʂX"hKŞK4ؐL:Y0J-ԇjbQU Og+o G\G +S2$ɋ%10@C@PKV5~7ve,2b$2Y*h5}N-HZRRt?OP  PIL/\|pD C>zk<~-fr Ɉ!VOP=9)^ TbUM/U+]#Mjfk1޳n)՝kUvGV&GKZ$J[GQ3E{-Kgkmf2W==Ų.{Gqi4obP-+6ŭ68-=GeRvBb1*WֹdbEP QH+* Ce$ZPs$j?nA)-kJz0D֩X4 G@TO9nc>"Ut:j: қ=u%|WP` T2Sf"ː) 陨ݟHJiDDꢐwdI#\E{o3wz^Tv6jBR7՘mcP?I$X&~/JKBm-*-*t܌#(cW.)OL,x5KhXGjCI4d4yҍMLR1m -ج2%})`o8rJ$lCRnB3,gt/af$7 l6!e[{Xc%خIKK̰(CmkBVRĈJ8=~4aJIHec)3wG.KSmT֔T^-2}טZJ~$(JVsۉ&.dnnTkYh/{5 :P_ YtHB> }9e홤#bT8S;7',yV#l7OQ/G$]ĝjO~0q,\""TwR2wݎ]u##Q'iwG4 s͂3lZ5笷eFQ~8Ry}fE!ʃXuA@piJAD*ј^J=CU;#9Ft r h.9/^ ij ڝSJ2itз T6ybv0@`V9nY6V=M җz\tB ܘ m%ʐ6w7x'C׸P;7}-S_圆Ibnsڔ:M<= K\ Y.8)!r=]QPR gq?Jfq:&Nxsִn1.m_5]s>9q^ Ōmy-Ęou%SuWz]L[ZH.i Nh@AՙNW%fgkÂD6ew;|CiQtkL[Mv0{#KQɅVtË$d1d"y?>ׅ9i5|hrWj>Hok u猸PYv4(*▘ԢZ>ڋۺOG:hȎGcKwҮ_^syh>T,#.)pZon6Yr:LvKQ E~:zF6b,.$96vraS6؂IrNdf2 IET/ԃڷ֜Ƅ#!&mu>\tǒy'd,G#^tzZUŴeܧ\iIt%5l CDowDD\}x|GAkWCuf[QCۋ$R&ڸ3jK) 9P̖#橾b{Qfǐ_lhmLM'\\Hf,,U(صQIq1K7woZu~hS"RR#ڠ:"s!#.MBd0ԧw%$n }%=7N5!vVʞdoC{ڶY"Y9KY @0%#̷p? d?(E6&adNuD[Z9ww(%!mU#$.>?AkSFHs&qyJ؋e_58|CRmc!Z-2Sv#,ՠqn C2{ϟw^~k97ZeEfoXqm95tCq/rb;!Q_b48v&[c;; ߏ%‘J65Njr(2DMO\Ģ۞֔ԃ,4iPM~8"3'ͶEy.\[7}BoKrzP J=P^Hٳrd#]eKYeF%>/!KlJZK"x}ED#A%kRK-[L T- T<ċvbCaX@C,0Zek@J@OĜHק(3'UJ{EʣCLJ4cR1!Њ`먡;i8"3@?!9/Jer'BT5pD@oBJ5FW +49e\ frnu( >vfGvUI$RpD:ΙdMs5ʸ"P:҇<8"'29?/\QҤ:!L2ʘ"?]zg:pDc4C3NkG@t7k<'nU4̊JI=&*se0,'{h*q§7TM3$,0IzP e4̚kz `SQ *`W=dN:DթiLzL:3B=v#ui[i[mHFRMNO!E %)H@QJ jHUU:J#drCN(S]6Ӧd+Ԃz" J@fNUH?z\Nz)@.-M,(@DOjG\D6rkTvD)Ym%Ly,< cMT"[rn2Ka*fv_ ɵFPDfl[Qm)+: %%_*kzxu%Zn͗3!) HNC`Wyѕl)#Dzs-ZJ]SSSzZ BN֝ *QC^ݾݕ~क़5Kj &fQ*F sc3C#(#2 J"5?Eu*$Ɣ9%:1OA_Ik1_9`m;OzA> ۀYƙ)UUW^ursnEoHT+cI-V( U#Qj`m*Ɨk-1yܛR[L.qnm i+W(%v`~{S5_LƘ6(b` O͍'.fOBxorͮG)%1lrd6-o{[ÉroH q=Ikb V{7ĆQ1VUpjKkψ%]R#ؽMox*+!mրi)SkZPQV;;q1#)D?V4'pk0׹qf[T$֗Km;+[1е!BЬg=Vhwp'izQoZH:w-4MHXRSGy MJwe߷i knN-uE1Vќ L8tv[-HmąlTJMeĞ9O(Kl Ou݅2E}-nU%osZj3[]V֖U^@ ZEIJJqrbc!p<23F 7'K_xwe ;ЦөDϦ%2IJh(A+ U(gE^]޶$ n6RD\5Rkǻ}d O ԗ%j*Xm") SToV)SUUϊ P1s%hXjo;>pm6u8qi)[h;rPb@l66 (*$Sa&5hpP4vYcm @Y>UC(eLQ|0Х3/E%(LWJMm_i'f1ɤK024{𾝼P䔢6q^:~vvwc7\cL)ܕj0@l%Bpݲ_ɧSg۵(W[;[]5ᨸ''秒N4g#r["k+bSp’֋{PuʡAdMv.<.g{\QXQ*pYYhZJ~my \>uxb*M<(m]PՏ{oTr޲jUzz3pasZQE_v&"Huޕ9 ^)Au꼔;hEH ҏr&,ݿn],@c\S\ˬK8 KR婑a[ Q O4, iJPB 6ՅWOX3£Q{|VtqK<ԩ|~ydɹ*%|KDkk$^y؏'Y5 -ý߿{Yv㔍}[O\ 'N,R%ړp_BWEpC嶷*$]'AR80.6̓Njl1_"u52JeRXl@y)u9! BtURXofQ `s+Mٶp[U}SɋYumGx1!`"%зrQqu~On2MJ;DcV:2Dl̼ @v "b>󌤷5Zޥ!dUP& w<_È*HS^i|^yWqc~ӓ\$\|\g7>v]#{4#!W.C *htU# 927wsK+G#ąYp i*CVN2SICP x(xFޓq۷츄EnZ?hMI9 MsN% `Rk_9 \EUr,Lˍ%qJeD"\5䭵1FC"2$NPvj.$5ZdI1¤VIԒH"OR\~A9QPzֺPVJt8"sViBW^"3R |+CR4 ʞZeSLb\(NG^"0)4 pDu@wuE*(i>uFiL z<+$Es̑SC1!PBJkX"QB$R5>8"34&FMkLuSDMr?44fsr Њ|)\DCjs##9BEk3<0D~ҵI_`tjNdTϯ"}4ې)hH$뢍:8"4FJC`ңp֣nU~Q!ZMPP~WCMHM*:#'JH5Δ>LjI֙kRkLB":ҹVϧ,7\-QHhLCOFzIZVZeR""%/ ߣ>?]s;]ͷwZg/碫M}']5M>X.} AT=zidLO2MX"/v_]D֕ȌSu 2$k(A0:mQS =ZXQ`25+f,X<셥Iڟr@($S^UeVXV;{mGƲZ× |9Ťڐ*M}v5l:ގElD5 K)"]N2w)x{,V,S785W'd(VtR-IHKJmB"4Q6RgS"KaDnp";9!@ݸTMJ5R58&Kl|sˠQr%UGPk]u&/FJ'!LJLM@ZG,Mj@ˠ9(*>x"nҚ}AJփJI>FPd@SA$Z\0E 9rZ:S,2OӢ[69*1>& h-AR^)0RwRJX"&]9',jo]nl@{\XbdĹhiТ{D!2bmUX퓔F5L>JףtjH^XM42WyI@@jIcFmI)Y~Cm&CHZe4_`Hq( $R5)Б׭~_3Q/]  AP|s>4@NDgTU7mTWA}2`V緇PU8*H6;E*JFB傮22r5h gdnX,K)OZ䜁ʀ 됡¯bS~JH'#J cJ?ҝhRPZ_J` wn;JN5КW@iVdW> z+ָ,d+Ù{~Wu/Ƈ*%()pCPu@M1*MRFf!;VYRtN ([PfPFFЀ1*\z0O8;l? *nEȲ]өfJP[r[}E RuDeX~7K-N1 xV_w2fmje%S-۝#H5&;͵([VWq JFOvmUd~dw~e뷀%7nnEgu1PAWmf"R#I)8h <4^٦%^i%mq*Kj op=ʕtzvp^_%|9xjuj%2S:}IyN+qF iJĵIwsZ=j{LQNњ0rjB-J.),v:m;5HTčjdˁ ,;\u &Zr9QMm*rB@۸W\""aQtZ;gܹub9+Z)uIIq(*u S[S.) H82ʡ98HǛkR3$DD@nvNGi:aARcVO-PqNզkR+QsB-mީ}zQT{^""1&tf8$KR$bh~q~3ȑR Jj(Z@9 F-9'2bѫM[U}-kgڥ.EsdTsԩ,#ߋ }Ȗ( sj BR3;SɖIp:k[BJAr'{dؠliJTh*( 79|Gj~ (aDZ:]FuqÈ* N6mJA%HQ";e(π'ƌzp}P#jО셾JQW[|ūhp%;*f[8#%F 2Lf}j%”mD%Kwd֔Ҕm!&R` lc'ҍZ_\ #QCf%=-{H! Sk;!iu+B >1\h)a"r1 PE.XØD3$$T46RR }I-& bĊr~/nVqcs<= Z[U\ݣT-Nm4xT(V 0ME&.pCй`FJDeuLi@1Ûb:$- J҇rnrH髚ŐFQ^QK=lrPkgV]nASaHaEVNlAJDTTr)c2n,(;:^ӄ`<μkJh E_ R7!2Cn!!adN/DR""Sõx+7_Ƽft7PʐP6[pskn}č vJ SV#r%ӈ/܍T0qIJjo[I*SMu uqKT7v(F0^F?۲^iKȎIeĨ).!!!uJSMY<̤!]5~Q[BC8W o3r !+#͉ TLjHm uIB1Y&wgxC3CJSNG+c7 {q},E8Ͷ}ɏf#~:oyD!)BOC>MV{W;^wH7zܵ׃/$U^t;`09 "s-ڸOe0"Q tJ{OwuG`"kYxa#[=鶄@EXV<+j[3Y"6ī4*(¡[$raBH^3,ҁ>r^CEh~#ؗ {y}*:{63n{a"#2om }܍EGqjp.im]򷍥q#%oӤn}-ZZ% ?\~3,/}W*Q _{vĆaGidLDdH*smSj 9ڒIV2Jy~$-wA]j hXt[ݺ-.\iHnSn8q * ;L.O=B8mzZB v+K2r d!6I0Z[B.hxZ ={×g(ݾk +Ee=~ݼԻyVޏ;g[,삆qgECJ PvP5Yº]d:(q=kT>'_vLS# :PuƣKZ#.Iv4u~T8IȌ۳t^Gqj@U5k(Чr>N0Eg](M>uBpEW"r4SpD̀s?,D6h@M3UL+QCt4z )diRkZn9L(WNҹS҆9`R f HҠ#M0D<ZL'}4MHNE?`u2ig:T ҟ1Fr4z FtҿRzFTpDȁ[9I\,zjMMTut'QB}0D˥iJ֢r0D*M~A%#ңOeA==AF`Rægҹ>" AB>yr=(29` 9TS"#4!\\D)=TrHTZgJ}HL("JjP;k&zVKu3rR,#BRjsu$GASJԌ)>x"Y n8l(\Z!JQ)3a|HşבlɒcqK{w6((_w߂gr;dfq'f[]2W)Bֶľ(ZѸ:MET(i\G. n;ݩJb%0n&0e.Jt)_N3~ucuD_(fN@RipWIP$ CK誌)+#O^"i}pEnpmgEv@Ƙ,ZkB]r,z1eT+YA4Z$Z-. E ]یyܸanwHJ;T+i*J[;V-Kvp1[z{ ~"3䅩 `.T1}K Ǹ5飜uXcK*OHդ+B7ž/4.)N XܭHva5A5SRs9694`|n .&$m/QL:m-sè'-,$Z cg&PݝQs .+Lb) )Ĥ$ma&q#pՅ0︵{s, IKA֖[YS`l(q8*.;&)IN0WKn !} i!WC Uacuv{D&6{PIܖTP*F`y[ksrzG?pE!Q$-qC V)Ca&0^r൲@VNCAΖ2Hm8ˈZ3a u]U@NGzlB.1QKU6AQ]3WN%5mM-T[)RҐT6CiNBUiGu=9%42.BOtñ)yr a?Դ־$ZB% RLKv~;#cv~afXn)H Z tJv)Dubی"cTmr_ sdkm!.6i-)mM7ZYJUDҹqD#h6·C#'w6 7ZIm)q-jXiikAJ[d'}wUE'h!dN TxZ7HZcv`ۓN)ylVAq3HJRz Cbd̲iJK"!Nn ޤШlU! %ji$(1;_[pFәճ.y9%mӅ ;%]% J S,LD7]m`)U_LIpڃNHT4Ց,,8鴆]%JJ+*M ߸QNwcpv.Do8d7%R_JIV%ͥ1SoiiƗW [$WW%AbBˣ~)$C.O]+۫S٘X#8W9Cc3{;cU, )Y?#/A>c@㫫R AqJU\OqZ[& O}53ozCiv!LŮ;ԕį#5tN49u tzM8/?;f\M}WzϤ"ަy?*u?3&ˀKt, %߅Rw6eb-\Dǥ\R4.@h" r.+8p򝑎m$ }-ۋ~S"C^oj0mL?lSЯ, B dF̆V7F:1$J9ջΕ/bBr*"(\nD"mP;[`G-($jُUkDPYpam!Sc-PYnIIIu(!1"(WA= / Uy[ t H7}(O"QZthApDu?:@Pu48"9֑rMymQhD۲P4TA*(P+=Ǖ=< cuQ/ !/Fe[qT}AKXQ$ԑ\>ܨJkwiEû*eJRMv)P+83s4,h~X"?ٖg/25;Aֺ e#,Gt=0D:S02#_%*M(SA":MrW_+BUֆ:+Jt3:`Rd`~[֘q_L!M2ʜRZe#{)lR0Po't +$B Ke}-4hJ:+fkeöC4{ [(RTJ!K5Q)9*B} :jRg}+zrV?hEBљGjz``Pr|lRu1%j m*)Q\$΄E*~:A p2UJNT&5.T>$REQŀ]${r:ZWM;A&~G?b`Қ։TRh0Pb 9~? 0g)#pȊf@Z%BUMS<9"M6k#pȚ z%CJ K҆9:Q鐦>u5@s)7jCnG}uqRBn$ jAE$h1 12vPCH@ҝMI&"MFA֞"ͪIN@S(kL9h ԣ&r=\rt~\_jGKB3i0)QPCBT'3rSZ~X(fdFj\h2<%n*fYds%S3tASRU:8+D`W?zPzt8(D}VCZPB@F}hs*}&Ln {PUVS3났l= Eyj2-)?%Z\`r0Yӑփ"30Yc"$6d2-4ఊTgY}z|dh qkPz \ %cz>eiUPe^iDmp|ADgpv%.B8j8W yBr;hDD@r B \g$  "BBV|9XeɴYe]7GZ~Ou Dm%IQ5Ǖd;=5k5)VELI$j/g%§.91Xu1 ZheQMh ZBUEkeXu!9/U 1ZC§_뽸Hcm^dѶktfZUC*pUUƱ(#BR/^-{Ra2h]QVԔ4mPڤR !!pc1c80Ǐ fJ^TwSԗ44VNꦻ9u " Ag}|)c,3=`hw6z! T8[(.hVETper`[]`r1~ӊZnJu]4-QtRIIJiQjl9%Lsp﮶/E v7kǟӚG%Cd*)Ola[q̈́ͅgnsՉx!b럐g0)Ͻ8CC+D%.SwmA' t'V3pC#ӂ%&ЭyNF$w!a vv:^ը^.YV8!nI2V qIBZKK.iCn%:qq[qǏ6Q8d}}® 7=!M T\lE U2N{W\exVn&ⱑ"wEhY6%M8 t!\ i8NB+E 8E.!ؗ7l0m,vgb9meEE  *l] Kae/`ZwAig\f䘑f<Ih:e_;nS+803x_^Ʊ(ۓn%+r왭JUڃ[!-RW%JE 6iVD8O!@exR)JQ:\qQ)*۹.NT)(HH O1,)grJSsN3ŪTF%*mO,>>[Gx$dAe֧NcW2Đ7w *\fIzZCЖ)-eY w('ӓbAބ~@8Ib7x-goQq瞎K*KymT ۷: F'sJb#Ũo %)S@ڝRʷ$V(Vs$ŀco)i9÷zCh(/oomMNP#%-J9 AZӎvLA5 (o*Apk!A2PN3urZAv  PN1&'Eװ2q^}}q7(1Ei-󣧈Z87u(.auNh%~3pb͋&pŁӅVi IGe`ǜ[ɒx5 S Cl}Ѱ19#I9y/d1ИmAqT}[յs"U)p1Q(R& =>xp"mC3TAN<[ƍM2r䶔%]o$($% Xef~j߂Gؑ"kaS-/)$lK%JJ%V@D0;Wx/>^@Wm8m]=G0N?99Mma q@Q)<V|Yk^ex8Ȑ81ɿOy/e8o/N%MȸxG)+5nCtjK %(>>\Xm>*Xt K{߷:tC)*2"##?\v}W`V+kx+zT_XM)S\8"It'O\ȡH9EM9fC̜t4j2Q=,kBŠ%-.Ɲ÷h hȌ°("CcNplCpSrv)M0 C&JHtBP|\!;~DfZ9:h\"#3ct<IZK!9B+^Ơۗ瞗u }JiiFejKJ H+P%[ptRB)5. P*\TJQZ|k#pDS0DAzR˭rʵ#L+ug%3ʠuM)\X~48KLGa%in(M5c1 v[w\>4925'*W1Șj#H,9QxmNm$-Ɲ%2eCl~FE8E0nw.{̓mpv, w> ËJP )RHMj HBDTe邔ZWPhrI58">>ѝjA8"NCn``b:ր:SB,CJAG~Iֵ9PWZOZP% MH=4$t~g'CB@wj-$rL2 . Z+4V2&9NAfu.$;Gjm0%QH}"%QE$$&ȳw+79hr˟m/N~HqJ`·)woopDvSƌ*oi!!vn*RsoS]OJ P2!Agtl_CP*-)&=s;EIk9 :ҧ1%:~":j6}A+\=ْ(2:j+KMURTMtI? )`{HPhu邦v( WC&J)KFΦքdO~Cʔ<5:iLJȉvFw$erQRPtQ9u:@N`? ,R΀zk2 PQAI,(W:ME49LKM eZu90DiAjt3JiMǮ`Y_{N#iQ9zzWJgRH4#D>S$N"RF'Zp:`CQk\ȧZ`WhҕA5A+2 R)"<*kZRre6|[dGfYLvTqi 4ZޒPjPĢܩXDXAD d"YD9 ʙ7d;2VT@eSPIN];Du( ʽsS,>h;?HDSn ݡnl'Py֔_v"c={7nyʂ 9+:ҔcijV`HeJPQV[vcufs4NYiS zXJn$hhuPt1*BTzL** rx ͂1$ryybaUc2KRRB6iNDF:U-kn4xyn+>a<6kKDYw.p[ioon\{U'(SD6sޏ+'IwMs>>Xg'FAς|Ȗ1bGvE13[hD2\y %~⵲67FxQrU$\p?5_rrYPpVYaל]ȸcv+ 'N-Hnj 4ʅt1{DFF|Z,?c2#*ӻsZ97Ԡ(!l*xkJTf1Y&LwX c^:f s0[JA]ej.>k?Zu֌*WpQOmTWj1L5h^ȉ3hJv5u`8BK}(DP7pEPk%KW+Nz-iHiKO(QrJpjPr \,Xoqld+"¯KqK>x%ә;rxaDm-z%ckKnDmqջ, $)xtN,m۽d3D0SO8{EES{^nwKf~ HKp(l.Q1 ,y{MQUosu ]i6A T!RJsߐ=W DSoݮ=skjoާ*3O6\BդIE]KLRԒ\B{Bw%V<')0G'^[?C*eW)FyKd7qn6߱ӒޒۍVxGQy:OgvRO4s8c}c} Y⾎x_V {U5lxغAe|l4z?_y ̹$MI$,cA FC4r\C_D}KwM!bܟ4Jd)@lϊQQ =6 NGmn]ѪjF*ws>Yȗ&]ːq+{{p>U%YZDy%J*eE_`/Y=NMG^ Z?~9rʤ pY:CJ5~XUQRӥM4SBHr9$f`-s *u"t?~|S=w{}*ZK7% rLn"a-^흨H$Н8"W1E&OiUUʹGy,TJe *mB8%*(I]sKHw7 5orm #JYmq$WCBHo m!++{–̈ =L%$66F'FUy֤@299{k(;NB֙TWJkM:TM29kfW<\*iZiPBpD39|5\G4h(oԼz^9mjv쵻85)IP@YI)Aߍ$;WhvĈ7/Ѿ5$RP%i RZ-LS71"ner7wxj@ ]ei,!$Z$HTڜ+R#VHlYRg]@JU3۵UUҢ\Z== F M$$ֿz`9Q閺k% ztLpDsO3RCIޑ![ --1JC$jT' 䜲d#mMOCbCУ!E*|mq (ܯ<,I-NTٹſA" 4a[&*.Bz1 'Mm)\[bEA)Zfa!\e@tlR7 HtS!Lֆ|r}iZkCJT3C*mL*`ʀ3':z3PiF_uh Mu: Tc:$PZth 5$ eB0D`*4v$nPW%nrZ/ȌkJ`x%M +AfMEIU@IRhh>BJI%z-~88R3;PhcSL2lV2".~ӵW0:dpT2ăǷ( WuL@:*:!*ŽNgZtjk}*pW r[ JA#sK:1=Svy#,ʠ&uYJzP=%D1uA4OI.*IsttV+2`mЗd, =0m ZP;-j5:ww/.vYN-f嫳5rRg&rd6)t4J1YCteT^cElrۓ/qkh9_ך||o/vD?eB|.Rt\+B㫰]4iFQNH' Nkuyx@# w 4p׊Eq^bKV;]田cW%m "1c댞fz乇&|BXc h(ud*庮ØЋ&wzY tgO1AosFs})J]!L2KN!ߦ[hiHZiM UTJn8FGAmݪB{de{ܱwzoB9KF:CrB(4Nx1!nkyגїM-,QRu[R)) HZ@V\j `~ڋ_&:HEۏḩgtv?0"sʣ\\LSZzx&IWB JRjTJ~B),[8I421S̲*dZX.-Pn@\C/FmY1c?,GG/ƫG8`_YMϏŝ.|ɡMZ6: D+29+h%MdDi fmM*& ,q[LI: =\S\Ӄ;L126~EΤ\Xtm˥"ڭˀ%b"vqwُMs2{ hky uz|^2"r#KX>V_ήs_yaSVv,3n8%+l,!کJ*`cǻ3fIW^K3&\; i?Gnqk[/jhov oC:NOSsɬ4nz=/T|~Zo3[\ܭGC ~}盛%X}ͨwÏ܀?z*ɖ^Oywfj x>{ۓN;`7kYpYPLiE>5zna+p9kmqN{*bIAѹTGQ9F0ÒQkAw|/ʪuarq~\.FϽ.fv'q pHRbP[QtFO02}8mʋ&2Fc5.ժxW-7oFd.?|$;wk_~[IG?B-Vu@alD \~9qDo}]ּKtNMߓVcEFu񿙭*i7|`gQ-R;3bGl\]囤r"%5 JRxDiD[1}lh莪Qc ?8q!{;m:|yKd,6\; [vnd*DbbۊE$o9 q 52 _R%ށ;jjKMmB2 PPhi̐65ɿҮZhLv5vVja1s!THvwAP fjI2*O|.!;|v5@DpmEô& q$mQ 8%@\`)J7f; ZWz$F& =yTD(L"j!veLuˎvұMPIEwbL(t rlHkmw"m0d lbIh"6|R<{|#Wv"b* ;5][zC8Ȓ"=1g;wɜԵ+;/~ ׃Kbqg;2 SB-^%hC˥I- Zܦ^qnt-vA@sN9sL1DbrǸцT-=>z.Rp@K`絋~iɹyb$mCH6I`FB:IkW)Nier =1ʵ /:l>3e$777 Q|r:ars^8eGwȌЄw ؠ;q^W2D¢ڭc26ψpZ}T*$ާ/ڣrBY Pp2%FJTd Q H -!ŊQNZ( L3AZW0A"ĪTE(2;H48"F]rO3"% zKiބ-A#sJ*TR@#Pɼ wqBmǷǽ.2O\w{e$hF !.]9 K~r2& v]JUBAhp$)oO=pnq.L%vh̵*d 9m]JB@PnR;G5*WĜB?ZQ)dNuֆ3IS{MNT)Jjt9 ֕ʃOLw痨jC/_.irͷljeL%%6%R6j|%$j!nI)7VhsOhZ A̪UY΃-IJUNu?DC0DS'(}tJݩ4$\EVj@jzhjV!bZ( )Z#!d^]#*>YJeՑJAʹsT^ue4V*fM)I|1*Z7+L7$~un(IyieDV"N%U`QxE)"]fcbr`) =)ԲeәowZ'Q2$W:tF*A҇JCJPd:Nz)֟3L*": 3i5Ҹ"Phj Jʦ#`@Ҥfjr?a9`=AkAd_ۂ#wfJpE<ƿNUGL8K,v?[D 4QJpUC:&K"6oBd < %Hivsڛ"[1-|2߻Or2NnpZt6Z{R!hIC+KvlӳvqqEZ[CH)iN-JIHʀT ?Pg'@EkA5[A@QsR#hiIx~PgT:fF%KB1Q*$](=q ́:%m]+CЎ8*#MAZnO͞5ĩ#$m1 j1+0UDo$WY6\I kteW2$ʭs],qۋQ-wCjC-)ԢjR,nqfX},Fn]dz85./r( 5!kXKm@q0yM&#Po v{-8[m ('uI_._qWۮ>B_~ǼwqkĞhɲ= )п cLp&1"|i޽ϫܘ|y6l8Z! .p b6\T *VjHJP@hM ]bbpW,r;y<U5k*$&:!Ԥ,)1ȃP}96r~t 4Io U%6EmjBJKvɷˉlwt"۱D\u#"#6pq2-!/%)ZKM(8HڇLu#z@ Q c'R-2 IoGyn7"4L퐂'zyq@8֬ҼQt]\}2`nnlj׸s3/2!BQe*y8+UZk~,n. U'>23{1А.ס,ԣ<&כӸ@y%u\?>\ ז)>FEJyv(1<7\\mZBK*smUJ$37f3cȑO ^C}^mwO[r˰ ;rirlhˎ7.@ȋvcͺ3x!.ㄈsS`1"@Ȋґ*5w~e\2WKq])FCMYO/qƊ7]{K)+6PvBf:ӨZ\FŇ(їfC,*\ rtj#S݋jUb#2Oܝvqm巛e5ja6PrWZzx#2^0ZrO5%$r>AKln RZRm/j[ R4stYc£pg]iHnv)ETo6oc Q֟9z)ngIzKqe~87~;A8듙[qi |SG Wy!{Ǽ^+#IxkQxDLJ&p^+CN imD,vbI@s cY$T|.q"jmrn*Q꽮~]_Sgvw\!˾mx9L~il&\Qɵ:&m)X'I{|SqcWcOH4SBiK[Aml"V0f;-2HBhE@ɗ\xe8 Kԗ7𵖿O˟H3͒O"Mdɨf_E{%[-- 0^侗XC^ԺqwoX3{pZ˗ԆYgS@iE˻_]m҅k$g6R{aJinvk-҄x*I LF {w/ad$}8%sF1uU_$NvsΠVLȎ"d~߷]eXT!=>;H{{Jҥ $(*/r+$hfͦ:mg1[KÒނPSQoH\A޸ݱP͙xmb)%s>36v5A ԊµZZ@rBmS]* )A-Au]̙!Isc7K'5]MЭi&+f0 Je-%%TKO⥗3{yLGmR-M;oD jR[)៦^)FSQA_߂%4Wp_ Q}s@Nez*闦 RjEhzR/H=?7uΤ)8"U?- &צNAQ]:gdV"]*4ZZC&wp^02#JͲ(N-F`U {"hq⒀ji*&rkwXDIݖ3Q3ka-7oc=wIا%'9"ʫH)'L7w6(U;n}E X҅ZD,-;#ܶRm¾%&Z[; :|zJ32׷fYBI I>@ΤV$\P+$`]]* wi@RCne((\@=ziLbePߺC> @*?Ⴓ W.@OJ\'`^Rv@XFC>Y$q}/qCp`gMJ%\#xϭ NJRI#_E%꾾}fc8MEw l8-.÷ܖm%k(i x PĻ&Ev ZW[-܌vl+@9h)\v}u]nǺ#ɛ;-;SU3{=n߫ŋdv[.^#[ MQR1r&~g"SeAKW?FlnDzFR\Qmku평/3pxYn<xn"uI.\'#~*Ek]=?^,q"*n'z{|XsOvD~{H7&s~>.ϯ8nHm۠CThyٛSd}?}۽۰:X~Ycvv-=ܽ:oSH+#S@r' ϸ׏=|e|o3;v7ehLsmwKzOIѭ)i!z{n2ge U"˷[.d&B-Hi;ITq\X!1QG, PҚ1^n.`I7Br,}2[Ej♗upMe&K% ɗ`+)`\t0(c Wv^j/(^>-bDvDH,)ure-G[mQQ& ad4AbXrDUx3k:|)KO w?x'/Mrkd{S&% ~9ieQG3=oK=:9c2R/-_ƽ),0KLjDcc&%cZܳȖ[v7͢Iz _JRY s$Kp5$h~,QA:0w]._Fp~Cs 9 xKQ䯴838٤<vJgx`ʃ:Ri[q=}#8#>~i ͔Ҝ#;:]QG<LEZ_q+UK N(m +Z 4DrV9DяnY6!g[[ۊTVȷE Qgv첣]nO[n඙l2ˑR{l*KjI U7)3eqswc.ZQp-.!-ܠ#N)EZ҂i 떟 3?R+A>"+Jt#RA * $TZk`5t~f:P%ʄA* PC]kqGC?1 qcGЕ"+ܔ-HFTIH(K-Gfė#eT,~mÌ^6*yCi RBŴ9fyO_>\ݦm&)!GlDDFe!(*;NT4*um2-Sm*yuIjjh`f"κeR2k:ӭ2eR#zM39\КP;?$H \F.b\ CÌ؆>SqpDŽdJNY`sf#}W -;Q NO5%ꖷ66ފV$H% 9[\,7iB&SNBuh텼A 1(+_[nmzLmq羂\PC-=%;* $E(I))F5ʤm9jƔ#`]@ʚW'J SJ`S\\J\S8"P:|2H9uzVJ֕0E!gܝz5Oc(j$ J֣0 HTTSGWڤTThizpVYҐF[jQ'g\ cfJBM+SCJsN@`LoV 9S@pOGBEDTO XwFdVAJjjqr]&T K$Z\!Hӝua uY BҀkhG;_)cZڿDe3%" zVSψc-ea5Ri%$^ʑrVk_.ȡHMyNJ6yb঒k%6 E#9VeLT 4ϐ么TBP)!O"Ђ(Aj@bQd΄R_"?qP+A,dµeC"H](kQjpE"#h+_M2 }pDSAsZsȐ40E qYB;Z/8E\uimJJ4oYnv *tGvcWlgo(2d. (Mv5VgaSYLHR;K!U,S`;{r'ԦsRŵF*ZB^Q~4Bum@*r7Ifqr^wԥ_.H]Eםi[p><>< w9/o/8SoI@ezjJ\ԅ(O'Os4$rsS^WYcDֽSw7uϬ|c6jk>g~Dž4YyQils -Ǒdu1~e}J>C7nLp"bjOO'S9≟K+$X{r<[AŹ791 Cʶ\"^ C37;%I lŨܝW{/Og8ɯR;k N8dݰYKh V3{׎:Y;Rڒw:GAa YهycCf?w j~D9/qGhW)`Ō3EhuŚ]LqxZ1M.rh=j.odO5>uovW f2]jqXq펓@ԺQI'A>&q1~"Jp+ty:Ҟ85_V4֧BB~m";\$[ fThv@|P&ϟIϧ!{r>c]b㹅Ǽ8-ŋU"Sm0RX}+jVܮ[`$UBUA &,pϸoz,bm=wZ8K}w~5q^s2ZJ,LVt[Tiu3XJ='^k ċ Az׹QG s}٠q^jt˧is,ˎ[㣼R[4; }Ŵ4l ~+q,]ً#4X1U.:Kq#?5n%m?Y$ "O$'1VRPD ^kOʥ9f~hǮp!%&Dy+Czi >9e_ZDzkS_iM+]E}*0DISiZ0*) r>#<Fܮ]5^E/D ƉvT h)N U(U1r|vᆭ71qÓdz,c*c RvE:+vյ'#ĉP[aXK̏=/8ݲsmrU&-ͶIuhm֚PBan8s .J5^1yoj QYIQEGƹ()u\*@3_Z"0z3hkPМ)ҔȚ硩T?pD]5Άu`]u(r9tjc'K ufb,v,ҥU*`lE%Z-2L`̘f4Jh> 9BPRuVP/[~ёu6gFe o_XL t+#{"QO<.#6XvVf. [uPpKQ{'*#x)AQPhr&A+@)Ph IkUpDNH*A*fL>e5>%f4 NB~lX",WR4kCSk\jM*{s5":Ԍ\ʹ t Fy?)mܦ4솟jd9!Ia?V(P 7;n2rilS- 6u,>R:ڂH*kJ㐺VZgJ1R30R12J =mgJgL8g); f 9nJmm4|GCB@BKRש(kJb_q&d%#D:L8Ib}vʼnR]KkR*W?#u&cJkMuOUhaҁ@P H ʄaSb[9.Nܴ<íJaqmIqn:Sm-Zeݐ6%JGuAU4Ҙ)YwMJEAt=(5Q"b=)D s!b8YT0B# BUR4Uҿ@ۇw#C#`'ֈw5$t$: Pn$2֙~U0RQwTkM2)5+ۘ`dYܵeLH.BGvBE[C%IvQ 끱Q!?쩮M>:?pKZtgDlZP(, H$b2-6)\lpfܐ~ JʐdǒSwqi;(LMX*cD/7k3O7e/}!n8*Rq'L-'~J@Tzh3q LJ&}AYR(k%Z`2\$Д@*>zq +mhG_Wh`#^۾ 5V1p|T< Jdx1쑱i[Y)HL(J y|a;_/Rcy#GdW\m|6} -#ZRQ% i%+IQiPHux$`.l vHz<4cW9Wy+wkx̵wkdDvY :Y% ZNhLrqjKd;}Nmsqxcm?r%.Ca7rSDr-\ S-8yViS.;D6^Fn~8K]?4Kn\.$mlUzDE7@]yhuOIBw4/|!P_K]\ 觙!"3'RشVy*NYnX-q|~|saFJJ\S\Lӌ -;sumk߹7 wOO}'!tЎot#HݞЋ.#ڏۇ5]D؏>/wSQ>%=ۙÊFeGr׏Vqlmtw /Uz1{ċƢD6]m셹jQPJ*JBU.ƚ{svҀPBJ~(S*)*$+IӸ'į-B3y1_:W9ڄ-dʹMne5Q^Z1y|Qp}n' +*\-ۛm$IJ 4ǜٷ .ugJӸw㶹InvDr)QTQԶjJcjˉ{T (I,LZvHs:'g"څqB˗4Pc_ؘ!7꿤Q" :}9%7>νV/zL21Q>]<;xc>#d)v\ vK[!R\aߧvSC`)՚uzGJ-iDgrbBs=.LreZ_O~#2qͩUٱfWbWvD`<{qJJےm(R]:pɖxAtmWhÒ#1_#a>j7''Z_p/iL|Db+v7 6Z^ ¤Eu6X0id,@oIhCSB@[qt:Xcۻ'"ńMz*&[.CwyM#{Hs}B@:e@‚5ȭRfKr."$]8sn.}kRڬ%JܭLx^S$B?jeH5bi|.z@͞eq{tl6Qtb_4Z#!ZsvӪwsڒz1,di %:-R?jC`h!A*KO婠HϦ5rD(w WK1LkFޜBJXB{-RHKRPAԁJpۘ}~^`:k#G!҇_ƚ1M@"2J**sNf924u5 )& +dS_LHcꖹ"v@~AZԄI$*+ "I{Y|}rQgL Qm^Ԗ6¢ RY\4r"Z.5'ƴHSoCK]kC-<.he؈is!*+'1nTEJBT(6 EJC"$/0RSJs =tԅ~"W_LpD/!t D(+PJrӮ""+ TSSA#&O@#pD>5ȏ֧G9~>>dr ɌԹ B~߸"TіI!*5(UT3T<\GO ՚LkQ#9T!gT2L%2L}DyqƕCDAҵ!+soqa -{ޠ*]0R$ 3=t 9|+J+ "3ThEGZiB~8":Ekc:o@5dA#FT e4Np9!N5  @"$V֙AʹzLwEln[;1֜yt\9Pd&3UZ#0Kq[P6]]B 坈,<\ͳ%6ȓg܆iKӾ*6jЉ|S#ΒsC̡ٮʲNnd(%?LdŠO6MįpDԫP*CKSd{9_6ր_HVB]4BP!4u$(>?r] ݧtL(iA +Zֵ`jj5Rir 'wLz 4yGmǞUBqU *!-Ր`%DN0X̃/q?<;׮9qk5) =G[/6\uDK;DGvhmIZC$-%).,&Y*5$ R M?:iP I$s;@ IW0E@"23zP#+!I\ 2]xp WQҝI ?߅Àg@@)νNt e/dCڪ垟-pRFʏmΕD E?un^)W^ @;w+7 zKC?&#}O%kk[wSM@%G3%:O/Cs9ArڙuVu*Bӵ Bꪝ(2u{%%]4x-1 rѷtX6f^;xm̻ ^[+@: hΙ1JҐjZɤ%N_mk)t5><(_BCmښnvkMKoy/,F%-P*Ax2~zV5eۊ11Nj|הw.cF^)N8;ZN SmPTnfꌤ0 .7QO y~^}4pV|xA7#}Am)AڥmԜrmߓ$,WV]awG\ ^ujXqEHdRRЪԚ$*=@OӁ {a"lsl7jnz-m*nYH@+5ڼH%57`Ip V8-kV./^Ϊx+KPSRB$2%*X]MG3+>$5[7q,YRZIȤh;&Hhś>\5o)}aA tf$@N驥1׎81W>Y2c;kOÈU6vRJNHwm@JomSGCz.Yo~ 19_~+h&| [)JQ#1moh5ULo25sb×aPV1?Cx~ĭ9ɒRɐ9խm[Em"Lfm$. QKBխ#F1Voe&M E(CP&nt5$ W:`% po#])[ "1eί> n)eƒnKJJÊK{pݙ֦q1&"!M^+7x!'-aZуv`k/[K;\C씃";Ŵ,:P ꔣH.\^ϯ/c'4rC5YC>})Tؿs@=VwduƮ&ni>7__iiGIYRBH-]p6I A: [.ؐc*3j0cPEN%L\"H}ղ⾨JSJ@%ꕎ֡;֟0s+E֜+iʵC_ ugnm s] JJ@ڳ$cv H%4>ۓ&lfDC([nu]-.eV΂ .(A JN1{ 'Lz|Gc,Sρmol{^ HQۿiYy ɯen+kN=-茩cK85OirBw=Ou=7Q'Ognk/ <ϡ\yk~78=o'4\܏kŭfzCR 4^Jg@6zM<݊%̵3`w^w3nHƜlU7_m|kVvn鰯\I%} uypT ֊qӽ=/™'|< Q|/Oq,$NgABIIq rku-ebnh(uןJpQB`BSN> s2낔FC]GJk\T k 8"NDd4TSFHHs#? ʝjtDD*zG5 +_2O`z:קHVlƎ))ZenDW$Mr0EZCǘ_ ]f%2:iQiJ0EoKR@ʔRr yPmW~މS2#km\l!΂bն Lm%.-%$pQNn%*QDȻXaA̮hc%~Hx-#yR@ǍSqJ??U?~'ʱ |>m҉[tQ68㠒PQU>w)q|wHa3>67uU2El50wIbُtLब ul͌d1.|{U#)6ޔX)(t69:**v&DJB͏{n)]Š@V2$[tM#@U-UMcxM%*?b+Ɔkx=*QRDқq\&0c $67[{M6z3Etrd4~ .cmSl&;oR [lDvGq$R~)>c˔H}rӻ*)dhS_s~Ph "4F1`9RҔ6Ը[ )_-mV?^w{E-NwܹXI+cNۉSȎqJ 6k~  y-ΫD#{͸Ꟍ˒܀W)EKyO!@IǣDatmA͝C<8Ԝ%݀ڒ=(Vd,U ^?25& w=CҜ,c7y4~ Rĥ/%%!D6V`_ja5SϏ+SafDvॶ]mJR]jP֕^σg ]8.1ߡ7`5**RB6(BA@X~8 #RԽj7RyE~;[L\uGoӳ[몧a獽r47m$B֪uy '`BXi((jI(Uhs sb%)F Is4*w9#|G*[LIH%Jlnܒv8 $dk#䷟}+n´wJQF*Tf/`m,/Bv9aVZm,#Rմ.k{ vAChUQ{JcF lZZڹ{•طYI 7d$Ҡu:7t')skԸw9f6ל:f@JW%ECM JSҙ h1zҶcŅOUg~HF }))'k` nB 4 ]1gjAPt+ģ^eJPn)B j_3VVBuD1<փU#q)a΢#6c"Dk;7Xed{wP`E+c8vzڠ~䫔Jc$ɶ6«u@̍@ލ@QS˧cS:=Ey՚<2!1y+Y*[PbBVF`s:'d?Ԋ?ϻ6dqI CaW <x*ιvXr `&} jS!NpuBԲfax#-ɇm7Z}Uy|pDu3?@P ҄Ң2sD:m2*TS/pkpDYס"'LZWКҸ"V7 k#\ƴ:g\ik3`VzҽF,0DUʤ kZ5"XP {9\TfU$uS!PhR/ݸ^,rQI@rz]2]1[u-dcOu9 S& PRՐKjc~rwB^;sr܉1n\)(A0o=*(k'orT'p]aw9سmCn~n[ Q-!IUPxقցi`S)+j;OK'RPdlhj{ iMPFyVrXeNdnU 5қ]ij @ׯ=?C IB+A=S HqA_X.n|e &D":,+~JTzL·N%U(gZ~ b~Lxlɐךҝq d>,V@qVhtst.mRb$9l&$0}&LZJYn"J *CQk|],ܭnBIċ#HBG"ha5RVDm\M^iPȭ"Tȯ,=10NN^ڵ$dۈFU3J[kRn.JSW[@jqDԚSuA:d>8"Jr)':z!^>`W:rwM4&믦_L떧cGn$i A,'p)SZ\S!ö)tֹuq(ujFuZ3ڦ &YE"!ȐR\qjR 6Mr*]]$إLUYcn3Fа]⃲3k)!ES n.U9v1^~H|f *XH-+y $8+\)oƶܑk,N0墆`~eIjֲykP*~?LJ&5 ?낤TM IH5 W=18U'FD֧!\#2*Jb7G^_rIRh Ftfi6 śs,fZ59ҵHNyYSh2GmeJ@k`4bzCrY,=~Bu5pVhLH> iCOW6ռԡ\5diPkb e Xf~|Iˠ6p:!>=3]]4ػ&$,>s1,]$ȴ^Mg[T/y/'|ɕ%TWe+(96$6BKEh)szg Xt2Z'p kz^ӂƜa9|V˦-BmGp)6׸ O6ݚE'LlNE_jL-yMM; Đ ܎E(7bJ}(Q|!=Q9 "q{ҍVRPcj gZ%U) *dob49`H5K2yVkT$HSNA4&suI I:e[Ao^XsitWa'R{b;2o̶H #eۻlXijqu Ôq "}]㙶(Z4Z\xJT&F9X$^ ,,LoŌD7k(q}-Q[a%RP1l3cFi/Å8y#_8ͮ<56Zx0'g[G!םu=Fi.&<4i%nm$o]K"e-N~>?YgON746{wqT&\NeeiJ0#c$1'-H )sڧNuM#J:ڗOƊwYqW)+ &?CS`w.D گHI)Ea:3'O?*]|}]WW{^9vE߄@ׯ,+QJ|PLkf~_"AQ P) )YiJn9G8"-':)͞@zn4kZu:*% S*5ˡȐIV Z~U8"Qgֹ~8"T8GeSeq۔ZA(-lҞ[Z pE ? P k`E4g`_if`N?G\ykPH$*GU&dA$ݯA`"jcD,̊*BRZ +0D`+Pg˯_ fgN! J-j4В5'Jk$u40Dc/LRn4>'\z`T?_`SW@l(|p_gI dntkI!\2kRDc2WZSuڔIy$G΢#a#}dF[^F2w3ZPZZy# RA9 3lf.2Gi$?7vTyi,<(Gp6+RKNաCB$>j%# |{Z ÎܥOd7CO!%+[+QF1-j*@@E?)Q"%dj^$,҄vmbsݍW} 'tR# m:آY HPRRI)R*ѻH [;mr+HvWClW-Ԅ=ʦ~{:lxĘ\^fksMjv (-š&%B]p!AԐwgyGkut!~uThWM\P U DyoPI4˕u-KHHJBR 58s_&z;f S#G` =!m)MxCYBv'VM C\ 9qnĖRsKf1(xʺ˓2Xtvu4Io㾔T*̃nIO lIJ?h4~or1pLIP4dHe3e.2օ[RLǃKjE7GMmȫS熪XSװZEiſ Cn{!2\{~❥G{wR?$Lջw<^szC(m\g7 t~'jdx38Nվ:yȒUdFy$P% Up擈 ~MO268mRċ烫ly] Z{{[y>ijQ*2[,5;T[BV탊FFu[4mcZQִFXF""KP(_s2:Fj30:[ȷʆSĶ)hm%.mVBrrBPF9j݈eIO4pHT .`]XEoR[[ 8eERTVJ!EC.,rݗigbv:]Z=.\/pmG7b CnM-v0JCl:3MT@9,rb9^%y5H [& ېDc{x/NJؑruMI!0˭9VZ["BJBiLr%e;\]Lpcf"cVRR]dP JqRSA)uN!@]ĢQզ4ɱQϙ rxc_vB{\3;ҡFc.o̥*Jm%©B~zgkiF5C0eck@Kꞿq Spgw(ۋS{J tיc!}Zt_Uӆ)B; `nc* 8{RY)Rd[C^B"HS^ĸғLJp1էwʝ,*T4ev[B.Gq-KISFDŅ8HlSjAI881f75>Rc~Iip3)̡],"k1]q jR7 @nҜׯf16~v⢗w7%6y\Q\[K-8mĞUCsdbϯkv2r}ߢ}'ҭn?umH8 ]>N!*J7:QcC|rnaEF_sY~X>wLgA) ~BU-K-@*A$]1FɟbCq`iK8q´ a=AOhm6{,& % B6G꺌 IP^.|Cqx6,vKjR!kKz{;1>:lxE<;NNdr'M(R(kRH,zYb*44.c#OQN'1(O4W:ʙ\'(AVMk& M+P@u>փJ@jA~9!_jsO>i8":@~"AҿF^֙Q_]0Du-te/k tMҟD?"R tVҧKQ BR8 BKirc{[.)1ҢcmꨗV6Hq"N[ܺCZL8"$k4[ @˧QSQ#/o9R"*.Atʸ"0h:(hM.9z RFy뮞"4= 3BsQ& }) M+R)nyW#\҆!9Чc^j+ M:3W>N֙ӥFiG?%e}FV<CJ*Σ##I[ TJm`C*C*:W\3`bj$pZg(JY2i06ۉ:ȔDUdٯ)8vz6hԞGub, [^uru^R[mRll!YJC ;Q!b4VSj3Km!5RJY$N= A։A\RDjNuR֪ʂ*j]dniUA98(v +] )Q8Z^u ]244$Jd=q*,(@+HzT:ۖiU(6RLvsrrȝ x躀h2ҕŕh=YG%сpHZkJbQ2 D^EghQ%vJbBBrV*4'G$mo-ILh,J&$v%LY t2$.C4OOu1JdM3\D LJQ,D5)SBJ?۩" ̚iU̞X=OCk5*)kPLRQక==AL㋩D\!B4 hN cS9@Q"PP+.BoQ]Gi*"8,Jvg`P@?Uk,qnkdq@{kc-IH1BBVES# /JƔʙR[ ;U'=2fedü1-Ϗw!O: |1/N>0[1HCAT\VoyG+PyD8%]~.OcĀXx]Lp\Wĕ4E0Iy+e+ *uK?|@v珒I$4$>A=>9_T;RXd32.2lpRPB@ǭzBOFxާ!K47.vYoڇs7Hr3CelvTWmS# {smW,?p$u=6)c 2e[3L)HnDϧTGmNm#-2ܘu.oԓRIQ DUUy@ '5rd3PkjL*jQ]ifzHZAZ)={V $^OR9,nYο%,qTG zM&<5,8!3J^VI޵2= L'Lwvۚˏ~'F"qͦ]S'T&Дn)Qi:@U@@cb#-&U> u?FU?v^p+_rBiCZahX;!()Oq !]RN`sf;!4bG{VsK :[6{MYTK- E 0Gtm@7i)nߐ-z;8&6}YUJLo} %o *)T hID/AN{QmKlNrXыF5nQ;n8aA6nIq--..9i#M ~kqDƒ.׫| -yo=+iQP+qCN2*WP+J7f۟V2NIGZUu 2KqJ(Y%+ޅ8jRiZ};|n苾Eك Jۈ/w&&lxZ%-j7A@%8ɏKQ2Omt˾=["1`nN>=O'H"[曆Քy g~l墧 {BRkPM !3STүO5tQ !KjnG d7"-+LD PC"Tg̚zk#\ʵ?J Su+\uu4#pDdzz},+2HЏP:P0D(A+I]u#vDX"N"kzgd<[l\b"~Py-){LT m!Rw$`WȺ!rqgv3e;fH.hBˏ[t qI tQ'^ZKJ5x*5W;|>k2PFڊ%EqR32Zz\_+_`0E3"pDaJR!*PTS֟\ 窆u9@ ud2 NDPk>fr% Bw&ֻNusD SʕrX"֛:#gj,8m*SUT HJ L@M"fX6lEs'\-<()m/zCmܐB9%}μ;ɖe9.Jݟ7BC" lX *7 j8)FCM2ȃ$:trSr!SOOi k`Rrr8":ׯʿ `)OkX"zֆ34즸"&*Q?P3Ҵ㐺FuhkJ``)NU ~I9@sg W IJg}@(~8*ʕj ( RMhkpT1 @#"@mݐ1 5 [I/<.Ίs?<>&pS&5J9T\j^!DU+#`MZ]G@ :+Yi\Gִ֤PSAJP kS^3֢"@I5Ti@*sk,ң>SFqI*M#P'I*58"ĥ¾3!$jz Z0BreA},)$$mBFDwfsv5V>z2|Ww$Rۈ qqfPPvhFbZT/\OϠ*KEOM BZ (XLuR2*U0$ FRt?PDj9r Bt3 TԜEF`ɝ)_5TPgeFM5)MBe܆cqm@z_ Gޕ^)ju0D$. IsΧM/߶+P*+0TM0D޻҉yֺfM5^ʪwEjtnF$u*I RU9T`n=CA]yu)S\<3z? g@Nݒ(By5ILA}kIMsʀ~+/iY>n q.b̾xSG?Иߙ23PZFjo%'s]'Ǐ;΄ۮ(pSMGf#[OCd/'~Gj- B%V00׼$A{NcR_~ 6`bzo^p>U3uĂS$()ԲHP;Sq#!Jѫ@{5qaG ME)tESBmiHqŝڥ+x v2zZup䌰ŚDG&twHHJJ}+kn!ۍ$$cn;^-O[D;ǟ/|&Rń[ڢb5!FOz}̪@APIKe )\^E9o|tpcśX+[vV&BۉPf:K[RT{MVhl1z x}dŒFq12j@,4U)Ĭ;C8ԅwlM qЭM>J9%3L9ӻ6c@sSC`iL@L2钦C_ Sj !u8ru#er)Swty  ѵws+m2*q+GtQ{.4lBRi<7(w^Vճ[t0?j*Cr0_,dƌHzis!GC'6JTH$$No-h6xЙŶ{m9*ln%h,gZnζlICPI ;֑!C6 =:;,˱bL;~J՘*R+b'|g cLb?%Սﭓh"2iJ!lhP%)Y AQXI,fH۷l?q()8zT(ϪMɐ^14%ۃy-٥i]ܞ6xyXHLU&083v*4ىyaꔪ!&9C[\dt:hj?2o@$ȂJFegeNLw%.Q)M) ~:J( S饎QGore(iG$99oxmK]*y⼧vqr.xW|-ve)0^v2[ͥ-d>:J$H5൬/puNxPvɌIw˨m8d{̏$4wq3xIPW Sr ?FWcHd2R? zj~coO>,6/D!ƒikjflZƷ[mƅoÈHJEkJW1G /NYrJR$䓩&VENz1uTJPeH'S9ujr"Eh~ :su([ 6(TwU L2T£GD3RVn%"֮R%D@e X:WJt'3pR3=kM/L4:u`?҄3$*#G]pD_q=zS'ݘ5"Q@s#Pg֕~"0@8"0@12Τ`x"""]i.R[+HZ3*'rևU ϚHXWq1$VS2:؈kJT$nB.n\3"Y-FK8ߪC\ڑm%4CN$JJIK^s|&a]T !ŘU '"2iN(@TkhJP% JR4J@ Lhiuʔ<'.ݞ}2ҕuE~zsYQ gQ?Lv;ʔ)Q&A($5.jSyP&,6 ?4HN(% _]mw7Rf#-MmNl]Hm2%7 (X"~-} T{yA"ʿj跮?¸.-V*q;%DVEoBb hq nqo:$ꖽP Sz Vs=pD(R ?\Dy!RkJL?p'$PR.^):@pDY&JjNX"P5QA_HgAn"Mrָ"Ĺ1y}JT磻ŶV} "%!cW *s&LrT;V'Zӥ3gAJָ)C,+DJTJ0 N"4Δғ=HM@)WAfa {hr$|t8Y5_R@&?+p@ 2ZbNȠ:R1RiTĆzH Q9ө0ue$?rwu ViY dqJɞ^A]4VQ]I@Z֝kO\<rQDMi] ?I]3AJ|hs-門p鷠S~|IVQNUS/@*kZkj]JRʳgJ+ MNfA뀥 քiM:iJbN)uWX]t~ʐ*3 bzܢh҃^PI7RW+oZ@A TRZ&e҃V %dMMNズnvz4>5Uu҃hTA"`%cz W*ۘ0VL\MIB3]E2!{DЧOC,4Ⱦ6Gp"I+I`;Ꚓ3Z: hzUTFuzPn E⚨qn9Q_ ƹ]mC仒_y6HTSڲTAb|R@ bhU֥IzrˢA5^xZ\rZS!]2T(Zkz`Q93vU?>VDЏp}(OQnh> 9TS/S),[jgJRdAa8E5TkqHuR6UB TAW2پӑxG+|m[G,\qC,-bVc{E9th{^ziD~xd.-S N K[l_in5 RZT~@dž "=Q22vJ^>T4HK 1qmMS%Th )"?VU {eFBmZ V\c\ˋmyjyH_qo4qhwֶ+?)(7e2k[S&n`MiKli:2G2-AnHyDC<T] C!i,!L8qY92e`o||8˱`ȔCk K 6ڶK.hUa~L|[y,]>_)Bwgҿ_G|$A,:PDCheBq\p,!aiXSY<a|?C117>cWFnb?6HqR6sۢ;.>ЄԚ%CRq2GGh+wfE^dp҄ C֜EjOI|6d)өRR8;I R8mn@SPvw0tP&:Mc*5}my`*im-IJ!U)Cy- F( ˩m"oR}1YRP)Ҋc^u-cɴm:ш[-ѧ q`0b&\w|;Xajoo߅o#c"5(h˕۷!󇄯fO,i[IJAR1F2ILܒ0<.n]qB՛1q蓝jruFݥBd%ާ d/wZnMOKZu O C0K˶XEk>\Y_JFd."jhHNփxW[%``7jTRzRVn3\TZiR6kmL ۹F5$4릟+utZz|D Rt ?~8"=NBsu4Ё`MGƔ5ЁRDbzAM( 9#:НIDB3F`VdMIfVhW"KE}KYܣ2Mx"]yfUY{i1nۥJ~ck[ 7V;nAB7n5CL$ȾA.Sr>zۗAqep4m;EpaD7WXrL=&⚐b\PV˲W2+,Pz+'6w\^ĥ;UdRsJ˂">>"CUf4Vҙ!"*P  >U}FX"0 N`d ǑCea\Q!5|)mySJ%[}U %O-S ī"\9=@d\rC0ŦH/eP4F ;-9m[LV\gǝ-u.zElƐځ)AJSIi`q, rULX17N6K,:]T*(炕"П249Z3WN4,(z)RNY`=tҴJrk@:Tt;Zu5R6\&SP0D]HۧZD`Jhֵ4&"B[- YJT e*F]kSMN"2\CQ\V()z uۮ+/-۳"[nriMHᘯ!J"OrivZJ ˡ?02"zl+2M*=2k_BpSR 2JL Uu9f *n ɂMm2 뮸*1?rP.eZɥzzҟmRj?1'"+>GhFL2/)n>,L\RD3L/U ϩ ߤ~1s$@U2s4PVh㏠V*4Z CKP5j ^ѻll}~)pw6![NڂEl$ʣ݉%s[g9%(ܣR`a2$mU A«qQ싅Ȏ["ijkXTyބèuJEJV!W"iY2]{chAuy݀VmS"2#}Ry[Mۉ ZC傔h)FH@IL5H$Y9vdiSOR5=u|EpB7R=ڇfA$< '.{v䟣]*wP#nBtq$tB;h?)iDoEg(jU##x[9 ם/Np +Rսq$p Qq621&!ǃq+<}WQӐZq88///pFpwP!ڼA#Xu]<|WyUd-M^.EŶ/p)K 07Rju:lUCY8qNFHSf^O{ۧe'ݘE)B>@KJ*TH Iӎ9B"@m9\Hf 7UZOhG%܅iĻ^DO&5[TTù1ix%4XPc|}זA{Hw+Sb㵋/[<#bqs+ʓ3HebJ VKPJܩ))Pg`4/cl/Y"6 ~'R &)[1uTQF+T?nn}|Mv[>J9!F%؎D 3qY-{2[/fBaJsnwU-K\cs  s(mn\L13.$ϙO v?oN7KR5軔Fާ՛XKe)R@Mh1Ƕ2O/h637QOXc$YK[1rJ4!ۣ@jML6M]c䠼UPYqe[Gܽ' rEƮKGǟ)5By3Uv:c%1p]B.\qbR'uHZTԥ!aޗq8#q!|z3ŷx/v4Wux"0TrȊ2$NJ )hEh>oaHrV߷pWF2QAy ;SZH?6L3 ħ ߱Vm2N@CI ) Sۙ5֔ȚUF=;Y0D2?<å0DcHk",2>:|pDykAZiA_ߝ0DJP`=pD~|=:6\%\-MEu!^ZPBT(54Eڧۛe.eM=q-+[_fR{ڍ Bfn?vi LWESQ=Qi#A1R MzLGQ%t~AO< eB]SL-.J)ܙA 1߈e7\B8 9> }fZ/r&C1ZܷijjB#Őҥ⋏(Uv<b]`B]jez3r-!خER0-ҡcSY((Ic +|I)R={6**Ƅi\0:JzztY+ZϮ+LYu4`(APupE6#7 2 SDq(RS+ Ahi\k/U-ev6 W[*oVaRa, ԐJV mUCyO;_ʼn&ҕGs3vn'ɑ0K nMKH*ت1ZV{M >?K! r\k[JaZB2@{LceuYG"K )Nԁ@ M 'p $$\&EʈYqpA%E(Vi# hq|pZL5ܪ5r_R\jCqnto9k+H%J#R@e˟<1GDgxfO9 /).!.06 pGl8z~!9=l?R[Kz{ n} BS%ڊ8ք0G,#Tmlj-V[lOS&0 .ZЭ|f#ZHȏQڦ#)#W$u3R`>sV5`cm-> ;/W5QYe 4{C3%.%w嚺hw-a \e_W7f:wsbe,qssO}Z e,*t *wtRB/kҕsDmϷ=1v.J}Bc┚YK{j$mJAy|avœ+ L-T7M:ԄKBJua{IJ9.caےm)2aJ{?P[eiY?N$%(qh(BaJD\-T!^tjDIqZnqY"n`j2%"a7Wo۶d3;y|uje 7XܩQ )*ۖҊFHRN %>Ĉ j+cL .]yEǟhe 6ӊt wĢ#q"k7qB qPQuղb u.+{b@.ZéRjs S"UN9ҺzeZ4b"Pd~`c}hJ'E*+}$ ̍?<92[D;!n:m66TmI@$?R_3.yˌkaIuSJ- PTVVuřd1W!.mХ:>Wn;jmpUojp6Li-;5)%M/Q *Q+ eűp8LEmȖ˂C}ھ$HjNЖҔZԕ;X)v'$THJu*:P|5pDt5J~$,D028b"ңޠ ̀GC ޫK"2M4@5YzƢ}UuA M:?}!Q20j܋]J+$pj3ʊY T=P5vC(WQ鼎 7+GFl[+J7rH[i{+FF d {vOrJ.r?w"ĶR0V\$&;rsTFb^`I e`:Ҝ+wpTiCbVR"ň %)k-44W@,_!T9+r dHQ,| =&m*Athk?f .Gp SOh 0WPনJPR@IcJ*褕52$}NJ~,v)$ rʢ̓Q*dAh;.Nڟps1- ̉d@gʦ&Rr~9CN(!(i:`m%V@JA$3Ŕ( Ô]no܇`IJ$BHS&ԴAiM)nU eWwe}.ߧȵHi.΄"\햹!r[)[3$KʅiBI!?82F-fj :ɵqc.5\[-MhjL:N*ܰHThN~ ? S)XKY;5(ҧJd3VgmES$Uk9``@tDTV-FAJ`h`Q-JBhU)Z2Y5)OLҰ*M :h5Hʢ4ꜫ,l6BhB+PʀS-攤2vUʆr`FG,ر8î2Be FL$KS`juQ"f%C蜒 jBșo[q{> )%I(q6RKS&t<-\;;`vQٴڼZLY uE5%%RŢ|vIMڶ΢˗d砢GKg?0"w>6il1e,) )wR=}O{"̿Lx_i6aټ[Ͼkȸ:ҽ/.,smwm_o`&V5=ns)Ȇk^\ԁ-%ۻ@n7$<()bCk{c= QTu"7Z:tx\9,ơ!E냥-a.B_ 62s"2U 3M~4'YzHU_JW>6/yH-MS> ".U6>٬- %=Տ1Q806/]f/@ɳ~?W;iW{ͮքhzu;/! e—>*༉(i[hHܐ.1˛J@nA[,fuf5h^Vn7#ܮ$vkٗ]ҙ=r=!r#6)HWP\||2@ %SVYF GK?T>>\M϶&i2^FB PeJvFlF1)XV O}l$j*fk^mWUq[2=T%1:;,KyTUw.V$w˻/ҠH Ff#ٟPY؛5jS(S bgJjZGi6 j× P{C97]qMw+MR[VxJ"'#sVh8904 牋=rZpVmMm[0d%ٗiyH)\)**#C0DyֵiȜ+  fkӡ~`vTV]Xiي[Q[u!JumJZ\V].6l"I%QIe^-\ٕȖRR(6e 65?E we<;2Bf3gRZFӽBݺ Fos>cAf"ce,;8GvDԤ4AE("#Z*  5dS?Pi5 (kAkҀg^FO]|h)\#̤fMSSf!Mr3'*`}ٝ4V!Sݘ̏SN5 s4Σmp?"UI :I?fskT;8>*z䘷ӱ%=m8mKMNr2(1\/gBZjZ_6&,nn)U!@) y=eƕ:ܒ!eFr#![Rw0IZJSed$` ɂ̩J&e䔅Ւ)NhFz~'C3Pv|yNO }P5V榺ex"-A֕ЊiPv:Vt>DMwehi'PM5/J'!zW:J i̸CT,L,c)[cU'U%ZB"eɲK׍إ<8l71 !{CQR &[U#]^cv=߈kb7xn+qS%!Ǣ[}%A(AE4$˃(w[uǓ% *:!4î;ǘ d#ښgE`6m i m!Bd)KL|z@IP) Ө0Dt4M6LƒL'@+\f4b9 ]M`$>F!RyM6 78KhNzLE ̣~Tg ɟ-zZ.Ԩjmuٰ%Cji,">%?6m78< E3\tv-EHC]%I,HJZ\zҘ}a껖$)M%vdnDKhHQ!' AFR(0X1JmI[y{R zq]V/[EED3SZU4UĜJP=H=,!A YdNCT9֘(@+rWvs&ȍuӢL9+2=kNHT}k%˄kT$ *u#Vܚ֕5M39~bd\JyEdwކzR%!^n;.<;NK)I"8hF]`߬%Ԙr-w1&< nCr#nmغ^sۀg8];S̢cږ҅dqv n`/F ̡y֪7gL*IL62FVS]li(,VCnTcD v䴲ō~z,o ߹}ck-Zen!iM2Un42{$h~6 }jRR Bd,1uhJVqm Q;= &waV4зFapL:r<7ĥ uL0%%)R+D(>GCt<Ɏ/4nKVIˌթ*SAMt>8Ko,+'ڊnO m˛hZr7%ORke}GmR£i(VIآ  y[ܹuIQ\~ꀿ2M,DטEboZ9)p$5r0nO!MBtxҟ3AN_U-榯\V\WrSȖ Af:aBfRmq6 "Ge֜Rڠ4SuR'hn+7EY$H/O{E !F3ErS1ݮ{n2 ;2-1vrgؾ) 3K/Bap` d.ݭL;&qv]Lr5pLpRC ,lH)>.-j۸dʎyd=!4I %3ȥHcjzPcXu{j X"*]և?PI': beԜ&:Je#$We!PI2ZQ% 3SZz\%S3ZMi'ץE3Y" H91ϧ`@Ǻ )|>8"Or:r="43zM0Dw6,geL| iA1/JC{vRJ@!9T(\,|IȆ4gmqD.Jp^#n*MRh(T&ɔ[ZApfz,E2[26/jwJ+JvG % 5Qdupmhq|!Hdj r@1eMF*P@ θ)@!9Ivr$ACS'0D[h$WJA_@Д䪚{z|+MN"Vd*: n9S:ed+"i:"JC~ N*ZhI3RIP{/B.,1^b""0MI)שTi랿pWLRSp9Q\Ef4BzW P˄@̨t:lVs$ߩ %B)bhs${"U+4rL@j)Zc3pɄvv:l˨q-%[)Gl:N7ziJ⢶K$\q%%MS̳;rv8RUӸU։ Dd֞ !vw.%ٔVӳ-җXlr  l"%r,V`AmvBP JFmEEhh1Zʢ%9:TBH WCqJ D%Jm(Ԛd3+\)ֿZc@#SA GRK7kmBP>ўe9b4$}pk4M# *D kAM)Bƨ䪃NRk\/NG* " 4rH!@x"6TKc"DReiB*a$PJ#A&v6e?o2Ai!RJH4ʸ<_kC\$z (jCn1$+(NY;ԯyYT:p{N^>g"qT>4Ԭ-lBj6 qSf9<) ؅+`VVWsWB2H$Ypgx[<>i?~A_NGɭw]ܛ|8&x]ۍ\ bOp,6'QxOj C 1ːXgg?|ݏ2 ^?nC.ː]3`<ڞӑJ*j *Dž hg QjRngN2>EqTeqe41JL6j% C䜥i8ˍRёݷ<F]8["KBtm;L4Jz";+e-z'ܹ:y$ ݡv"÷<#GÍoVn?.#!HnF7 ?%ЌS|m)~kZ]1퐈||.i_4~zOKjZD !LЇ h֔֨cur$p߃Q2bϵo.4|?_(b,{g'`$KiH Gnwn⶯q(+OUJ^-.n`݄!cIFӈ'ڣtK9f?>A:>ҟDf"4\&-Ra66- Kpq}B-Z8][~sMđFz *W c?ntO[|԰R`6Z@IWS! BT %=.}囥2a\Dd.,c4 ]48)j[QʹE{DCPxCP0,,epbk ոQr:k<&Qhe$YفvzںrBb\^["f9"L-o@jL,іwk,b W 9̂k5ѵLxYCKrn eB7}_Oy ԇEc6PK.Cm!+>{`V3Ć =[U:x9LC5.£-(Mr,Hv2퐠E_ApNEnk[;S \-#<:Dn^5aP8 䌤۸Ş*(l3zuenD;{ \x:6js7B5*xw,!E:G&h̸}bKNڧIJe"'ey9"4}V,f tOۇEE^Ɂqwm7K14]@M+Sq"4ᯮ): ikJ':P*+N"FT9r$gL: ?GۡgD2#"~T ʀ]uˌmKЛ4HqCF{WPF%J/D1-;іt^a\k*=MJ)Ŷoo%!ͲlP.lYQegzU%IJ6UUE9Y`X֋qP-6ViN8끾i\!)MԒatWW(Vk\+C-4'r΄֧J?\ քVយPr9֙uΣ@H~`dIM3#`RA'T҃#0ET;Ρr 6x-hpa蘙̆mӎ%kKJ S,Deq<skڟ@Xf/'̱CH)ai R6DV忎7(keҝjDe-*C*, w mU$(E&mYi-0li iК6) uZ]k^`КQ=jzR>"EiP~ߞ隅v(ȐkB0D3UpD ҵʧ:Z+֘"#Ajt )*N"VDВ:Ң^QxƕmJmo@pK,28Îmqn%P +w4Mc~bly[(C+܄J*$2uppzLӳ>du_YmBIJR)H!JpPFCZ(҃K05zUZj~8"R:g@r~4"0G~B ~YuC#Gz<kqonv\GwBob,IqM*ehXƪFbcMv)rtHB\*@%NˡJ$#J$D5JZS F!](miGC @PPC/:tA,l%)"B!PzTr*jZS:kE*LU #0)_@N!Q9n RԚ9֦23$ P]ApEj)VY)R2?*sD[v߸ٓ \̛{2&=k*?EҊ@ReWrno`m7y6[giJ SoRw?ӥ-l"&̊U`16 ;kVc s$6^\x-2Е Is|Lc f!DGj4ViJH*Rsdz!Nd65i\,}LSsTuVTYSĬpFc*+iҹg%MRu!E @むl )H9 45`~J'6Yh54*TV0VP*B3{k,~e$ EkZ?krePkJ 0Es5>mLO5a*|fɎTAy%ZJhuK5#- OY%bU&|+};(y;X,G~TǏ$Q VY(bLPMRmbs\6;Iuiȅr\2"v:))Fd,F'E;R)$'ǞDPݾ<4?&$2!.8HZÎgJ )Jc+jUB@4ڐu98^Vt53ʁ!FLF[(cr)Ĩ\34ȘP*̣J pUuT;ȞF񧇭jkȼ ֐YcPJ[Krõ1"2$F8q"I\eG: ϓy4T&ǰXb<y^ٿ7 ,N/*VVx3@ft$Ϻ>a?2q ۬74KaEw6[q'iЍ(I- *Wh<?!/NO&+($6)\Q>74WAEI 6.RZt]S*k&7c- m1\'\9 M r-8& pkm7wC QxAyZwXSZGhW@4Y$M(Mz{S[ m\~ݴ.xifj~=ܥ#?cԹ2[-6BDN7}麾bLf>/^gǚw طk|vB|>꿤Qa"sQ3/@)KJ;N=F/obc[FAo>˴#}AAym1LC"3qdxl[*p7))ԟS^;kَ>"+ 7a W'7n3+CJrsS!";lhImRHZ h1=DO)򮠾?lH;0 jn+,?܇\~W/<>WYW5n-o&<=KZ츝d2?i$j m =2g$z,y \5Zrt?CƐc\ ݲ L_~?'2BIeon6He][-4)^<1~pGg1[%& ktb?mVb4Y v'}'N4ePaB](\?~݁\./SP/ 5z?>M~ȀCI\%V]%O [gq/4'P'? ۀƍPDw?c8^xydn&5VF ])9i@> JSӎQ<96 ]թuO, F+W87ѕ @/:J;}IX%JMP Rw$%4nJSN̵DfvB嚵$ Ca ̓=󁰠یMZ!*K$! ܠq(ԟװﹿoIPEiqrZZzJ6jQ{ j P)*,qf#Q/}mS nQ )oԤnq5v ŢsQּ9HaN\T(zDT#F,ۛb[aہLDe[#'0ɼc`X2!3-?7YO]CIr2ld4ÌCƆY"YWu*S !))JLxȓ{ΥƋKlH1 4rD{7[Rd\\F6j<ICMkLq'`gR3rB0DD4΄rGQ:u`a}2AKuVmn-Ŕ HUG6{0s[LĻJTŪQ!whqSpKIޖԚ/vPr-״^%-;v氧ސRlaE{dږ=:|IώfK :gmHrd@e6_iƌiђ)iIޚRdSn-n:VPKܑ-q)g)/m+̃Ei45CQ^4$jO\r?FI:d:L8">&W1@k\'O|Du9iˠ8".,b"1kL#4MӠOȎ7ii>P!E $`S,"I#!!z|=(0DyW:=*d@ЏNr hHҀ`[= k+Y "*2'A\9:kR8":t)L 4ڔ$B%tBR+V*R>uh@;RA *.׮:t0WEZk}~X"RH4O2'Қࠐ.T(E+S %(B)ҧ*e!TlY HI~ʐ+]낧=}#5/߂ Q^NFA E.l@pj_f?^el-*\ ڈJ@$A44#_'rseT늝6ɦT$8dhX(R"ȟo '9R{˷ܚeMҗ?"'tJjJT IdNm Jf3+B&Ѳ[崡!eoPE+ZhAVZPʵOcL&4#*2\1+,b7L>N`#%R IXh^h`5U*rh0Rdɠ9w$V0E,(un*i+JTkJOu+낼`eB4UԄiJJwOQ&ʚp뷶v׵K(8wPIĕ5tX-d$KAMJ EBBB "Bd{vUE2#-7(Xqim8(%eS.I \AH5iQiTsߓ yM]Hp?/Sv٢~*$r E[QJs`cxc|8NX5 *1CßJN[ݨy۾T/yo&+'Xqy|jaYɄ'jnn 9QHX]1<8źz#1 (_IS{M{'ƙ.mÁkT9PDG"Dt)]}(,m1̙Ԁ\q-|;Bkڵ~-\-<g9nܗڑ չ1XPv#0$DFpאP>r'.,7zqqmvM5qx}7 Ml.}#K]*Q%*(v[Q4;\{.6l@(o/ⷱt9c {W|=)L;UleY&QT̙Zli]ɇŶ/S捶W,g $Zϩpꁹ1ZD :npw7lV}ZۛS%̈́Q1Q;w Hi}sjIZ&PH`Pǐ3z)2ei %JlN"ZKKm4E[ /o1G0CxVv4g<_u>10E6-p$3~nId-Zσ9O_3~ۛtGڦ$Cfab͞yqN&; W.YAߎ/﹩aX-D$>E*H~@CRRi+AjnPH #Wcj-AtyVîr-~(r,KQP H@BYq:nIl58 nm/#N3J?'kդek;]CR@D-^$+`Rj1R1TkJÂ/9UM(+V֔<(\t/n:RO[J!h[Qʭ)yDD(?E+nF0"Ě?@ Zn#.‚œ T8zSѯnKvlDޢۯ8V cmJqc ,ORJ^iJxڹ y]Ukc[eDKТe{]1#JMwAjfDe4mTTl zh?eG.F*: %´Bl e9]2MDnwsIRwq13"7H[Jvg&ă=]aHU P8тrF,XF)Ϛgw=|Չ)EK-_We$o"@:+C&UjdGA!*|#^,']>SI?F`נN2? +LH(=)"tW1A_Sx"v]A\GG~>Mhm2ÐdIX:ۈQTX%J%JԜHYe6f(Cl2L چiCm@ e c]A`C=2Uj EwzS#nz=@MFc"4ʟ3"VBE5Қi%Dʇ*W,LHȊpD~8"o[b--sZĝL8 +l'k(!G4[x(I2\;sE`aCєqKlE(-cjvV YH0sc/)ba[WCݶJJܯv!J`aqeJgҙVˠ߯2 VpD[ Zָ"@f?eeJ_EzWE韥+3 s:Thr!ZT` kZ2t =5 D:t3+BAEJ}N1]t0D5su tdgpDt}k}t L?̈́]|C} |./Envg>.˝e֍izevAzUۄ`*+,0xsq6<Qn ݾxp[y M)//h7tBSWqZndjgRPMv,{|' <>>cۘ @/[+m)jW+dHLLY.̞u[K&BߍaV38}F +uJyVQu=>nd>1fKcSOƗF✚)dzlwf Ra(DwvҮM8\{DrG0_Ua)_fnu.pľ:«%pWS)&[R%IW-֢kTTJ-X_{v;=OMrk=$ Nq]n먗}6*#eyY+}J,[˂Ř ax-OWώ9l-_dԄQKHc?-J+mGi l 1ױX$^Qƒ.ZaEE$6q➒>K.PYq)4HJJQU$qso?Wa^MKH]hZܸBM~LMiDh6/ͬL̨sc8G#u (,!ɡ!ěPpqVd7'dkE'ZE/O 6t~EnX"TnܢBbS )ۋݵjTT\urM,?$}@Ԋ\roۤ [ޑpԙ(S!Wi hh9 nGy3bUżSw8^^2zAiiMDfb"PNJ P-k JE1Y<׳[a `cqG8"^F̏sVy% TМ)50 Ik(kj (\ҹWtE\ Vt=pDb(htsփL:㡧@)֦ť3 'A'"+__A#AI\DfpDU:R"Y5D|JU?@Ң/SL=F-jO\ S?oY(0D@Z33"VBkȓ"=jZ˂%VTۮr(EEu2 4Ҟ"0k=~yS8"!OQ+#ZzS#ҟD}hrF^UP:}i#sOJ']S. tSCC]H\D3ר9OG [n;l:TJݢBRRV J3hv7$DwS<-ȑn^ê֕*3o2PRl*bpC&3I&3j\44nB S!MؒTB!죾XPB[m%ДЊ% JS@AD) Sq~zWx"Ze'MsJB-G\Jt̑  5X)&,RvthrsS Vh<$ rIyҩ'1 4Jp@d5:8+(Ӧ|*FuR)PM*eu քL0͐ H?LS\DH MMHUuzlcۿUNNq78*d– vHbA[̱-Rۭ7QJmTH,MrzM]~"MP&! mЪQJJ$LLYݼa-YsGMFqt< -[,!j'URPST=J eqM,DHihڢ jMZ@HiLd[i8qc QKh+VD7 $jGU1CHz{rjd()* c v }[|)ulx>rQ? rǭ-]]-pBa#t^cė"JĈ _ǰjMRR%Dy7 TxY[mIQ]*aGn,cb UXn|Wc\pY~5iKYܛ%eHsXuUv/ .5!%-Ty|#( L) (IozWśۧ@<.  [m%=)/Vxkd<4B7EB?!\w?WSLS 7 jZ{tXB:Vj+WԸ$45۴WmiF]<]DLvZ]mMZp: S&4VqѹLq`n}*r'?&U#DU', C;wCG%GC>i yoLdK zkR}GS.rn[j|N2,ӘC{-\JVq m*E+1sc.8TXqg\#lzŃo2 :<^ +[HuI /gZ=3N齸RO'qt!aǼu-AѵYScˇ.H.!JHUE!#m@*:@q tJoyO}!hW~"7mKҒU-ɭO)P6-lv*Sz} ])jbGL&Bi|y.ְ߿NHvZUm;4Saڕdʴ&ؒÿ~tЮy:y|spsY"1SRX-Ka8RJ h5ƻ-!p㞾 d?|~Ԫk]d RiNRÈZ_]ԲZvSoy9cvq>|Ugb~+Ëx<)wqƤEBCJxAqi/LǎmP7(Rt!@80M~v֏G3[z=%"CˋI=0ىoIRGh{w(,me`#&k}r;=>UW~CZ`.nbPlVw7ynCYYIZC&1p{}C0.,0!gvE~n @.,\gN5ؼ-6ӒS-hiY SMH]cNIDqS02 J:n6Ԗ;n$iZ2^zڠ L Eu(<&$ ԁwsVls5 zkRRʸ1$!rJ5ujqinISO\s}:Jn9 ҆:fk zzngJ5Am'},*Ci~d3˩uʺ4>ttx"UHezd:*A>`ZgZ>uSs@4c@:k 5Zu@u9CP}hi!OqΙdF`k]0D*6ԏok=)%VA8"MhNu IM s1WL`G?QdPZ`MN|]Nx"N(tFLkj)Ms zpD24CAMFu]Ƶs"_yMǏ.z"Ț_T?Rg 2V{IJR(*dhgEKeϞ[:3]m %`\ZʙeġD5$ 'PkTwNS Q5 kB 3B0DF@#C]kCMs5F+LiM=!L(}FV" Jzҕ S*-)RO A%#2Mj@I$Mu4ZS@(BJP֟<jΝ DJPڔ)dD%D'[I'EM @S8"P>~Ȝ*S=+خДΕS:cU&t&UۑbʄdIikOLJ[$YT*2î CPZ(!I+ZjQB@̒h ~`‡*":f[)E}D(HSi9G%䗋 w m"搩1(m*ZYKDmYE: T!O"vfxfJrnbbnE֖r1z8Hm PI%A  3);LjڐvC<㎿2K}) h]A$6[RH@:!$V5*:Ru]T8(X)*蜆D@^,]RTFE)2NW竭)Ԓ*i5АF ɱM?ZJf5?~_xzj pE ȃ +@j2"ʑJ\ 3(4%Ȍx2K(tu7PzV\"@An;u|xym qrn/3 JCaK.:V 8kOH"B@7e?븼X?hvvEl/ R m7U=AAȐcO%/Kب|Z'gt)PU#2&NL ;#|PW-E6ZВh*))Inhі1SڳjT (^m(C"䳖vTSiZ@4d\c2Ea ^(b79z̚eQQLI4@1 c۶;kEfA4M]O\6Vqt'c@V@4I =+1J9pS{PHHMHD„ ^,$uXaJ[ۥy5BRRR{k^H;@hr'bKXkt쉪HR$ZIq[Bԯb$(sā(_~!W|O8/9*y!9*[lIf6ĭ'ϵz6A;UAGKn9 jT{7yP_uRZwse46)#]EtCz>=S&$6=Sď#$Q+;R #M4 R֖Xfe_7kN[JD9HBZ%D,MGo/%)WyLa V`dHK9Hom?^>R?y {yũ%9N"em7;$9hvIьYc094$jχ.N>> \Uty(^FImrn+%WUmDʇ!+i-qUp-hq:Xr˓XH:{;eQ6}^8\TpiļӎOesH{OA_m Х#vTF-<|9Kҿ5М;r])e#m.?ԐIyZe-ǖ<7y}OWʤч WuFY%۰W& kX]\d<۱2h>,&#8KƝÒãid㷂 ܲt-Sˑiٛ!CV$HK6ʶě-YN?T59'm|YZMDy|a}D:mLW|4.2J-f\%Btz4c/GNj`#8V4MHj[Ho}uͩtɑu-&S. YES9#Ov8ƇQ.> t^8 {=>P\SP 𭞊gl |~tǐMq QVKuiq6P*+&m>/Bt1e&;yjwUJcpK{;Ks\Xq'ٮ 4$%*fL K9NDݸx;'~Y4qkN*9͏pqʜJ |HAy(IK IJ/۰2~ ØP^amnbّxzCLm}ԙHb`L ӹO!4ZTr1.oPQ7j|y f2%oL\ &Ű- P\JtU6~t\ڝYI,uȘR٪ifP۰;"XUr钩i\FD +\N"S']kB)cK*"5=.PHקCLDu:$5uu)փ#\(kt !ZejiL=@0DM3>ꞣS:NDD $ttV`~R*sS_X"e='0~"1R H+JWZ8"SJ ( +D"!BE@zeJT')P=uȃR։ME2:k9tW=$RuEj 7Hu@MpDe@u4"UWZNΉD8r%̉u1U:B * Mu.w[Qg=sa3t%Y0öRPTY3@ue ۞.G͛vfh.3&cm+SrH8\r,]?5007.q0Hy<nR["@ E+\CpR`e9WB28"fifNܩLQ]j7uRE$gZ ҕk\( {kCMye8"$HQ)S!R|Au>*I9kDiSRPHRuD!BsQZ%M(+(]"6g-v=i"op[NB Ki iJH*pmy\w!ȑm"Ĝa_Q2 l#**w)):@\.)J yXԝ޷Z,I+n;JsP@NJ2zZS\eMFinנ'#P5Mk!tDS-jG:W!A/īZ.@!Y sV< Ē^Jiカ&I7T)RM+SOAșސ)ZWS^CQ z|sQyRheP)Z2PBfĞ:ɥJ羺cNXQk.?}+`ǯG2 L-D|wPRЮwt{IDR;\^*Į;.>pdHhܖҒVPtYGtsdeI?d@8#Uqz?add" ۴[HęFfHOt]9lX\w\bC۔[o8ˉJq$(%BbBP+TpA 9c6cB\b. scn*n 4 qiH4T0h1B ,Qwu#mu(`6i$66Z@S;H*qLnIY!#ALo(%@O!~tYRb_À.ahHvdfJZ Qھqj*q 3 R n ,Q1$7^+lXcK5t%oIR|]쟤3Obgݚ 1ۣ'ӨJu -b ߴJ4 NՖXt fwwvuSoָ񭰦>nRŷCi JQ'PK 1Ӏ>"03MsDMi"ևLD59dNk%nrSJYf35~Jtݕ@z\0K6R۷ȸ4$1]erdڣĒ n)+(IU6pdP[639<|cͳd%e\\tnhhmYB-[kKAhZZTIRsdF!JP:ǧ\ f4 dH=sL,(:EPΕ9+RE=k!5+}"0+·TSAUκt ΡZNLPk#BgO]5k̝ӥr*jL鳤54tnym=Z2M1NKճv{b.sTRKr# -H킴]IP 퇓(ϝsڻ%W-92k P?c, YI JМV1p)£Dg@ ":JG[q1CZuyMNY߆ 0n}ĐjFU:QUpR]zJd2tݕ3?= UgEX"̑:Mr&1LFKFA%!9DV-io.0/q,yx!{RS!VhR<9Sw0$6HNסc@lLd6n %^vHKNvDM䜂7_m2T銣$-c~!Y3#iF^>o "MN`忊7-C&`-%4RKt{bɖ5o]gVD/$9U'rG_]y/Trߡ[cݲuXvZ BVTl) JkD7z]VLc}4vMGtzTlȾ|>-;079N=gEzaPS9;9x`7DbϒG܋a/OI2ge|f"~'7R[)*&ҕ27ےF"Em/?1Ynv%YoJ.;kA l=q5[N4)^ɂQ0`x-cv.C.+{v!phjcWx!!'% ű=Kab0(ly ӎ-:e?K$n1fM,;h늜l%I)ޤ'c"wfnohɋ f'BoԷukKLt E-ηmR-);kќeKܤ;OBI';KnZrFB2<{Xێ;ؤm-)K.s0ֵ<\KJ'!}S2l[qК߁o<>B$Gܝ s^z\yCtG~Mn.N ou~U`yMb,"(LgIqHi.69#i(l%;XgUyxٸ_S1\;qO\ Ѐ2ɇ>ZRێ6j$,r}!t8Z2O/; 6v׮%vʇ%ƐSۄdu!ɜiHw%( n3= ޿ qE߁"*|<$~:̷2d"8G!”gMCA/Y܃1$V?mjm@#)y,KY0z*"%im%RdI>wmT/ BS(-8cv5q.8 uT"ȐuTt!R]RD^p9fVJ@֞YF.oz 4uU-/8ϑL{Wt4Uų<ier.I?T:AtfX_\Ay=ۣ(14CK€^_E׾A|oL]/spX-q2N! a7kaTW]{%BAr'N1bvbz"r&%No![P*@1ep)J@+D2] Y%崟(HFe:)BcA+;hAUvdygSbEc]nj} RALhOҠTR5ΚaDH :0DE:4_Zi`_G*NBdIˠʸ"Q5R+S͘'IQDhq$J+Fc*ܪ!MrAˁ_[ HmwðӔ˪r)- "&qd{\VԖ'_:dƢOB-]%q;Zck~1CLx2YrDW%.K%K$r)R(D)@2 \ ]5$ҵY}EU+"#|pD~FUC S9gRGBv\]h*)rQJk<Yֹև#CA``*)JWRBP)F% (Hg^"S+ma&E%vks\dyDnSmĕ&BN .y7Kq唩[u1qI%)>3-/.!R޼Jd3mNJ=i jL6ܶN-!@8RInJhhq=!N%@]SϺu~x+=iJ=r] ~pDzEt s3]I=hseրVR~~"<$A:#ւ"*垕u`JeaI 1a7iMc Cf4BN`TN[>bzjs#ܧY@Iv5-PժlD݆B (Zqf0 ]ݝ\K;ݬ,Y+ZwPAʣgeE$В &k%IIJ29@LJɴU'4u+yI&!\"rQleؓS'Ɗ\SnMXiҕ6ud! VNԺ$8-e:n i!$& Sz:3JzU(HMPBH>TF j1UEu>Zt4 4Os,Z+@X-K2핀8R*i"ƾ=^YUO'|b zd4=A'c Wȓh&5 $:p i[]VZTTQD ژUZoKumyQ2JACܩ!) mh*HKMu`1 ŢA/_2YXc:\{V[$n˔U g8Sy!A&`jĬsq2cƀSh 7㶆l>IҔwg@ -UlMNļDwnk[ž&-ĐZ[Oqb=,QBJuB)1nNY_h x/-2B6֍䦴 Cvc!w25a_Q?DG=*^Eh)*hآI iS tZTqH5kJ:JĮm-3mэe2w~JQn2WR@F8.'!ͯ~l_cuً3ЈJ\>G”)l\.[ղb׋ mqPH8twŇ,C~n+`'ӡj?BX"+ss%Bd͞΁%jx[%I 1-Q JR;Rwg|z *2Q+z\.t? B X3q;c {D$6&J#]DvEPqaǓ>A92~>+N0S%וVkڸoAonizk {-\%#;9Ć)eԎƈn h{yj׫:&RǡaV;ǛJ<*5vAŸ2ޕiܞopĤIݠp=9Qe&ͷ-1\^,ؾT3R]G7e뺖rM"KrE϶X*2v~tEbvRnMʖZ乹Bk˓fz Xp{K/H%p -kjɥ7_q?8Ȕ?+w[2#6,KEi qH,8 strt^$6JYoHtzr~NF Jq 8pr}pp*YkO(fxZ/qnqgδZeV<}KR꽷$蝒A-NS/[=1Ic Bxk=?M.wHTg=q{3Xm:&w&lLt:OȽIë@ӧ ]r}cG,_k)U|h?/ ׸ |]qMv [sfk4g}uSzC"/y_q ezޕ݈z&=ۇ6^Ub\K7RaHP>+Ч~)RUlI fDWm$嘡ǥɎBP!=yIb8Heܶ KI#x?o+S(y^y4T^t<*O].x\S3\}xϪ~®4د0 7ooqKxe|}=\{I16[qfГ>ԗc8v-//b䌢w?+3l>6F*5[,ŞHߕ'-pLi-׆vm( 8;.KX cVzѨM]~Ka)[i}xR 6. SɊ9uKȊǗ6 ud7p6QK%hB /O) K`mt?] 9vCq%FiUo3!ɹo*.<$;S6E6ҧkn3Z ˡ :9c,&Ϩ5aÕTds UZ$ #[x16,aKpq[gqqe P(@Cj bbDkr"C5*1Sc{\/fY\U6PcvRq?S K@ag'Wa5&n~X /ݮ̳w0w"=ͶIlHi *Q\C(b##JƔm_xUWIm\lSPʦ.w'҈"̂1p,8͉ADV c95ub$?u'+Nmh́&2={Es0~]ɋ{*ٟwCR(]饆[a+4{~h!ĻzRܫ[PdE:.m:и.Jf *P:\,#1 mlǷ z'Eh5fP$fǕ:h[UC4`ܧwyj c5KUބsd! fՆWQ59MB/5ǡ v 9mȐhXTTTBV*Sa r񩮧wtCΧ^i> 2m|X=)ǎ-+ os4=PIK Et#tCc8ǝߏ.+?.GOr 5YÊp>=kXlf;6؍0J;vʓ! ީl!M )gr)ǔ6Id$ < kR7<8F1m<Qڴi G@HLv/bM.89$̤ hn5>_k yl}x3ܛ>mU푡ݑ"#{܎Pʜ*KL6׹`ƥJboMҍ^?0Ēʼ|kʮlL_ODLPLxҗޙ1),6wwZmk i9c@$n $3F k73y:j^3y+$6ޓyf# *[.Mt2NiG+Z{q  Q Hj7-m_LftpCM׶?c{ƾ1zUV"de9|WVqǭ^"D(ll4 \_^lp9CđADPxW?Ot D1ZD d\`,1 GaNBBG[[8cvۖ^X ;Y*ݐNm\Yf&-5IT;H "D`GZX mbV+Pȃ]'L[P+mO(E+m t~HOZNƚ%EA #JH ֟?\d z u*wSA˜"ח2%*OX'>O@JՒR TrW!;[\kٗ]l0m$2OpEJ Dv$_orf ",;riL_-ZRl*mh6ND ޤSmb_"Dmf!@8i@ 4%D){h*h% n;)Yc*u& ǩ5Q1%n%:GLiNY(kE'>"P9545DSEZiAd2.@z3e(CG/j-[HCq "gKjPu+Ra & JqIi˂mݯ鄴c\^M(<)JV;vЄ-+*Co.klLyhVպ졒[ W5 E;c-R.ٙSPeh(EX(h% I0$4fFt")GSP(zP~MT@δ?Q geD~t":0@NUIZm>2)OǯOpD`rQTRF)^IQ]%$sy,q\kn1oSW*:r ߧ6[:Z,BAA*AB*T[Py |O O9*l[T) L1U QMq'b]3b$ĴeFJ0 9r@!}I^CiJҭRp81ډ:BYaih6(TI'3\Jfk.jj?:DyĊ  }zQ PAWJT UC*dOF@+ƹ_բHIg$㐺{ԪQ TdAIzvү ViE!^[kCJ(PH ZboT|Qm𒤡hV \;A ȅjA#*b7U6*Vc;w-uMh'#Un'*桤hcSk+oc'tu)QGl %@W<-f3<&7|1ǭ. Zuݢ7@s=/޺{~2)χ:.{B$n.1v_a*/ w%E}q*珕{AHOuޯh?Ͼ D,#T)$$[iZٖm׻&F"Aܪ!L umkem:yhk%*)5;ȚKģG<)z{\sG$^$j58~{xOs/}n I\o^B񈼻PQpomŞC&Z d!LJ1OY Q61#`C.>W <'hsas+o %e4k5{ǵ ӈCڒ RZ:7AMkVg{ÒJo':ݼwmq $nvrQ{7-z*?i[oXmW]8:c%H"6=VA3Lu^#LlOwϵ9Ns#bz k!IG~k&7tU4fM-QA\=n[.IDžOQ: PqjDtg/⏷;,K+!WYox1`]9,S 6-!HfޕU.O-%k* .Lɝ;Au4\]W{_nKBܚAUqIW3%6+7Hܞgcx(p8#moBT@)|ާl=7d]Aze}6ܽk}b!%r[6PuƠ~:PcnJ YRd6۱iZ]ib&1X3Ýiuزe,ۦCm@kk=vF'sr. j!; iAp%J*Si> 2ffF!c`Ď#U~ß=9Ɋ L݃  .gʗ6P|lJ'Eq1X#+'.UO)ȉP:ˈ>㛳߇rn hK߅rgFܢitWmHR֝C)j8MC=L:. \nv[]&^bx+?8\7'(ɷb#O(+!*h W ŴSN6}h癟Bh+F5:/lغxbqbZ |Nmǖ^9K'S2-Yډh%1+PuZ(U~C>8'1CzܾOlQf80 9jY[(Lo6 N\ C;SwhNs,yޯύSo~A. $|Qy}̚q+eCn}!n)m +o2m+'.~,Ҝu86N^]a Ƃ;,Ĕa h젤iwcjH(A+j;,4rFQ]; ȼx\5ĭ/})&\Y}{҈hK[GĢN pYGRdbĘSۆz)W%M2̓dJKY_ =T'! uuHb+sj|hmळ2&r+u)ڈD4d;on''ߌҩ-hO5odjGߩE*;;%dvrmqdY:;҄W12M]U^=NG*xxV9|_v_?FDXK vOvkB0* c9+l4W11!, %έ f='ՓG.㟀P^O[WU:Wv`-k2-S:;ۜodtc>O2m@gAt&K%=oie"Gy"5v~xQQJT1 jO&Y<-7!:Hv#t>["9C.E 7Id\KyMJ 4Д6JpZyq0?!z)9!)psQRO?so%Ȗ"*r孶kơDo&0XT5vwc$IÑ7a}ot}r:7a,y(p{H}[Kd\pFYp=?ߏ NLJ8YrD#MMK1_Fwglm0!EUin\-DݻiJZJQ#q =eq7JF?~䓘ۮCBӮT:'-iP}E?x"(ʚr`Bw*eSq#Ҝt(9%(JpҴ&\wr 442OJL5@\fڵΛ4![]fQEpNh2-IXW&4jq) J IanEqoU2 e[sTfgeiE&!kSa_s`J7 *% BRR%) 4 JR J_-֕f=ƧEQAQ>៴֚Z0DfLրT`9gS* ̧L0s" j 9"*UC AȝN"A9S\wd4gu?CLE=eZ)QyTc9D8كR6B\\t'E(($+t_^\mL{#I },.Ey +{U!Bu*(\d bB%bx:(T)+B40ߔh8O[\i1) ZXhmH543J`;3#ЏC閸"PQs"6TL. FYt0DZ( V:]pDbDuGAL"Q:L)yG**s4Q˨jhgZ/%[T UԋT.J֧:\HPQ$Y WYW"Mz]0SW1|8+,*)+9dr553P BHQ(jMM̒pUP&?j7$.dh,;*[F7:HOU)ea#<Q ^c˹s{,\1hĂC;lJҥ)tl,@@yDGmNǕPmBMj[Sͫ{ C&QG浬a]vIkSr_~,O *O-ͦ1ZZqIqSޚi Ū-v_ V2qo':u Ŵ[i nmI9$%Ȑ)WonԶHJ Z\N+qMIABm!_ۚ5w7$GD)JR`Ёz`63%B t^PoPM6Ed4$_q UX%ؿ)[Z;SBBAJ(,()D5{籺E"6!'rkRV4P)ߘ(worV1ke}-{TQ5H(5H9TNdSau#$[ݧnCmJEA BS REk{ ^ VQw# PR(Pj+$⫶$Wez*XQ&ITP{CqF2/C7iO1hᯘ*ډWkݵ8! BMJ8A䄭);8/a2#/^P/~ \f UC;vHUr1$qť;s_DpZ>ݝt.\;{lBF)+J}QDF7ƾ_~W"2S%MWO%r/5[i&˼^=ƗxKmf}*,0*g.0b=۾ɪ9~hb"AzÐlp[x ?Nw6d%XDZWu/dHj*Nt$$c6cϓG Cq)ϛGSϨFsu S';^n|'7 l+|dd1˹vbeᶞ[f@evsJ)MŏQ>$tC .=6rʸau6Mҳs@lw|+xl tk]6mQ ;N (JPVBRWx,yVE.`qNjq ۯ^Dehx䊆evwIM͂A)_[IR]t)aӉbY<^@pׂbG2Ip.u;\Iyw#_y7K{7[m~,%5(ң* i$P?URF>}0,z۰cHXDjWqCieE5K Q _M>IP(HPg^w]-Sh)@H9WMa[D-w'{jJ\H !nmiZ TeVA<,hƣBqg7nLZ1T!O=m-IKҾe(ڢQ꽾&2NǏ;]~ݲDvkSf |YkBg[`䯥J"Zy3` 8mՔM`a=?Yaa)pH4|r?tH\-L5}՜܃^`KKaKez.ŘHK?j[\y>\HRPND'& Յ5aUlɇ.8< ܍%0~|SE_9q|Қi/ḑmyEw'sKY{1X3,C(y غrsbҘ׹4zVGu6_I^mYm^? LrCߩ@K#: IJZ(cRI6|;~-6 0LɎЧCθq--'-c ~Fğ >g,n;xQwk5uyl"Gum2냱TeIOq)=vypd~M<ڵ 9rÅʇqoQb]_[7;QhM\c 6pT%$8Rd075Ә)ĭq˒X A穰Z%d^19QL-\sh62iCܡϔXLHuB"2 yPv+aQ$2V%;6SwKqگvkR1n:kM.yop4!ºko6,[gJȹeաXxڹ* BCʾ fv67t$`D@w0|o9{y{Lã?^S}& "<l^'hI|+D4SChݸ/-:[uND֘!E5АZNiC:S"}*ֆUPbM ]7Ğ H tȌ ڕ',Ҵ9Sڤzbۆ*L[E XRYH6)l WD}%uJ5φUƲk^Y[&iMJK@q-n#rB\ Y'$hr|䤷)ǶެwKL:KѤZyq/E֚q!B{mPSsrN@.u"VtjX\mC5(1{(0-\Zm1Z~5Sm˽3lf6vCiR\yAhm> E54)OJ~&Vf"2h4}ZSG_צͮZCZS,DZgZ~X"0A$udzgQ" M~ =)S0Dd)g_OM:[q R)[sh*R 4"[U|ۣܤQ1l귵4wɔ*17fvg^@vdyM!.yxFIJLvڛVSJ+.. Lk',~#-kJ!9BL MB` FœPY*q'ۈ~PĵD8[I ܢ-ՕQnR)DI+nЂV#R:҂* '$dD$|"֝:#yW_B5/ j ZQ9Rj+CZКiSFf3TU)$2 r$ pD}aϻZV4ǖ ШZX.(DhiBET5KnkNB('Kk}p9I\ErDh=+* ڒe uԹZygftfS*jlqCiKR‘.[LdoMJ VElvnZC%Pid %J},oHܢ4!JjB@fs~8""k]j@Tf+0D̂7S!P $'$`WL+"FΙ~eGSLݖ`j@"2A۩5"Qk!55u"UzP$t:,n8IJp7U%;R (*8"=ʢ"U2zURĒ&n qpI$PMA:zJ$ӡ(r@SpʇCD%YڄEHjIY +!DkZS1u`X*iҧZ~N V#Us:W@:N  jP#dnW.n,afO?yDK(2L1Im·-iJB!VN}<ȟb,STU"C]MބR~ZCs"NH5NzȔni/"MnHF,n%Ĩ+~{$FvD:"/<]J-8( z BА)ֹ)LrW֧B2y(I j 3:i}.9`=̊B 54'և`df&5֟[NP&?!B@Ѝh3 V;rR1OZ*Psb7YY|z_>fҤ:B(\ImSP:U=Ei U\lm5I1/TwcJJiKT羙h6ezSx@@iW?U65?pp,)h!Ha>ZK+UEh2"ݿeY ~~=O-ƯZHkV3ak; *tn,eyj^q;4V@p lM#jETNGZbxdB@FARn(7)yb41}+{9d%d+Cn%TW3@B5%QJX_pJ@PRGl29dÄ4 YQJP(PNHLxߎjp$wEvJhv4`hhqP",|3;x7(mGhWh!қ vz|0g}R@rR{iEOl-H*)_ps` _iZ7 +uTw8Aҵ{kH^yC$UAJ PIQ6=فk˟7̠- JTRTU 3+0{~Es#˼☿TXJ Z_H+^2VA99yo顺d7^$fzp!1!?r?>QF-ȼY/|ɑ:vVdmwXF_ҴGܕ{&X,1Cj\Me ^"Z;QB5SSxJir"G忁p< #6s->ko~͚#ܢU<.2u50G(lC\k`*,V~Ạ´XC۸-ȷ1& P-Ws¹w#*-gQj$ ׎X5sEoW\q b~ʹجR:už\^{jTDžyFBՖ;}6te zܟhۍ-j˕<_{_GṇM mV^Z^69X+yky-)|_ɇfZEanlS}h6{ƞ6XihyoK+!qJq@)vBI R16rFsW!!n,?Nxa5ndu GS"ԴbCnUMG8;e#Gp;;=Ny')18hœ\4X6ZkWaDBTPqNZZ8: %<9>|]% 6WyS52*ꨕ! ;Pa[8G{-L[3Y9u-ľJSonOkVY]hI%-5N:)d rRŒ 6}3}{p× g0.R,{(w2TI({enЛ{5kϓy?C83[,æQ)d6G.GuiO(\F+[vg"w#:eúĎ:PGf2"=j#8g!nM[ ']l&??O|sg|q[C#p9*-UrV^~%Nf[(g B^W=>z]~($phܙt8g=5Ő&ʗn¹bS8S;[oBĔ >=&?U K>?%yL&?2oы.7Gx_^.!i64ˮ ޲3,Pe#blz%p0ùr0ͩ}ِۊJ-9Jj3#<{a|)un8qkw?xu j}co?”8/*0˛ʞzJB(<8/@B=FxJF@@;9r|r[j,)N4IOQ2snܑņ '~::cf@ aO%hȝK7{5,C"ub8"JEꝹ=E^ZB! ܰ(QHpi G"htmHDf}Jq*S(MB@E2E=PL PP 9uHZ@s`f:K*ٟ֕hSh=MI3֧!EԜDdZsz\+EMs)?6dǴQuTS[b QHT']vJ;|DG KZJy$8AZBRRtVܖ;-ʏ53=p =H8︕Z Br^h*?!4)Ze])W:u~&ERfe_ @=0D~"j3?3\h39 VpD5:i\IRuD(INkGQZs.VrL"*BKG/-+RYKe(4Q|ۣ*4v.n^`\!NZi]m.PHܥ-the Zm&R-Qu1>E•qSN&ݠF UԥHP54ópfmE3.ųX(.i,jC-TG;~BJQClZm Bm6$Jh)d VOLYbkT֊+QҢrAQ4AL)5Ϩ֣C#[|ZWmnZU>'JΆ4>"Y'0IiMk"Lhr enz-2. GSWG MT"Ja;@Qe*RBW.&w(ܘGLDM:v$4ڲm(1\w]Xw%-[Csj5,qyRҐܴU~<5Fn2BC͑Jv]$eHft:+BtjhOι? *Ff $TE րReiV`duS:AVX~E>dkQႩ"|ٙis+lwCflf}K IU&ȸexon]i&niBTrKgBjՐ۔oAQe`pCf4MIh%فWh1 uԲUJIH++Fݾ<8 r}8MQҒV^e)2ꔤ楠zA[oJ~OʹS\Bd}U'fT2HVS5 :SLj"`=%+CBRbDbCNdP HZg$q:1~e_i¸w 0X GUқkJ1>I S1,3 &"7!;};vүxH#(搊V6H`jI*u5<~ } /m?nLRKrHKb2uM*Nڸws NjRk:@v+ެTSD:L![m)KcjME@Le$` %>RԇX P [EU5>Tre&ɴ)٪YUFUePҴQKJ5=X}[244Oq*VĨWi4Si" )LCk \xnlˮ$R%!J!Dt8V͇ǺIDCsؗHQII IB?-A4wH"y~ݨ̀n [rVe Kڵ'ɀ}kӐn"sKAJhjB-J}ҔV*=ҙ5۷;onx\B$oE B+0*<̐hH~ݿyy~5Y$+@l"j6ڗQֺ,n$ڣ#$ RPI*A5 \Lx;KO-u )@$PA>姡"銐6䱉 je&8[ ! /qJ)DgD҄ "\M{yꯌQAO?x_|ߐ|w`rXr^d 4;z"[qRCw&JV)~7SB0.cmpxG9 5w[,d{#Cz_bջ/^iv}7%'zB)%]!bTddlRF`?ȭ͑lQL-bƷ:9/8]U9f ̝HګP{6<2g!67.Yjnxw[YM (CA3;/Z5Y:1KGgK}Jۊ Ysˆ=ER_v*p An'ː7# r}snιהi07 ou?Y!v5RT*tLL٤d4AQݮ6.J6̿y=w2; t`hR)!.MqxF=ΦVap ~8$"nҙ/6QmI(* REBj1c9r9+`C×P[<BVAu6V44T֣"LmJs K5<,4r=[Zךy?;8ښWmN&9e펺R7*5i{7uqt!Dljz/_?ܓ2xc–NGۼ_|#)x^ŇeIPgf:q'bͺT4> :t}7K#j9?R~wx F7UdžAJ{MC>Е+2N@̑NOW?X.OEV)b$ڋuWtY|"[R&;gq}T]mҵʖJz7y'! 5yo;wE_!˜&#il;k@DPKaJKjR 'a^%N-c>6_xN"ډxqorG\ Ab_ʍZJzuy$oWX:ȈY:sazPh95lH@[%HTǯQd$Es%Mz ǟ'ό;7߽5[<2Zx1F^"9;E<إ˅,eZaf;Ԩ8ۻ_O@o2t%70Xp/[!~/ܶfcW1?ġpKq$c8ͨUIZ*+=䜱2 mEk/#<"i-V.܊/0p,?M"Ev;qvf^,>`75/[)Zܘ%GP'LmmՏ9.7I K(Ԧ<}Qf%EVM??%h}7 Ih kecbuLȖiEyXoK QIݪ3UjI*'FX$Vv+)Ra! 8$dP |9 P4nԗhT!*Q~X3mǺۚz !h mԃ&1JQ *{sdk6H*z~ݛKfGb$"l,q uQJ NE0q qYqf;vn0Xd)q.w*8d#;JmӺVNI\!ŏǃ_ߟ!܇su;qn)طb,.} =>a'k!i Ml}2r !q7+%imxj. ^Sl-MФ3-%.it*mJJUJ {CIݻ?52e,nߦn*l\ O lM~DAj Mq8n;6j0!%CB#b9HĻh7go܏-g4=]Impw7V9JjBqd#\{C[ Y%dkYjw/d! ԦZý׽ZrJH*-c6IPOJ-!xD:WZnsqƻ;-@}Ӎ)+?+mIPUPsBT4%&ZJm 9mqG8-fn^_}(C5m2]ڒLkk/wзcNIӚr{թ".w{k3u9PH͋^xƖ\vކAsH2;^or_JԨrJ@׷nl4DpX\$5&Eq뺏p:i]2(AZJʜ^ꄤUts$iTFY@I2mCh.R W1 bTȱO|Ϲ.n eL5SS7FP%I>h@LEEciuZU(H` zvڠLۥ:#kb4GQfDj;|s-&EV+lu -A "$OL?uȸ,RT|?f3xe5!U*A@#({d4gw۱OB- DD&*XAPRռ>KQ+4WY1Oi+,5$W<WЊqJZWS]HUP2JTYBds,49ГMA,%5?G>2r\& sK ikLI4( OZ\,(ԑQ\-P몗)|6[ڀ$n4fO |h Bۣ,-Tbں3kH_Pd)(;Ū vGٯ8kj%-l;MHT%\h%kNJ̺ҟXI(6w/< )UJOx& z`D3j* jkPRF~ !A0 s=fM9k4#\8"WJT֧Ҕk$R%5*2? pDuh) +# UrȌʵ Rw$TbA hA0EX8L< 鑬 cbbr-2қ"P [CUju Wۑ-Xm 7tm\r2,_`,'4)"W܎[+Jҩ:PPQS.1_nHn#$]N[MNUv J2-hk Xʨ4:#<@ZO>u4muԥǞ)R1Ҫ]- U&7\4z# E2dS)6ɒ\n5WTT~E4R5s6Z.Rls[KZvDtky$PFD)Czm_Zu 9.e LuFAS91.DN$SԒJX,ZP%'hhH6 lV9z RdM+%jGs4( GR5ϥ A"g}_j)U`?-~̍@=Mj2 Г `/jBU(wJTf .0/OsxXzRY|Eg\F_My, YBQ$Pr8ƲZM_APO&QHdHf+[^yqC5 VO%%JGROWjo'.̆.;>&66Xe\ĥ9)ANn)* D̽@ 8m?dN2;/LΔ*:3l4ARZJ[Il+SF+6pA# 6)5V 2vVD+HTR(5 [( ^ړ] 5-h;1Smw|^*] DG7XPP)Sǹeg1g}|, qa⥺TQ@`*AI:M2 *|Ν0cËӟ2ݵ(*BR-U`E(N(ۧk&WcˆQm K},T$,Pf@'QvY-&4 Ĥ{Jka(Heć۽FaG?@><#+yP+R.#4go1YVDkq!iE-I"*S3:cx,1"^m_Z{ҝ=)iQF¤^HDL,JKIIBIRMrc/ALCWgj!x|?*W#Rl. #bu4B@rFjӻ诰KvUvy%JVR1"iR"G k}jgx_1v cq /..Ot22!}픊3xz_Hc,;Үl[0riMvJ=-ŶryDJ|$()JُOnL".tqX0y2D1r7 KkQMx߉r[Qki31%T]`2*3;$5i*t6 G+-d+jx;Ae( uZ)܄T+RN+!NV-dRԑ>5 'y:ۧ w˱^taR i.H<[(S(ˉ)XJwothFس^ u WCFwJ!b6/Q2#^J<,rW><-?6U0۠3=ndWKqJXz|qi{O>Χ'Yu]d;kA̻]CO2C\Ji1-[M㻌d 2N۝*aHȌie~0t|uݺX((_ė^o+y n^4w;Lq(wHhƎ. K%HJIPb2Dqit_P+S9nut1ko/e/±ݣuI,_T]YVJuJSt RAOɒbgqZkU,F@e׋p6eS|ߍudfjfv\$ʀP  %(fƟ^G0r@+]uq<$M2ApXIEcc6g6 ԰>6j:O֯3pAt-7yPMne<-Ҥ3i2nzLv"!S<˝/gNj$yuY)_d5}zi>F,qtFL8K6dP}~G_cQnG~;x2_viySִ9u2#Sc M pec+/bϨiI.x ֜iu ^nr%Wݠr\wOK)tȺx]om xJF[qXϗ#9%ք0 e2;si4U,NT ww;UN>xdRV ;y)J[4EH$3rHDe *n_!WN8V}Šw6!=vT9[q[4}lO cė|f$'N=IqRR㯖ÊBAi 9$z?‚NlJ/r{_r+lK=uȮ.dȮG #-m"RI UT\tp/wNyf? מk]mlGmw.?/vA viy&)ʂĥ>v@rI DE֠k o6ZdF&DU@E_غȈc\DxfȐ%ġVtNp aݴSG#u@BBOV~?v-AQ#b4f[ &2ZYZJvCa;Q9kЌ{a0,杯UnIJ2BePx=) u NmO-2 Ļ*YZs5 ;/C^uăR؁o$~i[J~ÍI;AMUB5f7Wk,֭Z@bǏrkKvn~|O%CD- l5ҘurBHȩG$ŋ&|23r\J΄ˋ9Hb2/A6wǼ^P1 Ay]Tf VIU$ֵ$(%%ҜH{/CU&3EQ[S Ht<eN%JGlhZZuǠ+" S tmk hG sਢҧUHSj*B4Iv* !Z. $ F|+H IΔ:|\B,\YBow$^We]mJL KX5JYHH*)mT΀ʱ/_ޓ68קعA =]JR~巜uaeiH~)njpE:ʸ,۹LW%h"cl8 m)+B @Z "nVXQE/,:GeIPi%J)QÁ#1SQ/W_ e"1.%B4olfbZ ZJW,TB;ePxS~e{+v=iPdN EOM~4N^0vⲉTӭ:T+ k]YgJh="*+%@t$ s)G:`嗧4M0D7POC(5pD@#@}zfkN?!rdƴKT RzIl X>dn(@8"1{um6;DKY \DɏƚfDq2Cٸ┕WA*`bZeB푨Ʒ1qRW҅%!I}؇E6ALc(T2:|5V",JT*fuSZ:]GQӡ4* Dh@5u<(4*iZt"Dg#s:<_S^ zk d=O#QMM[p=!K.) uУR RT*y\cb 㷉;D]ЂC_;\nCҠի=@k<)B=1D{75 Qn+a.CGXYp%ijJJ!Ee 9·H}$P3$s$2$P&Aj=I**M}3$&nA9!)9TPtHʹR59Б\(PB2_k/ƞr@:pDs#ҟpDO)`Gfh:PgB+Pr `C?)˥HpD琯ǠsSJgQkD`\ ApD7iܫ"=ƴ;z(:t!t_G1?CZ*r`TO2VC_> $9D+.8:qLi҄[CdH_l.CR3pi|*{b"׮s~ҧ1"e#2DDLV;AgcL$ԶgCV-N-7KgjZrH. ,$׶Y=M1<8a hJqTqVԩJQRI$ vRB# DI<0Z$h 3 S?i*+F@dFCtە}֊` R*rJWLSҵ?&AB=ԁRU@ qE'r*>\ȑvZ1Y"#ӪM4eSB*@L2+VU!ƳK2d7 # "\l:!T$! 1YIeV]*B#%$;<7pؖd/jB聹B(,PPȷ^]Ži_שel1m R7Nn,'6"/o?0}x,nKV8e  Gl}-$!li#4g5>&SF93?VK%&*m^dlS*uJڕ [䄚 Ɵ?؎ߪ#nYEm: %MV S86'od9 /\;|tDfR ITk%Xd d|TU@JT62#ָ+ؙ.jVBIQVu̜A2 \-7ˡ)RTV @PIh=k\b t}QߴH;< T[0߭a-wĀ!U JIEAιP=]U%=gwIFE)ϡDžK@-Nbu3͊2xS=j*ou6XAj3! B\IAp@QD˃ $g]yw^JNUjTsxjap[\m{F!D4nt0% K>}cF/-nV|$sV>y tq97U]ڈI'ؿ=8g$JOO c7L,r6yd]9.8%9"=*)KJZV,\m$$2ZRmO䜶k[QHh(G>Bv6$)J4ҙ ncơ}+~;E! mT) >rrtN9C  _|:}3UȐ?|t6n$ASG*%ʩFlTw+iљt%-~^ ._t6^gWVPq[/*}YR!lXPJʨNynʵɈN'm{?o:H5,?}W>6O˹ʐQ?N6w~[;25O-4Pq.܊;F6=$qu1Manlm`WK40cɍ> 8jVLnޥՏ .,;7u'Ϯ|hSwqlyF |:,%7[O;=Xuo,89102d"kutqeˏvHma"Lo)6^Dߒ6fA eMDOfѵǙ\,/RDPJC96~\W^~xCYm$I:Q}kO<xW{#v̟0j9YIf*;i/t._)uo"1ɂ{0Sw.fn$ D I*u'+\<[ &f5-L=}7pm"rJ#r*зn|vR( ƿU?_C.1($1Ӄ^/u۟bMD55Qy}(,5'@*=Dž\*o*[1O!2J\j~OHAilX#{%=\" }{J!D90\Nփ$&: B 45dž#(OѸײCC[ DJZR 2 KQj(xfT8@2$kUl[0}M8ZKԼ)*H*h/ JNKJuj]kc^ ^q>w u(nlYZ tTrJIJdy[QE7 +wLbyэ~5qJ.ao=/k͸0JdP%J]J{ ܀R$~IDD spsZ 8譆2&>T=He_ܮr0x2PLs2T9PHϛ?Cͪ Mu.Ûk{}[=:6c dGaNl[aMI !R6NϏyQÓF 5r_/oxs,G-,8~iLhПN5KuAG}朣 Ԉ؃yj!->K) FuאZndÒ%8ZZq6 (Y=]nk5*ٿy?|h׎xj3;׎A) p._܆@[Z~\GjZJDQv:'O`g==o'ܔ0x˞kX f|1?ygp{/} $%zgnS#&Y,u1n,9*fpG8ZՋ0R}'KX!QvS5"Гi9xaG,$y29 ;a,RYtS/MXA1cu^ֶ֕@m@,E DiU@5#^5C,uk@*5cmE?/Ld3U ey,U$c1`d:`HJkTTTP`B~Z_Q8"3{+ 1/9)엳zC ]Tjhhzk֔ S8"桦d9{< LODa#QWPF`4V0Db@(Nf~8" =k]U`I~CZ5rt#O_yubTLCN㼕1%C1ZPNJkE"BzD(yŽ+R E%IJ@Q(RQ_m+2Ҙ)Dk4I4ʂ"Vg}6PPt@CR**jwZ`$& H5A: H#%PD zg@kpDiZQ*JSPz#d UN]pD T?Es`~jV}jSEg\k|u|0DȜzt$Rf$kHWuEkA%TQNr 2F@L`kJ)Zumr*WZҚ`1QZpk֣Ĕfɘ Ã2hpjn`IzCϺkyZm^ڐ$]Uϕ ׉HTi:rHL{t9ԖYJPtĵs:KP\P W*(|N A6ҋ]Y EdP EiJ`,j3҃%SJ|T}ԍ֢&MOWI:-TT\]7?LgETJRY1!]F`TJicI4 ҀҾGL@WneU eP4j]slĎ\ j;/)K 4[ )?.P 2{U-ˑ w6v>Kiڣ1YUx2.sv  !.Ekq8PBSxzh }EBlk\8l5 6 ;›HR! TLHSa 2i!m֔iҔ tq -@b@}ȷI,6(KN!]ؒAX )6F@0B1dob_%TuW &43r$#s|sެ%(z4E m`mR d^˛8ߴ?uXAۖaśu~Z ӹH܃]JE$x=_Byˎ%xO n$)?^8/{uqJN87@֯~v)^FdE߿iNpo":η%g$M=7lO}a+aPu${Ԑ@R;3 u.oU?ZXLK*MT3.n"z`A1a>x( oL4rP-Rr I'SA۷52fq.|_ۯ0kx$=MnBL%aum1bCz&GuзUTNۺ_q,N=¬AQJY NF܂JkiN>5-ŠL!/%ImR- Qڤp1;g) NwdLNnq[55J <9.?Dxl8Qm%K7[B #$R" !ߗךD)Wo6 GfRmMz+;!NFջqWێPBEIHQ8B"RWkk-/714 zLbqHSE󡆛BCȪR;[r@I!-*UA:c8q-ԍ[b]\:;)Řn ŷvhPu!*4.F1kw}HU(*Z+wNFLSaުI^ȢT6LX(U 5" b>-[0{?܅~ܚ!LN2%-m8n2dPQ̚`ScP%ξCG1,qwgr4]Y>r&eI]6cSaepe^pT̤GCMK>j@oae/~>N?&@wpW\.kIo>E99Z?r^cyEp7 m\ېυcAJ]+5HH$c;茍erѵ_S>w> FTv%֎O"EO81/0y2Tb+Z. J_pˇq-ƴpU׃OFa?ǎ33Ei+}q<[<"p7K_4??ž:mm7y1 +JKgM;]VcvZWv@RSكvjubXI\%r˙~ZʗjhIInm-mc&!(_(A(gFA~`5kj|x1E~>cKډp[?"L~,Y!=[ܗ*@!EJc)GeeIN{ uw;O.0^/Ajܙ7emIsjKWK|\nRm'xy'("cQ+OhP1s7 GwxPOe[lwS?O qP|memI1ya6}v.]©hè-^#Ɉ^'CKߥ(y7uW׈9񸜷ܺ,W1?FǑ mpLC, qjd7RX mHsKܓw$D@tXݸoFꃥIbX}S0B(~xwmAH!4#Ѓ\ʡ^ Ptk1.0NH?NijĂkMc&91c3UPAjJa*s:$t=3ȠMͅ7)%J4:(< ֕V})#RJuδQDҹБu3<$gb0M2$10DcҔ#:%Ў,Dc2)M 2#\ 9AJeLU5M}ix"! &J:ҙVoQ!(E 7{JfpD'2 u O- ?Қhi5P425uVT9禔>1\ GŸ;M tkkeZBt̟'/U2Gi|".ΚS?zrM=w;ýmq.f7!b?N okJq[CcKȶe6ȀR$P,X e|Jm[ Kck%G5"Q@!PZmBܴ-*"Y[+\(d!L䅴5ꢭy%X? VF[:(Zz`jUUu΄@@ I`JĤ!@ θ*ĥWnITP`w,+$v|z`0,,g3wFֿ욞Nשt΀~Pu8"h}i Z*B҄pD-R6 [Д%FP]y{utƽ Őa4),†Q*55hDI;HcH~XgGܻE(+RSueqOP `>p$.!.F۵&Gi%J1 ˁedZ5H@u--pc:Cms%GrNc&i)T P5TQY1[I9,9}7_7<%+48n99qoۛ"[yF1q}"#EςFhj3K2xJUdy|xfHHڴTA54$eDPքt8 vf6gXuJMN#hK۸FOe,#7r̠R-^PHA gR5ZJBWT1f (tǒҡ䵴0IPrT& XIe&`CwĮ<.6HRVm(K*ZJr9XȵUv҂Bvzqf*d}*:ZsbMH#鈎\cs1*CX&={x4Ə!we }LQlPÍOHT,c6j|+,$Z9E)V+4Ay)%=ġAFgvsXFdH:+mWV$Aiy:CqQ?>_'lI~. aqu NJ LK>%8b/K.ǘrrAU vmW!jyZ|C> 9`ır a/%]gK+nŘ8'9ǂ_ΜOeɐDrrJ ’D- mUI=%[:p\1vfp/>dr_mԲԅTv:ϩn+jP㑙ڵ)#AB1]#{xhh~ouiYz^@q\[bۃ 6'>Żx7 bX[795-yQoCff^ȏ@R2Zq' JT7!%*Qfuw^Vu8A䧢GpTJRս[(E4%_߇UF9H^:޶"mmD=Ml)As SB8gnxތ3ҁfC ^o]\gŸJjP(mNҤhUMY? wp'W15&$  ה[g3P$JBTB2'?Fh.;|n0Z꒕AJj7 Ym۳)Z?Nߪ ZTjGZ@Gj'quKr,J{iu+X%4$,-&NhڡBIKڢhĔ tBUB'UJ{Eh%L hD\,:/be@m$@I`GɕC0߷ǂOEʾ8fM]JLÞh."]eZqn2Y)V zlGտk ^LfkLnŴ3yh6DN2J,lڥ-\q-•wvr~`/vٶOossOhC-ܾ`<SW6o]Ձs!D,mj"Cd7-S9OoA 0,=bc/.QYpn#-˙ۿj/eɮD}Wݟݝr;ߖ1Xnd=If!a(eJ 8Hݿ78]rn|;W,lJUCJsq^m.s *BK=aEB3e h~ᘋ` ?=6Cā wWĶVr$\>ymKN'k-܂:lQ$,DL]hG'?y|Mo,E?bY»jѕɉVVBSRRhK#&2CiksqKh)BRJǗó9KFp-ʁ^?S,B = +g`j۹LCnv4HTKf0HuJwt)8ec/!E01d$5R6(aZC2HlfZ%Wm T2$W/X gMyM?J֧CL~d%H햻ͧiIP5!Mb{8sEcVjk¤X]yuĸmaQÁ+KZCr]~:s=I,=^֋$Q25I'N ɼin>Y+-mEϹEptlqOmٝko֞s1~6[?pya熦^yy϶'!F& oEwOGFѝ՝ed4ŭNy 3dYmv-iPE w6cGsZRO@u Us@miṨh]QY)嶡f?lb!s?f7q'[x+_<䟴nI]-|bjIg9-ejCiPM&~̰"̚d -"*f QpŤ 0 \Cl\J|}+WV#9G3<.}= 0SzqB qp}c3qEP qN "3/q 8cVF$,o`v+#K'k_Эv\wg1 EG= AWX1M^\c(864&Bǹ ?K $_ؑwWW俲?yRlJCɴXۧ:̡%·wnO]6"&#߷r㨑rvzOnmV9Kwjnv5aȇ "qhW*NUQu]<}ȹrfm&nVL}SE%CdB3C&Hۙy,m /ǰ]?$ y0Za\ƶa-~BZm -Ҹ֧QُU_SR^ ~]G7|o!'.Lݶr~':c N8 (T AIunLj,s9)}pE(i@ )阭3ִNt](y©ZiWB:z *Κd:iҸ":W_iQB8": rݐPrS@(ЀG㦺JpDU㡯h"0Am ֙:`DJPe^$΀'#Ө^ N5 G\(:TTSMs"YR!8":S#\? ;j~ z_,T&+tq$Mk,'Js桨JV+6sg Q>qe{ @%kZ@CU%oU1W8$nfnr.Q݅vmwXNS\CiRTAPM{vBKpmHx(֕ 4”R+u9֚MpD7j?6Zj@GR:gP(+J b&<6SZi0DIgCLDN#vF J"tȚ +<«i@MpDJq#AEZe!$1[ضZVK C;uIi jJTm nP ^]n)0JO ś_B́S#~+8".v҇0kA'`wuTfH$E ִ'h@Z :8bjW*|(EhpWXH̥_ZGR(VH گJj2"@69ZT>4S;j}u+CR ~ld1nf$dyƄƷ5.\4B7S%:RV;i%ͽwdV+ATF7KK I@5&M-6͞q(rƜp])qIڸ BQ5aYY P˒VžYyq)խ"2K&RI2q&%@)AUM(=iSJW23f\\wT(5 P+ҠkJվ+GkWM$ I9ZpEWǼG_KL|/>]Qxü^\FMQ=rd*nځ ŰS1 4D=?Yaꗙ1v֕Ղ2*@P6pֶy.8_ٖ8F QS:$-inwrGk3cUo&P.3jJV kiTiFLO9Ne{jjjiLei>ʦoNQ$5mҔwd )ApY8M j !HmN$:)J NUA 3~mf5dGvu余G~zQ,W&W<.-?"Ӛ8|vS,ys6t~vrXi#\Jp<Д2~@Xƕg<߇*c͒9@p[OO?=C-q#q?nW{ms? N;g^3FerTd?%9*?몜U\ %R-6p%!J* *JiXrL 1<.uf]YI1ժZ/G7v,,]OoKWKjmå-<[ڵJg mm>WUŒGr Vo<[M?GAqkE\sk|Ԣ]HllcS  7CXe!NŨF>@;䈘y O#sIE|1U`bs7XSE'&7kXSW;c2LK/f\`ҏW)C7Ih72!.E2{kpA^[~Xu6OF9B#!_kA&"ʎť0wVߋMc3(N!lJ.; q_CGW>P2g*FWbڂCzY"c8҄C 8./Kn.T+eR*/v8T*sHr’mPm z2fC}SvBBЂ1"e.G]9ZYr3q2}~vtc(Jm;TT2ڋ+ Z*午a@@9ʃkO8XWfo?}xW컂f_xx|H÷. t'\ݬ~JqP{OtۃYzs-%GRhJf3N"0iG hϐ[c7_禚_i7#ӱϕ.>m|s_q\3x Tai>shsͶ}<_7.KXe+_9|Y $c a'#i$8(JT$&xN7i:].61y+h6l+rq'ηpom;$4ҔAhdR_'%aF^Z2O$c2f3Oq^m+՟*ܟ2u;O7@5}ƌXD@Pp&;q{v]H$$;epdC!t+^,n,.Qy\jwͻz}>u/?0ɶ^,js>Mm/&|}mlYaLM9 c ncyT&$~fB\/#}xiy őte/x|}}zŤs͢4Ku#mL{4{n)$UǧsX[Ft]93J 4ޣPfh"$w싁i_7 3;W#y*˯e!E?"(n+ LjbSįu}fn4hڥtG(WmۋXT'”5"q[d+J,pIEּ'ݎf3m x<3żFa\^Ĭw/õe\r,VmԕPi2C!GS>sd\R&ֳ.6gKY-7"-n1M;Sq#rcZ}$G G1ux~F.3oVi]BLx1-K(j%]ln~8wlX6BOn>>:Zv Va_ !$[m4 'qV:|{Fۉױ\uLwn9G?ۋB_xT\k^Pv6ZyBp)vJf8e7jbd$n<>~lTg97=ԶSkڮ3gnD3:Jp$Q'i~b!',Y:g-pӷ5\(ųy;4u&CmD[z˽b`΅x\9HKK&a3g8V ̢8>cw7Oސ"*%kWt}>BO s8\k-K.KmE xܩ*=d(X{EU>bKpR{;o4DMHX)@5  #b-)EKe_N!UL@+JIu HJRs8 ֝nw x&P1qUeK((5U3! K%bݾ }$6A$~SZlR(6j&6QRJ蒢}+tG,BZVgM_Od #" SOZ#JJ38"]B +s!M:`U )YdN[rj+R*3N"Ԧ$.JcˌKkJ̎S.'cCͨ@PjԝS?RiJtT 9`ºkCk]`T? hjGIԁZ TAJ`Ҕfk#sgP 3&&#WGB*w M>PW䈂+Gs SCUʤei5"֠0DHR!+y[KJ74 IZMtN4K?nSC-ñܹlD4\u7Jk ߹H Gj"c¹Cć>˷ =DI#RY0ۋq:MJfr,25$[.Jn.դ59զS%ø*Cd4Hw(Y5')U:SQ#3 (miYk_`s:Wj5WPs.@ҠF85ԓSAZi C>@=J>O\AX",5i_+Ҟ5rStc@P9MH esɑ)_HN)NT2u'tx**tT>58+!RiJ{H4Uu5:`H$:zd4TKJ%ej*-h)TK0`j]ݩ zt&~k@>(i@u?Z$9gz++* [hxHuUUD<\pR (ML+TFkioEi-dze3_D(-953Kt[A ʦ2jSx*90$ ҥU#t5;B͌e}ֆS#ZLmXڡ0<ڂUF{(5i1 ILhE:O{r6MD@(%4m( ]]OH^^"a~;uгGN_ۡP%m'o?эRԞ%mF}Vug9"jZ#>y+J<䔆Ho}SO52Y~֟}c Hs gxkGlP4PC(h:nK|zx >;UR]GQ!(4Oߪ sV.)+nTOpZ8չn8eM)eSv` oBn;<2.Z8vav%*)Qh'Ā;Z-'1]@M7,R+Y4P(%(EShbҼ{*ݚӫސÊԓT4 b@rrvnj}j/J !A4NIƖ|~=ҽq],1CU~VCWo}HPOm,!uJ PSRPW,6v( YXeHpNR%n-Ap;m*c0-7CU:l[A,+{E=LBE9m)eE1cѺSrKP_l )*NLv(Q η{yu&'B?iI#"[m;;B5՗A$TXۆ#,ےrqj9nTTk0Gip%QD-ڀJ@XQ*Ds}Qe؈ёeu,\ޣ.4]S*iJ ?@T19OJdH<`?ɍem[\SyM39 d/ ?cxqqmtEz5?^-.]EVRQ'@IGOԑH`^#dfe0Jy:n\NSIO`c"cj[g*%w~]y/ʞ9mL5x濹'N{>98ǍǣN-"琝\&G㉎d"#i z2'.9`oa Lva|YcIDdaJq3'c2Glg[+u]S7xJWn۠As>=y ?l'N|jN}8ŀ\>A8%8s'0I$d͘LDf.'{FNaqCJd#b@#9J)Dz=g]2c-܏;1Yp ÊDS]S1iKm!( .nYoQׯ[fYd>umt\ 92#UO:.W^ R]H4DoG 1  V?Y1ePlS|#[8'xs?!q+m/3܇d>؄枔0NfY1p&qyDm!0[i93!m?Y->iBAER2H=Q%yO\wʋpό] +sʖ/&Y8א~6/g}W{l56`e!}"I?~Hwh$<bsA4ʞ!$6D5*]ėXQ>;l/<O)v7_&ޮrC!=_|Ug{J<$L3mԛddnu:sL GhXb ePb>־+=mL/,sy˗ ĹsNa8),FkCˉcGcާ{ p>ˍ>h4u޳e\&#Suq 5 h\S6"uf hd@ȹ )I',lx&7! %A(rMORuZ4fiHe ʑ] RP_1<F,9dn'ګJ|:|"B=$ 4JdfvBP:$wVN2nR.*BMՠJT Rr6RԧJPV %:@19Jy7a~S]2϶íkwJatrKUԆWL{vSfWND~q3k =1U;mwFYT7m)Q-$fJU-{):.=wi^~j Fbܡ\zCsY~;BMn* PJJRV["$t:JBGRIM(*JKqDPL}IMr55ۉ;IE lU 3#}0~Ya-la?{Ku ꞄkbXwfYm_)*tFm o;Mˎ%_RIgN><YSBo^.lɊW*c-MeiB{{D)$+c\ˠ>)J֕k"]>*:~c9Nt1#˦d5Ά"-F:֠j)0De_r)*:s$m;H=5U"RBs#ZSpD{<ӟB$n8mN8ꨖЄ-JZ JR֧ 0BTR8RmII>ݥwl>mPQrP;+S.!h`=J.S2.*>oW,. Fع[Kk/hv:OV&ȦhuC%imH"-n[3ZӉP*ؐ MIRUkd8mGmJq%*RWR֢Vs=r,8n#.kBN)F=2'1SJ|\JFN <LD?NgJҠCR kZ`$@ jG:Q%n'>Z@`@H$TWִ-ߐ쁡sK(C>qH.:Gpce_->ѫPL(rJRTUʩ e'hʹfiMkJ_jVkRrTN]8($YFdVʪʿ%cUkPHīQrH5S*H45!R$ D*Sf<Ĥ[+  )LP`Oĵ*A@P f@$ PA8+ kj2?ԀL :|:瑨CpD PiS5/kBQyMTItVT*4rX;@RkYp B=ZbĐ&i-o҉֞U]gY^Q1H}STM2C5(? RM9u3!4aˌ$Q5HmOj{)Q' b a"e|G3ds1yS$-K37lQP7:8=8ď|GIW'$`v*Ew-V IMH[ 1p6_wX,(RhHT(g Lc{:tb恵%) J~dMڱzK9 T.Xd޾۾lQZC_P4~8Z*Ĉpѐvuҙ1&DP376H[]K;R6PU@f}-[n{ȩIJ? w!7 *UdPP $g3P+"͐`%ty\i CEnʥj(F1Nkk|碑6rQrKM{:S]nA.d ǹ\v6̭!(.P6N(R!!Mi?QgXNr{ȅ%L"ˈ-Le)P&M*+\b#0Fyvaɳ.<>Di^eY{^]_[s\h31} (eҞdz.cĞ=U21iy׵Dxื?a |dMނlpW;ɢkc/w.K( m}rHlrQ[_ZԷ2.'OŒ̔ΐ1n`ğuIṅ͞RY! ^Dk]hWt*89/jY\ZOK۞fmF%[t-uPCH@8HA ^'E[4D`jy]uh2NR6ЄIRSdv0~K/V]փS-;]5 +uJ-N 5)xcV'zσ)riAnΖu[pQ͎D IBvA7MF4sDjj]Μ9rg1o$4^"Rd KYBofHm3uywnkt7fF2[h7)G|n/a`\$@Do8Bm0W۫/} lP'~tW9z\icM: _{}W82A#B$$"!tZVHeEM{ڂh 9s%y*RvD(?)uZΙ |qe ~2r 8–hJAJTjjM*iLQ!!@ά>%%eF㴏-aeRuR@ (%51-WkCs~^J]a܇eAy90v|H̶+_:.9BPk-E) H4mxz49z^<5w~;?"-7?3F3ykq{$Z_y͞7jW=9f`-I[v1Me8ڀw?%"e9ޞǽzISK-,$B=6X~ӑiM@RAJ#bT}6넫in-Cu/4qMojۈضCJ_H++QҶoܤ}qX78.G 8|qϹ 3An|iT+;|>A!)<|?䈌[iDp/HzkU× rޯU؇Q}r~&3wŢvߴUN y6Cr)S)Z$"HGy0Qfg,I I%mYīfkR l7uY,.5+5%ݸ8MD)~}%'ͷ'`^WHV;np\ zbHK F.e#Azwʏ(!5 n E7p|p-'ǟcn+ܛ7_y E\f)&ܱfwz!26\}B&۟ l$KB6¸n>~ c!BXtvo`v+xn7Wy(_n>rO>ļmmܧۇ7ӖEr KcL7 sdxLqq)D!IPKDDG&f p2da9m2p%Vk.sM4Y/[V5-I#,g$ӂe4N_Wo޴; O*.%tvO78+>Źճo<82hUq5p!@ۖբ˘{^8޸1ˑXKiCq_p_K}LF"% Ig Y,J ,7zT IEdzu!>)1*FҐP#"1NlÌ$k6?U<3dEǘjw)CɄ6mէ߳-ߨ vcÐln9*K,0-ߪ{O KȵeFޚ?h)>m&S޾ _߉{Y"SOB꺉u.9Tc#' KfGrw^珠ra?$C^1H5\俱G\3y;|[f'a1N%yn)9?xw|rvMrύKuP䳧3d ?ymH Lexɸ9Lc8:u3,M r1|d c l1gۏ9{—J5Y@🐼smwOV[w#ݾ7`=2J` C)e }@0у :R@.0?)-lb'>»YwWs+//&g ~gv?#o$]x[)ܻD-M[T %n'.20Neė`2cbAurP@S>SW?<5϶@ׇ=Dۭ9r䜆c &7YϿwu]':.,(&8qǎ-M*xrj/:̲:Ҟb'Ash*{2vd;ݕ yœPi@1XI]>[6]Țc[)z;w?̊n}((|匐uP4_kһFg@=ȓ2VOcSLC Y QʉLGZU MFS,j]FmPn)jR^\d.< / sn?e9dԅcQd-]~$J9nf+ȕ-RvITΔ B% [Mc[Қʒ%nCw[?~bФ*;SElG^+}k^Qt c c"~˅9NUB{L]BM/b * LŘ]Dd:jw9$}iP@爔DTp k>rJoZ;.tN+m%ιNym VBo۷5c!2/#f._շr;sȼv ?*0%"e+o}$@9hJMO-\ɖm~$Rmf!5\QBM4,11ԾVPLᐻ?텱LAETiABli3uw/Nd(^EAS"77Z@P2Q?,Ǘr/чPnPdGq CywK{U(o5ZvT37/zg:6!)'ZҠ0ː‚c28w\7/nOԢXD7Rh&Jkz~[:>8kŐ"|MN$y+UU1a(Ƿos^Zi]I%=PTV* FCA&VQ8m2:?^p[8W8`r%cv򡳚huYp+I5}6q^[y,q#-ЛR79]IA!UVt0CokNN{>cg;1)^*$p9" aMH!<<Pؗ6IXh>+Z{|h>yB3r Z,3-̦BYlmJ/J\t*-Kit8,2O8]db#Iz{^5w\5zi]+n\'1+JvŠ}_e%9@/tE!8chujionn#QSKfZC,nP4(qDvR$v60boo;Wnaqz2Uyj۫7KYZZ nQ){hTtNCx҃Ի~ tMmwz8ӾnIs[ZW _nJBj ))?VdAÆtr-3 T1,i^ü4['8Y\"xRKanS8%z%$mmY=,E45r1GG#7a&dt`Rڒ$J4*,T桏 ?m;q_(K~KE;jBTtH,*NE9eSgT`*H-7)[mJ(*UHXc"߯I[|WHYm%BcXc%$NH}" 3i**Cy)$c,jdXE[ tSnNY}e_;הvtKj@oֶ_ˌ@o/sqkd& /1GMSۛ%8̍4u,fX:zT ۏs/>7h-vˌ6w݈nb'Kͯ{;ݽFH,oR#v+6$ ((I*Xml%A  )1B7 $=,\6^MgGi;-S7?|dnr^mrw;]+i B}hq.8,Yb !vulY'xc\w%k\?oSI jTunMv)̻RԹ9Ji1lmЬHJ$?Ü'&Cmkzc`:P:0JƤU5^r_ܸ<@y =\Y|G}DG8ܟ\/Z%ӇټjoLݭ6o?Z柲z_>ѸυgGʡ~qƹN}+Ğtb!@Pp>)e84z;ż?3-r$"o30T,,c<1Dr?ُ$8)n9lgr %_r<ύKˮq r8wzO^J8v?p7q4ļemCN-!.9G_ ~LbXϧ091h7œ6a$c2b%9=d?$Πd;^Df׏^rWlOs %<[ih7t7xڧ x vi x8g.]q(^?)]\Vٛ'UppvZU{圛7D?XEy[9ny⼐?"DX˹%zhKLF$ wD[Bniy9C6mv7h@!2ϨϾ_W8sn^< |Yh>*ӓ@P'~G ^.2$іZ WaОL|C.YiH'h@ IFa8;dDbMXn, ,D@.MQI ׋͚Wrg+¥CO_#phms+!8^1aYl][rRW/)f8ݓoL(1g&L!5Pϻ'Qn3y a"E0X$&p+~.^c<x>#FuG~|.-W߇_.Fo/w~ǺI,.C8YrD,&DFD Дm̆d O=,29+.2tgK> $DcC\{ʖ/-{~8toxӖy4_1}2Y_o7|8uGf8Lk{){W!3bX=~"2ˌH:HFp2Nu$Hc|N'w&w<\8߁ ϾMR|CxZ?ϼxw=g'.Ubc+ID w[FtZanvF: Yay$%2qoS9gH{npO(V$p5āDq(>ABi@j7I5$s5w^z۷r֐~hR#(`gkM)!X36i(3 }MTT(:L@$r>t! N\fNZuũ]@ -8h:ZPQ8ChA:]3T7ɩZ$-IPDžRe:^p0ar@vRH r\t⣐Dal<Snʷ. ޶U[`u5^KăwPcތJZdkٜR$‘+,nJK$ݍ,+x3|4mq’ҏ^jQe㉴I}[cFaJrUC%Sf^i,JhNi(}mV\y!}>uRjv*:thM nU35krK5:~FT_UKG#Zhk=s4P48"Uvԃ CQL55u4-zATzPf3Nd`T4%-IDt}qZu=\q)*PYwQTWۼK\Rw{SsHe- $oAQYNG8a,\eS\ir۔glM$!AYʎ ӳmiq۝D$0 m\q r:T@ aAP jNi Ru]pDAFu@"똡PnS\IU B%Jet|$@#+rī"i'@A!r VM*y&YNvӽJi orS(JREJ%!! T0RifPẠ5nKrL{fJ{%.I,kDTweUJ/ﱹ),KۖkjBSw<8b+Sm 0\RtU1]6>d[z=va-NɌЈ} !jE  ;U :ڬ{0}6aKzAi!.<-K;PSBT5ڀhX)*iMBwW] }0Esite_pro/images/1page_img1.png0000644075506000000310000001520311734670504014525 0ustar namedPNG  IHDRQQJ6 pHYs  gAMA|Q cHRMz%u0`:o_FIDATxڔ 1 Do fqN) H%,Rh a%KIVc :R"((1քzJZy+пxŧ~gGul3_X3v|\9[N̋VZko~>@,@O5|l)H Al R|Z@ 4h  A=b4R}#@|503f&(`|f?1͛ 3%$$^z%dGFNd@3qE ,av!PRϟ?@,Ϟ=cx5Xd P0Iy@ 9;<@nB "@~@3z#d>222 /aI {@ t88r6F,ò^4=u'IYݻ /^` 8}^P@>}bxÏ?} ""( |Ӏ tX* AVaMB@< T i9Ħ@L ׯ_WעY@$ǀx2(+ BVqGNXH @ZDfkp$!{!5W999NNN<777-)) @d}" \? `0`60PA$ 10pE>`X3͛7 ϟgcF0@ x Jw!6 ('A >0s0(`,( @P͠!zB &PA AITa|<T l PXk1BX6& $6 U"NPDPvV@}6sPr5BP@:P +`5*zV( лVV @܍@q6^EEH 0@,BTM()+X+ΰJX&ANqa Kٰڟ )A 4kЬ /(|sӧOP 5[ r8s&8LVs"tN)d)h|]&(`}e BI՘E<"Hg+`V"p{=IJ*5`$؈4bv>FN۷obPVFM\!׬& 6 >a)9=&l%54q m6 W#*EσI<bb 4UXSGN^c{e5IHȃ!odq@Lx,aV$ ` rZyDW&&yxx@e2r  + A07X2TX@@YA| ?7{8Zl@ \(43ȱ= J= W^իWrB.#O" j&b /ār 4 crjkk" .jT b]"i zx" s4rMlHY]] 8`EgO6?<ܰѤFDr'XxA57@M== # 7xҥ@ np@REb^\J ;;;=IO ,n\ŧO(#/SAo8p%A+%2 RyXrFF{=l򟟟 hرcoܸѣG@e1X z/ׯE@E/&OA\OT(oS+bb*A  P vcc#eiP_8-- p۷o44s @Xa)xe (ڀ ϟ? W---BE)0o(l qZKxۘnooOTs 3O__R+bH5a3f$b!tcƖ@)qMD@$P37(;5+v@m#G?~?k,r=`܌Qa > N%݀\Eo݉6 ZUO"c mrn\:H+m5٘HT}]?(pEBI@(e"순}: jePAmKK JSkfK *iˢaaa64ȁk"2 3rm-0qcЄ:Gԃ 7ʃl.hTrăZ4@5Z}% aK._+ưi&0/..e95Vh ABPex"ʊ^ZZ c'u?-w\wЇ)3`-P4cp/1<)Fk&LaR;w!P#d|2@2<غB&eZE΄3DFF73,[ e'xj Xy 1{) n/Fprrbf]p9|a` yf؎W<2@F?#R:ܧF|3h ]!/#d.h`Sd>06?NjnBrNP10*<-_\a oqP}v[XXȠ*FhzyAEE8uՠmv`1܄j 8 `"$Rk- JYlJ@T͟?p +AmGGA4i 8hypv%&+(@ t)f1:hAd梑1b;k`4@XCC)&hC؂|"  M @@@TI\Zt`AM z'ܳmK2$տ+ 7/cEI:7qDhSgaNLB 3X(Q@6oͦA }ݭf#Hl5LYnUizVŠYt/4FX^Uv,&10ᆲ4_^O*T)^Q30.PyҋE{Y1Qau.BOTFlq.k%ccN-h[S3pC!w=!obK/xB l |jooˁT1?t@PV֢DCűe6@ W[ $6(:@3| *0в:^jP )) %%G`lh4g J@xlnAn Lk- m؋+#7pUs؀X/5Y@eʕ+ەpO84Bz&h:a@~;k Wg@y^.8XE'R36rdlpE3ºhgaMخOXSGk;"Ac7o!Ԕ`6hw'8?ٳgU!pV:tA@ :4y"fqH]hyfhvzz:/Pܹs x,ry&N_`8:E(ў e X0qjl\ ͐^0q"'1@S"PvuA hI`!nB?Jm ,yNR]0yJB."{a5D%т a0P4,, &hP OkA19aGv9,Rc  ! (@*A]Pb$.. tH 4,-JY<JyOCSaCXG O!uEq@'@C{!=P*M;h[>FA A\:`'Mc;C,`3pF byMQq"2;zV!@ǽ@1j=f Pڮ :z*2r{e_ $;AO&EIDDȿ O oA9 X`e(8A!9*4ƀX|ȧ!{"R#5CD,]@ hf ϝ*]P6R: cA A@+{iLE]&\GŽhA"u,}+:(Ag҆BۅAkxc@5<@Lr$ $ R D @_vPJJ@%,# `1& NwYYYp Tr.r xҠQgbh*(PR5 (X@\{ Cq gcC@n8ٿ#v@b LP @LV?D8 쿠v&Oj|6rJF>9_(Erd6(`APB%v"@1_[ H@-GjYx6>(|6F?HbD /!9[ <@0? &Jz>[Rg$W d_;a!L`DԽV&萻4Y @Lb'C.D [ P;͇|j9! wxwhA ^衼  R } ΠAt=D́k:` Ȇ奁bsrDM|Cqq+]A](my3,;æzAMPjp6c #"\RXك|4)r-@kRl= ֈF#gcf S>:lg [3nȓX0V,b=vKb| O_e KybXSIjt<( QSaaIENDB`site_pro/images/2page_img13.png0000644075506000000310000000723111734670436014617 0ustar namedPNG  IHDR:=z pHYs  gAMA|Q cHRMz%u0`:o_FIDATxb?H0B@`Na Q#+ xgٌ1c|֚1Z+!۫ םkUJP~!5 NЁ7=^lw#Bd< ,̣ A|q=sI,,,`߿ d>Hp߁+z!œ`?v$21x* 6Ƀ Bo@z?P^>:,Y7xX07< PRA B 8Q*? 6 @f sA4,БirqR0  =̓4 K 1P <r7g vA2f>,P XRY@liXg Ѡ y 6JiCJ*@|Wa$\Ab >Lnp%d.>u )@E/z 31yaFχad6 3MXȃ < @̠t Irx!4⯯)V²,B9/:co XhPb aIE.eA4(xw5*ypb< #@I&(L A!U=8_AO_݈^!דϵk+++4(. f `#hFjlDoF@Z=n͟?a  rvBX'$W&?IlÒ$,F766qɓ'%lX"Il&@aC %M@H|i=_z5QE0sgS^q<3zkZ5ȽP5PZ<< ϟ?gŚ @DA`Uzmk60|b=  z .Oz0gGX1Xo` wN_ [9Dy uuu;>|h$^PP_PPl&,; `yV_@`̳z0޽٣ ]K666(v#0gI<@ȝoȅ,C94=KK\EE۷o߾}CCiM܀`Y `([̳!8a!!?F$(椥ݻX⿄`Jpس(=LF?o +B;ȰL*5EEEz)ӧ^~::: c\\PaP sbFP[x`ruB~ kA[@<rrr`sH3l@%DAIːWp28q"|PKa`>efׇ:<, 3ȁ O,x`[pV3 999>\`S O<,-'P&ҰT%;(Sz6>@• f#,_ r愥:0?F08@I&kz$a(9R⡇(:A)Af> N0> Ku0Xa xEiSBָ&ed/P "UUUxIz]paKKN2 FXJD{@<k0B+޼2< *UAؖe|B'aB26r3 h@Ld9y}9ǐ^w[=`)ZN'O4(pa- X}I;@*5ڒS7H-c'11$R˄ >}AaNXf?7B^ }Hy& 6vkvؑ+( )U١̾ƥp,  9|H!ua(搓 (ћaË:`033.(iu?0c pه5@H}Ky =%a̰pت֩ Xa;a RЀ 4Oh5 ^ Jjz0E+,qRA^Rz!fL I@K`! ;Bn`<"f֪j"%I H_@k;B a;hFvB_8 ֠@n|̀(RQXh~Px= @B6C!u,Vu ;ǪB.;U@~! @,*]"@MNX%u` a鈜)гR G= f>,3ra#5?Vm!j`v w`Yܕ5vo4kab9 VJ\׀|b%/RB6r< '+5$wI"^ČSGNF9'A5(*`mcR= -!Pwmpbia2y? K*T=r R49C~L0u8sLtճ '€IhF i5"^C g?\BJM磆.1͸IENDB`site_pro/images/slide4.jpg0000644075506000000310000070536411734670350014010 0ustar namedJFIFHH ExifMM*bj(1r2iHHAdobe Photoshop 7.02012:03:28 12:13:29(& HHJFIFHH Adobe_CMAdobed            ;"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?@f7Lr S6 ]no=+sgBw|-tWhubv9k$K1bgvYm;~;b|VӒM nyd}6nmYe޵@CK;o`ꤧG zZ8ԕdp9րciipSb}hxӌ>7ms{qG>R }Ϣ Sc%['ìhݹAtn3/eƬ~ ?褤#'Ӹ6o-/kOFKcD{[`t8併[inտt[G>1ޖ.C=hsS:|s+'>NYy5s+' w ѡʩ6$:] 2,/:IOerX mJn65];Ij6,|<Usq_ml$SRSud{Ի w$a?K+s22^Y}`C˅iu^?s)k n黅QԲ@#_[|g*^s1+{5EJGIHnV^hVJ uV>}Ϲ wFqbY-!IM˘qS[m.H[rY}X.hh=]G']^&=9'hmwXj:OW ^GV8aBG۟S_@kH֙h?+;)kkC8O'Kېc?Ρs\Zx-=SvuUFgBi=qX}?/%5%Z&?E@oc\@9dyxwvF$7kGNսsy(/NePmF3"dɉܽoYi~e~}?o?RSV%9c\lW Hc=X5sC]5+Xћ|޾GMJm}=v6d%rZq:uVXj+>nm߱뤿鷙_?[OLzv-K~IMJFV+4{fMR\?l?k?O- xJpr25U/s.- ?GXIOPhotoshop 3.08BIM%8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMAslide4nullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM ;X JFIFHH Adobe_CMAdobed            ;"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?@f7Lr S6 ]no=+sgBw|-tWhubv9k$K1bgvYm;~;b|VӒM nyd}6nmYe޵@CK;o`ꤧG zZ8ԕdp9րciipSb}hxӌ>7ms{qG>R }Ϣ Sc%['ìhݹAtn3/eƬ~ ?褤#'Ӹ6o-/kOFKcD{[`t8併[inտt[G>1ޖ.C=hsS:|s+'>NYy5s+' w ѡʩ6$:] 2,/:IOerX mJn65];Ij6,|<Usq_ml$SRSud{Ի w$a?K+s22^Y}`C˅iu^?s)k n黅QԲ@#_[|g*^s1+{5EJGIHnV^hVJ uV>}Ϲ wFqbY-!IM˘qS[m.H[rY}X.hh=]G']^&=9'hmwXj:OW ^GV8aBG۟S_@kH֙h?+;)kkC8O'Kېc?Ρs\Zx-=SvuUFgBi=qX}?/%5%Z&?E@oc\@9dyxwvF$7kGNսsy(/NePmF3"dɉܽoYi~e~}?o?RSV%9c\lW Hc=X5sC]5+Xћ|޾GMJm}=v6d%rZq:uVXj+>nm߱뤿鷙_?[OLzv-K~IMJFV+4{fMR\?l?k?O- xJpr25U/s.- ?GXIO8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:36fe53a7-78b6-11e1-9a9d-a708dcdabd1d Adobed@w    !1A"Qaq2#BR3$ brC% 45&S !1AQaq"2BRbr ?]فO_Ӡ2*cQ:*~Z 19 1#8+à=АGhο[33m!Y1c' F(W[9БcF@_3jr<O@1|I+|rze\@ހ3P09o<? r: !:|Ǡĸ@m]2pzY]v|IǠxOf 3Aϐ?ˠ$/RxzFy͓@?|rIqi<1G"Wg\eW+`5] yxiW1i`t>xb#vL$ჯ@Id8ŏd>eHLYd#@xtCUS>[|1-4BF$\dAO@2ժHl5נT +`t>X tZ p@>8 נjVw=R`!?<:^[$L17d8%G| =w⹞mrv(ƫ#dj3؅-tp$艦DhEm@_gPlv̠9d.XjXDc,0|+ӱn!Yo-Y,R |UTkF`MdE%pKtZTW ҇cN ( J8 c˵{:i.#{)a&c@ tt fafDp^hW+ a[T# |HrIw[i+Y6 WbDtD7)-Oya88%3΢Hk߹x' %Z>6=Zۀ>c~ټ 'spJe}kp/Kgr4O}^:`X(vVTY̍ ;;^*̔lgv]1lAwr3f ѱslG<=/I#Uniisq|W#ܩw=q5K]mK-NxU$,()S (0L$O"ynfq~:IAς2<Śݥxil0,2jR.s^#G|J(ibDɫ*̓OL\ERnΦbs]ųxu,D6g$,֎AV4]s ,y䰖p6ʐSh<^4t|35j(Dʪ='904%^N[ȴ˕Km9oWKUeZ9Oob)ۍIP;rZ,_R1z8b-Ff,,ܔ Xtm9q^b_eV̓uݪaq@RI,bVOۅ{ ä78dI⢖"JQъ1Ԏ)Srt.]"U[v԰Hį)21]YfFX#.}c u꫰eKupZK {]?'ݡw;cM@ÔF(\`ȒJp.,v2;vod[_f;\,u=zpA+#1z$MaH4MN8l8A Uk"8$,J.^u2ykV *`4sVCe ,#umcaםv Ia V,PE5y#F\kO;,nXH tUWцZQJwHMz.im(쑍̪H$u. J ժ=T/Xg0]Z݃Vk$Uw8V :n(T Rŗ겤2L)& /H-/Z%Jb=u3מX=XH?q:(kug6_o9"~#{1ح,|mB(e1b.T TjDp nKCO\$X+>≅}\ioOs?[D$RKZ=eM`E(XԨbēze_Zbj++^8UշnBfwCV WKՋ3:CWpRW7,zI~KRF72V"_x@7+)fWqlFZଔ1X2-xVk:-um)rOXV{jH "#,63vEd[PY%GщgR`Fł#Lfu #e #h#+ђ( )xUWW],#T> Y2w`7XcQ@K|PHa)/QП@S,C Πxg)q\]z~/>B ˍʲA;3i:F> ?>T) n$F!D(e,CgvG@K\ qcTfR@ vtu,Ah5 `)!O>2@P  1 5ǣ^!I 3vOrzE8Jwrh" }D+ݩň8v> KO>^b> P_ `#`OqF|c[T 99gN^U3`6uʖѾ=n.r<:-efp e8,Y <g#=b}x Og^<9}9R4_Xֲ6!dv\6=$`,?ꖄZYdXlY$s7 ؙljE^Ugܰ޷H: 3iN9koqS{cW1D:IOrZ և7M5'znv ا^+%Vu;}oZJDUݜ,:wx'|{repN QYxbk[eO#N5<8#8nIU_g{1W,-|t͚<W yIl'M+L{.T{r)~?9*ܩWw[1pݗ Y Czo; 0_ 4]X=${]|B)ےLzd}fUy 9UAwIRQ$c3pWIyGQ H:PAI0AS{jIpWB?%WOIy)'LĿG=ʯ ذj{2Gё:@s@h7jĖ_jwݿOgX:A8n¢%aS%D́%D4RZ- z)V?Wz<ӳkCVp&rUnunUFFٱ#oTIP{ԬF}㧼)D1Tj!@f=EجJЫ׸H8W 2`l,vi7':5d}Y,p2F۪M(դbYQDic?d8:їUH\Z7FcgLhԏϨ +$2n]`b Lޢdr|<[UwlnUP7h2cLbq63'?O2 _/J2$ѕ;PXӠ901eTmn{$ OLHB\g^nhx.Ouљ4 !;I, yE_eH:\-cinfR 0zZmBYÒ, $xШ`%۹}G2`ƿ@ \N7x~,++[>\GtGUԦ+ߖ@: Q@'sU tϤn 1n 8 ?: 0~S_9 g? `3Y.<q sFA1'\#5L g_<\tݸ@8Ck 0 AQ|F~-GOB|u?#+A厀,> TxtNњ$cH"nc 3W8sfB5@'̃fC:NK,|4H|H 鑓d6?!_o@j:뮡p@trrrN @hm1\?j dV'~9ld1q?Z#'O N~|C`!cà %_20Gi>!R6i=N u'Lc\`~}M%M(V J9d7 I GeD5{vțT1_z@W75^%]:$.S}qd<2ult`6zr2XA?Ӡq ~pr4 3#rDmߥ[l?mu+"1][dBKop@ # '$>%; 0X@8^֥U%cq+ n#{w䪂ug@z{IaDiJk=Efdul 0/k5:VbV{r{hҡke<5 +';s֍@XZPY^UURUcr@bŘ > !/fY+f 2ZrP"z:OL, [I=&q[ s&2"ӡ]bޫ׆ U8N۩Xb5 s{gNEPyW}TjW^UZ=*r2YU =f~'6 tlB-? U㥞vX+&pC[{ey/2>)UoH;kv0ץ$N69x;7y:rd8Nַ)%~":"׍aCovDiU;o,ѫ4{ܭycKFA^T+6q^TN[;dZPA-X"0N~Nn@xT֤۳Rı&nQAx,S ^zX wՔkАf'?rf(Fi")YfiY`ǁ֯;9+&15yl)$i"b)*b@zLI u%Lr8 8ٲUd/ \S],D8mm—^XȄп6"lےhI(ʠ2VdYb %J!t.i8>eQ ~6o#{xtUbFi*s5ώrEyDh\!W`g+Gp-^.xqJY$^&lL wˢ,*vB)6Q@@ )'?_SroURC`/tdc1OŀMHx,k V ] B؜#,FN3ٜ5ν: Ǭ 傝Xqx#O\#Xo0{Ts0@:Wd6o <ϠPA y`xu0K8CN?X:N^\!$ ``}?Y | x9Y㞀^g+F<3:zUANI9ǖ]v cQ[O_>XΘPPN\ :(uϘs xAQE0tϘ tE7'#U' 6t9ϗ:QFr1ztk=':6~9M̐[@:dzQĖh6@Zi8%N=T 33à%.+RDTBǒc/>x #Hj#U~uנ?8JfŇ}>쾤rWU79#PF:jf*@%ـUMIPd#@5JUM30 2 І1:Ңւ7U&(,D˸UT3 u)Wni -$VLdN0@}?kVV8<-;4q4c{1A,_*ߓN Vk#rO5,[ss0BВU%uϙ{ؿT\% W'vOYGv,)CP̍ m iߏ{ܴ!s}ȗx(7Da$5o4_=B-UVdgZmPCS9Jj/a4{c%9Z)L1p7O*?u!ό&ϛyym?#5BN;ce>HC˳C@q݊5r]##mWz7Ff w_%:܄zpMFW $ȦUceI#EzBRlw׈ݵR(8'kJjsdP-V!*J-F<qzOB\ Ii%sU֒.~UU{aaQ]}?B5֏[rUk,URmf<,J煘ai=Ȣ'\f*P0[[v1r7/%1XX#&:4rZhxjOWR3L|L^'YYD'¢;/  rzDs~'aAKڎHi*$ +5@Ĵ /=Wu[Kw3k'g~o )e}Ȅјև:\u.܊y$b';*r/k8}AP0z_TTBYjGeѭs܏hcn* )z;|V;oUX!.2Ha"Y+r"6>!q V4W2W L2\ Xƒ8[%'Q3Rw$D2n6|Mh[?!*>i5h0p2H<PpH֋dEsYyg=VJXZR̒Mdmm_g;2Pz Y6&wZ%Ɛx ,8d깰!mƒYjvm1Սjʐ8LjAc5T`zIvVXHmY ,uTWBL AU.k5W㌔%);4v%A|YIB+ QSUz{fW*b*H*>TgVG±Y#@ou[kDVYJzۆxfk[R)Y}2פ̈́"kӵm?g9ڊ(sׯ<œ3\L%8I$0ZU2W`9z4KDf$KKOެt?7Ѽ\]Kٞ=fҩ49uc%Z0"*%F7LP4YbLk֭xF)vV½o}޻WVֱj1c}HHxYHO*rpW'!geqRѱw\prW}H=T=KAV'{.ӷQG $X _d%0F.Zuueys<W *3πU$z=Oxk.j##E+IʺeGLw-by3k1LT3[學G{>uڲx>=E1|R{㞅y5?mNѩu05 l]P {۔A3;=R?N6oh>$ @.v`+Ա$Bz"'q+<3㎀J ݝӂj=n 89 ($愜G#g_m0-/@/YBX}z4 2ju\ lBX<$CCa@3 PIWlz\TnwR":)b, A ,qrJЛvu'$x2k#`x?Q5΄:\Τ O^󏦇?Ǡ?6I]<|:".>#i@oD x F$*01Ơj.(Wke_mVAWW UDN^O'q%;7}cƞ:5^u$ I˔駊bWPu2ϘoQ{q[p'"jJH;IP䀙^nJGz$@ФSG:xOlɫHÖ:"i!y 3oLy9D0YRa穎UUȮd@USZy@붬>*,]ξ8Z^N=yjAnyG,rIG^ɳ%K&rG 3ZȦe 㟏zZJuMe7$l7lg»CIX=xLrMRcn*UXkIY9 rQÉ=fI[R~a>;yJ$Y\`R|UeXZ(L$ld= j?%qUP`nA7ջHxUEQYAKJxKfUX\v4% ZN찹7m/|S,!j)ܼ$+ ~^n9k1C'OO5׫yW{UR(_ wKb/}r$=rz`[V7Q7*=+ {{ )pOqxtn݅?BNj0Jf_b+|'ZfUx./lr_ SCF,51S"rpҗv%Ywob%x++XK$CuaBíǶgj N.e*'\dՠQ z.\vnw]zypZE<+ F܊dgwE.Ԅi%Os7̔^1P{^"䉥QZ13dDsn1$1ލ&EY^;oaף\ IUKBԊh Rx,'ɔU$۹GuZ7"n5gCivRZXvB"xM2K K,E!{"WpIαZ)v܅xYRi8$J tz efy&&bX!rĂ5Ydc0BƵԦjIld`N!ͽɄ>ˍׄHvoi#5X֪qjU%k0I<HJsa!5t tT X{:ÑU, 4PeE\'G7+#DxV>#%3XkEu+Y&NF o_0vJt}G$M^6,ܵq'ʰBlɷtdg%zg*W{bTܼ* ֮gr7\#kdYn=F Vw'i+q'{!\rZ4>>nvg=wt绞źy`y8cYkQZXK&`ެ{6fv¼39.v Ob%$J%Z?A}d۸;nE+}?o8S4 n ۜ) (;vՊi%[Ch;#:`RQX G{\|/9)8WrT.$w9br(#^6]Fd;tp}7fxokf^q^>K#^)lD$VdiM|gwmGqTJJ3ٯ'y?%^`L[rb13=vrM0yyx%賂}&ZXDX%v;>|A2 OC_@#L9:}?Z,d<`ł]ђϏ@)\m"TvBޕFE>'RtԞ3Hx ?(=%A.\hG@i8ns NFq@@hcSxlƣϠ BG OԑCۜx ?@?Txdnܤ2 z H:钧'_ 5`ڠ>@+<Hԓ-I#m^### `Ϡ $%1lt(8ap9@lU37'8~}Mxsf;\6Üc@Z6+p:<B5GggmYf%So@1t))Jmn>Bp0ue#;NTl n@'Ϡ2sNfEgXː'S*ɂ]xhpO@Cqv9=ֆVezV1]d/U9-v}+ryjSfCb^廂-Yϲ́i /?|+W~>E;qrKtr'n}O0I9;V'wv-\Cv{rXoj{S373/%Z̡jA܏5Kk% |ڰ3-M7+.u xIflC^ Њ*\E![FІ$nM$cz."bӘ.Oj>~ҮbN5GJe>=?q!@Ž|h@;oGܹZT'C9kt*AƦ 5ƫ㢿T~6VӞ?" =#?ɕ_{V$;vعBkG?'{CF~*2UU % T)9⯏/hC rOp6P5@7'ȃZ.3wNZ[~%wi qkB yIbbHUv<:s<|;8*Iۋ">+ܕ.?lމrv|\|U&v&Wp},vir[HkUtBjćqg*(YDdGlmwhD*$<ۈu#]UV7^bp{/nB1$G+n|S9jµ JƢEI$ysYJVR!ZѰ%thng\.o[Y#v-w g5c-I8ԕRsy^[{h+f%Yیm1t# *]Vfi9cuZwIӒCE>ӀU@KUL}-8nW=ZsKj=RZIX}JVOO/0 rYOY\w\w#J~"+$7ch!I-ǧeSin{tq=N iML\prEr4Qul/ yߦ9^ܾ6}߂E0دNhV)ky[ee1F*>'-c%mU阣9-*ܚU{ 0$uڻxKsz!ʇƻkagDb-Xi= QE[-f>܃ê7f^Z J/$-y(PMפuȗjjtjeA T"$EdNPZ- 'o2:ͦ;3Y_;sF4lvU6Hu*@9 %5VBd3RYvHfF啀5ufڻWW#- cveX,14GhzMd-:DQ#"V- W8h&X ER/y4$_%YDD&trqV{(5\E3U'+9=VjEլ+Y+0Zx,&V$kxS "/Ama^ڼPQ] eOE;\UfI ZOrj3_(ء: r,h/u_U:o7y:Q-^>c+=j"V7PX%}˺JCuaj#MuGRfZaRLAYVJ| F!AFY5Y-9[仟jvoNr_.298TK3Z3cHnAW1?7{NNxːNC8 An4qĈ-Ha#[4JWڻ94_IU?)_NX܅G?f>VA WjPS䟵x~ջI8Mk򵣭TY^@Ӊdx&YBHޒTcPӇK<ު46&%OZ 6;iœݵW,su[!`{vF1?%Y~Qb?mN=({Ԧ}(c ;tΪweF߾;GR9y,hjH+#$Q‘E8H1ygy04QoY2sVvيTyV:,X(lz _q XޥH9@s7 ܔ]7'ϋ||C.ƎH #,YXjIb 7*񼭋xUaduo/I][qV8 |eqq^RQP yXKaaPA"Ses"h^5 NB'vHflAl6FNXA{\T/em}$df+@W m#Y)t[k6rrQ<:LA Km$C!+< 'Be8P  on )! hjXY%j Uݒ4,/`X3HV\z? t-o NrtƸ^\hp9,Ns1:%h>8'#6"$6>D}?j<䜍2||zH JnA@$3tld19'à5 2M30>CN+,pri?NH`d>:,&ܰbs!~8#X1pcȒ~bUH x3y?L?̟?ƿg?圍?usA# @m&xh'UЎ/XA#Nyk c hu`c@9Ppkc~Rx~9_@5ԔqʒA'9't':xyf]s~:6N nshA.C O r2H k 5P@Yǎ UfNkEOd@:Ӝ:j`H `zGtV  ^#4]pf$kiZaZ5)#{Zkg݆M0H@@VCZ= qU]/4g99::M\$ 1+SٖE.x<|0<. (vHX.S`mzOx+vO:gà8Je"X;0,@-X9EIac.Y*H'''P#.'pW- ui.oUfB 6Y cXP9_`XV~k);Bd3RE9Nf~Xp6[2NS?Ց7͎x })SOzlx!]JW]9Um*+}R>qț][ ^ܜ,ut__ V (2̅mՙ̨}K֦k_[L"E$ȉX:o@P/'n?ݟ+ 5̬̊-0df@T @GHo/Ɨ;1-T{Uw{²oq2!`w֎8%5Fu];ltqӖ8Wvq&Jq3Ώ{SC9.5qR~s;={8'(/ 7%TԂIcIhȲ]U"f\9<Z8j ~^k&Rפ{xj^CRiA<1-i8u5k܏'A+omvgd6 ;_nrb򖹮㓓l@?^#&ҩODڪ}ϱ*G49>s?Ndemj:q]2]6*:o^n*"J2qIȅRk 8a%yKhB禒UIWyh<,ߵV8L0b=@%Z'o,Oo@I<}YV 'fU3,oB#NCsn0%'~NnO[qRZw5:%*̊ ' [5?S:lqmO-}MȀ̯ %Wp@JOm+^&x(K#uՉ҈̓G,$fVIi3;ͽުGN/Y掹"CbPlHJPnBѕ{ ٹu]߯,yWأܷj(K'2 U/ gf9@1Ln iy$/3M}M3!ݥgܬbe"]˴mfY,ݪv92 HRNFK-$#}vK5G1XY}|CGYk2kH-Cj{S܎Y#2KffKxZfA~Y~]VܿIvn&չLrWcvy ZMwwԟq^['NQ`g1q@z_dhs#z2N=A:ptjydk|3ᯐE"Tsi zpAD?!\t,25Ԍ=C 1?/Ǡ ֱq59? 'IA=RQ!zV+$aF6uڿ^I1* N'?n5)ca9.Ð#hH"1nT(VBK(*5Cӄ鶂dY{rXI'96rIZ$*Aufz|.ݽV*\l2Rn [beJJ$ag ن tgptZN[x8-چ[[~Řsq4~`&5Y `Z(\pzctֱ Uo8L,I#n c kӶ|N6I+֎DINe#9R3({qiYYLabw] @eTt$a|}[2YL֕UvHmJ$k&YHѵdߧ?"fC]!3J-$؛HJәUuBEY][k['*"΢씯5{ Z^9vU Op)jjYDp)D);J*R1;Fg#@}c޷؁I(Z?ɻ U8_ixy6ud!@֮Q)W9f7;KU۽G(^ GiH9r$o1^~DPgZ8GpUlwuJojuV.O+}$+4n3I_jƼ?7z_*$O}.fg[ !Y.Tfq뎭۪\)v#l—|vI./-$IN5)1Dm!Eɏ緰Ϝ47p|nu(n䎧BN:UN:l{-ųw]Z}s^GyJs9g`s*|/ KbOq87|wIXX8:xq4WS 5\=/=jz|7hPNswK!nQ~Nf~{U&F#NլEGڤa7?Gy|4nwO}ڪ*q\Ed~;YV]+NӦY+wmT WlX;sZyJGrq8KHPmwj#iU~"Ż\y^Jzj*rH&pܟ.> FO &مVmǐ dR|Y%թRݐuFP lrxJ'^2 )X,R[kz  ћv$Џ5UKc$4Sڌƒ9F(޳Фos0Vh* ,mX:n&$'$HkbRqwF8,IIF#NYET){$ȇ)h"3*L`?9Ӡ plUdFRs4f{ Bhm՛d5:~y{B?Ff 41#%נ$i,@ct$ kGN 䃅CVA::nVt9;tƄ\ H!:JH9MGFq8R Ǡ-pyRʱN=1cmp]7n'i =:xtנ"8x-h>z-L F#"ˡv}A C뎀_(ɈT]C[R@@:i[rzzClѼM,es*Fʏhn?~|1@~3 qtᑓj@']5#<@>]>#] 0|  d `xLqmжP=TWp8d8ϗR@Op?,sV#铜z\n}^@m g1/.#^zu\U僮Fzԣ$ |@9ҵNdGxt])`I> 뵼|@7Գ8Qᓨ-@^L Vfh#gePBPKduyApR͚ "rnF۷Fp#>=Ӏ֒&y0H$,B;yĆ {biImh͵rpF\cκ`qIzo7`qH8tjpdnINk x#!F*cPrt(v\!ZP[l@F_>'YU-Bq޾S G?WȀRjYɒ$.:Dh $w'F[Vl&䎕x&4G4zh|H NAnu_%olrGju~ZvD,Z6'1Xhˌ4C۝-kFk4A$Pƴ*=x-l Yw/}m7+\y^냷 ҽAI=:VO f E `/5\uGMw*qm 2dúկqUn^v'K,yy}"K)#IzkÏjvvY8$\q]e*ێkaW!cݝtʯ F*VŎ ^1YUKQܭ_졈~o齟mu)8n5ا^$v j LfLDͨp=VV SM껈]l^fH xcv{Ny)n,4E "]TJ^Eq;ޕjT~c}#pIKy.߈4[( (5hҼqY1^3o׽ׁN^FI- õɹIik^-x񫧳 :& qu|N'A'F89}^$@)K1]ݳK--Q{ϓnY%isg?K '5'vJܭ9i_{jyd(yFgM{vKC_*{2hFglyz)uZQXL1!u]Pt7xdK,{G'Yf9kԊ.$O Ud4`w@OzeՕ+,$euE42ž0FQ:dp2P/TzvLU&tgNh#Ic> ôvRK""M#Vf=b ˴N8;[W❨QlGG߈ňpQ޼"\#xovsYⳳ'=ygi [}܆6{oYhԄwVJߧts\=xZSȬ8+k\LvdO{Y?$ʱ"zTIial'CQiObE}CeM*YpYs3۠l|GqK(=ֽݖ" M5"JSƛ!3.\0#޼0q@J.y+M$?G *%. ,bGF3>6-ԣ0%xrߜmi,Va$<K<;,Uw;L*Gi}LΕ<|W?S%N-<\zfaٱmVzEN2KjRvځ8۽9;W~mWw7KJ#O3<')IJjQأ`β]5[ iߚo'a^O.K{+"W|oTD`iyGj _x)gǿӈcp\G]q=Jnq2IݶdccH-v|kʗ;n底{xz܌|A7sDh ݴ4{q] Oq 1|?bПC1].㬬}ԛkflMvّ֗NʯV"WNڪkS8ς>cGǕ_'kyYva5g`>4׆ 1stuf2J#16Jߧf.km|Qj/ܓς{~Q7ZtS{IJ9X+%^ H闤|;h 5JM&z$%8#p \JXfi3tF} x@N$K8(F(ie9w}7qr85JrSU/vU[ FHDJJ;p̠:nvwhW`V+9k,.^a >!ؤ7 [*% ʾ:?rvCZ-đA #?:%h+{Xa#ˠ ^Z ,rgī/#b~à%^ܭ=Fݾę A:v?<1#PBO/|5ʺ2eJ`G- rBvUqWytqHLNy}rmcCKV[5~ )ypN9i/FôkORmj9Wnk¤Hӵ:ked% [In73S ( nUb7 F eQ$+Tn7NO@ T! -gNVQWxeOd?XPzi}D?4!p kG@/٪7bM=u n!|p05KO@/O}J03VռݐXpA#s8%0z~ڍH##@gheE) nP>WhD kV/},u;svEI6l* l3 qW?% S:}8i#ˠc2l`ƥ[9}:x?Ϡ?|<N|<3@~m iNŸ r21/à?f*WchƟ@l-r}LW*H\@!v>!z@O@5T>3@b` Nd? !]`>=~25?M2馺z~ $3:(Տ ]dHBF02wNhd/qv8EI ޡ@lVJ"\61ig@vF<<07*,i F+ _B0},|q T#G&% '{L@VRT @*Κ '@x?ˠ(WU+ 8tY0 7Qzޏ .b3A㎀qzP r FF4ν` @* N<v.eƩIFwϣ=y JC/Ҁ1Niƨvƺ*P0Yκz"RhRYRp1N6ݹR'դ.I|R} +M"BCd\WwJw#"AC#7g,uX-j)=-iŋ\FU &DImRGh ʹ>Wx0vẁm$5$ %?.i^c%ƷC@\WP~%5aE 3,ym> '. qߡkJܫ"gBP6v о^[^ο·}\ DLٳ*˲Ly'UPqmr]-| '+Ծw9K7IVE#t?> J"0o.+s [۹Ѹw'X53c(YFETf lO&SK>v$Vvk,ᑤqF-8}ǖ>V qTA81A<6#d8~@HܑkV)'3R#:+uR?ۘd^z!(yyQl"ɮG3Hz7?|cҠ9FYd'IghMIEG$.ḿ9*wsl,샑O%2Ŧ$sdZU]˜iuc-$=E8+(c܊sq7aRdEwXG4PH 2+zjp_q+f*g?1}~ /1[(&ڗ+vVՖ39GgI}@ÿf+w_R;s-v;ox>E^7~Y^%iݱڜWkH%uyI0ɃusV==_C[fw%#˄78 ;7R܏je=I$jot%~ӷ3ʯ$-hOgG,T2E9Tż_QjpUe+NI&Q ܯ ^|VkAS^NC/lO|P֝nsý؅8X$1cv@Ozzq?"wq׻׈ޝ b89 q toOEHM4& B U%7J %O(O;UAV-巀^iwL,|;'!F2+=)x,Y}ɠYTGqV-g/J:#gI|? ו~FZnzT#r6[N7wEB?7|42*%#`i'ujG-~JX$s3H}QľfVr/"tQY:ވޮˀψ,nw"8 1%OZ" 쫧K=[Κz7or#-@OJ8%:adĵǹ,Ub:DΪ/2̲L#lxK |eZT,dj;WybZh$9j":9{vvM9KzMX-÷}549/ưڎ8,r5#5 YVY'R$$I}Uk2*C7v*L|&X#@5Sxw[@0sKj>sg9Qٷ\KNS؏t܊$QIw6 t-ѳq%Nׯoor;;{q@Qg(%ھfbNT [d> ٠e繾nAq6'(*ˆ}e F F]e v\`_Y.qrw'knj9: |wun'8b;*hW2Ob~Uց`ʯCү=Iiǿq9v'hŝ*rV`wrtѭ }b&JiW%W{vMeXN؏sէ_"`s?%5^=y{tjp@VZH+b)dK>'FߎyO?vZ9A1'ȣlKB:] G1"^:NJ&gWZϟa[\&'r{V張~9IJ؍H屗8_#r֯fHՕSlH 2I:^nVܱjܷA:S5 (BB8z=w>>> 1 V2gˠ2qkr +cĜg]? 6w;|ZƚF ,:rX,4P}Xώ݈k.Gƺgj[H;tm>'C`5c!Bh{V63z6B{wv#Ar?.SlHZ ,,`d.tr@hfPcd(pHǠ5&H|X,|[SlG#qGz45x=*Emr|4ǁw 9zXOˠ? F5;GNI$X2IM,?Vz2ICQAƣ#P8t9#9ƇcztQ |1@TzN<> >V<8g@0ԅ0`t;td~=Z  :@kA@~4; wb #pˠ7+R#QNh#h#mRTn`s~;Kk|靠VUChxĬX jEϙ@ j8GęrrC>.c -Y]ةf:6P|z" 0b;hlQ@0QI* 98`B:ƺNz([@ 8O9wwmBVd"mX-[yзMCZ CJe(VG 6lXg><{,-NYI5t b.Yb DLC$G=hr\7qXj WK#f ,5 mqLG/vqLwuq;2XV)W)NN yuÖ-opT[u+I[Ya0ܒ9 \aY@8Ƶ=I^aZ^b?-qJdؘSO֍ذ=@O櫘QgzUy{ gi,dx3'%(qugw|yVyI[iI/$R8$3JVk6oXfdʪt\]bâ,dp5Jy7UiI^܅^@ĔXϵ*8l6.fiO^j ȋw(R9.XdΒ ] 6X,;ky."?qrW!i$fԞ#nU uYs jҚzc N(lTu-W&*,}c5%d΁z3nFXsa䣂JQ˩Riofhw !ͪSKIIgs [1[fIXU&ʶ f+iVфm j9&ktQԁ@4Ԛv z|^兗-=+!Kխ iZsxl\ qnoQqZ=Sbgx֝@ì6T%Jlp0'֫vw?pCQ)*I^*VEX\Cz9pXCgf+ywͫ6hD?0cNku$9oP0#]3K;%Nrz,[{%b9fP/{htUW[Tu~~nJj >T9>ECږ(wu]폎#1ԩPsCU-KʱREe#gA}[i1,vחw!?)rF.=pjaR$;hUե][t&pZ,󚊽 ]/p}fY>s1JR(M?}M9qsjyv9;{0iw{Wppr ]i>ܒ^9IVӟH#R8[t} \*_Şk!}[{ʷ0Y<=Ӛ7~C"m y:_5ӜųۓP=Zp} 'n1٦2}Ȁ=iEWgOw*.K[࿻oljJ'3Y8܅iMfwj_o`zMM}.p矏v_;-wZ";{}wo0qOg|7Nbd3)XkꒊkgƾŽ۳R!/)`*Un ,-Ћ89b$Cvlo5}b+Ixu+F{븜v]hO j)y`wYjyrKr>>ZU9*6!"+ԉM5t}zPOJՖ%oJq3( bI Q% 4]ۃ`_!+YD2 +U)j=;7)\dyrUzEn[8kr6x'H[K$DZXaVX̔a_o-WJfkJ&UVhW!4Bzm+MfHi RW5:tȹ^i\eBPѡi[C 8`Tx'\װi']7E-TnW,^-8w;ۥbc2 R4;mr|Z߹{yެ\nV{kqzᾪгZUR^%J.V;/6-f뛏r7Ir<}[47цO2OnacNVs,+ʃ%v,On< =R^F~J -9! "FjٰFR:3H>Ϝ#ϖfߗ֚RGq=8x>~!\|Wg8{/-9vZhŋTURJwX&XZ"6>֮7/wŇ? xz޽_6NLlo'uz4?OȾa_%Ie[C'^*8g'߽oYsrOsv˓Z跿9C FיMOִ;qsWx.~".RBRz= x:5,o*Y:Ss^NdHةS+q )b^?BcZ #6S: xr JOݖ?Q@fX[Z9$g$DV<,t-c]=lrnY۱n:_"I5h DX+S9$ մn"! Ye2ʄ2 Fnpȑ+[(VHF## ,.q&HmVт)U 5j+* mʱr|3ٍ~7LtΎ=CoQyh<3 ą% v2:t4i?@sƁFQ]?נ1)WFܜmà$~=_dJ\RY?ֹo.Z%6Gj1_ْP AR@$GR/ ^Yüiǭ2r)Y"݉<+M F)+XR#d zхoD1>`נY1G c($aq@6z^D`SԶv!yW:ω'_:ZzՎ~stݨJ p<}9<lʓ<,\ `5SN_QzgOu|:Skjom2cGRS |@(Ykh"I@Ѱer|A qE;,NcI^gPO]0f @0-I6;ellB7Vl뜒qӠԲ9h|%˂T }I }XӠX80`ԓ :9۪ƹ8]FܑI2``2WB|@Na@zHH7`$x9\3X?]H2 aL.&]e*hئ P1`k]GsJ9@$hB "`sR)먒& b|5$Hc@*! v@Ձ㜮uhGc2?dqWB2tƃ$rp<, o&aHt|vlwd7t#?\8Ϩ(O#>c z)qw @>@x]qt=)9Ґʼn;@ڹ9#i:;{÷hٸ2|*4H82sӠ/ۗޤ^X\NRߝ0&v}grhO-'W[kL:T'T[ Vl#=dhmWxB*ʳU՞B8&؁c!go@Sn}oD v4JFLmCHCgkMK۟w T$$G'*o$` Ɲ_N[MMqs]qñY$3+99~.޺α%&p`{0ldgCč|ٗpS"ݝ.\{2SF%g]s]Y+Zx']"r{{q09vGU72 bnycǭUxdX1M %=u(X-1Fn^Vriک*4q&] (,q0S^1fHIDc{pZc"& ٢3Vz=U6\LOhr)٩ڵrU+X%$.̆9=4J"Vlv1Qm\8#Z4KYika&Ene-z*lM=ڼ+W^ᥒ j|%5W-hم}q;K(=W*齡\?|e?mՂ;bnNBݫA%YD4 B/3ՙ~Oaw{'H8bhd[pfwlGa;7IU<Yr :ڰDGgE#c8 ."Қ$)!i#t1$iQOxY=3SwOQKW:`w~:rX5cp`qY{Yq2 -Ǜ1+lf+0pOSmnI $niz=d(;YYx/"TpWwZJ4f8ۋcH+ Lcor,Eٶ@b~6Ұ06lK=͘ hM Rƪ 6ԓ~ ry*ic:[״jMNKXG)d$eGS Km+'=H.^qgtZkW+5 $+nKukq cg rN:GVݻ{;縶zJ=ܴJ[N8%TR帻ң\,jUǙI0nF}x^ lݡ /Zk=v_JpRnk8o]I(M[r;+m=wʒIi2'߻ Q7 W~:;ԦM2هr;t__wZZlb?*Ռ'cf46+i!>h&/!!;_dZ\_'/sp7sE^'RT$2Bb=]WKfky'7q~;kYy8i"_Eה9uX-\u[*WWWkRn%0MI/rHvI#z+ַb 8RWUYb ϳ+;Jy3U7W(!/n#l"eEro%Zy$,mMFcgXdW Fxśd uʖhO؎j%DM-JW(|"P+:־ {k4,s7xFrqiZ)iT-I,$ΩCp^PTZtFZxg:qASh5pẍ,UJw;)e$S,5/pv$b G,paA8i1LʈRvFs>|سv' <ض^hDOL&8a]lE \ztifSov;ܝ1%ط ^FprV,^UvգOpAKĎ&IS>OJl/N>NFn5gg-ڡ ʅDrmY"MBc'+=.]Uڼ9~ZIJ՗%[1rX ))OJyP%q,] TKݙЂAWÔ <Ӗ}nF\`ȴjgq>*zUNio-3q ` ;x<4 t[n+qLقLr6YUV˭{jq\qs݉p]wpV+8|\?dGnZ\u& 0:~nӝ/3__Z9+uNjI$~{^&JD=xc4rJr$LvqW"5j}k툣ɯ}w]-I]'B;ѣKgZ%5 Yߏ;3IcVoZc~2fK +Ur@ 4* z@ϲ8I>5fڵ3IO_KQ k0vv˳xY#˂3V9a,GDZ%itQ;GjǖE c}w}f1VωLL+(aZK"Tn% Ŏ x᧏y']4-{@!32NnqTL{,# utנ#C``$hS@<v",qیI J;lEЂu r0u!X#:2G~= ëy `6cOϠ?!"7U8>-Ϥq<@X9) pNJ r{URfQIݑ@IiN#ւ(/#Xܒ>};I]<[՜ !m Ӡ2İf 4Ӡ2(p H;| :`1TЁr d}I`xtB N'kzRԨCzX$ CO@,] qM=9@*ܝSڜ=te,}C@x`#NQ $`4#j k\eh}be*FC3md3B@ՒF̳LcOF6m1r}D@ Ѯ\6c 1v:tݻy,'pԟ c^5?'O u@;I#\'>GcN a$0P6ta:4 $:Y{ԍG@;P6@pPG~ xyz;ti| ?qPЌtC$O@̟@1;vY_-8EܫhP:oNN}a&i63rKSӗsI 䁃]0BաN7G<|XVr_vHWjHPOY"qqPՀ%x(UUFt?\H\RHP.;R6 ^J;}b BBgתHBH ෙ2/9F8`Z:>HPZA4@sg98G),zp }[XLAefrG RFQ>429Bˠ',fᄒ#`P+bXZIXѰF:aC"I`'ŽKچ'5gtbb TՈ^opB)wB$du:|zgm<(n$&%r/*-1G3]w?اDI+r&j "xЊhܜ]1sf:lvG,MZ*!5bQd6?աN| «3pKI+rH5UJvT;V[mo(qp)؁d5 a41uӍ{~JjV+jE2}݅d?n6+yΣKٛ*'ZK1Jd9RwyU{`֥S9?s:ܛpW9g/p윇<"H%VY 8xim8&Ҧeo9wϯ!<9E, Ju(ѥplgt8s{X?[);ZZ^sFo|.BKixO撽pK^֏*d:K#Щ]J'IzUSDqqRR8f+^^:#cZ4X@e%;o:D؝,k ^8pfH1}ȩ#n qc:( ꫴ|N VYby> ĭQ"i'58P=Gw =ŵi*!ɛNAm&I Q~0WAYVS3 ͐Zk(OKVΜ؞x#?i5[% MI6'!,jjɑjsq^ZW%nN+xIt5T^FXfX㚳fQN_J}6vWx;V]Տfo:Uf~ aט~+jOPԧ2|HvŒpH3&vp% / :koRqXIm>"Հ dRYN14b$^+li +\e<@J$rvQ!Ew2RG¾H$`<}?\h:2 W>`J E‘<W@"<9PDzl@,sӚT$!@|,tMG8䄙1 60=$ 3@VvDwQWL6}z0VJx(b9k66 # @eUٽd #$}FNG@K<r})BATVbzю>Y+b#ಃ+aB3owmd|4w$,5r]5#@Ǡ7ۂ20r|o+\:kPC|N.}Zh ӝt#s k8#MNN>{4 ~X9mߧ>9κFoȳ\ 4qAc\(?z‰b| jseqN`rm!@0 5hǃ?wcTӫjFb=[~Yյ r ;AjUJ j@'\}u[EYtpޜc>^9$t\D#ߖ2#+P wps@VnIE/VXnzCx;G@K7 $\Z:GAƢfH# 20@_ ӯ|hJMi tI%UA_$IF4HpNc,NuxtI"! F۴O@~rF9PC?YCr6H:`t4\'8ʠbn`ei,K GP%flC`Gޫ*XK(4RYziUMB\U3 ,0_vSv[p 98=OWΣq)mPid(hAD AZrRR(1O/fIJˍFznх"{x` RA?@#9t)>B(w 3B6{i~GqX9+ Z Z5ڌŖIpMřHP>JI^[_y‰xj.D,Q;$lD$Fʂ)Z6 ܯչ(rJEd$̍HrŸ<Z}RZqџeg`LU11֝w.I$xzUx Z1j A]]3% %Xa *CFqiGu"[1ff8%QpI1P2рu= Jƙ/\# ]_.^DhJm hp ;V5nMzZ_vMFB%G'Ẽ뎫_lUm"D15C"IJ#ޥO'J[!֭!=Azl%`EւdлGщ${14YbA/k|eCeV:oe*GVVYq$q4Lqb52Iʆ`}OJo%5]!t8Z.n'=Pocq܂YXgm398Tf;S!XEzZBh҄rWcdd>k)U FҖɻW-ϘVn-(4UWynX-ԩEi)$9c]].0eaY~lvOׯ=TI8\4Zu ^+aK 34#8 77J[۪gNHe.zZywfKW3؞ZujpYZB7:zpioV*۫+VLkYx>v{B:z|jҴpF*MF{^Hjԣ}j㒽%JR{*-IURVR6aLε[µMqDbX@^-|%26gm1#~1SV2E^LVVﯵr%eCf't=RԨds$/ׁ٪F܊3bEV)XfgX$!c1j7Fjܳ TFMSGmj +԰dybn@F^7 ˑټڭRݘ%ڋ#KtL՜nM̌DdPiKv'N<cZkWaEVAoVclV#N4ߖGS[ɛY<3_wFQu^ed2{^h݀;ʅ:Q[[붽ɛNcj!Xjiݙ=Y#S(Bkj-|V&*WjӪђݘqTBZUyOo$+9PZe4պU= 惐x.944IjTn62jH rP4)`E`jJ[_ Xz5J̄DpFԌ/.qWf6m%.!Q8Ab#GUVѢ{Hsom'ԅl%RǴ#A0hE/5m끓:k@9#Mз<$zԨ^Ebn#@{*uq+c?*,wb}tlj&,'&4ډk4d o-I운Uwj%^G P8"N?4d]wdCts?ew!^DA;(?l%Eğe$0AfzĪhA(2 1q&\RN}AAoү \ S15vDʌ^'bBvA]TY@S4a1hϜƬ7/˘'U_Z\1X@76 Ke|1@>=*pܳ ̀.N0d6yQF˷hFӡ_Cf]wJ1àێ27"H ХFTHb 0r~נ*g,*Srq698Ɵ\[R $zIv@83>|@[|ώNO@`ttn[Y!59Q$jz緹Yc(NOA+TK:\y!UFB12(I0926!Qk@WO3$0$ r<< xxk\p6X6_9nt>s'ΣFs2yk 6Θ%ۏw ;"=2nO@-[eCaOn^UCm\:4UNNR@̑~bIԒ8\ygà5 L|20|^[H840UtNbtu8q?Gᦸt`: k32?0RI <|HN ϖ_# hLtr*@Θ:g!DdSfAL:lEp3\di`Ot}Y76\(ܾ> :8NR g 2[MThѰ\`@]BcǠ5˯ t= }GS |rzÎzr8$d>=I*98\:k҂2*:cL ddx$gZ/3'_Ǡ=Xpx( j&Q|۫4Q:uirHR=c *#:txwmm8]Ł\*pSzIxeRw0Yk֫3_r|Tey>~J`8ݱZ2cٍ0n2#?|Gz7^ϱ:an،9';;nן^?q@]xU;E(Hb4'ڲٰY.YUlKv}ϓ>@<2V3Z'>Rr IDS\`i]jֱC E$KwnEv`!7"k./(wqzVWwdx_$wSl2'~O:T`dFMTl|z p=+qܱ٪~I]A5-׭;%u_udH&o~cۖJM+,^ErdHJ pgM\Zi DYAjsY6 5mVuF&Fd+ν{+cЗ4 "x#5}y(C\UhnVV(:߭wy ‹⫁p5Wju9ӵfxʌX\ZRV GM{dg5A9!&OmF]e={H#cN@6#Լ?~ ;> jD} SHGZ)h[cJDӹTgḓ91@VMEث͈ &5I&ڽ=b+:z\yZ4iVU4ҽNFc(B_$.ѱ<lXk(%gYaV%D+r`Np@tk̒Ӽ;9I%8םx Uyl~đÅ 7ޫʠ]^;o?Wz5qڒ rOV?T1mm,>/8H0a$)HF#V,͖gNF>ρZ*Ш'wJ)"uYsӊqL$ O /YpQ hU/+zRwgĐrmbX1֭b<>4i"~SyVy+Wy Œnz_mwU=zg]r}pkm7+AJ3IZ( TyB;vw/~TqoӕቀXՠ Y،8d \UU}d_yuK$u'3ZE נ ~}~Qр~8cj"pFRqr1߯@,܆-RQWh5~8ɁAW 0d]&v,l@řPPNHFaȹ*S TU>?}KFcΣ_?9arFOONpN18;`N?V12u[\lg$m8Λν~ArHξ\y`C}|:\uC\ՏǠIjY]|63:|  :끮:MTvz|Ǘ@ʧ(q4]sp: Leq,AQƿ%dtI}D0pOծHq$NLlNpX\ :<ҷTtcֲb|]P G@cܓ"0 HF׬N61}]ANIcă?O !#%ItNF5'?t`t<:: cBIS$hT>-ESoNK7p<@*g$3កH@tr|N@8>=idQ$=1(3jN zW'4*6N ' # Gp0nm*Jt9;`+Ƨ#t-@;BЏ.Ia$BD*@YL;ʫvk1VK0GylE+OUE1g*΄:ڰxݦyd>⢢ƙ` O =X@8p6 q  ue ,BB`W:UN\ݎÊBbYlđk+ *"eP>r?`-/9neofi@ *$Wrkt!?biܘ(-h4^& ,HJNxjG,d! x'h8HjQVJec0DbpȒ&I*K%yc H`K`xt˗|2^Rܚ;T Vu#?Q)whuz#٤8Wh ;+o682Ls0O B/,eeH_sw IjZ1G1)jM9m\X}؏ds7F"?5^}苯TlY>0Ο@WZJ4{LTr pp˦Icv.cym$3ٝ"Pl[iB7?: UN䢒uA0d;k0s:tmD8y# B)P%!++gEǏ맇@80M%@BA.2:lؚ.!.FIe%crr Z b YJd-%Uh+G,KM-Yy, qvI=PjY܉UXc{C˹cBIr4,|Zv:>C14qVIF!]5="#Xa T| F"}ya[KheKK+o(=%?in5]%VlTg"ֿ #%U@pwW}s?ZJQ%+Ii6i8T, S?^q*َk2j*URF:Qf27E$ѰZ76ֶj3< -jܶkYk-ؒ'dlS3O!P/8,$]愕fY9YҷXCdX EkyYiIE6ri֦U%3^K.s\,r7ʺLg 7"P(%Bq,4enj[~c>~sۼ? jNkhx!Lrdk*qB˺TWpxzcKi,,q_$fģkv*묌 Oq +(Ԗ󱎗z̓cyn{4c+N~>"BuwPMs JyO;*xV>f%8=[rflsBL_hKX^/:VMbkV%$V 9Ԛć4MRc3/:pV%:HqMN1:0Hׯv ́YfR WmΫxFY;tK RJo=idqen@r^{Dl`B êsjZqzE VY#וb$;$GYrmW*|je㫩3[ M:ۑq Ut9gn"ȍ1'*(QN:SU.c}vw{j5ܣ'ؕz1ICVG8歐Ɓ%B$笴oVKR=9Eƞ?uirrX#u>&-Rp%̣yfCNLr4ڸhF\ڍLr[#O 15[O:f:Kv#HɈwM[_Rz*i`^k {x&c5hT-$N!g wB7wpǍs5Z>ۘ^IݘC\܂.H v@UeB;q}=f_Ъ&,R3IZ=N*"f6N6>n.Fg:ddrL4UdLUWZ.C,5y* RB WCXWvV2#$VDDK5#YefHqO^i]VZl{rYSFVپáf0v}9f[V:es\ \@%A?@WocX/žSaD`ۤa$qQًʲ)<؞i#Ua(V 켻J!W;r@=+Ur# A)x^{) oOjPJ$J(!P@P*G%qѩj;ߚ3(kĆ0B 'PH/ȫmD ,\Ѱ]$L<ǘ*aɗ †fA\+#\tyWyLC|w٣mK`ˁEr]ÁУ~fOvR4 w>Ü3lxzMR9dQAHhσ16uݻq#o5v['nr7(ge3l6nfMhl`˯@KGr͏fj5"L²Nĸ@ItX݊91@9|mcYdw1@\ w{MelVOod˻4BiCh2}A w ;tPJ9ݎAQ\6| =>% :5#1( ,rO#4Ϗwzu  4ıVy9@Dz?S%pƹ|3@! C̒prƽFcA>#1_#z6qGz26pHeGxc9ƻGJEθ9ԑzgoPנ11!8r0twk45 :h^zN|xP|Gpa:礥lG4a4ۀ V|;ox.)RLwؓp<ĸd$\:+^7r2a]U~c\xt9>':ۻ?@M}%8joǵ,) |IzXIkRK$lrK0>Ќ:tf+Jm&2R k5.БKv2YeTYw9t_jӧ-V}'Yk}#!(;` ORlxKIbd՞aB)3K-LbFޗĹn<='X4֭ԥb8R[Q|@[6&pR A1"ݫWr֫jHX)W3Ec0PvBS-GlF.#-Ʀ΢Ċ3Vlڞˉ9[ub7!fq ᄌr? MoW ],ms\%0R$2sE$1H3U\*Yy*4a8ɑNmUO=?>[l0Rcx_3%Q+{NX{`AױSח-QpuFk$rȖKo;;<1]]+K{4d-!HIK6dyKYrRp؏p\)k#'^Ӈ(\.:=E^$JNI[jxjRK޺#ՌŅ.K- xrڒI!kT*XzK,9ؔ^|ZAJJ,AmH]--dhv VY,đkܮU=a"LsTHO"@*ٰĖ*6X5ө-x4 u暼g3<," #,Xj6.D @9%yUz/dS*mHpD CFrݒjnҭ&gRu$&OY~թ0.=^/yP*کʧ&, +,ee1UZaNlj^mӊe[U#!B_F^!MNՑ'bѧ^WxdsHUJIk=ii"ِtD +yu>֎ƻ=iW- ^:*4GTȋY^,QFhǪRCH8k\Vib'!FkYH`?0S頼7 }*YĒNa~(HMۑj I 0Mm7p.좵S`4ڹArUtr0seK|g^{^.2^M暷 RqR폿N\@bXAR?ƝE fU#{j(꣒x.-bafzbK$$ @iQODӢ']ȗrv܍s$Tf`f@59՜kԻS =qj>6ҡxƙA^J3ۡb9P؊a,m'][_n"VY5jQ;PF)XRimaTj,kfHɁ0Pt5yI5y n v^-]Ɋ|"KRb3@'ii;nwZI5x{jrVZʛ%x#82O]wہp( +B X= [1rTR[U$& 2P4m<[Q={>HU+WiE>ɤY#Ԗ9FhzsNJxկeG<,t񗺢28P`ާ'%MV*yv̱R $.Rhe]@,qu a$ڬk޵Z;I+#R`VV*X.p:$k>k^@F2rUzy[o*~^'qtrB *n&OE(n#eWՌ?>h.W.=!NtҪUǁ WŴa(qP2 z=< Ɓ L@98 ؔ1y_pWǷ\ Ӡ&H+P1*EdDK(Ťd toh}͋qȒ{1!DF΁3Gsd SԞi#,)=r?ઠ8R@!*:uXS2 - g9N\Q?gL0v$R<~6ANNuG~v_y?Ԟ]˸b.$)UMh\Fs 1 7@xe9ϐ]z<<3;:pGJI:y5ƾ^}Dhp ǁ玀t`yWǠ鑧8z+6@k:xczN]U9S3k0XuیNoMH&2J@R>Y9:k`|r φj(` TA]Cz^ҮEV+ltڼEd~VXܩ q6Uf9$ 2U_c>-F'O^RZс蕬C;}/q>. HV6QpqfTk_Um~b3f/ 22 &+6n5sVI1FZDUI=¡l2QGkG_/|wtq̼ۜ%DLa[of(Ave$c= } y~v{8勍*ݞ /"=x״YaN.zZq[gxǵr-(@)Ie(*cOP|HU?װDJhw :tI$RI.ts&%[hFA96 nV@dsxFЗ޻Prta&Fx^?i}&;1M"md|n(\( k6/IBNG,RBSD>l΍b-QHU+RVkVXhȰ^ WCmŤ18ƆL[һr{mv$f(:a!InޔWH̚lҶkQ +tʋvvnHeqhfmqf $%~(di7;`^V vQ]yj6蒎WhfGgedq_Z{fOWjۏagY&HH׻N98`s *Kq7S^%? Q^F!I$"Δ3,&f-8ףq/#0~J؂)ܚhkIikUeC9JԏODn I/Ǜ0Kc ,{ʵ*Ղ FHDרF sqx3Y eI/ܗG2K)D"6fc1 r*UNXj֯%~&$zT+fE@#D.R2$кJ(}M֗Vҫ5C=]>状vkvh_$gH$bxx"Tޟ!^BIgB&f`İĖ浻ẓo?-wʮg"*I9{a@S8IX]ۑBn:7Ӧ_M/DB>ZAgڑӒh{pBC!*X`,*M^7x?+bKk`)K&G/AG y|sԼ?xR'jxPW=JޑgǣlAgm̈3W ՛iHoןy~(v\]UkJF ȴ.z"mtf'ķۗ)I`H(.:u&Zb8LaIr$X*wU{s8ԸpȳD$drK#Y'%"O0T\0[fRnr̨KIJ[bM%[3Wϧ*A9#%mR4UB>FҌµx"< \jPI Ĩ1wV%Uەjy.iȄy-ڳJyV[,';3Z(w+q#+m'Vu-_yJAqU:r:x l@.T( d ƣLrqqv$*I\jF5'rPV\cN yHӠ,L=V?ױFϵU4̷@.,UF \̣!Nm1ၟ\RRNà!TAƄ$N9t2~ m[;qOˠmNL$4(%Ah$'o}>aC~?Ӡ?9%A@$i |gƤg z6@~Fp0N|O| ^0dAοTi/>0$0r6Ote9Vlv$Ơ1mb?tBT 23::ɓ20BrNb0:YyszHFeW#HQR<: D 'iF2A0;w!GW qg=m.e>DZ>) \U5XrV UU} ]/PRIV8b Z5gGl {XWMPg>qlזX;kA &x1Rc;)\{;W]}۽1Y;B m n6^HEibJ4+ feCرR)#T*L9B#9ԀWo0|3)L5sҪeѹ@ByN3NEo`{cY uM24t20?F+RBJn t>v: |_LПl_=MaFhMvHRC 磎Uʶ)_Ж+}H 9b\{uBKῗ);g\ٔ ?9:M_oq2WijkWNjf/\Y?^[tU,YNJlm@{ᏜvwND0 n0*P\}5?[JVVO2bLJ_gܴ"! uCYʆ,0OQ9!gZE+!|K-:F8=d$sRR,@DqR8w #KSc#鯸"(@;ښF\G!?rYd`D-h)"}%Pc־_VY^Wyh`Yi%Uoy[I#d qut$."I'7$#44q/"yI+WjǑ5BGs1tت*^{MYӫH4 .Ds5K@V"IƤIYjpe$$C7L,ʄ-FcCٛwFيz~kI"WR{5)}jBՖ --A՛j#cdk\WSZiVsV8#eEzy(CV*fڲYj,=x=3/8ȗ*LJqE#x)48-5FX^S_;ԃnU`4ak0iiU@ߞtfaG[\r=K2įf8k>с_~RN֕&zzεP"%;q8`+S܌,;aCG #X̊gfre)H hN4kET9|HHE%ʼni:eFIbpʒ=/fxhZ8ͭ,r Qʙ&]zKWEݗMv ==Yc)}Wނ'], '>=]_QV)J֣v9"W/Y\&_Vt~.ð{03DW]mhZ ^&"O؆ʑ X !ֲ+.8q[f;w> WnkYTa[̻v0ґĢy8z;a8jnBlUk67Rxjr2F=%"0^ö1UpWdhF"aQbQxVMզd6E~>kR&#R)fC* [ْ$UN6'=o8ݷBq\ѱغl9XeЃ"gmOn ӳx (Ė;V;nVq $^8_x# {ub:td~:RIF ۓ oCqm Ҋ8UR7D6;*%Ҫyr;3ݏRuSfdzA-NNIJv2 /0IpMwϷ85T4n>T^4RWcmS7yW''}ķ%`T] %quIj%!A:O򺊣aqp=OvYovQY՘8謧Z\p fVI$̫  >s5!'R+OrHV٢^DJCQZddd:W0k꼓Fmqn*ز YBٸ@6f2@ZY5i*ٞy( BH3=$DVs[`e[.BgtJ(d/"S2l&ܨlZEojӂmIa$YKׂ:زXYA، _6~mWx~yFy[=o-?(f~Ii-Uat8ճs}Ov^ܷadE! K} HK -.y8̷!+ry85hY>ͻs: ysuQo= -ƃS4TKU9܈:7sj(.2_eF_$/w+';sX`(@mH؁rYg5woJigˠx}m2dR<tt wҳ!:7gČ:?ԍjC2T67z-gF{ΣSx1 7!l4c$ff s!O@*`N϶XX% ?@?rjxʓ[QخNvV!T3`F2H [7uUYT@qJ π D~O,7Heo{qC-݆PՎNW yRV"K&l.-JIwܩ,=4lHEڑ5'z\z_IQ#wXo:i 9R`q5:eRF5 g\:DoܺQ$eG@\\dm~K=-Ixa=,=Gan)>CsWodHN>2&1lɳxpvKXڟ.~IHrZ0:6zCTgY7da#E @` rrF99tԧ ƾx h|s@h$FW'y?!.|35}:aHAJGE!۠κ1IF]vcˠ=7Xdxg5S9A9u`g>z}z`j0s|5 p ms@_ de 0qs?G@;oHi#@3Tl/Ad2_1`OW\X2('Sc#Ӡ4"Gg| QQנ0TIp:B@l`tA,7 z;IMA0A)θ`0 jP#tN T[Pˠc7i|eP5"cUb\Ƹ]Od9N )&bVUf"+C2lc91uٸdlFCMUi$y 5DZnh*өPp'$yyWZ6"pIn@!U*HRwzbp{P*]2]A\Ix.B_mT'fN,䒸|tf/T|qW0 Ü1g9ߚ w:qMR$xi#m7*Vw|Nz jUCxGTIisbzZE(z G#yccvXz q+0_n1|}y+5 4pVtEt(hk\{O3Wmx<knRx ,EG "s[/žݩ,PV{XQzk)jW)Y{oc{Ӆ2WhВ $1HϒvH"v5u^c:bR{q=}BvԘE*Ka&ᮣI$1F@̒Q]2jjЋ+Uhd]" -MhٚHMby JXQ#@rd4ֆ8ULJ#tHp̱%U.✥xݝHWu_OkeyoxDK=E<( 1²GdɱJ#J]U`{){Vį2ؔ$C(U023"~^ʊ`II*F~F%3$9^d!ISxR8-*Zj؆Ч %d. y%c/u.U?t㢱%2߳ a >mA, YcY$#I+:>ćKEuSŠlJ*2%5d#$tTx0=k»dJ"~]} קBj,!i$O;&b>}.#į6&hVcs*Ȳ!j]@7H֖j:p4k6ײI&{rjMDqp/^yZ R߻XA[s"PZna2hܼ:XX۽jLl^'4pVO &IX.sK K8Z.bl4bXtѸv+[2K4nJejs3WLB;Z /,x`7W&BWf:/WhʅjI|Ub9ijMI*OעNBy9J^3-oەiEAYj&%hkҖTێE puܓؒЋ}wQkѴW>;m\ \#Ǔ[UW^KD 2f " Hf1}w`Ζ[WwZU5HmlHb,qf{T󹦋oX*Z\H5O$r| qYV2hڬTR.A*ĩ2ܧ:u pk]>8ۈ)R{{\β ͵/k헅n oM8Vv={'`-$.N0XFVP:%"4D1q$pg~qK0r0LxPV>$I*;C\rDHKKS9ЁKK`d5$Z |HY ($1]Cm\zqNu4-c|3TiS*PQ]@$\&n d d* t.ʰ=S#\:w3>i)d#B5`kǵTWj(~6A TYg䠵!tUG]ȾD=gg.\W˲ޒkѼvԭ4rR;s?@9ffIAIf3. A-3~$<б1&"6 _o=2v P[h'_gQC N<?Ϡlvd{6Ԗ TdUTtO+Qm l9;]YT>?xtʅs8$䪌)ۄU]:]KO?0ϗנ:pu'`4ώ*nׁIF' ~zz~Yں$Ev!\4'_z6~Xz!1ZZո ճd$v!!Vw0B6pt@aWKc;Y*N&^ `FL't@ C$道7>c|ӠŪTy :dzdPF:!6cL@#'t9j NtNO@4KЕk/wFG@~ _Q:Ǵ?i~A!Xao2a|uQTvRcY dtfwbV^+JxEPTϠ?h$XV‰*zJq Vu:SP3O!FǷi,xtm] 2wO/sTlP w3*|Tgk2Jdgđ6F;pІ!Ё厀M,20 (i2:m}Ž>JH٢%I}:k2S9$*T *$cϠkN`H˓]5uU]N =$r@z3z;csC#^DloEJnL^DJiAf^z=$dz $RF7 2<2xv7Rk(U >6'ouPzqeLlD FմorJi2*V}s^%+I#\hFEg(D؋ĜkqH -21RD*l 63Ilv4͘~h+J6heL%dS&UW-Jے4|`.RK*BՇ8L +ЌШ'y+X(vN J@[ڞ9R01zsO= xj(r 9GAã>P?.p,J?r^>NeKIG=Ʊ]zZWe,cP!%و?:Uv ҩyjuJ5h{1]?!#ѯf $+qP7zQb]vv"@%Nr Wjvw HY()dhѺvRpX-U=˳=jRз?xv}24V`VaQ2r.#s-_qf" T]~bZwpvR'B;ʪ74Ĺ\|tT-F4$G,dUE+9~ 5*(9 #gNn&}eY f24N2tRs\F񭉂ąhUUCjxa@-X$Xig5$$2k, r䱳JKj>根=1lG 6cG%r=rhW84J=SݭvRo³ 2E}$۝<$M-6׹ g5pYˬG$ a2PDE! 9`|eGSy[}v"o~=7j\/_$(xC YxmUo;>8L߫{,4n<#[bXOƞBg5wI`yDp&o'&jB[鳏 瞼R\yDm;qJQUgi\-=kaR12_nwȹ WGRv宥*֩C`A<6[6y "UMs%8TrIn5JVVr5odӄM59lҞF 4'E;Ȉ`SUDUI w*HwoݩgfDvxҷD)U:unq}:ʁ 'дSzeJvS쌝OE0޵fS_\y,i+ :XֆhDۻ]ǵɣR^DhJhG}Q{t'ޚ3TDlx#|+w-tU ^Zԑة5h\O4rJG2SUoNzuiNE}x\ҹ5&j qUj9#L1($]ձ< +fYv{6BVH^a =xtV;$Jop?{Z>KD&϶`x*.m?fݹ.t^l1,,[%>p6,VVʶ 6*$s7A*h3<搀ہao4Dh,奲[6d.w\K,kFWS x٫}kկp7q}ļuđ;+=kzM#&~i}[mIח.]tPIl_r50J!T UaT=j:}czLn-O}ۙ"mH\a]'fnZFۑ6#(9=KKiώ'c3 h"6VN_ Q 0RN1-j"ȗgHַ*!Vei$ng|q#]A,_pWy^%]d Hcmr*،,sVoo|J=$r̅ͧLu*nձuhĶn` R# hWӖ$7nZjY5y5wZܨ}P6>ܬ/Uf\G~aAT⽺yXeFy ľFP_Jyx1lgIps;"7ބRS#؜T;X{!rz[ٚ$IH ,Yk̰!f,Ƅ tn-^W/M|MXS0GeY݌_!NQvE,_a`w%Be@^//®VIJqE!bhdU$5/)|dKmexdt7dGJ* v$璙-M VrC-rh=(X N@:)[ucxCTqsx3t02@*}+⺆#B F\5|2%Qp*I]F x zr OIpg'=s2PrPcӅ 1:d2]Qd wx`؏wy:@+ᕛU:FһG3@&S N 6oj4iY"U"4Ӡn5"d0ԐmTpQ34aZ=^٠LHUDl`@cdQG73{i$F"@F9 :E53teljN4?#C|@x ?<9\`6LhF|t9:Ǡ7xx9H!FA89$? v<5@]F1R vJi#,2@koƻ̀vĒpAvD>*I2Nq@^Uv-`[HBG}{wRj6 ځ%oj"9 =t'RCʡpGcc̏~g6Oݪ-,vF ^Lα샎7~n9hwo-K'fŅ~2 It,n5A^Bݽg$玤M*J x6i=wrEԿ'R,XBԠ`:5ӱcZw܂R@:.+jrr %' ޞlV8$Ylp3LH#bp]˽ގM α3* ΤuMۮLdbQn1I g5H/H[ЃLa/Ču;R''^ec,U}'5>-eEQ/`{G7In I?@4U%.(o^v?qZwt#H/Yv9oIS`^<.U.qǘ3ZOZmyb:}ɭCe⸛qXzVRr,=إlV#]E#F7eQ[Ș{z|S:'`F9Fj5Z׊cd/rHI00Z!@'J'ީzTLܕحMVUi{\Tu6'ڰQMw.gRNۼmktyޜc<Z).Fk7njMsT[FS;q |K%|4=@$ӭOu֫豵Yٵio+iaFگq'zcw1-،c^JF z%"2#azU֧aw'Q y] ECͯ[\ e晶12MfGTV$RU)իF25@Ն$bTװWҥń[v9h3B_MLJ`xU,DB^#?7ӱw;js]]뽪B> $]ݙg8,Җ>)Uˠi:sOa7}lґs?.;孴Թ$J۹YvC;-iJ!6 dT,rDOpRKYoC(J=8! K%s%HG ƨTMO"vUQ倿=gfdq ea„lƋ%㛙y0LV ,G+m!xcDsԛo[n/ Z#<|D{L |cmZZu>Xacp<4IcrBbdU*HJ'IdR40FoU:N\ .^QgkJحLJ(Ӎ+wӥYԶaQzIeuM%X|>cR4sa'wK75U`eidUy:$qG^6EXc\ z,m`}NZsr-v5K(Kr9#VY7o݃]ڭUsq}{Knt mXjX5T7b[2*!=[Պ6DinAq[5cړ._[R%WJ D=TLF٪L\Gk5~ߔCj58`UaVU[P ׆-XBe"_i"$!Z"љЭcCVUdߟ}o]s`Yx<=J YxrTEQut$ޅ!{M\*zD+< n;HN֘afEqNPAF=Dj>'Ϡ1^{Wjngs"3PO@G<;Q!f[i"8" ˠ!0x~Q ѷ Lʀ}n<~#>@1gNY x8lxj5qˠK_9b.#8MGǰ3R6vwC3FM<:c!cHb0BR@ '`pH7nTڱv)%C0%q|zd~UEh PK_b4%r/QQd7PmІS+/C&$a*;('PUjs%x$ rqYɒ%HbH"ԐIiMONS8;~*aW8ie $ G}9%F|}uHӉt : fTtm.$.m<ж'$`1]$2PVBұut#Irid#XB!i8,mE8ƃL3jspyNgOfCm2cog^ku ygut=UVʐ6P1+݀t8#^Rk|pTQ,rFِ ]^.旕Fb^h?9 t<| .6IPBK1f T1 >HS1p=#Yk+ ` l_%C) }Cw"ȹ,PJ|`z"1r{R׊3Ѫ$7m d·|͋-WROpqw/qyYUr3III3#2m |kfIO'KCb*W{uCpiÚ%)՞T dv&V*smkxxEܽ>0,C ,0Fy^g#fAid̍E܈$O WTS|^S-Iݹh+a^IEϤ팊mI)ԑ 7q",xpQaB^ 03dic {LʱG=[sXd J̢ Ut %kT0hL̓%Vi!Vj$bS$Pc$R"Rq8HfXTHciYČSHe,goׅxvIDcvLۊ[̪" =5TA+2IP[)Dz3,K8&DQw>]"+WXAԥB:xҧV^J\,a'-U knT؃a^CVfx5vTȁT3iAIYBW}1m{{J~xq -y_[Wo $Ы0ld߰ݕ}UmLsCJ|($u&?rV4s=BG,vUYb*zaX#*>XӨDCh0f"Ryl q9k5ubmD50 0 #܁cRyfC _^ZdnЌ므W#UhW{ 4vY$V@IFBϏGg|&x֧].bA ݖvaIZ أ+ rp04Wq]״ چ*谧@esdKmpW$g;d{7 :6E >JBdDdb H؎f}џj=$D2}N*LQ…-(f~3q7?!4rv=V#;޲(n<N1Ԃ0$lblkHb1ڸ=>%qVMTcۆyiq IJ2JvY/ϯi;|axFw=zHG˴[$'\7bp}}?jEhH 9ԊpE4Ԯs!JuN܀qB7~q2@"MŐw8p$LԈ @j4UrX߱d"CVӄc;JZr+f2Cq'qCjE|s29>F<]y - @;d*r#M:kmLl NSz ,H* @\)SqNutVK+ص1;XA!H 4P'#? 8kJ+YĂ&Pv%w\o^ U ߚ;u :܂69$s aWXY)pIvBI ^ MqӞ8 ^R̪I rhHFbm:>rڥՓF4#-:fݲHIxNI  k@Ei&)lK~/b0kKjFeDC#H񶌠#AbmI*!h'oriYgd'%7tfM'9;F[:|eN@:N5-s  ;dj0 [d1?\yǠ9;65r#::}䁦Ot'@dƄ)ی~3=dcCqe9$@/ZWp,~O%:Dq0E]A9'+@(e[wf_J$7%v=H}e"u@Yr#UmʻA _L%BO0H$#AE#Κt)#$.O:돨 L.>L}|Nנ=sFd}BNY>#=DA: `h|:f>Ⳬg$m䯏~=\{`H oS!m#0>HpH ? Uk@_#4 l NvjqǠ7 z+6gxI p`:BϙLta2}#i䏮tχ> \.5dp:F8fBTPt zVmPCxmoH)@I; ?zckIaTΰ Ҡv: Hq(4ۖWGZ:BWv ,F ӂr yqEf#قOoxɱQq%Q!jzIĢg>Ǻ@$cӎqA$QdNXӨ/@LݽiTġKuیFsېD*"Xm(C {f,֛ ݖT1#玀AVV2TZ9[@dPqfލdHڻp5*au xt1BCA nҸcbV. ǟ8 Oc_mG2Mm0SN9D*V7?u"H=ĽۛSj#1J8Wa$= g^ZQڬ Gr+(6#LA,2Lq ]99@=MHM<qeC sڅ‚ ieBիا dْuM<؝L1TIi$H{Y>ciaMiUU\x}t:TJx>λ+S~4Y J,d '9 VQ~?~7KyJ,,e1%ۉ:07n,a}/Uoϕr(>0^0VZvxM1@8[~WvWx$/WQ\52twHHeb]hdCYax+m|15hFmߐQvۀ|:|=T_Hށ$BJ2_m4`r2tKr2|EnxRrٿ#U2ǵ$ic#,`yqXuEsrM^OMVaHuUBFstν`YGIUEX9Qp .:Q?#a=NJ%jD+j4y#ݑ޷9WӞ%ߚZ1V=h\HVk1YhZNc&s,@"‡=w]n{`'W-)DXc +Hh ŹnB/VbjnyJmf.ڂ7գKGR +{ch #(8S}io_2lO܉6pmXehԭExA^:з,t0^I%g8ڠu+BxUyhM#  NJJR8e"쭝0$kMnF޼7n@9^MWsY(ƌK fɁ*DxT4xqEw,V5Wۍ4 H4O^Wl'EU;2n8Wt6.}ir\F[M |ojoQIRYn')|]ӕV Gڷ͑ov.,] +~! ^.k&8aMu*a"um*IWUifukђ diB #Jie@;jxV_0{s}ђڶ*X%{eeho/C'$a {ֹ`Ir/NMj{)k6+CƖ n+Z'x'/%{5^4"={OT;ϒ5%_04Ygb;\HHX!݀-w_`bAr.>#[<ۜqu \ ⫸yr$nXxl}K' C%>-H>l+FU[Co$5Hw}qwY_ڙcҬl&S<؁֟TאjHD,$1*Fwc`V{k$juv;[Ej;ɴ_eX (t8 ϏG9W*<wxJۆA'13TYBSjʾ\*HbaM}% Z]n?؟UiӍnO:\ }ybs?3Җ)‹?v&8Znz-‡ѽ% xes5h.BnZŠ'\l>8aIC]kB)GY] ,V p#Do1wl>TV htI $?N@*ݴ ~m@,Y e ; m9ś7ˮYǫ <@q63n:0[B2uj|:P]t >#4ڕ O`}=<}A:$Y0 L>Z`%[30?^:mlB2 d@G4Ǩ*vCtA9#=^?LeCVTlȬF8tP+ EΙ cc$jrqiǨ䁌`<1Aq5i=/8ǗӠ=m`3ϐ8)a͝Pc q<372j 0Z܎V9a4 @2RA€ (թ8@:QBW'OcqzF ?I4KϒH:|:pGnr';T: H#΄ 2B0>5A4P<1ހoeF2@# A#xJ wifJ6 N -٨*#(cB$18'#+vUAܭ)!&1]yW@>F|Ot.]r@H-V1/v7SONW3jСn^:ۜLXʥvJL  d3pӀ#]ʿR9.6/~ 4LxVW$y磲mcMonS1gjb*)6QEdb.n%Ig^.N:^Jd'ŧD)v>!Y,}j:ƴUa`&eG(:WB링㶥K6$Q2EqQrAFwq|[4(/gıQhdgs"&JiLe(oA1 f4, 4R'},Adx$e`0|OIj&0\O8T̩5Ś{|o>#:b4M4#:s=eˇozKv7ohy u^RZXY8,Cǫǥ}kNR%9nvƼ'o#+wlG Z,Ï_o{NjsWdrzɖƒXȏ@% ?/ª} .Y6J)V,G[K"6Ѝ$d֣Ttr5[㛐#4$}ΑFٷK0DIP uy)%Kdn<٫^nF! @dusy[Ӄ`܂Ge<#a]N#i{bj;nș ˥3Uf/5\ɾ %[cgC}x~ުQ|$ ,7; =E}XZSUDX k;s?K++1lm:"""+J&]ݛwU~G{<;wO4rs)PI%}:J2nԔt7ӳRֵM/ݩJ bKGF ؎/Er{u3"0MggzvDԕ$Vyz9-THG)%d Ȭkjg][zl嵁,e2 hNM$ oH{aНNoyrW^5pt3Y/ 3%T}}ŤwuVrGS]!LͩUvֻW #3Z^I޵xp]Ibz:EP"PGHN;*-Tę ;v YƱVU۸Cz)%W vEU]Ѭ#3\.ĊD`!$rΚ`" hC[^d9a&1*}@]סHgU?- {<ƓlZ 䌴k>+g*A;_s?pA*qlp6$~O5 @-֓$*z*%^>>A?=V~!)NòMz8}jGU攪lR WOOJ'uKdr,l|UeuY8pk)fRxQ{ U+r5)ׄGc]{ӷ %Q **TI^v JW)HfʌSepZηfo`+.Y,үb՛3dEL4B֙%eުǿy^>䶡Zp[yH ryWڷY܊7a3T[)UEs֒ҴrĶ%IĖCƿ{cv 5[8׻Τ/]N1- oIfir*e1KiVHJŗ3窷ROڽZrԢ-kU~<A|1gG1+Ҿ{zEfL'qWljӫ2%X>7J#fO*NL<,Z{vr5l؂?}Ҟ1#e2C9 =_ìKWֶ;Kq2hN^/=O+ikۯ;pv@ewnahc`kI?tm:tw4&Պ9iĵ֫e9+#;R\ںF#;sIQԯ*5릫ԅ;jba,)xG E%`H#; KBvyԄ#+̭8ZpFxJ؉C|eY#ӎ\U``5EAe֥:K?D0W.C,$fC TPF $V$=RӪ cټ<֬Le$;<N]T+ 0 <ې_ӮIbrdkˠ87V~nV4*Grq!B e#>'~ᑌt{K>P]1ݟtrXeݾJyxUnp0CJwH2Bs@H]YY^,?fX1iGY[+@nµj́`4,gR<ݜ *[g7G@Ha`9V#ՁڮA eVO 6\RVFv8`I'`ˠ"ʒl1ٶU*0 ʲ:DNY) )FT Jst qRFc7m5+ 0hc,t#`qg1@Y^YDu×x]r^K"XؙV\` :#9;.}K#OJN 3:#wzx}5Kݴ᱒,3Fz?>F5]FLzA>^Y+&[_IedmOǠw| q,>sdNp>:}:fuI!9F|4+\ $5.z=v+NKh|8O@+[ $$t#'L~}_X,-3HϨ tx` @q=>v1@ƿ9@9R`p=OCOkyg 6=fӅdOI @ wdn; R<|B O>׮ۜ>?O-:f;X`6ƃ鎀y"!p;r  ]k4 ?d E`CfVy\*HϏ@H5["XgA7?rZא*{UBZ7lED;}!RF W#@I|SQ).Ih-ŁK]$r*~@`J)Qr%}q - ~N$p:p&@B*38;@N\DU dg@Tg2@H.hr*c'āݵG#Ȟ:p^0Z9(PMHǫ1kK-I$uX (#tHVI$,%36TNpCJ,N X˼#WuR2G@W>[J-rb!]%W;rmoqY$9% q\#qyT%N)İI $ךRI>Q귭;^u\-<'1vɳ['X,J~:ʁI'=5U(Ia T Q ah0rc>Z?@Ye̷ۯ3J@౤R 4TY>:X=Fե s:XYe&Tv쯤>9Ƣ` Dk!鹛ܘ6pu#^fayX;_O5&lej\8ȋUسA`am5i[?+.OhZ7e>UsH = z@HJD6^H_ЊV?w*Jx#{^gy4qMۏSO@L6y O*)+6el妽7jK&vl˙ih|H\I(E5r3q:A8Rd2h7]JO/~M ~wM*G40r5ei+ږxP`87ג#z]]~=ryY{RV䅙9,SZ!XC&Ol{$"qZKcj^oٱjYJ#~yfy[WjbOX3Ui'*vr,:Oyo;.JiU I9rĶ(\ċZ^G^=5`I䗖^FXTIWI^8%n5J6!FT23 |ǥr lpAD'r$!܈ĎUD4,0DcҬC s$u>Usfh$HtbәUx+b([ c89:1^եҭ-]5 eь%v^<}{O4qK?H yWc%+O+aN1{2XMF0qUs='-HpOﴇji,\4>Buej-f.3䖕^Պ5Bi+ɾYb)Uq>zi9鳪mޣ55EsZhq?5 + ٠r|NZ)e0:DuBּ4u_ nG2F)0aDo݊i/0,F Gq}ItU[ک/axiIF)x^~՞pǛא!,*Ofg0d *̱UkS?u[~8&#g}bd'TL>_ԷԜ{_&:q7""y'J2z^EPk"9u:TSt_sJ9N)k$&J֠k\Y)\6WFp&pCWT9x7yNܿ"R,G/ k4D+F$Nr굺oϙ(vW;瓬lZirCX_>߄h˄Ϊ ðF{rko.ܿ'qP"I@+^7柜CI}ҩ)f[2!XpF %eգ<=`t-#jZ<3kxBӧ^{ g|,޸yf,b5oM#K$bM+5lDXGX+ٶ zo jqֱ^YKo%zU[1Y톯RG:OcTHPDl`+owdE$ȷa[VbX`=FX]Ӝίʾvә[uP:l&,FB?._1 {(.BkZH!E3'_70'1WZ$ilϑ8r)z0ȉ0?o4%D˔H>Ew<հ&֞X+;(v1`"P6 Rr"%y$q*랄k]]:|L86J|$Js\b*nIP~Ԓi ҉K#W{+v'9rEC ^ *dM4gU+WFQI4slSb4c V\7d_PQUw oݏ;8:;I }On"d8*w`:< k s #BGt3 \T3c$(a@@ %ݵPe6N t'#kt3` m nO@IG*1ld $rтEJA`d1*$k|ʳl@ E'qEF@As@P< `i >۵m'$YCti e ۀfP\9ۦ~^al51 )v$`#۟.C` P1 $fBpFF@)[CCA9tLXFFrKA9(0?ˠ򟨹bCgV /3rdnW}Y$7$!ƽ&v@# O ytܖ2I\`jHm=9\1!6VM@9 i'Ǡ0Kd'`?ۮECL,2|~Cшԑ4O73!9 KFT\issk&jNO~^]9 ``?c,,h4>që1H*s3/}D4{ӐF| aI,C21 '՟Ճ PpӠ?#cS~g@t$i㦞 ij ?hct ru71b Y\]sUĄ+d59,̪+CU*c~Xh?,P:¤mS훂!iA2a^ UqT?hz bkܺn.xD$mnF!Ce!a,B>cj 05TօkfZZB$E$R[ha!+tU#y*Hڣ>6NВszEՈF32`(H Wx̱N9u,8Ȫ&,O2(yx?5񕚵9qŷ?!dC5Xd ʺ::g4"K̆ܜ?%p<́*1 Xri{ ;P*zXnU%ml ^; D{ߖIGW4b,Υ6z¦O/0'ary& 5WutD-gIYqQm([\b|ߴ8ePhWޚs$(M`,%lwemǡH׭;xqݠ1)]# Ҽ@ݱfxV0@9M=,0$YuXb&JF%Ҹ']ǫҿ3*-ږZ.+>LI{Ys+6|HH#E?}+#FG]<>:)qFbBNG 8Xc *:v!zwKIb(뽏cb qѬP1$*u_JڣF bYyYhnqeٞf9<5ioh( ~&N_JEeS6vǫUGf0{w@TZpb]>=[N\֔zZm4I-lnbnSj ,ƻ%GQ)"?3'IlGN#]`vVЖ4UH oFH|fXR㨕gUߐfI(`,߹-NTiiΔiKfkl*k/%Pvm噗]тq8F eR疱 aXi?m`:7ײ<Yy?CRkr\%I98z?U^˖x lAP՞Cż(~:>H X]CȝfV8toYTO;f~'bnYZf5%Rh.WGa,|Tw]ۯg3K%:tQtt{vܥ~ͺcnq_8<ՋF(>XR$ mlsq({'b3 Tܹbxz̜}*ȩ'αsmЧ by11.ދ؂bZ%~E~z<^юK\mơ }E=gźÿc?6|/g5GOZ! y*w:Ӑ'm.n"RR [Cg4;=Do|7NBf>Jk''49: 86jsƫ.H8N=ki[Ίy^:\Y&Ӄ%i7%oA֒I-f9cF '-Ϧ"[}Wn?x8rrݘ(K#Kq=*\Sfݵn Y,j̤0U ^ˡr؆w_-\t\MAgJ)t^BΆ)#xv-5,%"~: & Q}ҍC ;@P0q0t]( 8q>G3nE.: {<{);)bxHwb*j櫀w/ru;gߙ5ݞ*ral!EI\ R]yiOz|%X*U丼y ^HO >K{%۾8*.C'9nx(;l G%4-x1_}3[+-+|^|_nv]3%VBf73 뎵mR,qSbẑ1mdP\"qSw#iǞߥi[PGa! eXx uӠ8t Auנ,67yrP|m}?>^)g#O+S6ӆ#AǨ .Nuv'8;U埩Qf\冞IZr8Ɵ>GZ_I?V윌Ǡ?"Č@0IxǠ4'IAOq _`KN3,I8`s?G |qt?Ӡ7sGPA?=Y v<kpG:{lѝ|@l]BU;[tʠA` ?>+ SχӠ?$gP6iQw`dc?3i# n#O@sc'zΖ0 :ytuSimCx}1Ǡó6<ρH8=Ae۟]5>y FP-d c~kk$r0Ш e2UO@7 bivơVqeנ`u=,u ?>?J hrg#@@ \B"9=;gRr9V(H8mpk@9GqI;u1w 7#zvrkO@H/zr5q+$n9, 'b@?y5$y]C}PPJzYFGg{s;V!rBf2.ۏ#ӂ*ru ƻ#\,34W$x,`6vd=J0~uSl؈y%xIC!/P-F1ɹޭӐX\xH+Hȫ?ν4WQ;rx2 *8e{dJpSWA$e;7w7𶷯K|?ق;9Sk,SSYi{(rsGbZGNو~u[Ejk@乞D5jxrR{r'*<S ْWoqFbkݺk뛣v9Biy("[7SxUK<_LME@46}>~J=s-hwS3 QY4-.dv+\:iۡ"IΜ<='ʝwUpjQOmܝz=>o{\_nv .JW-2xl>4m%wʜyIq[IئeO.:^w*yC$=e'q6\ >?:1BÉ.,$'>> I$"we 7 fh+:j4@M\c}$ @M\%Jpis3g yV;}Ld %@_$ԯݣdFW*S:zI H,Tl#(@̾!uR ~1/)axYyOv:aTq@en,۲Ȱs[rdgN\zt>8>'Si @:HkZ9rsᦿQA|FM|猜3ωԌtm*lgRO'?zv70yP19cT##??tМɱà) 9 FpIpI 4R207$ T/~}Wѵ6]rqHDrH9A|? ]BgAk4]:u(#$dxH-/ : .OH7W%}p:dgcP ~ڠk:d64v#\MP6V@q$zF 2u#;x0;wc7 F]07GϥYjHH`ȯ,oH]:iXyR/y`/Gb9c1ӏ>CǦmF:Y{6oX:eogH.paQBLJB ݳzr8E#xiyQM-XC413d)wm8uU+l wSMdT;I::9>?ET9i+rCK11hGf?R \UR,9ҤKbq[ d{u&!jL[;& Le[iKZ$l\}Y#H_fUV WO[L$jK,ߟ %T)ln) l8;-5~Л,߷W>j$'$̱/XFN8!$:.੼5s˲DqoSZ-y,Tb)/"ΞbN..SW~ y{]"&(*qm_Dbz.ꅡ/߰F^l*"2;Ŏ5ӨR`bl8RR&ŕllᮚ,iUS[H}Z#ȍfV2 nJ+{ \gUEob"U5g>dv߳n䮧Aʱ"w-_첪 v*BA,VSvՈ'$+uwdHxHf$( a:`( k7^χgZ6GxDprmWg #hap=DBJSh;b3X#XnB(U}i 񴞸C"8; %jYUs[PmVjْFv)9"Y}~jrrAe㤒Uh*" JդK!9.X>-\uiӞX_wDaeÈdI v3Eƫ^jʪQ㩕3r*tyVFW<9}>KA%j3]YhYz\].ZDzᠵb+wx@ WJlWxM(O:mk+1ݾL\n;0pѹV'`ĵ ICHC>"t,6v{.;SMYfzXLA4l1kҔ*o.1D-u9xoYә,U6V{zrX"a u9=>'g8nsu'kȧ}WBHVU4 HkuӉpd߿Ś}K<!e+t#cmr\Μ;u0Yor5gHFL27Wq7"r}c ֻ'7u;vN.mrK)n ٠ۖ1UвHݲƒV;Ivgu8. |7d+] 0+^!Rj4֥w^eʍpUUq r;mq!eKtY R׭e?ҧ8 AU]~'?px5K|?nCEYK|p֮I,C:Z5VORv-=&;Vi:$ӭ dr[Pq/jӳ*ڏOsP7J .TeXbDn| I0U@_a9Iʡ0JFWbJm#w`էdw} Q2t.|p|36A*sv@נ$@0JFN7x87d] }ZPpCg\@J9>Uh3FT @09ݸwycq.Jo\!w9"0Tnp5%GHQ^+,$rPEc BTdlPIU wH(_UMamFWߋs/T!X|FG@9|I*F6<4@c0%T 2@<LJ@/ܖ@6hw*cs?@$wcfMyrܣyk]Rg՟яS v X|N|\\6[ 7n'8$ O ^LrB(8ԜzP>TnA%4D* I[]r?>#9$HNCI B *Gpf,g-àY}NX`נJs5:pIQ98$Бpt#O/^ՐOݷ'CrAtOݴ:rF<|.ڀ|~:<:t r~HH'5!O:rN|||Alj8M@|߉u%ϧ:5 ッTǠ N?Ϡgݮ$c O0:TAIP  pX1@~$189Īu h{XAոxt眫CvW99?=2IS"7i z)1$#!VH n-9`VuƧà@ f@v7l$`8(ޢFTv=!U$p2s&pA3mMHc{RQAz'4P@j>͓d}U\gucXceBI,4Wğ3r󨘱9ՖmJMA:u9*p|w:vV}İDBշQPdhdr0@N=ߵC)qsDRv+ RFoѸs;Cu;G[D -jQLc=92UUVGϔ[G/ܵ]W+Kيg$(`% 7$LO 8}Dݝwpێ+kr懒Mhd+ X†ےI$gN\FXx"0I"uSԱTjoꤠ]sb9;;g rGh1!ԯOQf m`aqѽvUd t1L18+k^E Զj$._ rAwN?d'r!YI+ʮ}v 7=7wY+G?4LSxnos /{С1x$8Nű^&ҽE~7NCK4pI83ʓ-$F-n>=I^]seC霈=Vv%ŏfxv$lש<QKyRjt;^;SGgeᓗ1r|E1rqYnWd2Cn6n܌gwUp`}RkXN̖䛐-Z9eq!鰒X)Mճ%I*^|E95H(xvyN2F͋ ASศJS^C9$)}*=z˽7 KusZkr Oy^n>J;bV7j*fE=c.W| +fLg';J$N<_*q ĪC(=U*ql:WvU#vOJu<1yڝ{.Xohةr49=#cQNԃ#U9 zUJ7>JN Sw턆ueWbhV^XƤyt>C5j+IhX.V<:Rɲ$zD-+Wyl{RR]5x㴜{^ʗ#bj߳z'FxxI+*a'~Vy$V]Ai7̪@NC$CPwbaegs }Y/:T 8_::N'D9`A|esǠ+IwXL{6A8>'8ޕzrJw8c@mE':`|AIyd5 }N@,NwjQ lr5ݝY@!N5tu\k,:I =sw$GS͸| kEzTf(H,0B*qd4<&;0nT1H *s Ѵ{{Iuf,.# x0ePOm$ kzFy۠)0 9N#u$x䃌:I_φqON?M@ [>8?㎀Ք} ωAʐ<@hg\h@(8Ӡ19?+dN>c9·OǠ6%m֍$ܤu?OӠ5Ȓ> u ހNMFފ,xc끡#^4D\rBd.5glM'c&. @n <7 ?=:C@G ?Na,psj~t3Jԧ~ʒF@&ZIp`,39 G[`*w` @Oe|@eU@ρ*G90W+|H.dPm"Hا*ԯ>?@XrbQ;"{vCVY7d o}9n&_br¤c_1)t EK< ,}´-V jXD@I+:4G%ǁN<:vEiD5*]dBb7m?x dl:Q՘Xvy&ڈᣑ A;l]ۓnC[Х\RICV8θ׫tq3i|lӯHa,TTm*p]1CVyk7|swI2ed9Yj,^{1vPfþQzY}z0:eoQ`tk%V K)v2NE5qSz!Xi^GDMA Vtw;D#$ϖ+C/vͿ%BaNU &Vh4Vxۈ H$4geV9~E㛕[rm74ޠ9lff!FX)cDLHsuNWxʜ31IlUh%uah"QdHU`5yB7_㬊,QUխ eFp8Wwe[n*NaSr7&hcڦʮ鈦)Ƹ`C9S7k{,WaٗLf ,lTY 8.ڍ}q].~Mcjn1Qm%R5Q>ږVP)3jzVr-յ?|aJ6KanXB 8 #%t (uGOr3*$Vm x+B$wv1& 9GTڬyif4,KG/#8v@+ ~9d؟lWeƬ6;E,$hg2J4S;Wt7Ѵ;DJUFNF3dx̮!%9yk@x$-8 X}Ԥ3>q}3-((=wk<$#Q3{mg!*q*}]ԃJV-tZ0wj x2H1gP*Dhkck\O|OiJ1si.bDot[tW0Vk·WKƭTՂxċj=CBhJ&{vN?n2K2 `c)ڵ̑_ V=0xֵf[O_E[jo͡Vr4N6dwg@r}$xIWOVp,YnR'5Pׯ 4*2 )32*hW#d>˴ΰ+v4䝗~ęJsnW${wnEbM֪FEHG2Ǒ$Hr7 }`6Jl9}Է+r41=.5s+y [%Izq̨KLүl=>DkL:4D33M[*Rm3ؚ0Y ԰PS|fQUTT1ۓrTgEq kq*L6k/q0+iXUƫ>RBk~T|N2}t2 PcVz1Px P:KNVNU|;.ӲIW^1ZQA4j][`hҭ+ns]ދ{Fo~M_]Hؿs4XR5ix8@=g.\;im𤋮@77:{_y4j\BIljj_^C"',L΋;$eMZ7k]ixQP|\ȟ⵺=>[v>#:w?*q%vչbE4 F%vq٧5O=pt+q1ъ/bJ9Z6jYlr(01/UAn^j&%DhwwGLRA0F7ɦi*gtްX N` mr9*$'#+Tm 1YqÚ]Tr!fmU0jsU+)K2F*hoQ0:^%׏ڷ2v*q}HD6 ]P"BzZq_"i+4#Y+!KLOdpm$ah۰UZ1ܦ{sG.+( ~r)L~seu'jkGZ¥ ƞlIBL%'_<~oO{<_-~b)⚫] $H쪹q/hXK#ąʬŔc'R=]1}/_.;G+'oyCk<%uMF"}yW$ s}q[^{nN=+|_k?K58r0f*8ghI]kZյ7Xgy_(G=,VĜeOq&ZP@On@ ^m*ռnp?mrٰhENHŻGƵ#[dLN=M21]8~nbs { 7jƬ"  }d}U%nzmܘ~#*35ĚF*R%*"EPŒ0$0 ҝq[V^m:?e'4(`Bt;Lj )w6ܓAcoI GR R ` 1]0IoUi"sAU8i#+rr=9pC CXF |%d(Z/r3g]N:O1Emq3$HF!s` :]1;մ_ `pu(*)|Υ'Ht!e8- \gRH|c#P<@]=H`nr'j$VR6`BFkPpud0?à?AI`}F|Źmitd)l? :>cWC`@ Kins ߼g_s 8R0IpoA5ϑ`1F_ 4Hˀ1 #0P3Ι^ܪ 5!ritN<[ڠxci̱# td<:悮8*6Fw0@4C9-X?Ǡ"nmYBQ"A f`\>Ӡ/rѭs<#BFe*W6Y#adY0rҙc=f됸LAl$N:kʤ9w*#keǠ^ade%92r k eo">8ANC#%ەn@ 5HA7I -+/%M 1!fi74nXF[@>U|ڏdpfhzZmH$QRw#`>r2:Y2Gf C؝!,+W+|=x{z$>8^96>ÒQ+D'$OŷbLzigmUK+wpoXGZz$BH֎JO9h#orI=)aλo j9{mrf;U9*EdB̂ [Nt쪑7Z/*g-)#=.ry@U 5$Pѱٵ zCWt7ŗ$y$rc^Z2#yo}Uk bx)y9? oiӮӻ gmn~l%N^=aĵ+WH޵t`k@s{ 4x^~.TG=Vսձ#%SjӞlUs_{BjVK= tI]w`ǧN~LݬԮ@xU0$88۴|OfAߑxA^ٵCB)a-Y!IU!YP-Q; jE_Bn ik\%v̨,td)*XKu(]vLu%滊*ƀWRPX~B7oݨlP5c5ujz')C,ٮbGN畦h$]iW[x\رPvlqq4L֫LdHNO4kjL29^:CuW3^o(i$u¬}DuqnmބqRAܛ>W6ZVJ{>*jڛbsɟrPtעW=^EZA^TK:ӣ^ǴLRY&}u!F.elWi\Q*R蕤 @VX4l2`n8?b.y4Z̒ƲU U2W?&BĞpUs+٥0qԹJ I,I8Jp4=Y|q[=#n""`gIv<Ra ޑ{NTa:ojbmǛajֽB Ēg !{m_՘DUX(;RSB̍o]ۜ'2suڜ6xj H"QVTJ[ii¯/թ#NWnܽ>XT/wr/v8N3u0,=J;b?~vȻ)2DkfmǏ ȇ_" |Q**ݽ/-ǿ~y>Q/&*=Ooؚk˳M ӊn;nnK쯑T.ov/=Y.WbdFRe*[U)e]aqn!d5^&cx..;7rw62d|̸ȎIJTqez3_ௌ}_o_wv?ȕjv.ڋq_io9o~)wI,.=^"k|rww<8x2! ?|2Z"Fؘ1IwVȍF)|}(4*;=+(NW(8)T[pfU^xכ,[N{\UCѭ~K-Ԧ KmDC4Jxk\uD[dm{q͝xzݱ R$JاZU(zՠ,GW3eUΧ2ݩx^7l!;4pi$ZC}FK:͆: u:w}{ [=.w#j*JmIlHN3N?KtWy7|-X)^T7=$Hr}%"BĜmyoV›]ޥڜoXeܚGH=SI$R8e@|.?Ӿ~ջ5>:{|w4Sfqr&x87qi YAjPDGIZb'(r,s+^XeR Fl WՆ#A($v?^ii1,TFwgn\RF|zw6.w IC=g'`$E eᥞ\"r@p;v("! zȢ1$򻼼H"7'aVJkKւgynIJ^pst>g@heA&y*1hJt#:<#f_K&b 5)]#@ % 6_[uA+2U]6q]y#Ӂ,u8:yqν\(@(ϨGǠLF=K ]0INsIT`vW;#RFrr1-Ra7:9R`z/@ႷHܪ_٪N%pHxā :>4,?|uK9' `m+H O <AHN3@J}U:"V2 \aFFՌy\ @;# :`W9]zA >y ųN~;,0*@is@@}iٴb_vDxޭرL 6Or؎OyTOA$^ԉ*Wm'NrJƌB4#qIPX>Jrwd~#נ ,d12*@k5#t ؋X"Ŝ10"t1pU`N3 ^}4ҋ׮"9k6Uhy؁MHsNW`!cfUOs!;.́b2K;L^]8#zЯl#&܊vorl0%VD-n\L{uo?͐1#-ksC|K;eDRq4s0`8hDgrc9Y\{uf:>/IWR:FOE1fpUkS԰܂alIoP$Uԥ:^rCq!r &^b´$OSaM9Wvw\)`Q bΤ 883А""F8~Hf;&Os"fx>q,|ַW1۳ݟ5V"Gz?bPT+I#@u2gy]Pݼ _ƿ{~pmwB>If@5E%U$|m3\qy9xRUa(٦fI,FF`Χ_RĐY{VH cT8H浼?dg[W[5 w⟕%${_NBst#-Q~HB+oܪ;cpr cmӍ|=(>M vs*&ǂ 9(P N$N4\w{{׏nir5[:- .M /2buUo*mOM0? 6iJ#,d޹W LuU_%$_lԢ5#߱cm*Df=BNJ>* XW!76jZ9rYd^D9ZHR]uTYCic$1JJېH%_umW4ҫl.<Xxe!(BVԡbXmwu8oҶbU+_R~d}&G?֓kXMp 6_.eLJ5 Ryy &y޷=XR6ngW,N='M:U͗6I,<RJoSO$5׎++_ H9@ɶֽ;jfZSIZIZi?H㵅9,2IL)]NNh"FKYqeH ԓ )t΅3oNCNIgb^ DI*Eh3PU*I#^u=E'3fN_Y̶VS!e[6kEx_hӺ؜U@sx,Zh%$Q=`OiVZȵv}dGQKGRW,-ZWJ<}kU8y2$Ԧj$L !uugMē۝WIKK0Pۥ-ywJw$SeBC"E>0e4zHQSru^%ڐIUw/Rk܊2 M| &7bS+KZv% s^EpJ؊k[J+V{a>II_wC*B0$h N@P} &EZr{\E|QHfJ63!ZFKM.$EC )űZKMģδ9ڔWQԴK2Ԟ1HE{EWVOZI[+onq٦=IPG?{n$[K~JL+r?Un:C)a"ʸm΢44/US\O/!rŚMgeCV^_]v2" :(Ufo!~\)}6.juԇ>FiWQDr<\pqD#5>F=̕orBš|e?Sձؿ 2?ߢ8&ȜLTynhq`:յpiu\տ/P͟_iTo$w7vTz.^$3q)]hs}ISU^W' sB'JJZ|п#V]WNEj7Rάu|ϗhLj}RX>JF*6%:׻uK,6"rdd`KgexRQ*W|_ { |*G۝r{MJ9$xW!70X٣$QX%ϸjҺKuIxOnVj5N?9<,b$,Γ]l\ac伽5 UJv'J-+w+73f8J QG1^~٪[9w~ub@"Q)hw9CGuO!s{o# NzуB8ǻ3* mp_"JYr(ծcI"I"e{N2|As\n]Ww`%bjEC|2BHCč᮱D^4*??}˿߿3Aoᖮo`U&-sw dP|SϊUX( [,^uaXmĒ0u=?ַ>[bpX9ࡕZFSq3!ЅOrd:@:IJ!wmm@fro~GgL2-7ٰխ2p *S-Vx[ův5zSVi- '8(8ܸy;+XX@{XpmQ<)&;N9-'ռ@V0~$p-T7dVTH mk@LGƳمOdބn2©>V`>}j_VaB*BhBC: 5|(Jk!ɍY\C0(=9 }s)F ^M+RpA:aO-A9 4= wzN$e7cNv@3Iʯ)!$Eƌ㹍x`'*#8vvHidro]>>=/@71Ya! Y?y)1A G<ܥNRkeZA LuYݏEnY! <³ I Λ:,!X 10G|[P >B%b[ 8# gϠd\ ,,.nF 49 m;G`'eP NjJ8`€ Kgǻcq\ `0t!m'ӡ$z! ||uנ1;mpu>  S=YxBWV6uǎVC,xd >CI]oϠ5\& H' vrq!΄>란`qO$ᓜdt-ĸluW@d .-Qѩ$19'A Τ 6;T"``|~PIRFd=BM9FX!xtxk`)LPV 3@zz#%A יb-@ǩXヌ U>>#~@0:,|J'#P48xybp@! @[į>! % `\,&q?8ο^(H\zI`9oi. kAY]ndEvT;u rYndhe-jl U$?w$iO*۳1FQ$uaOwo ?tK+Ze$۲C$G@'`kIFkp~yth'@|pLd<0@ÝTΪ8 79_@[vU@QFFƾ}$a6hHgƠ]x~.IxK-FIg{cD6=qUů{vbܲk-{}Vf"݃$ :qT_eW ׫+M֣!X$1TUN {+p^ّս0/]gEly֔\9Ps˭f ~^ZEVHrV1:3cL?z\;7h^OG¶KHD<-8q܂G蹉9%&vU+bEmA.=_;w+n샦n>"Ib,#bTfkŃKL^D~Z4J4 ;H[HcwXU$rMVM.Ԟ>秇w !?ORUzXiy}LhY:5**h$?nۧد}^2Վt*D!H zo ?(Nq8ܝ_wX@*)3˹ݩ[N`VR+_Q(2=8w݆+ED8ݚW`6ø4Xҵ$;WvnS()XL9ce UE8 f9M9f䐈\0+d`U q(NK α,f`$nok\m+=Mc*`ՍT"lUZ0S#\k>{5QlR{3XTkXG;w zGۥf#~'ƛM[@KgZ S}"C oQS&ԡ*bg nv~ٗGۼ eȻ?s%|5my<:N7'[}uٲ#{F$ۚuZӵc^=ԊTD④ a`h˕'0YU%r.'&/vfV)>3Ix;* 1jQߔ+\?9wWx~\tOn[\|UnS%ݠݭeԩ]U\bH|t~F;^_He*ICL_yTaOR5;Z xU2qv " Z͙ce^ڳi*īz myPku *YmSUJr3f I[v(;X~ޣ2J \Jo^Z:-'^eup -J EvkTNݽ.At֗-NZ⊴V$X)]ԭ^,9d|UxZ~m8m 'f;79Ԗw%!B8RmF3ue꣟g ڳ, ǽkKb#z>=kq%ta,1JcD:+bUҴ[ ٳQK\ZPkEÕnJ_o<\_!e"@ө}zUqe'%坣L=_ $P{WqֹƯo +ޏ ˃ ӫ??4>*X)>rבez-} +F~k`Ouw< r9 gK4[G qbJ|mUXBE'+}ҼɊ.̈́P|o%.5S٬% NөdYo$+`˷Uަ'+yǡ|{ *P=,)Wڕc{XR:UU&K275Ҋ0N]YԪqҭ(#jkIyd*,ijcS <걞(bRzY}sA;H ##>s;X4gkFFKnBFmZrs hU2 aQ>]t}rhr\7v?oqW0J^!rEEi$k@URtȗFk_\]&ilGp]r]9~qkwڂĥWe?w m.8\%""I}i5g5 [U[w-n#cp ~vNk F]۶0Fܰ8Bi's~UX c@4"5\R<kzqH?9@y2GCà P0ttvQ~y:zIQ)7 2_R65 5gf9J`6mQCʱ1ܒKeM ㎀iJGMvA%r|pF2OӠ1;|z-k3ٔt>I"amym.3tnʟm98%t?_>7 y<[Pwn:q:3`m:H3\al!A\ t /X6%)b<@KpI DwHPԌ0[vEC jK DVlrcs*ʒt8#34!hFuO Y PAPvz@E}g߶>Nw}SD:AzdVbNNku\xtt*leX#S,t8U):djt**2u9Q:x [%FNC.i;jzYӹpQib)ߤYUe|K1܅BNlf_zv6k'kDlVˬhڊ _ˁv.|RToqowqP'İ)G`# -ѽ^]y:ڵ$>Ѽ7Ky_2?}jBHTKjkv%Fq4"hjiq%W딒IS9^[UI9k|L~;K\[␬1 |!]ky*ugLVW2# N􆻭i8Sx:Xa1a58[x%~;SRw% !FYHI"5tI0:ZM&ilG.d$M4N5V#iZӑ,S/p ^Bt`(^DiQ1BS: F9W*RHt J3`3(|35ͽkU f'RDR F"E($)Θ'\5 |J!ޖy(bRzTX܍0;YPF( Np2( ~B%7UE"K0 dl̉閗ȕ풻vT#n{Vxm]d*ՊĘ*s9zaWI}WOn+brҊqK,1}܎Q ΰȮ1'@:pӪv5 UPhhK/4Dҩt|I.2!{g&p%^RQo3q~EjJ5rp Օ̇k|Wyyi%w,vȤVyJPRK&DUI7#B~w+H"^5bCNK DVϧb+[+E5[  aۊt\6fG d.02Xt^!M<?akX${K DKȐmʰuZ&rP/W~J׏^sA71IdZXA,V`zRpsX |启`wqP㻝嗸xjv3kR1\j7PHI9=XS˶y<VMD%eK¥;}QS4ϯF#ċ^j*edXb/B@U?2:=hhFӣOJ` @aI7%04+)#nR@%wGpn$=1ս I$K>BYZg &@wl :+>|9[DRo=G,Th9-4v*mzHg|*MbA>zGLT''O2ѳB$SA/ ێQucײ],>$mTS&]UX/o[6ձR-9S,|?UNٍ}CY%Cޫ5\X- 6dH-rvgi T@,+ iSX9"j;H BO:rPD#dEOI$ŵֻy{/\{d^*+SEYOg PW&FB/02+gڏ߿'^CK:n:EW&VHC%ⱮÜlkݫ[Z#C:B\5uvC+`UjvgY޼}Bȗ,X8&J*i{KlGziQUmGJ5^ViŚ<%y[T|%zŞ/uk+V TzcI)1Dy+I 9פnZѬԠ؋7tvzWckc]f=J{Ta5Qr|ٹ vuiQEeV;qHэ}0f۷owv̖N*pu/#Xm"R>rVlFBؿTxZ/,VYOG"[7jxՅ `UX״KqUnS:Sux;^ O$Ւ3ubynz\(+=yC`7ּ<= v]*izۻ !4U*R[/O H\/_{8|:,F?GoG$(Mdmr "NĴD֭yېP+M whF;5=WDd!Vٵdf0@HVr<W,xg& \=JA l0tɱ}` H gx" UEhP'e!bWM ._- x. elE)$h7$DR)H T.~]_؝{z7, J~ W@T~[寒B В1z\!#:`âma\绿5v@X21 ~ y R'$(gXb #0,Cc#[6hnBEHw5 䁌t\IKڑ בN]3Y <W@Q|q@ A9!tKjcL#\qn$JVIN`pS/Trw*ߦSIN54n1KXME6s<ʫ,r}g$!~N,$e 4V@ N7j4u#IRCxdF@:10]4>8ƄhG#zCMNQ=Pl# t 7SP9Ƨ8ytUTmrQ2R3$+t-c<5lj ƮGd`gYktF-NWP>8@%rt;IA=bhTISθ@&:cC, i W8R#ˍ|:N ' GL?. aFt˷{ FnVԔІxtvON6Q:yiotR)x%h-P(n?NxHFl~ӱpH#_ pv<6@{9bhe#PXpqY,ʤxdH݀z;d*N XNhAκxhe߸$)#Rqz0@Y8Sέ'" n#:` `e!6[Ծ<x9 vj8flԮ@u˞3iqKXOt:ؽ>ʍI22댁wayc7;C*R"?IOr!% "A+NFI{y /#ؼ[8[ˉ-U#G"#e_Nrez\=i˔2]n>>JhOV(Zt+ AdV)O~_ܝdV08a|c.h.N:\o]O+ZR.JY6^2 IYZ aR=(N/j>BsYܥQ 1@:\ tԑ>Y(Nq˱}*g=# |z%2t#PmQUU ZFc40#q1Bwr."|I[(Zm2%XcI:03wZ+M$IjD;*'v|t9:ǠֻJEߖ";onWܚ~QY/rw.S+HégV^dUY=dw؎ϛ܃eI\)'مrKJ+ w/oS旁^IaT%,$luiFFm>|XzNkoӾmťˈܗEB8Nn4wn̤}H•2jmPuOS^׵rquNn+rmJ7U# |:KZӺIh"N_ڼGdMť}GzGD=[I@MUЧBe{N^#81E#T+v/7UBvtq׽V7hxՒ@yus **,;Te@!jx#;Wt̨#U`* g>^V9BDZ**0B+)1*{S>]f=}J&ycx"A$XYe$ 7z_[Wn^kn~^ Vd!~ݝ#EsX+$)ЅU\8qxvK)]lpsg܉}yb K33:8*@ר!Uo4l9XZ!3S MSΛp>%GIs+!aM~Nz9FԁyV;urUI#\F$-UĆ˭ݷbcۑ⧊@ŰUVH(pdu4=5[F=\xYu.=ff.9y5@ήa"E" JhY/P}jd;q)ܤHSfjɾ8A{K4TUnފw{[Dܮ%$ /:Gz+tqZpV;HY@]XVu_pW+hy.*kW -cbeD#.hFW9(w\g9jQ3v;."rNY -XI"%wYRRMu_ҬE#A)wkE5 w!,P鎝1W1h2(_;d-/&@pʹѹӶkyI)"2KvY`[⳼$9^yaF/X- ~ْ)pDAk@GFJgwZg حxZ-+G^C oF[w'{k+4U"ͤ@S=+A)TI$`)>g^4ME` ~V#C%$ZU8*4#c$UFBp.ҹ g7ԋʯ^r}7~nG:ֻwYId A9umVno|rkw;fnWkCIծ*@U20yFlU\1bd|UZV -knPMu)?-"Iz{֦wI$I+\R^F|4I7qݳv>.Qbl_Qg*ƀ(,N;+6gv+4p|'Zj־׏'X'#BzU8 (+$(fN(rrF.Mȓ;meۖ#$jv&;ay)8*GY5*՜vF^=#ΔjHkȿeNRh 3xqwD?]EAWB 6, 8 *YºۛOz^gV1Ѕ|zб X Zt}%Ҫ;cP\cy'߈K=pcmp|1ӅJ5tFA n dcCc=OFdMcln ;K t^|={ ܍P\aFH(et$rr@%ʹMY#Bo%Nxq+WrV䘬2ұT=<8Os~XԖe*rN5?Jrr,K*O uCnP| 6Xu>H+`X(D]z v+"X02<,=u,qM cq'%pA;1grI~2.*xCV<X$2J9ϙn@G2DB0hčncAap I DgǠ NI+P$ 5 )q䃌x\]7c Ild1 jנ25P0p@O?^ j8ѾR1@ 4p#_-mtB(>qy8`ӨOi F L'"\`h >8yƸtxrT㧏|@p|1v5FHNN@= ~S42Or`Θ:i㌜=VjǠ#z4ےJs7FB31:à1NqG@%yDvL2CzUqy' 2]0@#OO@ĸ*pUq\5$*I$Is/*;a+Yojd | cӑc̊7>Ɍnې PNs e2 '\!?{l48$1:7e<[$ @>ˠ7>rM i;;;mlSF=c*ugt#JsKjI|zn$S=aaOÁ@Km'ژI2Lp|ytv8*"T1cpu /IrFI?H Uu>&͙,S}`gR"c2lM]CmwOoEYx+O#i`'] W˝0C9VяN{/#ǘy:6&GbͲem"]1# >=q)Q7WT!^@/RHO7*4ݠ#x鬁F!T*4\&X̋B]vtxƣ[GP(b<[A$3J5?3%R 1)[=@䪩a}8˜xUûh*Ǧ2V= Ey{'Eیi5}v0'bFdxU+h`a]; u=Y!jYo z}>תR G5 +FĬzSR1Uq. ߷;,\ib\rVh;2Xbu$ n:i7x|r 5+PZu\ޚDzc`%L(X0/OY#3ߕmv%6FWd?tL* 2RL0קʫR^$;oz]Ղj}'5R>rUڕ,ZVgpm͝lWߕ;nFnR# {g+T3Mۀm:v힤6l'z>v x(wuiMIez]r![&8d 54>nbtJlà'FZ<#UGB9 <-Ȟ̎J 9@hUngԒQ^=tY+2OIRX{,lr\tI+s]2хضY^eb(MgL k}öE_҄IF99A9G = A<% fyP˅PsNOen_{rs 1pI%F #l!;<99k$יgHdGce}bWFxQ[(mGJVE[%+X- IUl4JEU~%n۲k!g)9VFShg.ξo[zwߕ'YW JhR0TӑJ%[p$Jovvn2CzժT^8b)r%6*v&q2g_em9 28r6$w.#5amhõۑ!Wnwt ӭW`5ey^b\+a[j ckKx2Cȑ q6nvy9-D*l0ӌKT,>ՖUR<'"br"ek}jzK\Đww'oIMkq&,۲OўJ½ݻWTHl "Y"A%) AF3Z7$$J&6+ 2"u̢ `B<몂HG$ok$2O6BF F<|W2FQ~(cU6kk2-5m ƄDUC`dL$)KAIy8`)ZA:I@^m=2F\%_0{yc W'4&gdM͖!xF ŖǙT'?kͷv18tG<̛W H|tnY\(\x 3mO/#dK8H"GjDԱ$a$&ㆳH,|]+eŴzu5{P5 -9y'Y}1u  QU̚_7e;R=ˏ43ozYm@P# 6LlJ4 ^+mNK4qȢ!*+ I-{DZbV ~qsR}#bg;D! :iv$@BC{IvI` uABX: v4YżvjIYM$ƤtgViw6;DJa]#Wkd!;W뎽 C%pLR QO G%2XrKdY&QRV(F1UQP*"d x+Բ-tI#~#n* g?]:u{Ү#9pq`v,! {1X b͹p (BI'ˠ. c gCrրz)ξSSܺOnQ<1# K( (>>J5gidXII<.ސsA|jqYZi3<3GV68j @PWmHZ8%kX`( ?K¡#{9-r߆rۣe$uRTmbQƙ:'"*<2BJma2I|u:tgyX8j,3S/H>9˓@R~نjbOdh#f\.c,I=q6KAvv|#a2H @:cBkJr E)>U'i' :^P ¨X FW}1q4rW'I:`tҹ,r1I8@#|tĹJq?cǠ!^lnC Spz9Blz` 19?:dXȨSBCdN5Ϗ@0}7 I4khAF nA8^ي 2qzA$)$kC648R+e'$~tezC?Ս2 lθgt#>Bt\c }s+˒ lsnGA1nQA<<0%'RX?j @6 -Ik oyg!n?ԃg8Ѝs/7g8 >Ԉqr|N"@>S'~'(+4 i6 eG#:k:T'cW I"tep##]p|q@"Bѻjg hs~]JbȂ4-$Aռ *Xxtx!fe*L}Ecほsdy@X$p?l+h uǀl'$Miu ultn? _N<4'>!u=M JA `@1BI%I%MwyHhm:m`I`2W91!)*r N ]Aam Rd4 t P@1Ӏ[Ԡ)$8$6| 6l%uI,d6^0eg)ې~h{YhA^-Y"I}rI.Wے\LqunF$Ȗ;Lxkng ~nc |/1faiM`d+MFz'G/Vâ݃Pdy`jG1 kz 'Bh 7#v0(d*A=H8EGR\Hd,D$$/X=TXNF'ysP C45Ge فO3V[+q#n~I?}i͛}ǷFǗTir$==g$X$iw3>$X$=T*xԼ_ƺ0qsB̓$V3Hb݆/边W5 z\ս| &i8 abș3KjkSGwJ^c%:lKCk}rFwϗuKQ Lo\Us%"K؊CCۭ^ A%#Qd@Cǽm)P^aE,?^BR] 3_pᶹHH"θ=lu[K@\lO}S,M+yojϵ4n:59"bq5Xml#H{RTڑߩ$dF `U /*̑?gǍX!fPoa"YhrE2\c$ޫJ_>ZԼnI}bn[qKLK'_}.FOGu/}d_|vr?wWf~2ԯb -%MOuȫāQʫx}_dnE텹WH$G/KJ5O^1$ +,rǡ  qq#փĴ+LӠY҅')V'5^%ϑJd5MCHZ@@Fa#P@Brs8NJUrSrGgA,SSIH lXD,7NNs=-.VZe^)vxnILsBz@ּZHvឫmBi·Hs(2~ìsA<(u ]ߨia[5Z[g>V50Q%X"B@ #dឤu^b qIa0dMc!̦5Dh~\:$ +o"24YҦC;q piණ`)_JQgV2%;oo2:;HWg$n HkUS?j?i PZLbU.oqcB$_i^ꯂh\-Xѧ$ubrʰbMdۂW#|#NJokZHF-[ȯ"Zk&~z-\gW][zR#zjÓ!Jil"Y ۬7:7+ccyixc46mƭd׊8iß$ e#2b蒳Wy黪W%JU.V_~F?%ސ(7k{iTLI:4}$ֺS rk]S4O:)=P>= U+OZ(.t! Z*C$!G:4{˞ԙ! DJT425II[sB<9i= 4o1hj}ĶqO8ԭjKb%b3orYAݖulxhI'{qI"5W=̑*" g}}Dm>϶`$rG$T"WB"6vQ'ެTIDYk^LFU{)0-tx!": ڳD"l?M2Qx%vғITgihLc$N=5 y>q6] vyZ)zz1{R=E,TZ˰ !d$*]zW$,BkArBd<ʌ 0L*uSj(j@ڧh<tgۼmcQP::Q`ܺg>q'?/8Q"!Y 8Q#Nn~>ZLU;P6@': qx6EXݴQ|:Q4;3B:l> -zl ]"/VUS"ܬ܋sà-]=yrdRY":0O֋a %I(Uf\F=SJ]6)[L4 6> 'C7|c7;6`;LfF+!tGBcI5zyK0%K'\=*cWI6%@IŸ9ӠgsTUd@ :bA'xs wm^iy@GaV]ƨ`W9 I ;"STG'=yݱ[!T`2H>X}²lrCc8a v0' J(Qx(`8P P@bF8{]mv4QIà]X e»!qXsҫ㌟3/7Ĭw"9.|2OӠ#@(Wc'+_bŒ OI$=~. T` t'?q@d:xytƍ@L 8Κ׷sF v zvn#xQGR4rx>? 2 qG>?נKŮLg7߶(b2@\(H!F5y~S9 <čdtڅAr<ǎ@Ν,J7.221@ 0N_;w0 '1zx SdsF.<"Yc$qsna|t mA 1r=I#NOMha%33"s+?@']Wf5vī$ѷlT0?<@oHeuETd,R1U 䁴c\8`p l|F3öq݌F8>45s6dHuӠH N:֍|"#DSƇf:H*JD6 ;yk a=BF]3 |Ǡ=) *H-滲A$Lgz2 *6w`IP2c\doy2bZB*38$ 2+Xk?w^/m&)b{,z_ըX#gyXeE"Dw Ȳ(>]4vATٖKj7=w@Yp]Kt_JqLVS<,rVJc'ISi:Ie[GVDBVVmEŒwho_VPq#,c I\Wo#钭 [..v&B\AʓH@!Zm*16!\Nir4G\v C 4_V,0؝}ՐBfZ7Ձόi8H #Jr11G3!P TԺVeznFފOr~׆ʰrI 4snhxkmKrKs'^N.:)V)Hݹ yKdF#V_Skl,˶krLÕ9K7'yEN.+dif2G]@or4$ZSC;IvkBnULo)$$>3Ӡʏ*'y| ;w5+5{g lѣ-nsYiU1 :N#?ymLJO`Z(Ƥ ^x#!:yǽۋ9Իt+<ӿm+j1TE `+!h _ /َUHDcbA V@\3UIuSimk`TږD+pd45*dAq7?1r{a:̊\e+S8`ꤷ}jB]^\hxX[1nT&IfSc*|F|53k|Unk{bX,-oqbkhR\87]VKoBm%,–ilTH(ݍa^8*ݻIMcPC J&)kx3倚`]Hm5Hm^6wRj@7e#9C[|g!@f(m 宫Ey !sJңcn&rGFHR4hcP۝dƽ2k]I>B4`*EfY,G"kiUs> x1f)V D%m*Z#Z;7}ġTIkzm*`GxrnG,y k!k:WL8u :]>qqgsXa"x )b͉#Vqf; 48^bѬ9vZ.% ۓO,vk4̆^B($5pXW=W6}ڙQϷabx)L*ﳲR${pXR,@N#a`xh*-UajK-ѱ;?=~.S,gݑ UPTy3>^jȑW<#r-.}3F! —?JT/5YVqrnE2Ž10v0̔"WW`jzݭ7"S=˖>%5ٽ)4 ]FY}uȖ+FmY[(%d\o*‹Luf(^fm`p=Gqz˺VĖ"! nNInn[ezM}& ڒhW1f Q\b""I`*MС#M<@H|%HUЅeH]O@Xw]B3g@w|%4_@_߉;j'XXQNntrL('`~]f GR1#U &7fv#䟦U:|Ifˁ%.4'P%bJo ̻FKHГ rvj۶18:NA$]ƞo’r6s? BSi8RvAe? 0S1-H`j2<&!NY[ >ՏG@)@P,9ǀt]k $ a$ c%:hziHp\X. zu v0 ~U# g\_!A A@D}BY#D,yX6</qII6} 5J|@%%C):.YHNtۀXg@2z*d?L%I 'F!q: `:Vj$# $:q ꑝ* %8*)P ' h4|+1,S;})6|?_b'9FS@\Nd|GQGO xGA=bS_Ǡ$_򞱏imO\t@1q6q4:@>aNu'~?qk :1u*|3@f{qFȬ'`EL~~}:M;2#IXAeiWxi b82іDP@)[,N$$KՒ*=XJ+s&vNtrN@g1.=Aq)L|6vᆄf:~ps27VHCzm[2I> i*Ys8l2啑K$O1 6'$c*t##ǠҀ 22n+28N;^K*2DFTeIXrڤ:dJ{{ ~1v f:Hvcp*drĶ"kukS3:֚% s^8q\XPFZ8<0r 5hĦcRʌhKn89C7I}rϹ~*ؐ94rTKnd T(ϐק=nnF[qYʠcIE%":$V$"FT`@$&U,jOA.vpr]DomvHԵɢK "#mThK)>#'w]m]N8>ԇDU $s~XQP7#SGT8eUފ|ZwajnR嚲 Rs1Б '*JސۃT1.zbKH9.y)I }#i=fAfM+<:?ZO,UyVE|u囑D F`H!lFU_T1)OϿ ;G`J䓚ḚD~ȞbʱV,ez;ۧ_g"O|7vg9NϜݱj5~'5#5v+K$oUi?-+C5 /w?&\mstAb{~݌Gx/^RVVXnC՗7՝%]ch$-9£#a  z4^fļ$Hq, Zr_"nݿel׵ 6k3i>$E^u:#{Vv}of/bU #Ch Տ: Z>,LId͒ :: j#{n08;>g^p#: bxbu 4 APWӯp"[ b.x{6W۬HKA_l/HIb֤31zDW|"/YBgiBOսQqmysԅͼ*v)-!Hos8 u]q%Q hbDHZ:ʅFO/1p1_PӫO]$U#sRwRqqڂg㈴U-pMROHY*4S< Đ'ar;RZ+ZZn+ښ %˯JH=?9BDEw%F*C j?5VyW=h:{jFr4V<C+FS?X])V񿆣fIӐZ<"PD$_pJIT!bdVU :.sU6mr LHQͺP2ߤz+mٝ3ϡ _ʗ nWo޺ gzΧ >Oە[g1ƵG#0 {1[o*sIvSx X^G[! 1e}.c0N Pf%-ᶆ:q$H=2Tzn%P`q,WǔZŨBVn 6dcҚ$`@.Ol۷J,$TB` #s1P}*O3`[:c#-]:jpCv"c%IzB%Z$a}@hPcVFL +6q#ˠ#гoꐮPz 3?RUfkaǥ9i~s>^y%&hI" 5>=6lIld%iF9ld?˂r2Sgk1;+؆ V?jJFʸUƤevQ(y 7Ui>!BXg;ǎt::%_Yo dOf ?2p>=c8 ',[K OizY9uSЯ?Oנ5gL zpT zq(U,Ւ `@ps@瓝::=ϠVf1 g a019!Lے@OS؍,|Ea" _̏à?gFT!UÇ>$J^e2qʾ:.s|Fm(ݓHzǧO4v?t`>p㯉m|O@[}@5F Ly ?AD31#'d)%  .= 4,(ءd`kA wvߎ?Pώ|ܹjA V'pOzH thm' H xJ l -H1oˠր{YSn:dzExSTs є64E* 5?SrH Vr,uiՇ܏U4,HݴuJLa$ЀA%sxkjԀP-U<<) w(I;Q@2UF!1P!<'N|?@4VUs4E9=(F۷h@N'Aeibt 2k&(AFbB"FSg z|uWe#KXReg_㦝𪼋K=ݤٵ2.6^~: @pđ>Ւé\c,A:kRȕrEytX MPĹ>~Ɲau\rb nrz6&X _xcǫ-av|~+S#3H} i%9Uu0U^%qU^6|-m"{'ђ_RVbfp0F4qw<-9Ȗs JX{I{F8{Ҳ=%W,6a%󾫼_sUK4z>G꼰9cC!5F$gQ:i U |벸K6:5m9 gR|֠x;sI޿:"{^(^+8VWc]FIYoEqoɼo5~Cڽc;7ى[?p7j27.iɜS!Xtn5԰5\ʧ޳U?g|Z;S8f%r6=O~#Z*~ϔô";3^3kmt8?_ڝbOl-w^S;бmݝWY0(ߖۃqP&ݛ|kٟ +?yҏ[4y[࿑.$oq8v=zq g/ xU_'Ir{.n"sq-[Njkx{^J\xRK_-QI$M TĬ bpS֐=y2aW0GSU[@ sxBg)ׅmB!dEoqXr F#d,pI$ cp o.d])~2_.Ym!,P&vH ~'[qlvg';Bw+ A'>ANCzQoU9yZ9VU$a1ώz-ևcQݫM^U#dX̪u~ooJcZ&㭭K&HBsugcv6DҖP@R28!N9Up$Y,?'~̏م+Jyq"ݡMNr4rGEw]\+[>";"I'4'c#''遯[Tpˑ۸mڬB0ە:p.JTisӖCp;N^!8ȐbY ת"OվĖC0h9r6R!:A9#1DRV9pe#$|OT[N$.4H..9c,۱%Y,ڥl 1k.2 p:S݆;[s\lؖWQ \2PWncڏn:s{\[<Z:HBTz!YLnl @ pٌԍ rt=H$dԠ< PO:ѫ] NNN<thqV 1 rJ\=lom¶tjN TI;T _>W\ݐĩ:\rL^TG~Q9<+V N8oEcn@L'is'G-(cGmGIq>ҳp߂n0W٬kfLp#\K/\rM[߭rRUޠdIcAV,l :i /)^; !#IQz1UV ]˱dĒ|{1}u!vO@C& s Pdv @Ɲ>O ϟ:c gV4^A8QcM:Bdh4]99OHr~<|?>i#Ly20qt%,UMd,j$Jgm2"j1+n`FK360t5~:s3Ň܆$(A*H.Ӷ3 \<gdk#' 9Hso?##~,?Ɲ.У9;s9<Y'Fعh@c8$4=cGOMO@g͢O?}RVc:|Ǡ i|Hԟ @$rNrqA8 _3:yt>A>j@:#n9>,HYLVN'Bb"g9+q9##L #zZ$`g\2sIk4!#Mh\I:ƍ !W% tX:ϟ@UռQh=,>V5*~ylFt-2?,tVb`ώ@jFvL36Bi}:6ߡ9 ۊ2xtʚAQ$ &jH.:8vY}"]a$"$PT!03AoPN:rn{jԸ3\\lnH1O̓0t?KA{|d0Ҟe*G#fqHi;*5UC(u$9$̆͛Ibo5i0<2ɷ뎫swʙw8="IKT_.9"Zh{#Ifk`X71[efϛS!x;; ߹{\OV9$ + .A\x5˿ n 0C;/^YWgG=?qYiAܧ-#,>簑g*V}m'*O|EF b m N:BA v7G3kOOߔO'4ӽ.='DVw?;Z=zrc;uxPiF.n^yV.fvlq6,Sܼ'w5?rG̈$jwPYS5SϐSo4i?ȱt63]$UxudfU_fh^3;"痂,qZ/NfVppn&, kBױ}ox#?˞7%>W,O7'qN&O]MٌHypυ 4ӟZ9IV%nƨQŗO.Bmִ6+Jsخt2VRI h:nԉʔ1<T1ȏ$xЌ0:y@# u/U[EbFS#FVh3z8#CS`g9B SYӎxlD,qm (B:ò59Z &d^^Ev^K&Rr$~u_7 >{y2IJIQLHUFe.# Ű1Лkoh|^{686WDO7W]ekU(6ԛIj#} x~SZw9Qq1{ęvy= ;¨I:6u|RV:o[N|A펂q_ua_ Է$ U9c9t|DD\+RAmIkȞH`&-_a^YYΨ,t3]M! jG!cЬ Nv2ku-=Jp\AhH Md& } ~RL$Ujd@o9mC2"]5Q8o!ԘR ]4KƤ1fݱs2c=^ƇcD?]g DQ3V@;K<\l( n#NHҫa==qڻP<Ֆ&ګ1g2p̤i#ؐI5623fSI-׵Mp7c58dR嫆YwH3o+(ywƦPr& pm*Rř}\VI^(`A83ə)Rzz.ǎzpui[gįn9e YM:0R~R6ݫ} .ef=vqZkQ䟎={p<5ArIT8!$sZCmsx9++5h7E$X.:0'Xeqs2JAgtbp[ iz'4ub!"3)& F~}h[5](Sx*ܝx}Tzbg3^Ն #)1}hasXxnUk9!zkr.ӭZ~6N&HEL$Ɍ뷅p,B޸$J=x3S.Cp֚XĐrJܦˮm^YW~ygya;VeկCyVob[=vKd'j/I7}6Iݽ>!U˙u~2r_zHKٵR"a寚hHdTʪ}pk cEJ#ytMDd^2[gb['RigʸVݛ2Hԩ.FSjX"F̠[`9۠ =G P+YTcl$nqg:?8w;|X_丸8EFՎ3'v21+sgd\nX,fd>dǨ?~rh{D2.wԬ)rRqЪ&.ƟGSTE(#ih#DOXfX=*]V}l5UnB}ոۍv?S!q9snq9iTj?7YnG3x$zcr'gGYiڐUHٍ$>ܓz7X.5LaT**#Qd [IW@@R?I!cxy^]F,e$$!N3=v2 r6@$=hԙA9''ѧ@-6ݺBcgA 3 4۵ȟԤc I0X4~5!`w9$HΤ9x ks_n>544Bi&I+;WQ{<9Y$BGqu6 dk Bש`,,q޵8Xj1@^(F,9\>FmO ܄@I&R1G@'ۭܡ2?H۹+# uВr -9Z !`U\?WЍ1.Q `:<Nd}$rFAЌźl#Ǡ̹c;8O@-]8lƧ|4Gנn{0I$'j#,^2WG+(aGBݴO@ esO3!EP)pĆG\m?mET+2yd$9'Ǡ nιʟV3sz% 0H_\ tЕ9c k:$;Ti?=9FVH9Ϡ_qF5w:d0>b@j1Ӡ+#k5Fz`z 3A_6']t!H9 N0>O@3R"+I*P]נ$"T+\Kgh, c%@>R)$Ȭr3 cE'cp6 b/*}}$3: ĝ<s@$Hu$;woEM@??@f7n' mu$h?à ӝԕpY7nٰ7`ワ@04(V_TOJ:HXeN`2LTVIFY@&"X hXk i)vj{A`lpAQ[K!u^Ps7\H%2"(#l'xw;ƴl܉"Y$_vV'Q+n0H4 }J/lҪz|u8erCMG!)tl-Po{bk ]ZQYόdC ~V=B*9:`3uؗdaJ5x_plW-4zX+`L#}f*0lpNtS9ZݩTF>ЫVԋBY6TR[>;KxfJt"ѣ_{29mm@IKݷ)2];C)15SgRϿGiym?+I(߿|Μޟ+w6뼔{-|s6i ^j"DPW$s+!Ex9kq`r\g7 9CZؿeNܟtMe=$&[2 J?_ 4RFnۜ:JcGI %BdkKzl=mז7, D2вu$@9693{W<^V~zqE=84VYwC2m>MS^RU§w_$O|G{A;7ZNZn<]DdErJ@>{lW_2BDެrc nrrs@C{Udd!+9"emKr$_udY{͕c"=O6QvڵHL?2=Ƚ[-8*P.O>Ui٘YX%@$d+13Ӆm,r$ 񏴴,\6K+23TkKlxV z23[G\m/uT$n1/b ҮVY㓒u1ԅ)?,j=dbvjClb@#w=P Ta13)*&9*Ké0#>{)Q*}1oWIo[\6O!w_Wj#˽+fUfTbyd;Ixn8l[~^REgdbV{_"Ty AE8'[l-۪_s?n$\S_-+S}Zxl/ag+3c8(5.lgi!gлK<bhXIȵچH).ӡ uU}jXҮxO/OHtW*+rZYe31|˦I=ztnBUValZiՑ%9$%kFݗbFڽ`r_uG!68#F[M,Ӥ$uo߹ɋ/%d UԅDYD+k5n#WV_ߏKشVWG*{V4"V1F ;ב^u|_$$RX-V B!KTepzg誵-]V}߷K`V-Vh`U`J2XVp|^6S%}ԚϾMj N991Y¹X w0r6$Ur Z:뽕VuE\OlC_fpB-;滸vmeַiյ*sʈ,m}+X$V8I5:TDs)kvlnZVU$Lm,+2SQ61ƥn_k;(mb]ZB]e'9/AS'}y8 ۛeܼ'flqT& 4…,q5@_C# s~̅їdB4m>%V!qeiHL(uW9ɚT-r-qcddNjDW,X)WԮgmW5cn\$@'p$Tt%d.ܓ cQT`yjW6초NwQ0"{UJ~Ic^ډKUe,$v 3 R1)4 KM&i0 +ӅeR؎3$js%=RkN_HڬNČu`3.\ii:Jۆl*W ;r |!QNʩjpHe@Fҳ1 u'ȑ}^bяϟLcg}Xj1p0G@pqv!x`]0d3)9bbȿFOFՒbFjF`}§%C&lsXͳ|$(zF4@ i'eiV̿˝&=@xq% QtoG@_?*! c I'$M4):-=KoIHdČ <|QUcy6l\d6=}ucΤ:à &$@~:2Кs -•v`caA NKu!=ڮ2d]q@:L^GުHhF+8 FNiWL&S1 [A n?_ q4A\\t\d/ t5),lI˸Iݢxdt*0N㹎C8yy%o/!P |Yd;&~DA5ynKb(Ȇ4(|F#Y :i˺|rd{D,KCr*q# ֬E vB1ӟ %zb;c9cy;=ǁ,8*p{QBa抝ŋ.*N25Uf̿~{Ǵk|q}|KR^%\vd\1\=]5K'ʟyG5w/rr \~/Sy4 d.65xk*K|\cpd9>ޭC+aiKGV^[xފZ2*VqOA=:\`ύT/ sþH"N;~N3=3gJݿ_ν`k>bm2GwU%~!.Z(s]6[\>mC3֍h *^V *OWys$_e00ôh*Ɩ%bH!/emm!)۵ _r])F6JC``?!m0Z#kƤ 3\ ʌ5xِ~d0 HƸݧ@/QXϴev`#*H 8#UYǐ;j73l۩\٧ >$EiDrcJUVrB J-[OU8q,3ҖuEK8G${2EV t\o{{;C;ԛVAN`fvm. ttbJ`_dng;„kR|OpOouљ-bD ?IM]U|1;pv4\Uc;waR/z+UB1, tV= |uюNv%_,8X< T>`g_oKӂ@e)E?or @KȐrv VLzm54xUvFK06*}9= Kk0jdJܓEO܋HHh :עBU[Ƙxj\$Ԕh:!ݡ@W'74S0m, l_mcMΝaIbbɶ^vRƬN?WH'^yW#~OVkI][3 n>V>UBFڍ2ei̺.svo- r'+׺cIRpו*dtR_?^ֿPKL[Wcj+z5XWh=*Tg9G}W )GGb( 4G s9wel,Y4o>-n.dY^Z$&j^uƉ4[*We a[i.Nrfb9r۳&f6 DT)j5vϼe`Ĝ1?Y¿m r#Q1K@g"봡PRm"WY-(NY߆X0Ch+v#}9] 79WE.oy:m$lWubAɼF!m{moOLUnTDZ{P~$EVׂWE)+ Sy8i2Τ268&+S:Ңq"$CWv aR'Ν h^ MqMr[\l[9κ[Zr#:2Bp=KVg>b 7c:q9ZbC+1T#Q:`WNo⦫g`nԏ?BB 01pvG@XBQ՜$j譮}r s%O:>ώvf@ eH3Ո;HSd 4 t'-Z{,N.#RJnѤyz7kwtk,Li@`5BYY˸Ӗ_R%kH!FE4@+VhSRUMcd=pprK fT*(U1[0Bv .C k6z^`m`HS΀m8a@ k wIǬ::t =/cƃiកyU$2bHaHz X<ǏhNH 6 r?1 `1@#_*ttB$sH.J374 ͺ1pOZEAb$OTaX叙נ) ER&M6C}|0:xD/a;BmDBd  Ӡ<c''@h:lNsNkw q] @R0Nm##ν.U:wx9ƞtyc8Xc=6pNNykٿu Ӎ~?$nu링ӠxsPTy~`8@ 3@r4:t|8ǏRP>60F|z3 :~#hz{GIP :n<] }+qYoh[\+"} I`ٞS#lôƨhCyY JBJ2$(!Κlp/ $}|hPqǒda]J"FNӟP0~t tEМBK>:tܡl.F `8hz/Y`]ueԏNiFH@|נ? pY[Odƒ@9?@~6N 2?Ǡ 2 BuVoF?@K4`;7#b֡q~#MQ lM9ZX;DqNr>?~>zLObXZ1j fXsX(5k8) I-,&Lv)S;ZcqyQKLO ry^K@Cc~#N@0 WPc>g |{g7V`z)'Ȇ&_WGӥ27bcPYcxͻiu a dt8C11vl~Fyx8ߒ$6lDui$_ < ~%;}ٜuO%Z᎜=ݾď,*:]򻾩v8G8=򅙍|3r2-h8ns]iV(YS{=z?;rhC¿ Vl|=o[ rm̼7f99I!sj8뇡?&v?pwMKֹ>K~?y `ضѹ;rwo{aDL]]ar mQm+%|vg.;ۜ?µ$u峵c FZRlkPoƫJA*.IOb< v %ψJ=cC'jѩ#8r)GX8!W}#M!ũZYdO3%{RIbyX;H >37'dY}%,RHYT![jgC@H"-0pN^ԋNO JxR inHI-DD#ZKI>:~M*pU[5EYq]b'{A幠rkSx[Y>ʯ3Kp>;3< VUf]l|є ,CDv:+⪤{Pʢ:ch%5]w.N2FQN&ߏN 9 Hp$N制3\t2O <"Búom>OݰL$ZH֯ ->)ӫ$]FT t_]#Wr\r[Z!?GRѣ٥d%UR!)/+o*v|sn?KNyAªrU0ŋWHxJukZlر%VrVՒfA`U2v<[tJjcExz@&1jt H^oy1d +APsP#?|ofCK8<}mLryvG)4E^3E3~k%:+xqpz^ӳ^)|}~J \5ZQ= a>"ʠщ#:^c^"j|^B8"s< =`$YAP5uR_hzi[ 9n_0FeuwrڑFCmq#O-=\u:k]MUTaYR@Lp##ע>O=V8g߽\M({!mC EW)qʞ Bv', s\'&Qהv+-#!,D.mkq= rxbYVTs6cbzTܕS,=Cn6s@=x7T-|STۊihE^VnfXp5 w^bkܢ,v+3V+WQq" )*;f|GAW5NM03,N_ua`tZS#IeF+V&uĈ"G+5jW=IYf^”CI]Y&p ~eumkn[V]D Jr)G-$D?ϵ%:%{,X0ᦱFp bkƫ-߶;$pt+ܷx`ս6!Zo~MVlڿɴ;7uȜ^{KNn^B<Љc%=gnTȢ",X5je9s*e]$m5{rڵ{v$gpT %Q=(eu2J6XvmV@c*4p:(2AHޥ %P2<@,]|%Yj45UgGX@OE'&K3=~7n*oz"Ij0X sȢ)Bo@PO7b9oqn9JZTⵐXeG+i~N y(GR#M+C@>,Am7q\M7g$/4d!S#Z;ˌJƋm‰Qf &Ho?]zz^b:Sۜ|B+4l+'-T+;g$9_9nܿ &ܒq` \krRIӝT2FqmVBdb9w+븨'w96%p*㑹#ۜS2{7%eyo{p ȅeޣqqHڳVVyMZŁoȹeeY@QYaPڣ3?vnJIB-*BX``=kͱ }#p*q5 ^.SlA,۔39يYQ-Xgo\9'ts{2-\K,PHEnY'eVi)rŅqwx' SFr@6GA$1Y68TPB[f86ݴ kCۧs :P.xljO@/Z;F5F@89:fАϐ#$z`}#zV3 àX`=X%~ I'^9 Ng ti+oKd3[KhF!SFQIzg1H?LtWBFF?iP>18 ?6t tǀƸ#>=j_a3 kvARiy~}z{A]PB !}MZXm0<=?K-kh`O_w]e)O02Yp: 1\Z6, i9# ڬBAXzχ̿W/mν\vjEB*ّ"g, P=PUC> :X1I&3GRBG#0cݽ/8c53Ƞ$g:C9I\J{@B" F,RA!:ʵ./;~w! ZG gNH}/ۼRQK6xt$&.??e71uxIVROag5I/oJĩN )WOﻝ-pLSV/էY8^CkroȈ) mKN=3y[OQ~$ҿcܷ)}{dOrXSM5|K-T7Хa-C|Լy,v̕x(&<\f8%kg#.ۂeAx|c s^%㝹>?~YjYl #_<5Y^fk8Fza]x5||Ӫ0%Xqν󔃴d_X0Fv@# )t*Klq2n{l.>>I.[oRGyI (SQ&6Hj$Klg^[۬ Urtu@m+kAМ{X SYndb|~$9+V&Ilѯ#ײKhF?z; z`)|K3}=@4/[OFnsS-h i#42TE2j(Pv[O_.>FG?ܿĮ^GO*%ycMn(|h4S,p~׋Li@ӷ{σ;߱8Ḟscv9;s9dzq\8A+T {([NXUt MtN&uU_!h>? C <+DTr,YjᲒ8jU07V%k-" $MV8U^(IBjB軷*d jf24i`Er.K*FT\zpѵ kq2(xeWؙrP4FW1:=\(hnF & y^@I! 3E+٨j\ӤHaAjglĮY@b1KUVNI=IƲK x۫wbmhYQ"->3=@d2Zg|_^ V%,8&+7f #1w 7.T^^.k򜽐|mV^w~rRׇIp6L.7p<._N -NnVKV;raѤ*eB'\OZ7UvDOl9 ۥ#H>@\C2a!hpV6ܡ[ =IڧiC/eWSm-lgg7+7tEPT "63we{xOfJBPћW)9dL ֥MRxVkեE*C<Վ5lM+?Lȑ899}9++o9[isw cdӊj{}IP7b'h\ҝ[ 9d_F7=!+|EWڎIrveHr@`Hnm{ePWHc3>+svj ,T-x/ݼup<4P$Orh&;o!ZUP)F_H9V#  66'/F8g,yKe^Na;y03_ K0DK%K^6ňs pmE"( t6y cM>ܼttONC['}@qW~|!qY4tH88=' ýsc$,UId L~YU_Ad=w$bƪȌOMcRƵNI;xѲ23H89ϐ9!qN~.'n?i8NIDLqBYCbH!ƺk.ձU_XG+npܹK N EF<=*<`  H|5`A>>naNR9:N[!Q9:`}<<:{NX5#'tK'Mu>ȏ0p #8۵A<@ rH#\%|H:` Y錓 p9vw(Ќ,rsj}Ϸ/6r΄ oi0pq $gH?uG' q/x#8ǖ|t iMs@)_#ᓍ>=ߜ-,B ݃玀–NF8V΁qI=z"m}6pjsi uoWoeP7c y AΪ3h g}zu% N?#]3k O9ShG  oe9t?znMrw+#ᎀs$g t \3l# Rtn "A}p8Ϡ>P@`Iljfbک z"s!5̱2I(p6ٝFk1V,Nd *D!cBdžqMZVF3{{OJA:y :ٴ4Xj,ebBʊC3m E$=c>)KwjgD~Ҍl@dq)윶rӐ|<:߈^:s*bu T)6 H0PcfcHA,fOjAer.[;Aǀ}.MZRK6-ȯ25![~^^f:*x:*av}A­*si%;w2PO@j7 wczvyJt!%iE3xmM>zG Y{%\BʰBNwgt|,gSCw//2UnO|_9 og}7ok-n3~rs- mwnC^f)ӒOΫJ/psWfSve8oEj+$x^orcb [rZ~A`p`Gvז./}y:SЭ^wrǼ[qRw&  劜qPTym6ŻRBux)x嫝J:T>*~2Q8n %X?yz)E,ЮP 91K䗍lp,e|58'vCb`̹2t4gډU~umq!Wuyzi6KوH%Nw+JF?>l#i$%6"=vyu@WH)u%V*62d#_ݩx5:}5S'$W09hJ2XYRD(o!DoTh,PtUU!+}h8O\:(\,E}?s[u>UR1vDHG8?aA(vX GD= dF TaW*HB0W0@'ƥ7I ytm";#>eH Fw~$@&qj"rgrۀ8O@H{2JN43c#g{FJ!1zV$o)tyr+G㷷*? r  =.prsijsu=y$24A*BOI/exǷ+HE/4AkE L:<I3U]5Ԭ/||=bW;䅘kѱqHi^gO5AA GwjA /nA>Be™hQ gKXrڼr\c$SIJ/G :b>eEe(g%J1F% yH52#3<2K.KJѪR@1 HОQstYܺ2<>~>~}|eb#؉ln pq6Ž75'fYQ<3I&Cn+8\ ca:jt#;W2\ ΪGc]L2G:n<<}P _>Zijgx>gՁ9:D_1RG .k;2#ڸGtA܅UNo%y` P4ZY JH;#_ czvƹd`  z֪G50'P $g'=n0ӵwr_Ḇ4J Χ#[D(E,Ŝ4cW~:r{mI> 48,(0j3p:~& 29z$ Q㑃~D.y4j9#oH?@#QǠKsMXxݜi#A PQAO wR4  x`xj|q@.ܬ}HIll2;o(\Bv@iUQđivq|c G: q H:F̟Nu@S0t:dΣ|ghB `{t dAW=r$R#]0i]X r0Ra$k3z C'"3ڜ. @:_S'_,I1KlۮW[L+@L=eMX K1?nXhq=4w8]Ϡ$:V2w@[ChφP3 iᎀ~$$_scr|}W;iX;!;ʆ J>2*ttovp7is@oqդ҄êEB$;κt XvbY’pH) q9*Bk` 0 ?" zVn;_c,ڲX#zj1)vNt9A,vaQ8f8㗊b)q`I-d+dY| //Ŋ6hH dih@ Dp]p/q$ HdF]P@n!>qKqZw-ƒV:B!n: ȄF Ϡ.r!}ST`֒:[1?wa%|W-ƕkvi?;.#~2_SA,_Ay1)m`ŷoKOigȿ?V)Rf'VxH仛Kf(dRQpBɌ.ϟg=\gb0۾-q=}.:h5N2rFWQ)4zsUo۽SShٮ6mvoڧn;rR}$X*!j/k^c{#~Z/ʜ5^wğ|U? q+qwq5QlS3jup YW"JU^$[-{SvW bge1oZO;j]k-Á^!X}ʕ#ȡ| >&xn}̿mEBU;۽ٖc;g;Gn|gerqUv%}jiG jtg8nCOoR/zCi$zTh&mӊ}/tȕ3暫qO]Ihgky6'rs$aI+PP|#0C|Ĝk2ȶ?ެg0wgF1Tb+{ +f%}|c}F#pi+7⹞/yHk;YJkPNTJ3jAlFdU8Vx%~5pރp6.ӾB]caog"NOOr)HNmF.QDñp+,J7 d/nI]iI%S _)%hڣJ&/Rs}3w/Ϻ> /o?ʵbf*PqKБ/sVNwSŸٹ`8N7W5. Rh9j؈ Қ SI#o Ġ8Y%ydU \C$/bXDk;Htٖ1l^TMi! $ K*rY@@БzEoW_pvJVE W(RH|ޠxRGu~Tm{T͹0D?2XU +gRtlBVoa1Hd'Ȧ*O R< cQi +.mZd $eY#2(q01厑nDEʩ #aEKrZ%R`8[&$mu7Ęz'oxڜ ܼE#xiw蠰yֈr՚ЫK 4H_gӲ{i8VKev7)|ewf1+mi@ƂDXK;v v+ſK6^b{fË %@jH"uA&w?¼.k]+B՛iq]DQ NOGu%2;)B,$ToP tFwBXy8l%it)mZ7A:1£F m  2<_$JW8h3|2su]JնQϱj3 -#+76"+vňaEN9Aχ@YGTI$1-#:"xS; ==9+@W<{ռLqpXn4o2Rrv ^J|S#G c|BBsk-һ"TyDevWWpX8.a)\Rsp] *}jfOq?IT×؈*|%ts\/sW,,5K^A *E[ۊ4B* mC`RqUzժV3U։QB(RB1s^vd1FdzmF;oXS3F3mY#;}*99UvGAjz  Uĩ %Xcɱ'\ N>鞀f|wwkgIkY*B NO9,68="?bH:|1^[Dx>wwgL<Ӹ$vXьG_7. 24? zAkDrN`gN6Ot9~1;>LcO@iUpjr:<3v|I_=Y71:c>i?`||<1s ;f499%tϙ t}w8 RF4tZ Fp)#F#BFmt bWuP7edd1 N1:i"̇* H;_]ݕEUI$dt: z6q᧨OOFu?Ϡ8x`ƀ~Nzv '#@pG- x#8q[Nj~X9 Rݓp#:z#Qψ+}NrĐGLjVNB:#H# <(,v ?V @-rH3!"0" I)Ʌ*'*sX)H/pI,LQ;7FW* נeYHp lrA[9N2 HNgcPڐq?Ϡ'/}ӖZA!vJ:HY8ϵV"6@4?8N  ,|d42фh:[JJ* PLjT 6NANFfԫb}<|D0G@Y3,MCKhђ=I 84%h]c2{hȸ]I}GbnZ^wb'3ANI4dBHSY{o$}: Feg-"ݯ\pО tv~ɂ1W‚H af{O㦜OC c \3: !YA:)&؁% ~+9o(TAj]8ʘn _܆ ]P&r?7]mZo~Vnn^0UOn49߳bP#z"~#{݇9Sܕ8w\hG4ҥjQ[0%mubaa^ #\eN_Lf+w{;KwN>J±qkҫ$ϧo=|wg˅쯒չk%__n|hvuн'1};cA.9+4+N"n?XRҪQχ>5o忔x{v7w9_\۝޷|hQ٭ŷk9> 7gzNW#3*#s!ퟍ˶?%J贾`ma/hw-NNVIdCu(JfݟOn ;+/fwp{ o.8ߓ\ ^iͩyHEr߶;ȓx٠'\>;NfKG4%z [ls^yڗj&*BonjD |wv8~H>8y.:!n4U- (Ȫ'|:Js{;XYؔWhvWfXՑk#E/x!Ɲ8azPa~9^׿"[c'vwhu"266:Otg:F>JhsXN䩴p/M) yȐFa=ePcoN=Wn@zg!\"\n=n `Wv}8w%ysC|x/p;eA7\q/dTqX t9xgΟۋws17۽AN#)xBj?^o/xneX:E9N.\evzWiF(~}Ѻ4I IN!5RŵSS7ﴵ[!߬l^`Bmפ)pyWҶU0Ccp Y._`6}`ll@^]>Il 2uӠ9P*Y@)">ck!\gs@|ݻCwk|V ہ Gfc -/2zClL33"` ?GXH@]ՕAƹ=$r|<93"]8F m œ}G@Y~~W>>oer_:FH@?Ae;\n) Nq;ݕ.e x/ 'b8_Q -J$p5l SD ddwC?HM5@/V"1 G 2`=):&3gMwRz[&BJE$mҒFINjR)V(Mk{bvT9FN1һ;9P$cSӠy;RqW=]{;p@bN > t#,1p<:B8#stς6ԫu:Wdvᎀ_Β3w: 벃hI2@ c|bh1t@<4V,>%krLzٷ2铨S:F:k>Ed:p|Ny?@ oT}EH: To9$}G@4q2me cob0߇@1aBN!?=:q3v^CQ2OxU,ʸfMݝ? fD}q/gA_Սs믉>=nc\y`|3:"rٜ*p21t=ӑ@k`p'FHgFLJ=34Ԅmg2<ϏӠ,e6w>L䃹pJĮ<y&=& ?l6*ؚ">co#XaWF#ě5Irvi[+NGze܉2v $5 N70e(e<C4 *8ȶob8YkOɐx&6gPMl/V4Ė1_5_7'nS,v!n.qgXeHZ jqۈ`|UՉf$uflGJֵ݃čux@.H? 3 ~.sM}ov>Պ\1V ȭ p6IX"l7^̒;v?{7Dcϒ8xOtC6ペ~SPM䢍9whԘhIū[p3|S./x,|+J:s乮K+5- \'lq^j\XyLI޽O۽gsw=u_-_%]=q|MhwegG3krQ Ɯ+pZ*j||=mk]Xs o .v%#r/Ը6' ZtRI5Q.&fpN={ӿ'.{kvk׸/~scR!o<5XLu]`gu7Vq?[]])^_*e,{Jrhr2Wl-Z8%ZR⸸޿ TC6-J+8u8 C}ڀ_N6-qu8* ~)kT>z.;١ٜw;4JA|I\=sw' 9'{{c~8Yw/ݝT9 <፫ H,.!c;u$|-f~ hPǷ+ٕc+?̾V!<8OzCR?f ,a-5&y+@.G$0LO"*%M2:.[UQѲ8;@ 6tW@zVdeu8d`t8`rFtۜ'=N6w 9帾MpmTNjqnz杈Th-Dfn.#Ix>nBj)/&(N;4g,V, \X\WS8qOxՕiK1(m()/y!}b# 1ނh6YW1n3>¨8>gt-z-iIљ*wF\8V>!ނ ߶"6B׶f2Homd#s g@?*|=gYq|ħ|?pij$,5rPTu]sv]Fef %y_eCo  qhqdw`օ %kl*ZNP/;&)q:DTK],F0sp<P9???#v[;ܼTQhooӟO#ww@HZ@KhϟHq1bghO=9|!q 7ԼoTi,[(Ț5Ģ)sS%'1֛o /c2{Y$-\r9dq7U!`f`f`>di8y_ͨd?FB6~2vBBۈL`fF<:hsz0>OҊUT0GB)ԅ>NVJ5ǶvfaF04N\Wj=w%NgǗ―gs^~P+zCy_~=g)JgfB˼&#oqA,ʨ0S@ =2vYct #+7?xg]d"+{ʦU muzjD+XyLqXa[AʁC:9 OPKmPa*F';Sp1>E( +GRKBHU6%r~AIh5G mgtAVT0^ xG#?@5՟j Kd+.}L@im޹$4A0z c88d@FT09 |'N x 5<@CԄFiϠC:x8>3 dn:`΃@o+ I'8Rx}O2?N;HzqF fZc"FզBX́lī6pˏ 'X-D/IH" %hq 5H#A`bcj9$IԌ3@U^~52WvHÏIRь:<=A_&OT@ɏKStOs=*<Qa$UYY[R`Ÿ q=<͚?2B޲<)DbqF:q!"@vh oQ=f=JYخVmnd.K~`ʆ{R+a21z +$u"%j^B0fHy Cq睇OK 2ҳ(1v΀}<~6\GY%T$ch `ǠT&.qlsyܣѤ,[J4mJ܆RW_ .%= })sg,Q#oѯq,c5ohա⹃ܗ-s?4v3_lO˝ԯVQikR :IpT(9m\})W˿wvQq-?uWp\Cԏ.ro9iq] g`IcDnU._$Z}C{zmEOpyc!xt(ݿ?29^js=޶#IjЂ}qz/ϙ|3\?);oޡ3GjpU#=pkycUvԒHmUӥ-kHv)c~J.S:Sy#vOߗ{v{{[\'^wqi+JrM|ԗll]/+@;J.< |=y!ZrU?k?ɜ"h쳥8ar 9M'5EӉuOZxK {;ֻ?'n&yWx2{M%'ɉB wHweRyvpmѿͽ3}gN2ݨ–a~W+0Qoe@GS@.Z`', #2ruuKv 64gIT%D&t[$J,U4p 2 V=tϐ)q:vVxz~Jsv&cuGgt8|<:(xdO\&I]u^|;cA>&ڎ9W[vԫ7$PW(+ ۞RQ#)Eo)^/qz J\{&HQx 9ڜd+ȺUw<)ōVe2vpűz9#M\ž=vxv?>oW#8.J#*\7X~PfZxq[v\հoa_̯xo_"ݡ;x<>l|1ܛ; ߚj[#L^wF*͸*ZJU(D$σy:;4^Bg L:`bO@,CAKvT#S+*@ @WVN5%/x8cia1 78O> 5ZZ(eoO u۳,hI?C!lq[2vԚч#1$&$.w\6@M3[j,I^pM[r>AS7(L)r Em`IPOih׭mum 0I7k*!h@ >D8"|qril2L$ Σڕ>C[bxm:C D:*`#Q'rۙ!d'8HmF05A7`f֙TQn{fB ,6)MH +1)_ZshtX@Ag_I'Kb- YCxNH `:BI'H\@hK0 qXHॡ2 I5HN׋ݷóC]$1X;˦6+~<1؂9b|v1p4 ,%m\ъlA@B4~ᑎ [*ۑ>Ugb~=V߹]pQݩ à5Xiݛ`6@j k`I ?נ(!G+kGLH+DӼ2Űꑂp4, s\Bɐ,O o?sRq@U_pF%0p 2u?{pv/˽^hvݾf M3 .:))ahhO~'ms(N,'NV4$,cm7$̫+|2x  llc sxʣr@ zsݗt\w@WGpܟHr㑧@Ej$~;FRzV)L5>@.Yܖ ';K``.PhD6`のI W!S>"싻J?+mՙ1 d.\NARTd6 }' u,5pN3僝F:IjA'O3F 'PCi<5>f?63.>sƿӠ3er}9ct,8H^ 1ʌH?OϠ5NteYK(@A]W"49#cW@<'\ |?&:_ ׏Bq>}^:pdgbv.ܭ =c$XYRȊ=8|O@Neb #;rg^uN[bRWe]tqz6绂NNqKI96dmPh/~t }; !(Q* nλ@H{*#V2ڡ玀`K 5REYvܤ$((^':&^O|7k\]NLfrZ#Ec58ɖوd(M`iD淒)']fQ 1 {%z*[%Kv<>ji҇?gsj9V g!&Y?8{͟lsݽ|?dw.^s|;&y.C%Sb*% /;ܷ˸8 R?㒟52v)dD_,^ӧle%n}#vq^;3Tݽ' O}; Uvoqt2s"?=Ztp;E tԳzgȽ%xx^4,coՋ:s/vwqve?Wӹȵ~~/ s ۶VϹi@q=ٽiЯ|>?/a;ە8G)vyM}+H2 Z1g;`K V!nnk{ۖ_{=["`iTDEysA>rJ{#o-LjrjAwqb _0Y[>Z >Ϻ⣚YcfJIY$^J9Ea?adN!y(VeruixA0RDOqEXvO;{S9ûn_b#ZHZ)83İ= m䤑\HرݕVy~;*ۗ-qZ5{Z *FEkCN~ןPNNO_曎tx\11^}!ܗi]$GDA{ﰹj<_~zv/%ӧ{qU%kѽ.n܊Y`7']u%5'x_5O͝J o!hۈp)=ڶnsIN]W0ߏ9~Ӗo۝–~=ݱRw/^"^VܜZΟ}B=3eD|ivKrJD` :'^& gX3,I T A G Aɑ&Fq!M|n:>A"8)Ih$ >0/Vt<7'[e^Ri@~N8$TԻ,f0=0@2CO{t9|7ڼ--j|T3ӱgV|}x3d`3DA֜*5*z N3չF">Jҷ^A$R#6;Nᷡh-Y%2-+X@bwmYQש[ DݩNĬ;ecJI y*qSN{-Ֆ8bڭ:!UL诜=zUɿc>VmƷYE! !,T N=Ko kuhYr`soimH:z*O<9MCf5ye@A(FGE=}wmDHVs˘!# S&#Ay*A)KRspi,f"mVH%2[YQO#ux3wֱr1By:n} ` 1 ̙*'iSՌ{oiiAH;QJw3dgOq X{Y*a`T_KFPsO >É1$jeWV]ɩ 7bZmfP6I HF3Er]PSᯆz{:ԧ%r~р}Dt[ϼPH.31 FT <@Yfuª&B@b9ݻ=5K.gR N'Ⱦ$g!:c%x /- |3ZeGP #Y[ F:>d4gYZS˦ǖH#g@YXURd˂`g:eϠf'1+HAf ̱H8x臸y ׎7_<ɕ&sَ: "QS,%qt$ AH#]W!Fp?Vld5u=zuyel$'O@R_{AZUra >( ס:i;Kj܅dJ#ef ʄC|\OW`=مkHQp`xGt Mo9qkA+TWCd7=IRw+EʚĨ#"D*rXXБ)#@Tmt$Ai6k>B"nfKc Ӡ9 ,ʣM@1|7Г+׵ԙ\Ơ>$3`QNQT? *ųᮽ}~6Si+P> %qǠ&Aom V'(:e@g@,\ػb틩;.>#J8cUP:@#XGӷSιxt7 bUhp|wMHpH8S}oj9JХ|Xk@ioP>ɝ䬊 =sq$]JUH@ l@'ՁYQs@~CG <5hISX0W#*k4@~cR9}\gϠĸsyk'Ϡ |<uvcă# N8Н |tUA!AvdMQ@;o1u` #πjt|G@M|_nrsnN 8%d6% [}aG65ΙvjT[Dץ#P !Yy O;b X0ROt8pe%TA܈1>ylaVBƳ9*~X)`fyF%#tVčgVks [^Njh\avm::kgDXZj)gdhΌ7@v#à;vn zƥ?{w+!GVR ϶ê92HdB]in gVlʴ/v=@C >V=_;C&=K]kֻ*,$FQ0ݱOJ5>+ڝG6.\w?Cvnp WN;8]PRv,;Z(ҥrr qpSS~'ٝ]emS8;Q[ufy+{;F=(τgg;y:6Sf-\8my{=G{~9yn_8zGԡGCڴنx~6b̞6ոfqGx|uV{揝(G5zN({ _v{t^v{@̐~w k{ϸSq#}vӎK/=f i^:R1U54{#{W}BwwRNN+f ^o 7NJFIJHI9Tv1c/p|_ɸpe$d/r:H nIRl0ٗNr]uU7p|vn6k~/۴Gq-|=.^3r5h9M1JZX bɳ/w_8|AD/' ]c?&'f)&n0׿pN+Cx2Z^\Uz?4pxCbno@k8=ا{pv6$R&/nCa}T݇ ^hmAek̩<\rQKYb@bhL7 8z&OJ0m*$s# D6 DX^g֣f~C%B#нc|M.,q2j$W1]>>:ܽ4mA,9RbX[>B C*~L~Oğ.6;⿗͛݁ne5jRxrplv_ͫi}T9nDx.pZlKyH*=$'c0<*m9u(Uy^j<ܰѷ_7'_stow(n6k^/4$l1s'p|w=s/#/q_7cG<9k|,jb~.(nۭkh$lI@hw#KhIR``d;@P S0ovt ר ]6,QKVM0-9 D GVH#j"IRfpvt}ۗw[tl3{/^x.+*dI=}]?6vwjPKv|ӎ{Ku9.K >Jj\=<}dC{3)j\O7r+e|{^z9]ҷr/hҿ'ڽJ/]̉*]V; 3bxQ`KLdT0-} JҖ@ۀ`mWn"R@ǫ>@0w}OV2f$ދeDy:h͐*'|W-f`ԋ$@Y%LaAj~5[X4!! rZ,P0& X 6=LlKkÁE#k`c'C;ǵ EӹBI]ۆv E;+2j#6 %,[kJ̥K# qtVfa^嘕V  ei?o,H!!s`EW\v!Ǟ ##C@ `2Y$ 1ɧ,:5;qĬ3cTQَUNtwܝWZS5.RrA2CHX?s}djؾ;nBpb~^AC!5dIFRrJ`V+NS)ŖǫU%dNRT- vܤ *NB#vsnȉZGl3F][fDS'^zTrX$E8QYuEyURop3?mK:N83p/ph"z n!I'b`9 G]cŒ@zM^˕Rv_p'*Ӡ8F԰\0Z,"Nqi3ň卋:{EP6~\Ўb-B!(&pe~ KЧP~)!$%\no"PK&2qJ``SӠ]e 6rG@-Y\*=C={, g at+tz4#@ljΞ dQH3%`= Q0AHv w3Vwt)(n[tUQa!PCg@xtq8DC]iw ׉H !'#Ǡ砜rfXga1Fjkq<@i}6 G#O`Js$rȧ 8t0TP@RK$'S&28В3rz%3}/0 :TsB=9Ќg0?N]Ǐ Aqx#qH8Ơx Of-O=2T~^@lQ2<3e3r@O:UL'@5${ԍ:cXOneg$G@pi|R6tu|0g'Lk(C'9|?@ no|<+x': H}c>G?>D çAz /5\i@3ӈ?u'~ Ǡ*V1|qΘ !A9#S=) pʤc#%@e נ,kv>f8]J̻ћ\@5=蝬Tr'8YnzQ73u@9pUZT"ưꑟ"VI ^X͆={ݑj!Tjv3)fNxJ?\Vn1^+H>遑鎀x{ؐu~BUe0ԌOr%|t[f-]{.ۻs I{֯QHUV8%p Gw}r$Ɩ'RExVITov:@ZHōvXcG='3)b\*D-.tBʪK|:j(x-1K q2T.y@Em >pVdLAgb]-[p 书R TxF((V |;>~IH9>#n\?kd6Z/idZ rϳR|.ѷ swZ'rϏ][+GOzY$Ss\G8jzK%mG0s 2R;Ǵ~3㻊o$q||n3^ܝ9k.n!a8:vSz}r3vnq+%/yԢ;zǘ>DQ7lo-']zW0)%Mby*pU^~|W||~ĽrG7 ?OrҖd/ +5f)*^">fNvvw VlDxӨK]R*'eUObI "4zl{{9ng;ǟ_yG GSbev[NӓlPpD"gZ5R(O3v|7D;*￐$v_a.N㍓4K^վF"',UX//.H'>)_|}|х-Oahs<ut, 5>R,LKmmJk$~ڭ-?IMNBdB#]rD{zhJCܔ_'BvF6E'g_^E^wq]9n:aaA9dM Nmѽpu ־F8xsiJ>'kl91Z|txrJڵnxv{_~ݝqk F(-쭈l\/)J]4rrBʞ縕UhW8w'bpghAsRO7wuf7eԦo0[3v Xi5x/PWpIH'E 6+ZXoY7`VߖmVwfsE0`P١`,h)+v:1:W| 9F՞8rx;kf 8zw'"4o;>V8 o#U"ѳd EN F2n[vzjj.fVFx&g'%u&C 4U@~QKtѯK,6*kqm:vf1pen=k5[$qџ,8\;Q4JyR A3$I =3Gtċ8ma$N! =M2t@w0nOj \՟z#'#6r@滆Jm,%$c*g$>R&4;AbYyx={`Sژdc_@tk6V$RV8؏,qd.5.Z9JLprOp{m4gېl\6yVU$ډ17~X=-S?@ :ձwձ$0K=zV->"b4x)) h,@PO@G\!ޜ~>$)aJkpOgF*A#i ?'-87r5K3K$r^!f&E 6xn$Pdٷb"l=ae (&P$xsFr gs '~`tgߝRy,a˪{@KWxg8[R~{M+W"hsLEw189@SB/Fr,-w[iFBPLj[ 6< 87B&Sr2Ip*Uq1 <t]9i(/I 1,1@t׵V*Aݴ} p U;IӠ+s &EToAe CHoZ^bCYNG0_N3y@!2F@tg,?q`!Vl yaCaQ4Sms@&ܪ΍\q?taT\aO%c#Վ]Ug(|x+'RH]O@-ZPې W$Nq>jZMd{D]Sf*0#uο4-ؐX왡) ea 7]1RvHNNnӖٚoUk0#uWvn:aU2wU2 n/"AàT38 ` \|-1:5kNj*Pq"rFpuR,@QlŗN jڮFྜྷ` a}=u;ǧ$($ c Ft~]dƇ$ߑϗ@9,6PQթ9o@/XgXF lA''V,{Iu!eJ@g;K'>C=gFBNcM={2Z~ڡ.H à6GȈJ{̱$=Duo -AZK5WYiZxU,;mدd(+=@o9IPpf{aQT^= [{"J]!i3rFpRq[B fp&8L( FGq.IP0FL<rsf`}UZ!*S[#lEar\(^T5S, +C-(EIHFVZ0Ƹ' r9~-z>%8kK~ZS$K_1U!Z N}mvBi^%{{c5-+fs8IvĒ{{8ZOfqrC>;)Xp܊߹ĜGR<'4R,P~YAtv/i/{8˦J~yX㢇㟁pp/p'ݧ=xH׻{sw'+ʸ>>Rss.NWj1r;<{BF吀zLr3)b|aqZ߽T9N[/pY+C/*l l+ѿqZ V1P"g~w+q~Q޶swr|}vpֳ+Β"uU -Q^`Y~a<kdʽ-Gf;'HwϷdFKy"_:x1C^GO|tں[_8rYE-ID#DpW5쏇/>E/0Tւ胏 .V~e^{dee_j_y|uww];l x7jc(_.>7#>={a W@HhA[\vW贵+ܟeYđ[{>V N:oЦI$4oILx-FC'ְƴhtƽOF2&RO(;;NIcC9堭#{8IoRTDcrݹ^@Vѽ.06폄~\ޗn\__;.O#|7EK_idreb7ȴkq co`wEI+C*o[v9d!s +wN!)fUvKA+bk83 rIS%QI?$rC$K,NGDb#$/Uᅣ~C폔5Ey>/I q%I^ʖ#Ҽr## }e5{vvO)wrr}/vn}|[ 3q\TI Ǣ#>}GhwcCrkE[Wi,;{;{3"S4MwWȕ=N? |X7nZ? ܂ 5ykrܕ\W+դAu,qK>?9t(*XG*V,f<H{* :Z@qH ?C #@2h%ڄdX듂:':I5 Vvv%KΖh$udhyc2F#vDL~&(vcg1-Oഹf6 ,'}o!rZ9圷'P$&B.#ۖ\k8%LԿKӇIw1## .c$N>An5^.K2):d6T9r22}wvWYANк`}.\o ȏqlcb:8g>:%v%r _u#Uۑ_>bۙԎv'ƈ9zBuAu9^I)[gpI>צ 9Kg.H=rۏ#: u)Iܴ-kadVrF(:;I.($sr\sբx|Ś| jmE p*]~ # ʐe\nqsrEG5q+I=:2:^YE4*%uA9+J܂ԭ{)h GY=Ulc=ضF:At9I8'cٙq<1@ /ZWfĈBJ8unڧďà9> wq-ǂc<"?OeObN2+13llc_rUXX[O8gD*u!U ̈ʥ}8=?q#ܜ,*K:0q#3YUĄ803v?:tW>ʝQD``YdRA|Ib<<@8|~ӯ,f<++3_f$Fr=YOTp/mwQĜG#b{)fI YN"Z3)c${H_목>)X]C|jۤ*?,i1+ b|mWSL:3J H҇\{Hb\c<_WeW2 Wbw**C 5پͲх q@*A@2ڰ=K 5>nϷP|wgq?W*' A)! Clq :@-ܛ$82z^ÈLHcfyU2(vp @F97 xxYYصng(vd~:3m}-X82$ULx)Bk |uЭ 3ù$Hā `0@d]᧫8LJ,.|N@;A`Fs?xIզG=in#<atPx"sz~3cρ#ϠX|0wgʺ qFHx@X*6KO3 idG> [RLgޥ$ 18pg#>@l*Y?#&% <=Ym"2zJ[ru1ʯ#!9,?Ssite_pro/images/portfolio-3col+capt.png0000644075506000000310000000026711716543520016412 0ustar namedPNG  IHDRtEXtSoftwareAdobe ImageReadyqe<YIDATxbLKK{ ̀ Μ9S&==ly& Hd31 C;MNmlK]66!<[ST@k֗}yw]}c'5Ćnͮ`qzx;&''sXGg89-?^1tc\G\-g5,6ih֟jWzɖQ+2ObQf >_-s}k`K]>jmoUWSpf7N-a}gYO'pd{1Vr&r (u,$SbGwo!'- ?W]&Y^V?FaI>ZZz7TNW_5V}"F]U ^+vLLyxHqh݇2sSちc-cr#u7LΏ?4k^ʇWu$oB6dU];DTCtG3M :)A?zJ,9$oc>88,wOXcEx䆴F?0O;zjn OkXOmnp3JdVwxj#HL'oQk\aK][C~ߦ^'ANUy83"5ϻrduȩ?HW=[laˠ.{9?#[n\98kQП \\;. V k ^q9s@}^mԥֲ\`r>?8=AZ^ yVm l5_ZB$ěW:^HFB ףzG{cڴsY˧Ye80:ۚwehrk` PQv Q#SmX{~ qKZV@/-VGCS]cmk. 5~[a\m5suzW鱵4.o7sw;']*g,--lmZ2 ȍM# P59eU ;2'k[\T_X1/wr}{\^;kc=euLt/um5[-9j3ml1 ćѳV " ~3ww#;kY>' $F~mAoܝ!+?Όt?`я41x2;45rVf)`զDoau?Y)[sV+,'?*'x#XY11cZYCӳ-fHXU@'m/{Y{*Ȭήs}#;ݹAb3#V&PDyUcYcit;{|{͛}bϢV?x.4M2]Zδ>Y][#{K__oL}斾n0>owӮO+g?^ ů(Dzd1ebېۋYcelh$1G(UX=#/3!n G(/F0Nl-81.ZԿ]nPu.ڞdіέ̬Ӻ;(Ѷ ܚ}Vkm,4aBZBQǦ_/Nf|yG/\OEML̰Ӻ"#MzFfU95z{hױs_w貲fZʪPf~]xʄ sJ/2s$o^잏_ٓ[_PuDisOK",6_K%cUd~kL*q&{(e};dŒRlA*c֗Q0 wR X 5vlWzl )錀*n> 8L) :5)uZ:Yɧ%kX2`n1UCٹ}=_+UO:8X}O̖EF.;pV8hw?sw),v{pk[? `ju;69 "K\~1 b{AW1mcHдWk?U&>Sg's=VNunuN_R饖]?Rג9S{oiʯc"bK+ ?cVp}e-X~{z<}2G0Gkp3+ƶw01֑6g\?^>css:@>/ufG 4@ɐuknoug7 W ^mƀ7cw1~o͊Ѧ13137Yg'ppFYD^(P\aUH蚦 Y ʸѷpCIﭿ2z`7 ntNoOOK7DGw7%iu?^j;`2?x=/|y wl۲̗O-lF}7Qz#XbO-=Ozz~W=\~`7 A{]ʱX%-lt^o5#ۻywޗSx{w Xۓk!O:87_}z1!5WvWi17=̯э WKEtk.4w^bNhK6!CKש}xoz?[O.1^1|"yn|ں} nТ+s썝g}/z7 olSPhotoshop 3.08BIM%8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMI 4page_img1nullboundsObjcRct1Top longLeftlongBtomlongRghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM LrJFIFHH Adobe_CMAdobed            L"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?(%YZ7=q{hls [](V]ōH5>NmlK]66!<[ST@k֗}yw]}c'5Ćnͮ`qzx;&''sXGg89-?^1tc\G\-g5,6ih֟jWzɖQ+2ObQf >_-s}k`K]>jmoUWSpf7N-a}gYO'pd{1Vr&r (u,$SbGwo!'- ?W]&Y^V?FaI>ZZz7TNW_5V}"F]U ^+vLLyxHqh݇2sSちc-cr#u7LΏ?4k^ʇWu$oB6dU];DTCtG3M :)A?zJ,9$oc>88,wOXcEx䆴F?0O;zjn OkXOmnp3JdVwxj#HL'oQk\aK][C~ߦ^'ANUy83"5ϻrduȩ?HW=[laˠ.{9?#[n\98kQП \\;. V k ^q9s@}^mԥֲ\`r>?8=AZ^ yVm l5_ZB$ěW:^HFB ףzG{cڴsY˧Ye80:ۚwehrk` PQv Q#SmX{~ qKZV@/-VGCS]cmk. 5~[a\m5suzW鱵4.o7sw;']*g,--lmZ2 ȍM# P59eU ;2'k[\T_X1/wr}{\^;kc=euLt/um5[-9j3ml1 ćѳV " ~3ww#;kY>' $F~mAoܝ!+?Όt?`я41x2;45rVf)`զDoau?Y)[sV+,'?*'x#XY11cZYCӳ-fHXU@'m/{Y{*Ȭήs}#;ݹAb3#V&PDyUcYcit;{|{͛}bϢV?x.4M2]Zδ>Y][#{K__oL}斾n0>owӮO+g?^ ů(Dzd1ebېۋYcelh$1G(UX=#/3!n G(/F0Nl-81.ZԿ]nPu.ڞdіέ̬Ӻ;(Ѷ ܚ}Vkm,4aBZBQǦ_/Nf|yG/\OEML̰Ӻ"#MzFfU95z{hױs_w貲fZʪPf~]xʄ sJ/2s$o^잏_ٓ[_PuDisOK",6_K%cUd~kL*q&{(e};dŒRlA*c֗Q0 wR X 5vlWzl )錀*n> 8L) :5)uZ:Yɧ%kX2`n1UCٹ}=_+UO:8X}O̖EF.;pV8hw?sw),v{pk[? `ju;69 "K\~1 b{AW1mcHдWk?U&>Sg's=VNunuN_R饖]?Rג9S{oiʯc"bK+ ?cVp}e-X~{z<}2G0Gkp3+ƶw01֑6g\?^>css:@>/ufG 4@ɐuknoug7 W ^mƀ7cw1~o͊Ѧ13137Yg'ppFYD^(P\aUH蚦 Y ʸѷpCIﭿ2z`7 ntNoOOK7DGw7%iu?^j;`2?x=/|y wl۲̗O-lF}7Qz#XbO-=Ozz~W=\~`7 A{]ʱX%-lt^o5#ۻywޗSx{w Xۓk!O:87_}z1!5WvWi17=̯э WKEtk.4w^bNhK6!CKש}xoz?[O.1^1|"yn|ں} nТ+s썝g}/z7 olS8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:235ed8ee-78b6-11e1-9a9d-a708dcdabd1d Adobed@       $ !1AQ"aq2B#3Rb4r$5ᒲt7Ccs%u6!1AQ"aq2BR3r# ?WMfVUA93%T;6֨xBݑWIfl|=ndr {a[!H:A~x䂙#۵I'C4dҕ\#cmKuOt732ԂQC)V5id(D;zܬJױWj´ ߠ+e*|wH5<\NH0=yud[bE43Nk|J2hJ &s4(_a?pPiZ v*٨$u GX7 {H^,v]%/ؠSR0LaaFJ3A5 li.lOdQ^YRϏOxD2\.WR*U)~6ǺE4 c`A^$k>^Xe7{HrvY _`A$$J߁)!/=oVy⼚IDh)H)R6- $6Q$q}HFƷJ9)B"vt9jp ߝZx༃%Uez%CWc)co'K2 Tmsk;p0A1\59 +p"RRqqr !^=TG@}02T j3.utkU MmrʳE"*X!4v@6Aȃ ;c,QʀF9W(yw-B,TN~>Ug-zk\Ng| +9mSvESDKU>y|D_e7ާ|0@1h.X5hfZ^c0Y=rP*Oъ̜p>[ētm8SA@@3CW{L>1%ogvdo2ȯ#-DR*bfدp* u%u:S YR*Lp\Y E >"#g#yu 3i=>5W>?.:Cg1O2Oqv̚8yr{$OI"`TC`6z {^%A(L&T !G$q;k{yB59E4 _[Q,b"L ,tj^'#gok{[r[S$) ֹovuJ[ݠ=h57Wl'M>A[ER[ku)k 3VFJk1EfquTX0)9 -_ދT0qIضjlaɠ2r'x{] TSsxnegۧ\'!,X$DlQiC %uZI4$BDo"q䌰 !} G] -h",*u Z#L2d+K*im{ygR$q&%rq{[+QKz:Inmds¡fy~^a/Ew鷞}KA<0uG$RV_v=(yے\[k=Eu@R/8dcS@~\YI^/\(i;ĭ#`YD:[U3 FqQzՌ=Ӂ= i\+؋=ڻ .2v4텢>>Je/y?po:us7NB*BiSN\RÎ;?喴E^^lu$5RXɐxe=+lͫOhU{@ jX(|p3<}tɅdZjlۼ66VD%28%JM(lʒV42! z{Z:Pc[+80zsWSif `ᗀKemas l/qM7 J,Nd#"'(Zƴ-v/wSN_k1`ҜD|+GnfjE{v1D&f"PQĚpoDZyR-~ZQ`)/7law[8>%"˜ ܃P+JXޣ"i `?ҿ7+y jQӞ"x]E zPCJ'$6I=qyч ?YN{ۅ?]@D4HpX@;3k;XISNC8ualbڑQ́o3h1(簴 ,г)FSAmS#VER*1*LC]WU( fé ށ3N]jZky!EXF?n;C^+ܕhɌ0@۹۷Mp\xōeb,Fh6n;=kFRNLAeϘĞ]}- pSQ޻t0< !H\cVYSKΌ+ApQ=J25ay:6- iqU#y7pڬ F҈2:#1v`n_Z5R4p9ՎG݆y=Iapunk늤dk?idּv#kƭ*scOerq#/;[[ZĀeԸZ _2 c Kݹl;$7Y1])(Ixxs vہ6:24 dI5m^ <6^#"->nk OMTWK96$ltZݹ4K =ٻSsܠk)8^\ Te7̥zhAqv, co$GȞM kM*h̫, +ˏ=~mV@ȦD8w+D^k fKɣEr#mD֥E.V3C(4]\Io9E ʭȧj(?â.Ku ,% \qkTXlȮy,!E51u)| ᷡӾEr^HתYK@xS--YS$Dz 5KnIĢf<a_B}I%mn!Ԥ]G'*g]#]^y#dҀGO8c2>R_AOprzW{=!͎ugFe;^De~u~dVgR#r31uf6ҫ2rFHU'f?63Iwۀ[e<?WPCENlQP F#$DݠR۶rî 5SH8!-kۻi-UMUhX! Q=eGBfNH#"S!,|EQHJ~ $LvpC5FVpj<@*x%v6m9wIw&=t҂ڙeIe xp-džYU' +<*rH -Lk]Py[F7z|Bҫuݳ[\Lc3LٴxofJ>-{G6?#Oԥt˫^F]!G1),6ڄk4hA->/}"ŪC[;,uQC`fyY0xx.OE_rlۅه`;w,-/ϤdUÞ6L]BZ_ݷs5դhfH8ktv ;~Mf%c'Nզc1gS]ܻ=EmPCrX {] FѦ<>qNK~ s_^]ڻ yPXPjaK˙YLg\hӏ/iTum^XKjMe%PVBnvg]n[p6PCxſ:ܮEqdǐh3I)`LNI2^&W؂/Q) UD2+ƣ,J8klgP :Ti\N_TG0^w kh=8q.{IӠEHƼ&ݛyv3&4&<156Փm~ESn$/t^ɶ?ek x{ZL=A1 Y!Ec jch}YQ΋ZfRGݕogAy55S9#UHQdPE4v'H,}&!1N%]/cci镔Eq$ϱmRv0κkPL4W?DCc\+t.uCV;;rm7.+ 9e k01)C> ѰanJTONcn-n6_uEcԠU7*B/M;m,&}JTŏA_&P~7}AUP> dTv#g%껗j,`ukx|Uhno<Dtβ>ъ\ֳnsq"϶VSDNz>8sB܂GDcV5%s>4#]Т{dm&YM;[GZb4<=#ֱ:]--pƾC gBHvf놺YD؝9,ՠc凨F_ T(y-*4H-h_$>G92+#g UIyb[hHil*9 p{ݹf?pdԆ4¶gݺKt3q[зceAk7cJ}ٸ2H&Ulŀ WA79mm6ԖB<'Мj}7[j;ծ8kA(P >lmT;w1mk;~iBbj3QhMe#\\BI%|Lj L@)W:[k̇|Ph%d̃=/{I(.ӔQr .j]E}"qKvm\H"3+hثj)Rh 'Sgq;-ǻJc縍/dSGRr*rl*Fl61mvfd!͵7%(Wۈ'"qOo&[2(Eaڀϰvs,/#Vو2 @ъ^G&b#O%C-\Ȣ@Ԯ]+p8+ޡ>۷ k8!Q$)+WRK{nUeBVapS;myH @N9PbωOQp|Sn!-b2P.NCcD\.^PFNb ڻm_;Y@7 Dn,-rjAj4Ƴ1QRO̓oA/maaT@C[dᚱg'#Z P,"F> "6@<A@jr:s~EӞCuH c`?$4ŦFyL IM3QtrIZ űTI*mm!'" =V#ZaQ BH VSp9'mcIVlk%4\TNݵGSHc9TW96/{-x] bpƸH esaޛwߴGrCC ?|Iñ6i&V+ȑ-4&,luD0Aed5q}XlHy>aP8k5ʿTw%X;'v&M~NS u==[._򇖚 RW*8#XkHw+*6B2I'Eݻ^n-71Tbh:|+cI9rF4nBަg{"qF */B>q8rEkRYJ"4wJ)6eiu UAmi@r< \\E6ݗoM_Djթ=5iU-U'aQ`Ӿv)QL>8%Wq-Rm/L=qo,2q ~4/2_||8g}>64[+$6C-AXE|W3MA̡%UZݷC|dF ѐ{p׫;jYkYm"t?eb*)@>&UՅRt ȚÍ=KN+wX{vJ%ȩk+WHÜK0Q d-^7}t :ۨFy8eRQAe2iwUڎq'ȤqMlS649񋼂Lׅ>vE_SP7Ĉ[HA/ۺQZF@$b=t<Ӌ]Vi:i:$5*ɤUuV4[֩OL| R3P-a#rQSƭay7 lxQA^Y&j֠v̻r$7TR*G!-Fg*[VAy800cm?LѸȂ0#řEk$903a.駺QniZZ'QLݹ<+]ͫg3\'9GRNw;G L1s@BqrxGzݧ?=n!1A|#?QoƀJ2m3Oqi_ ]{ 2Ku@RVÿ#CVp/7dF uRGby Jzֻi+nw- W1ŠhyכZPTV̥/v\wVw+ƷR R|*ıŢDZ*7=VS c2Ecpm@hm{ [07JKjً]ַdfxV=ܽgihTs4cI#] rAScJ1KnQPvzosJ{,WghauGCevg?yY0Ƨ(MեCB$TTc~eZöPĹ}>߸n]{]Q?3Cx7r`_ cK%66sZC=5*fW֬NUzEljIwUvJV )C@nc ^QDYZ#6˛:3\0 >f^`zk<[*EK7kػ+Pn'j.{UEk>׸ʧuF7͝)~O=LͿ޽ġdvn>&x3O,J!1nOy[p`s(ۡ㹾/e*ڐEEyW˻:NϷFDR*)#^¯u~CҞnc% TURX!? ,c#EP@Rk1XbFK 2KӨK8Ep`QǸԽ_ 5f; tXmI5a5vMAo^v@m% ImJE| 06v;i; C{S3ώX*jKth:F 7-AXH民M' 1%Z.ttwg0ܣSe"uZ~zfis1k{88q('#܁I40@Gj1DN'J ni^@qcAR53o +@c0eJ6_Tb^n!CF_Qx`,nA%8ՉqbIܝdPIAkWְgMgNoml`OJ0aLa'o] WIõʼn \L_GI&4#O WȬh>)OVj dyuUrT{T~;+3Gt&+AՕ.wtB׸vRmDPdž/mQSHvy,5䎔:c"4a7,sZ;P@67PEJqa .vƼۣyNu)<^){hɣg$j`)Rr449]ݵ#X¡Fʦ.,^ d szU%i/yм ^v2Y҅b)# JvzeҊIGoܶ8:C.ymWtrc-_iV u]N"%3ֵ9U4u[9Itĕdd[c}} #ۈD}VXyT]Yܞ_nZU,9*ă;JdD<;' h"H8Ffk[dMs,QzTEqnYơ}VݤR~HjMhYyGd ݮ[j;1gчQ2{I eI1{#I&gNeqa&tCzZkgRtiJ#TT[dKY41Z2TJb׺5.fJm$e" EV <`/Bhw-#u*IUi-0*㘽8+?;۴[w]5\Gi2oI6 oܦ@vG!ʔ55[ No~ض1ِ.mcH3+dÙWNt˵QΓo3^hݖ?i}3Im[Hu|#y3ۻe|"?Bpiz 4rBU,^tiΣ+(aM!hkJ1ae pe4m)o6H&h+&3z|+/dՔvڗFM`<iqr閻dacY tjS yoJ#G M] &#FZyxqOvohTI5y,*~' +;wli4^^Ca]I/4%ܻ퍬0ܫrځAUĆP9d}Iđ^EZQǞdc6M#d^rRiLi1]PG|PC嘅2kOsdϒOUW i 'ԾYPJaq-WQYS[M"9J StY+DVҠֲ69[P=^3F_ xa t zb 0P 9ㄑ -G*D?ָlH΁(aWRF'9^4<1 T qs HӁ{`Xk!]ƕLJHM{mݣ[sLd # (A5SSTժԿU~foܛ$& .EK("U<,UM ym;[kXU<'U"#Й4G1kYV#JӉzA[=Z,#-Քd 'ew mP7J.%梔.?x?f#CCEp& Ae=4oǺg_P7o7 *J.-Y)Z9r.Vqoh,ùhG/ qmHЙi;EFF[A<4HK^̞Ŧh&U1pI$mz16o(^'ߣ2IKlޯ FȢEP(1E9s?^wFXЫIjo]OnjF͸YIUƣE0K-C×X7?E7N݊Y;U\/NuT ĪtS[ZiE?76qrG$p9"ssၷ-=m1kԶ^5 PD֦3dF9`"ߺe ҞVV`=>򸍒]YR+DT@Gyticƌ fP}}b7;4i^+ș uzC/gdƮ_g}H.˯MjΘ\aTfJww;7/5rS0;9߼Vy#4W@8L}O.8SH1虺 >p$׶]WW6׷YMi8zm{iwm Ko$q,71d&50ʣժ] *D"!@Iv?I><~+c ܮDHݨH#Iδ b۷o&/ ʣX!1m=FI$mryɥO*!dĐ pϮ?Fq*b B+*ᶂk h\G2xadH]Gyowvx܁8*p+A᩿ᄁdIWk,o-nW2x?t20.=O^1ݾwD;}V$KH.WPև޵\HMaRH38S(1±%Q`orcT'فg4}q=$7SkyHšA = Lr[o=ۖƦn.kAĦ:ӏXvlo+Yh[Ŷ(V^ǖ1hH>>8 E1t6<(N-TO$Z)QRRc Q4GA4@wLswsR-\IǍucW %^9x#G*QhQ@ $X>ᤆ{r"ebsE|+E۠34!(Qe"<(2qtӍkL̟v"Y g԰ȃMg9 s*[??] *#VTeR8!vbV*;Li@Op@ٯm|Gt, e届!QaIQm|1K?EN_l0X~$i3q4Oxow.K{6[֭#e (KgLYx*7>򿟟e!uu;ʶLQ.[qUr8$\iٛ1ٙDKU%?HxX9s[Mn H Pp'p $ټne&HٺȪIɕpwaARFIkI]eMҾ%sgnʹ:N+oT{Kig7NM%Z JV>o_"pεe}OՅōf+IdVXX8|=ƀW (O+~8w'Qs!kqb? ,sI~_M۬^H,$ >VwDLto]fwɮɅ(Q:Ň!dz-^^p qi^;E?^:$nz,pq͜<-<MQ?ٗ-ej5 DYG6-½uPYu10\|w ڇuKo2r7ʼnܭ-[p\pT4 |pg>aכ%\IZigc '\[Y[=XT;qB]}| ᶐt9/ΠqH'1$wR)t%UmA4P}2Oc!w=A4i)4W_<ON$"5&cN~PO&%"{I-m3 ᅪۢ۽wxaۑRHXI8"'U!@8R>sm*U}QPt:xn4L )N*siaBF޻}ܐ7ȧu_1cDv0lh0h'"p,)dHR88 `qo C? lK Re[k4;+q"*yv)6)Z^'3#+rDnfDFtʠh֞f̊mtyI:eLF`*)@E@EV URA%ry4kMkׅG_p޽I{e8=2H-?a&@#} ֎3AP$kBH pC\ʱ:SQ#YnWafAirQLyN p'A%e^ x>NND]mQ*/̃ I-Q"DTК,qY[ZHBbzZ0'!]knkp],$ǀnF-vvxCnf 9[nRmy-n3ցuFvN6%,'ۤ`)]~[Ӡ~#C ܝ*G¾"nNG`LrP3MmsieZ09XNj:!-Kn kr,2$ɽCijXST,ˋ D틝}Z6ö+?j쌲liEVfr( GȤptL#QkaEqDw~ٟsݯ,zwsoij?T_Cหm׊dT,~l٥`\i *Y] փ.QFQN+R<*-dթ ҿ8j@nE )ԧ)>`>>l!ŵ9 6u`1Ǘ qINIj<!B;;DK1D$q&bCy`x t`!'y.Cuc#.J)#:{po~;{VȺ]C6'㎃"e0 ̐+q{isRd-o&qjxQH}lrk$j1G$t [?ˆ4[Xۙ,6-[ğLQ>6WCjÖVSmn4hIhT"pfcN4 y[ +dhNA)_qH-xK63ۓ)Q9_ ~fKccbqqr@=5o9ڵ3 O:BNӆ 㷭kG7*uoXۢ-KY jma"Du9r<;7@O[ߛJbqg 3φDۄ$>z+k=w~ kX0[ԨHqY+wڻqyw>*KK5kQC8Lm?Ð$=K=ȓ>_b6?ԇmѕ_j||_TBa^&'_ߧ _um8~~K>p7BXF8hl?)x8аUշ.LJp|p*n?qe [,>6ď#%0]>oW[[о)qw_ßoWdWdž%!v?,=site_pro/images/portfolio-3col.png0000644075506000000310000000025211716543512015462 0ustar namedPNG  IHDRtEXtSoftwareAdobe ImageReadyqe<LIDATxbLKK{ ̀ Μ9S&==ly& Hd31 C;Mx Y>m?iYON3ş޳@E}o{Q}|[9nY@q(ߡdp2cN`1]lcx}@܀ 7qqKIENDB`site_pro/images/stock_images/0000755075506000000310000000000011734670240014551 5ustar namedsite_pro/images/stock_images/120x120_6.jpg0000644075506000000310000005711511734670204016426 0ustar namedJFIFHHExifMM*bj(1r2iHHAdobe Photoshop 7.02012:03:28 12:11:48xx(&|HHJFIFHH Adobe_CMAdobed            xx"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?ڃ\8HO1-` >XpbWݲ| ťLPw>ƙoEAkx|JAge i9EɩTiiea40 G) IH~ѧs s%@kpf5y3C>~m9_X݅_l} rޞ!;bza;[ˉ,ӨxfU%cI,OOwZ߫86rNkL 8V::Vʃ@ j)g<A. X#ȍvc 붗奮gf˾Rv5m{Ys[moѭx}-凉Vt.A;~)ZbhwSG/=ị+G}i,k\s]3q Q sZͪwV7Me|E\M56OjBqSwoNS``129U~ZF204IXa7ƀkt0CI>ѫ|G$ |ߴ5 : *d!þ% vvC$c=;K#dUEvzN{3w{*3m3V9 ncm7}!mauoZaG]fnbQ< NQ4`ewoݝޯ֫\bCkwjv+Hqv1Hh.,;% nַk[ ٶ")"kfN4 tXS;>0Y6S-vk>ά,}6&o;`mMwJ۷JOE=[0Vr+Wy{jk˷XnFfNm8p,.3WLY;s1-fC6\1ޛO^Q^Oui70logKoQߍͧھԮebNwYWkJ{+f0aZzcrwk1u/8f'󡟣w =U# 919 c_3z1ex[7 eg}[g?T>A~c(gѫX]7t܌F>Wmu}mUUiwL2/}%mc{9s)]Hx]bMXY{Tx#ˡ#ɵ_TU*֑z uwK;r}dOW?^sVhù eIyU`Pv"ml20ѿ's6_CoBzNomWMߞ4wo]3!-&.f}jC;(͔"p=7!&\]'7fd]I?&,dWG7Zۺw{4.}+[uwYr~6 KGg}Xvc]esd5۫ctYo(c890R[CupgOYNC߱5<m>[Xe$D*]Bƒ̧)ӛpXArbXGiWLv]2% GEݏs= ?j xPkKJ Jch)71]_]nh#8wcOCmE^;v=o;sޒ ߣ/Q"7h=aYX)ΧV91 }++aep٫T;G>Z$O-bTtWWXO2?2mb㲪_[[al/y`~kL_?~lAJco >ɒ_QCc S} W6D:xV3qnkh7,#sky?6Yg3h 'sO_k0\K84< \j^2=zs,hc0:#ѹGOzIsr(k.``<߻ucw 1;U// "pp4?D9{VgYc~Q6@B?4MJӻeLCF*tȝ:ɢoi?v90?Zdzcn՝n2jOgr}#GSkήk~rJճ-E@ GTPA]Vzcy%Ӊ>J|7 <>Gs /汼ꎶ4{ 5m_VQ۵Ă 6]8q v|ys"^n΃ Tt6i– {AkJ,vHVK\>\ƱΒ l ز5+0ޡ! +m1?ǿG\}m>e۴U|HqHk%NFq&~sh%O.Zq[$+vjh'lf]-vJp/?srL I;֕H`Z ywx7.i;|88jjKµr W?wRm t =v~Lk=E @ u'k;G݊j<{Z\pi"cnQYV(sf MۖYlA ٸƣQyz}ȩӚji/pms.RCӕm.I%k-;d }uV{p ]ƃl{WΩ'/~`H0Ρ~n}oG v_9$Y.&6smmF~0,>÷޾tI?Cz&{[&?m ^C<ǷWZu)xI);CIms#Ri-fƴدI)[hi>̏bƭ|GI?A 8Qu^@v_?$[KiÂKSDPhotoshop 3.08BIM%8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMGxx 120x120_6xxnullboundsObjcRct1Top longLeftlongBtomlongxRghtlongxslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongxRghtlongxurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM xxh|JFIFHH Adobe_CMAdobed            xx"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?ڃ\8HO1-` >XpbWݲ| ťLPw>ƙoEAkx|JAge i9EɩTiiea40 G) IH~ѧs s%@kpf5y3C>~m9_X݅_l} rޞ!;bza;[ˉ,ӨxfU%cI,OOwZ߫86rNkL 8V::Vʃ@ j)g<A. X#ȍvc 붗奮gf˾Rv5m{Ys[moѭx}-凉Vt.A;~)ZbhwSG/=ị+G}i,k\s]3q Q sZͪwV7Me|E\M56OjBqSwoNS``129U~ZF204IXa7ƀkt0CI>ѫ|G$ |ߴ5 : *d!þ% vvC$c=;K#dUEvzN{3w{*3m3V9 ncm7}!mauoZaG]fnbQ< NQ4`ewoݝޯ֫\bCkwjv+Hqv1Hh.,;% nַk[ ٶ")"kfN4 tXS;>0Y6S-vk>ά,}6&o;`mMwJ۷JOE=[0Vr+Wy{jk˷XnFfNm8p,.3WLY;s1-fC6\1ޛO^Q^Oui70logKoQߍͧھԮebNwYWkJ{+f0aZzcrwk1u/8f'󡟣w =U# 919 c_3z1ex[7 eg}[g?T>A~c(gѫX]7t܌F>Wmu}mUUiwL2/}%mc{9s)]Hx]bMXY{Tx#ˡ#ɵ_TU*֑z uwK;r}dOW?^sVhù eIyU`Pv"ml20ѿ's6_CoBzNomWMߞ4wo]3!-&.f}jC;(͔"p=7!&\]'7fd]I?&,dWG7Zۺw{4.}+[uwYr~6 KGg}Xvc]esd5۫ctYo(c890R[CupgOYNC߱5<m>[Xe$D*]Bƒ̧)ӛpXArbXGiWLv]2% GEݏs= ?j xPkKJ Jch)71]_]nh#8wcOCmE^;v=o;sޒ ߣ/Q"7h=aYX)ΧV91 }++aep٫T;G>Z$O-bTtWWXO2?2mb㲪_[[al/y`~kL_?~lAJco >ɒ_QCc S} W6D:xV3qnkh7,#sky?6Yg3h 'sO_k0\K84< \j^2=zs,hc0:#ѹGOzIsr(k.``<߻ucw 1;U// "pp4?D9{VgYc~Q6@B?4MJӻeLCF*tȝ:ɢoi?v90?Zdzcn՝n2jOgr}#GSkήk~rJճ-E@ GTPA]Vzcy%Ӊ>J|7 <>Gs /汼ꎶ4{ 5m_VQ۵Ă 6]8q v|ys"^n΃ Tt6i– {AkJ,vHVK\>\ƱΒ l ز5+0ޡ! +m1?ǿG\}m>e۴U|HqHk%NFq&~sh%O.Zq[$+vjh'lf]-vJp/?srL I;֕H`Z ywx7.i;|88jjKµr W?wRm t =v~Lk=E @ u'k;G݊j<{Z\pi"cnQYV(sf MۖYlA ٸƣQyz}ȩӚji/pms.RCӕm.I%k-;d }uV{p ]ƃl{WΩ'/~`H0Ρ~n}oG v_9$Y.&6smmF~0,>÷޾tI?Cz&{[&?m ^C<ǷWZu)xI);CIms#Ri-fƴدI)[hi>̏bƭ|GI?A 8Qu^@v_?$[KiÂKS8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:c141733c-78b5-11e1-9a9d-a708dcdabd1d Adobed@       xx!1A"Qa2qB#Rb$r3ᢲ !1AQq"2BaR#rSb3Cs ?qVԤc:ZN>Z©f4P*Ihu&Eа&: Jwv$ ^+ ;~#R&x4hwUmè;sH*ڬD{.{6ƗXҤ  Q-FE9O@TG@moki޻pr,kO@?="mq7 c^tA y [#(Tnh(G^~qMi޲I #QV5E&2[BʿJ0&5ʅm `'=RPMIty{4rQ `LJxS@w֤~_Cx.BI>'@.#yaxs@Mpw9]+iɖVŊ4 ;DR |tKpI f^θ|j$7Jl[o=XhPIR#&|^sM[Ww&QSԄr-c41[K ĪߏYGlMFgCh thTmZE<68"%BFF +J>zM.*@L qa2 I.c&[0Sjo8x9`G%M<_ )Ed76@?XO-:Z믟L\/a5!C@´:(nbbA$+ԞHht@t wrnVX(dH#%HG@ I"$Hh}iS]w;Aҧ0t0-كRv#@ /,qN7YybqgdRơR8s2-}NԷE$ۡ[qy=69y3γmv A=Or˱6"Sn܋[/`d"EydR+г</[B+@^IFbhfX(jG!'*J*ḷ R쁑#2rJ&)h WF(}`^:IǨ9aurʳOX6g)eܕF1֪y mr|*tW-湬&\GR\ϔ[Q9(>&_rF[p۹FG,DcOpqYsޔqKҧzt)J3,o%0r,[xy 햑#Kb[$Cr#IueEW]s✜N]+'oVQXhi90BR{wn7Ex{f3[_om*T*ޅWG^4-ՄVݡSOZBcx4B}cBm Nn0uQ^DV%zjz.Y#]ɿs8Y^$|J8e-'!O'DglhZ5ژ)G]mSi4Mp@BOm&LOF|5`c/MD%Į=FSuGO+X*J.URQn$s-ȸIl.x#{ ; QiB1ԞSYe:i'oyXs4ߩ>aw{pVxYjhX i#!F\Y%(ޚi5VB2|6|o*qkIG.7| ̜5{v dA(dDw*$ &&L9vU}}fe~sFK&-]E ]Zsn_bK<Ԫj?š8|qG\o'sq$!b)&wp7O+.c'Ծ~/`N7 6p ~MQ2ɉ~ᮨͭ%KX>љ<<[q1ub+'hFO02E(R궼2_|Fڨi*UfRc]S?9b8U؍ H]\I$fffoSYNRg1InuH]_ WSZ* es&>KPd#>2h=!c 95 PXj'ksLHՈ'u@6(Y-zK%\ HzhMc",MCܧQZ//\|@ 33-(zsεWTk7 yh`?*:VF^+ёVc$fK];Sz36| $CWri f͒x;d8P JSPd#xIocu}lTG!P+S鮇Ei?g( +RSg7H,<,W ?` %{!qC6 uHzV>{I^eb[l(yQپKqlX0L;oRnӄJu=jkIcm6YUI,O5wHש7^]A kIS|'Vd5G4k]MXZ\OGd7YEi1wnX7e!^(P}8I\qhjt WqhU.'ݗp:\NH[UUkT eWb'4Z 3o@53G?SIN`8RxŔ ;jdr*uivЅ}f? |#o B 3bv:~I*=ƐI?Z؏{};r:i#(2A-! BQQnj%_Gumlբ9vÏuٷi{xn]_qO{ȹ4g/m $ݦbo-]; MX-;UDe}rRR:a*{w&{uHyJ!WGrRzR պUvkdNrno9βMj'Q^2SmOP<:XC-""Ew*@UM5tBw^Dws>#碕[}΂nE[cyEKi-H5P,vf ,%*-nIƝ=f>ZoA-JՌwҍ_&jM4oOaC)_h|(7)^05B:[XZu`(2$E>᢬ 6247 ?Oh;qMif3TK:*Zn#ѷqyo8isݙXȞJRVZ^\lqzQ2,yym-ݭjw&IA]$=Q Y "~th[E4buiA;"4]7҉s{ Q,*7YQ]bWj IS4|UGI.Ko_?=P-&XWH8ķɝc/ue/h˽auSOuJU4xzt}t"o+K![Y,ݰ,sC_)7 0]{\c+(v)n XRwӤiuޞK6G[YUHiK n$i=5ڣwky9 Rt傴{g6F iwjGԣ#m&#އvxk+'ZG<*47#iwHP->:N]1p{<1A+Pc'ɫֈeklCCLCo\* Xw#R䒫)EDN8yn/f..1cJ[-J[rZ$)!soRXЎE,Ʀ@iI [Xu(?T(Ow={8߿ڍ"KI@mq@j0zSEdzvkάsQBVۈPhT`u_V-3j=N=!\Ulu1_;85WZ;THͬ֎QvaduakccFu5[Um"*rKo6I37f1XbGs"Ԑ@A)bCFru[P] VZ]c{W,w@Jur&QYMggmѤ0FJ֩KHFW#Й\@ӡ-̷ [ѷhs@S @$؆G=+QQwM W4YZur ݔhLAuQģD9oCo4$5-?+GZ>Slvq{tM1 2DI*IjkX-EC7R\sَ%Y%ItRi=䈊1>]ͮ!#qѺ)Rӳ?x1e41T]ދj~ͼB}+hs|tj7SQ#u0, =5È ?%7Ca>#o)ƺ7Yl[V1QUcG ?3p.]!ۼ^N1M.85Uג=c]'RNuNq" c} |Λ-hnד?Lw$ Z$:vvMyGONai[5!dfՋ[.fk9ޝ{[5|lMb,^̒25"+duAc?aeFl/chE[XZ F_OEt+,}CŽխ׷b^R=A?<˺cO<)?'6Qct^ hlA-/4qc?;${5o@x;=pbe`5αOlml-4ANԝ& Iˆ=؁T]s[K;YS3%x?*Rꕁf% @ՙ̗]d]IV<"ޓ4mϥ1ڶ<k?qse^;}m q35sG2۞Z\ ?b^ǥCk.hu,GjO-/D L.}{ =K-rLmJTYm]X~Y1.}Gm+7W461q0pݻ jN$J5=~ƐT;xܱ~uN `@69]Y]O| $l-k'[Ws}0c{}F*٤8nrFDidPjQݒNӵ oX}_фw\OOV޴U$Sjkk7R3E4$NIK1l+,`3)U]qkʝ_K}j],FG-ԷXMNJY2%M~L(3V+N=A!U^Q~y" ݾU+] [z߮Z_e^ `ͩnc*r,5sWii!w]K[=O ys^AyϦ/\.饎8̭d;m=OW6]~gߡY}f1:k 5;YF~k\eɣv]KKKInn=/-}uc?ys:dA2$}/ˢ^.'ful2K+"5k?>QĻ$Įv `m;g{??3o6];\@g-Nnc^۩$Wߥ7(cŐKjk/|(Џ_IÖVMt:{VsDwRl s\;MxYŹ*ZC+qYn,e~c4Cm?D)z-%GԳ5}cܬR쩗p1au|ٍcqP>VejIճo%$XZGFN3Gc' ^_d>nMd6H^[JLfW7{{\?Xuc6양[V5g{+ el3!ޛ;gM4e%٢8k2a1n~z@Qل 2:V&)AqlV~v^.Nx|4 iڝ{Ќåla#ڃ&׊vKt=U/gtKG3z]ccUW{lP}K='4/}e Z?|iXOƫS_>C fZ!1$ExÄPʯϥ9 ,>sM[?D2+}kcB7ֿMFw,Z^ܫ/wqx?c:ݟ?s:}UԾVZ(q[^ٿc :Dt|ϛYm5'go@g-o"p:Cem`k-kYSߧu~Y]ٲ\YYprwvub͟.(&g,p ycAw7Ly"j5gO</]+m8۫ʧk7TK.F[f??UoSD{,sEOK{}~Y]D"ZM/ue+ lޑNMd<2ƹv8{Yb -3\ecg]c+7zYN3] 粿}?}u=NKm68_mkA>ٳb`U.vs\Jk]N.3^Mۀj{lz溡mXݎM4s*hqwhooOU]/ »]}EKk]b@O`/[G"Q~F($Ugu;CF6;qXV]gKfƸO6OY6d tnKͯo~ejNR@%{--Yk!rْ|1g@R~Qdu2ګ-23~VsdIe#tC:&EղϷvlXw3:IkdKp`O#7n`$ ޔSF7|iUI nO*?G<#K-$O7Cnj7sh tl閸;Photoshop 3.08BIM%8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMG, 300x200_8,nullboundsObjcRct1Top longLeftlongBtomlongRghtlong,slicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlong,urlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM UJFIFHH Adobe_CMAdobed            U"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?:>]ދj~ͼB}+hs|tj7SQ#u0, =5È ?%7Ca>#o)ƺ7Yl[V1QUcG ?3p.]!ۼ^N1M.85Uג=c]'RNuNq" c} |Λ-hnד?Lw$ Z$:vvMyGONai[5!dfՋ[.fk9ޝ{[5|lMb,^̒25"+duAc?aeFl/chE[XZ F_OEt+,}CŽխ׷b^R=A?<˺cO<)?'6Qct^ hlA-/4qc?;${5o@x;=pbe`5αOlml-4ANԝ& Iˆ=؁T]s[K;YS3%x?*Rꕁf% @ՙ̗]d]IV<"ޓ4mϥ1ڶ<k?qse^;}m q35sG2۞Z\ ?b^ǥCk.hu,GjO-/D L.}{ =K-rLmJTYm]X~Y1.}Gm+7W461q0pݻ jN$J5=~ƐT;xܱ~uN `@69]Y]O| $l-k'[Ws}0c{}F*٤8nrFDidPjQݒNӵ oX}_фw\OOV޴U$Sjkk7R3E4$NIK1l+,`3)U]qkʝ_K}j],FG-ԷXMNJY2%M~L(3V+N=A!U^Q~y" ݾU+] [z߮Z_e^ `ͩnc*r,5sWii!w]K[=O ys^AyϦ/\.饎8̭d;m=OW6]~gߡY}f1:k 5;YF~k\eɣv]KKKInn=/-}uc?ys:dA2$}/ˢ^.'ful2K+"5k?>QĻ$Įv `m;g{??3o6];\@g-Nnc^۩$Wߥ7(cŐKjk/|(Џ_IÖVMt:{VsDwRl s\;MxYŹ*ZC+qYn,e~c4Cm?D)z-%GԳ5}cܬR쩗p1au|ٍcqP>VejIճo%$XZGFN3Gc' ^_d>nMd6H^[JLfW7{{\?Xuc6양[V5g{+ el3!ޛ;gM4e%٢8k2a1n~z@Qل 2:V&)AqlV~v^.Nx|4 iڝ{Ќåla#ڃ&׊vKt=U/gtKG3z]ccUW{lP}K='4/}e Z?|iXOƫS_>C fZ!1$ExÄPʯϥ9 ,>sM[?D2+}kcB7ֿMFw,Z^ܫ/wqx?c:ݟ?s:}UԾVZ(q[^ٿc :Dt|ϛYm5'go@g-o"p:Cem`k-kYSߧu~Y]ٲ\YYprwvub͟.(&g,p ycAw7Ly"j5gO</]+m8۫ʧk7TK.F[f??UoSD{,sEOK{}~Y]D"ZM/ue+ lޑNMd<2ƹv8{Yb -3\ecg]c+7zYN3] 粿}?}u=NKm68_mkA>ٳb`U.vs\Jk]N.3^Mۀj{lz溡mXݎM4s*hqwhooOU]/ »]}EKk]b@O`/[G"Q~F($Ugu;CF6;qXV]gKfƸO6OY6d tnKͯo~ejNR@%{--Yk!rْ|1g@R~Qdu2ګ-23~VsdIe#tC:&EղϷvlXw3:IkdKp`O#7n`$ ޔSF7|iUI nO*?G<#K-$O7Cnj7sh tl閸;8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:c3e1ca59-78b5-11e1-9a9d-a708dcdabd1d Adobed@       ,& !1AQa"q2B#Rbr3C$񒢲cs4T!1AQa"q2BRbr#ᢲ3 ?.(S@IL:|mբΠhg$U4)Ocx@"T\Nؐ cR,?/ݛ]Rsyc| q ZpIcl Axw7ro2(:ZPێx!F۷r&s5WKSݎoKCc2%N%gCkB@]XO@ ʸ|D ꑗwxZ+ ("mpi_ jɄrx Ux%p-ԯVE\܉N?IdcxRYS+:Qv]'[jFE11-Ƈ$q: (=St?Y+ 4᫘?f,,]Ǹ7(.#:Ԃ #''/5&ޮ% 7?,K2؁ج{Eq \U* vki:eLHDtzM*@ x5GY"90$*ʡD(Q@:HQ"@h=r{r3QlFolDLVV140rG6DH7ApN︑^Sد|UTgJ#l||R ܚ>p9 ٻ9\BwoXÝUj|qJ'JL ֣@<n Im!#9E =y/Kˤ$Қ@BrJDOca_inVFH͑*XOS_/F>jta@?Lt/駲hZ0$(Gd{YzddZӉT +NҎHҍPH!~8,jMID-^6t2CVl9 gȌI WcUA*؀>gq+I*zSr;jGWmv 5J}Y7a+V_ijҴ²kZ]&w5 k8+;jGy HMU2C"uȹ.E8d>G3[N;rE$_LEεIR@d՞3U*TL!vks+9̓Sm!}12%pa9P$aJMPhF I'LmTOlj@MXO$YJi㊮e287@:J̜W|.Č[bQ(Zń HUIc@uc\JRQ_$(i:$ܯgPpIQH<k)S,jFp2Z\:)V+ssʞ""YQ2q^5.X}uT@#?{_82劜ϿԥKLLmFU19̊."VYi,20UE$~>k-%āTg;'}MZw0҅ARxT;D2,{ں?QRpVdi7#4gSHПÂ{ۢK[hF !~WmA6 en8C" cNp24W+,ͥ 9˨eG@pm+\i򞮊uj) Lrk֪k112m9]Xq.?SXFLP 3d9?EӡN6EtA-CCB9b$K/+&H*F6MI8LHE-6A5)*9 X ²׎,l~jx, AƄ% (HnCڪX  Ipmt zS|0JΠr!Ց ÉYq@`aiof$iCPQ$ҨmSnsc},81(Õ"ȩ,37pJgPyŅxCgDEd,-q y8B}It`k<58+":*.@c+:Pb[ZnW {r$QE}\*Ĭ8\j lw߽іTІ^_wLl 5E'IsR40(N9nQdZ}.#Cyc"-\"!SS& kCt-Ͳ[(_&h@Bh+ɗX*ᢗPQ]!Ȯta U~%uژ<D9DYB:qPy]r5O&Iaz<տF9+QY`!5T/RWy3*$! edg`_M઩,A=6=UX`KK$$o%[zkZ_4Y9,w"qR6?NΧEM 5nJ~cȍL@M[AI=G|"SCVؗqWϼxwh#뽽]2@jc1^=؉3eTr4LbB4مU󧏖%(DV4X( +s\D lZ¸DXb3蒙9)UOVFBg+Lr{,d]Tr8ʑ.GFUԯʣ#A_04vA%DÝ 2)D-:kep) `ebքL^#t6VaUQQpPm9(& !%(VE_.zr˶ vLԩU' Id] Q$bT ! fd֊rJ!s0- F:f%FaQ(2 7!ʾx3I9zHjS=@rP-QQc&Umr 5! K:NS>vW-Զ$PNvFH~y$4Q\?L`h D9Jsm/E!S6=2pa2Ю싸HݙCkr-@% A(`Kh-巌3AEH n;` 5bNCJA Ib ?ZT爦 #:%CPF$FXHBR;l/X+rLH*{FL,l"EjUN:REF%us_Q +/oMڻlʌ.POSHUh@*,x08zJUC+  xaG n4:܉2Uh\&P ˁW1xr>W=/D("D3V:. .oEn Rٙ>,$0GZS~8 C)ᴒC*?2B#nэAC牑D2",jٞF.2t2k9$UNĩGH< avR,5@c_C?ll>V$L81fWVo7as1c,%,7Ӷ7`'InAIw,srE+qR(?-"C!lw ⼂ uXcI&fe\e!=46k n^ҀʘW$grr 8uF7X O@icFCdʷqjtJN|8W5-%g`s.r\N9rwvt8fy!\K_uRc͝8P]=44x !RPGPc"UL?QhH)`Jz TØ^j)\R| /gY L$ xܱRTkDO7:UНA <6KQ%–Hy4X@fg|>8?)0*w$&N_ᆰ ~hCv$SI0GD#`t; 1 3Ĉ$͇CFZA2-m"I n4#S%@<ɦ}W#J^*:cm>dXݖȠe_>8PA 8i(djp|rDSwU8]7חԂ'Li2 we4RNu砠JxȀ-HDTyx`["u/i_p̠Wv+j-Qqn@P,MH%e=E0xW1DHX' pF!8BU2bX!6`K( ͫ2HȲInY"1d.$/{v *f#tz)jaJ\Iɺ 2hšU5˜a!{sq\dGZ X.|Wƍ mJ.!CVɎɁWHF!{OW&ZYGu{obۥKQ2hVӏk`A!dH0,-nҼ\[Y%0m+8,2<i,ć_č]׹mw }%ԗ1:jAB!s疙sp_lÒ !Gۨf ~nMzC5$Xx`3hڈ4?,4L 42BM03Q]:nP{ݎ7tzL%VP̓Lqb Ց?mL)7v3DeC$6̜2 %3}u[=ZK&GӭsUF|q' ԄX#!NElϡJ*ͤӘW,sςX@@Pn{ڧ߄qlp1R@éfyf X`xgf7fI>㥝TPA 0 , ޑ3sMRnrAk9)[ e+"$Ҕ0fH tQqrJ[eRFJ*3WQA.TWB*P5VÎT ^{;f]u g?>C:`-dT2tAu$VǶU̞F51χUlJ&pbRF@:PּA:!,(j2sا!P*VI Vx])8'- BH?Q sG4tt3:il50"_a2V޶gI-( $3V_vܳ+FYUշvT#LܫFSVX.p}E(5/0)LzIR*Gzܛetl )e0^zOHU;%,VR1<93*Xei.pl#jˑ# \+O&{x?>ȯw7?J xcHƘ袋 [=)0`BΆ ETR̩F0^$(\=HF^4̰2 :;AuL+# Ѳ$9kWmMSϴOݷ}nnKm)WV-?MJWJfA.ʲٷ8'b[=ͭ{jrЖWX"rx3Tŗ6ߗQ#R@Uݦw"!ER_w$vYZ<2%T  ;?b(ˬjy[X!%vU$҉!\L@EPK(۞i^;q%'!Zp2YEgM+CS>*Ub(Δ._tu>C!_9r_-{4ZATZOFrcHt O+ [-n˜@55iCa,˩5Ɋ(̑NCU_:zsէO._)hCFA7I5Hh4l3$ &kiGJ0paF!#oEHrÈt}:k!=}HZd$j#,+l,ĩRdvUm͒q4ҎA!CQJ\'V+0a{5RCaz*,AV5bL!P[Ýa,wXͥ#XҞQ4wqXh)ͽ6qRAbKܯᴹg^\u%EG<0qlq&" u+z"j~ Lf)t-lvp#@tEZGz19TS+$#l"LɽVw\XKL0gŅIP}U˦~ooh[a\>+gF@ ęiD"bKB \剪~aJx_Fab8yWIh&wO%ң cU  <0ґ.w>[&*4'2F50qn6r#] ʁY$e> ݾ$;?s>Vp SW}؞gHS6yN9rxz gP xr{O)-MTH3H}i{=bQ۹dܮ.tIrRalV)Du@_ܟsDh5<1Y]#~MyprG_9b:R 8<EC0 \MC# L I:&D/ ֐ȴLG\*( (4Nd 3 ph[:n⬋ۨm;HV[ÅR{ѠI^"Z 1$p8 0v. M$2֖7 Dr!$\)NdJbC.$?>rJ1O܊\G+n/r@a_K{͸!Z4EAJfhiYsC4L}R:A*iW!+N:'~/{X$;MOo[1%@ƾeMʨq {{{S-X6$ vT3֊A#q]UHYusϽǼ 3lZWQsnuK2_ݾҬxo`QW'LѲjF G3N Nۣ*tx>络ş"}Cdv=^k}m{^2GR *„fh> \UW;X %^U~6;Vd>_][mlku{ B?{O"/uFpYn^+J?P0j/}#pc@a1"O{ʭ]}V ozP7`B -2JeS˟O tTxak?'NoM1U =PB+VoW[Y/ޔvܛj-s$)mc"0fe\אU8=5APNZF ӈ?,ZG* 3l]D.XJaREy)X2g{؎~7l ;X59^U!Uڅ^;i-`Z#e3A 7\ -o^[Cs-r!I:7s#*ѹEQ|Lv*}N}ﴷ7~[Me~OS#nJP#wH`z`J=ȷVcaۆ":K # Ji$F*)"Q%Щvf`-8W V#F( #64~T ,rloܻ$s46qn*|Z+md1*?ǸL!(vv6lb4W*Yd(1UG2Uc_ "xܷe.v6zun j i'UO iNRg 68r~'h8 e"1$ 7DjBD8s'Z4qN#1V+oLi@a}}{﬩N U\6m}ǏLj${ܝav9[n =RS5XSOU%s!2/nv`o{Z(w$`*Q ȑ Į31+vx=òMV3xE !vqHyD-G) np=F`URd2/"\6ȴC͗O@:_nݻzM$v`5e"t؛mT$cGv呰Y  5ҌG 8Wʌ ԅ(Y(pɶ=j3x/%ښeUB7o^u}{4mzhy8+29%_d" `<[sq5-]"_1:^eǑi#MTCKY$YiƸ0z`B2ghSēJTE]QnHQѺ#d ć :L$$?ln;/tmmߣd6 tOS2iuW4@!u#I] u4LCT"r联8`3GvKwd9I4N'{6Xe.^=bǦCzpo;LɪA!#҇RҿOͫc2$ `cRq0'%^o絠xEhK)S:S6v!60 uC^.7}4kˈ-DaR5N1S89ʳ2$ĶG $fr^X0*}Hfe c$V\NeV["tcix繞B[,^&r?Gy}˝ .ThA._%TREem<`=آ~$`#@d[d\qG,I֊jM i@gbCjSdb 萘 | =Bڨjӫ!2][nڈ:o']?6-e&!jUdM-+D<Dٽݺ^2'NwGfHu`/$ RpsGrkӸ7y79vt+BD CR.TP勺 c21_gc]uAgZޫG4Jr(W6V/J爼 u^ ?ST/۞WgFar"vBuH*h==FS⸑Y0 p@AG`{v#DHd%"]#,H"bA!XbBQ]<;sak|.eT JXPEh1bhYsHe+5DS#Zr ™kpc^I'MwݥAK\WJ\h OcAÞgDowN۳(퀴<[R70LČzcOby_UYmUz70uBO,TNB?Jq.2]vy /K? -R'N?jeܮ.v=oFfn] /X;y  |Ѷ%ֵd iMXiTصϥ kLF_hB`:|0"027(_HU;T@a 54Ntã*Wv`.JN8I@2XgH}NʾyRTuZUѸU7%mE*Q2ja4 6HyAWaD~Tqtnm]oK$Q<8$,m G?"\k" ƥ~SZ ФIh04 Z t9Q4G6Zt110: M, ~dqVm@gB9$84u3x t].ȟf;Wm.W)av93ʫD@xjcho \^16eV1 PiG\-!K[xO°5ϭ*jj׎\<1EZV+װ0۠;z.9\É0K+5}?vw#+,mh}L~• Z\ a.}5Ńmۭ61g$(t e`<qn_tR@hyf4:#*R9FXJ;fG* `;.mnȑ$He#T13pn.&4z(kwY{}ڎ,8?Mgd$ 8jjp,]w/eO4֛D-dRT3eeU܋Txn}-Q2ՂTX'O,Xɇ7+\F>}˵Wcus%n%2ʙ ׎C#*[ =Yyn&ܲKkpФ3*+ jH9⋸J2Â@WƦ,@'eniwoxKܨA CPM3XP.p[A1)ۍ7H0 IM%$ŗynd?zX#[[m%6ц5X<d/z1R8P&%҄s-u1|zr+(')$V^A*|ɴQhZZޢhB/ Y9&mwYtnKUd(%`H5QIDAvr[l$dB@ -%]4)ǝpERӆZs*B0@ e R8a2p&wVɶvuޛ'qj@ѷ+b(›Cz:5Z%$Fޮ̿m1-( Jd\Da'..]b VEy -9H@d*A _Հғ[F0 xiWM@FsDRP\VSUq:('x9\ѼH[^9FDd$Jh5'9mveCcu.v’X]KQ@hܑ*"kGgwѱ ~>8db g#*/vOVŎBO HA? (6xak w vmм6Z'X^-6xuGvP҃"r&6JQu[eۗꋹ_DP0`8$ ya(Jd 'EvهDUI^c@p i%$:$Qyֽʳ^ cV65q-VnG͗mVʁC$颌`Ē5agt/drЬj.,Sgg&RМyȒyZSL^Z ¸qL +q د{*EXV8L.Pb[_mP[Ip, 5r7pmRx7tX-bm#oy^muT/hM]0D 8Rg Q[=Z!d@ ( A413 xp}VU<{MsBג<sr9>#o7<CgmxaPZHjfz{f2aih]Q#[h ,.忞;R^IF&8C0.[]ol(c 0ԐO-|Y8GEFr2=Jx"JfiƘPJFAdSPr_Hdܻ35U=[ Ǻ'jZ#Pv5osmtQ l'hrmnWV$Oӕjc0xƨ"Z_FU d@d;ݕZjVNzMjk,j}CyRYnWylP 2?̳~7NB2R+SƔ_?ÍMG^i} /]2XI]vR!YlfkW$̉:+Q0F=azf6wVRORc7'3̵ۗ=1yf?ȶˎߠ0,wZUvLr Tn1 ǻl2&oui AmkՌ4"㗈)`+1͖oߤgC3_H㬓N#ri'L1ڍ=6 JPDdTz&OewzmL[TːůD@I? p'. slQ)lF%ڬ@^Lmn7SoRAKP9* `Z]ikI3֭*[HANVf\bst±s:Oe#e|܏_rYlY]9iu>1` .˽kk+<^ՖTqd9@꩏_zw~䋸`Uo-W}Eѕ͎IOK,inȌij; )u]C[|RqffxS(.>'ڟ/Av"VY-"= ~?  w]q1XHuZ :P8wy&u 9^?yUhATvng9WЊY>@OUFLS@D9N$Šrҹ(ҨW26H(BmiTʜ$y]Z(&Y~PkDU\D;hjjZ19W) &s\עK<<̲7Hڏ$Y22.J+"N#.ٻD<-G9|G2}yR(Q+Ƹ͕IK>&?KP#"?',;F5CNZ'gn׃y"ć'>X/陀UE[Oհ:@/V,]jg[;n  #UIzqFGf})9=:q{ǨP$@tVP XX\z2$> '`@M\m)Y38S:6Q$Q84!94D+r#j S!ryӏzJEY<ЉonʴD1$yҴc9w"wIt+A=Ln^4(MZ<|DT}9!04" sPsV#KuG>Y:]6ԅӽqլ]XBӼA `V̈^n H-uKhL"IAEfX\ 6"$}7Ӆ" Hdt@ܰ8[,oT"YKMyR0;.6skmCsĊ*5dH8#+v돸l`WxF͇'` -}&tXS4gCJyO>??z3 ,ۮ9Thfko|޽+EFb>!< "&ZOQ w!5*FJs|`Sq$<'I8i}Rmiy[kyBԐs^1lOB@J 0U7ksl,.-Wdj6Z:cỊ# éJWʵqFS?NYL{35dtu\A'WZgi^2^%ᾚ YdaԨcKظ6,z@{%wV`%TP mF-Īȳ.Lx'1rWkpMG0t`wYCEP"0@ͬnV&fk>%!tWu4WH9dx‘k[mv ǫJ>dy>ߙt4$zLbzCz)zb <{Rxų]1G$ 5iQOMLK*[vVy8KHIY`šAJS -CBl@TLTҸ$PH\g=-;,Ж cӐ) ρںW~tM%H.)դuA\C65U"2},cAO1~i`ƕs?Fdy#C!ϚS[4 gZU]ug^ W"\(dkyG(™T d$: H Vxqlw"I7H\$]$+:j4_ e;Ch[{f#y;ֶEw^kh~Qe_b{#+fl# _ش[i0PWC+ں@˻źD`c-xp0(m)-7i dԊMt‡2kD$9H?TFmry\\[Z5Ss:BOݖ'N@Um%h {;?mۮZIa4xM'#264\l{% =xܬw7Fh Ia\ <aZ1;|)6"kYq+J=oǘI:/ 1S,U!f4aVEYG,CIl>4J] W1Ta\qpɷl{~whh.'rd>#/HQcǐ#AT6_HDrD>myh#,=]-+&aӺfR(a/:n>inď7Y%`1?~ou+^80c=;_M=g Bə{KS{HutE+υ1b jnS"Z)i G>U=3u+ιLtWJ* ZD*nVݣ HtVɑ@| T:D#]:r8s.KWHFZAlɯ݆"% ߭[6"4wa2S"Xg6@?I4G6qծd[[ X]xHhCCG3S\ |VE13oʉR=M,@@K(H!FdTO(>.=d,f,qv.p{[{2ɳѪ[[ " E E4vM]M7g\!k+q=?Toݝz{ UTV}}SO2:yݜ1lrgVcUFX>3<&b+&SȲ "r@[oi1o" qpQ1D Go<nܥFEtS!!M8..8tH+=θ&{9~-}USgrf{'S^5 4rؤ[[AIM2_ $(e9U# 0G1r .+۰PC `/iCN8Opr4]c6n6{+8`OE!-8!pyPۿ웽}I,LhЊTfxGEA8no-G$' Zb9 TՎtΰWǷR Itܷit^J@yR^DB4@G¼9ޫt4eJpkeq$sI*J҄rFHdȻyl.)tTkF`}= Ry|@xjYwٍyۃSth9=J ˸LҴzZǎI4IUcTqp毮L4##Jpt BX28i(Py.Q#':⻝4gS"0(%\%B0sPVr r` \>pffxZ='Jq<W5ILO{-;,I`O<9Ҟ8|?CILݓA56R5f{lFR ЏK2V$3V]:nMtE\Gg*Rhb  LqLz# \E8៨)YvrvF( =%p U'q2ʘC6*'&k2ptfڶ=bW:*i,Ɵ+F:D2yY+l3'ڙVSȂsvT:1nzHGݚ0G%%#JdrOW\BJ<\yAM+ԥ# 9'BRpbL kS-saε\>8LU JtV8# c):hѹBb 1R*4"pC ĸ$%_=koqa=/o7'J⢨@_V#n5MmA}7{xw-|Q)LRKpJSՋntNϘ==*>o"4=Cow͢Iv}d7zڠJHБ{\|) ⩸}|x̹pff,jI @c-9)'RVκ JTdq8rxe4e-R+B Ä0a7 sݼ`ХР`OBG T#i|U4Lw[hHW((|~#ïŤ3Ix܉8:ĥ8oXjF>/G,eU?AZ?"6Rjm|"%qJ5->ꧺ 3ʔ8: N^эp s*c"vzP1^ L !Y)t]ͼ_mW;b$]R5y ô/JEtАBmlE[ˇ#d~%|70 %ֽ1 ?(Ā__$NxSi' 7;+%zj0CCr{Sޭx$rP5#[T4D `c" yMCwZ(I` m%4T}jLS9&̩PggApKtt"4!.4im:IRZ};ƱA6ܺWꆤ MTS@Ag>T+[U#xuWev{e1-13Gi]+SUU*a8Y eVA~ynS\*8~o͏@ysKy>!+ Y5XFdO ((^±X*GSH0Rb\kVPX(iP>ъ`U>8oIAU\Mrl|ÓJ@1: (\)Pɠ+ɐ1Ďdy8]$=gķ1J`iG퉞6TOV9(r ~"& €4`?xb0F##JdMΣ 9r$^B^ʹs+a\CÐ;w[Rv&O5>*I+tAr YCGP9uH8)NU,B Vk\tn<[H%u$h4VW+Bvmv){mE/ՑMzFY$\b b]A\bToWs X޴,dW%+ʸ9w3ET yp뽻pCfS姩%2>5uA $ uEhJ& pw[P%GA#Zl2JMr>h) &2@bQ SA: $r?.!O y'SW' Pδώ9rtÆUy rBJT0IfkVC\$P8FG,$$1tGklfoA$!G 4FEwLC v\˶lIaĈ"nRAypZq& C.S}ʀ FC h): +)<)µمtsite_pro/images/stock_images/450x300_6.jpg0000644075506000000310000024522411734670104016433 0ustar namedJFIFHHExifMM*bj(1r2iHHAdobe Photoshop 7.02012:03:28 12:10:45 ,(&HHJFIFHH Adobe_CMAdobed            U"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?H1y"=wnAN>_:wraѽܑh8oF4 S{ wfYy4e)#Wrt k>]ܞFg=ܒD:~^=u4=itga~`WYWp~S+0X{8Z/~[*n+X"n'nUۉ~3Gm|)\0~Lx]V5i{(gyVsXRe5tjf6OVutS̀1mYQWCGfeӑd{Qs*^?6 ,gL/樲Ym Khɸ<5mm?flL;Kvl&P?I5$JF6l fmWk,MՖYOgY;ْ6Rv%~Lp=r[sicn}5b87ַ}{>UT𳰫 /Չ˚דKۻ-Z4ed:V3 >n,s,ՉXcm4RmoUX;*oW$%/zs%2jvvŕTKF?9xz*'wFպ99pm?c=8{vQf2Oճmi767rM B2ߋE 綯[vM0' x{QGO_fяm8ns'.{w^JeOvն\mO?nl|\Eؖ $~kWv*tk22cY' {,9#ˬ]@6(js,BdH7j=F!'"a#Po܆}'>8=_/Ս2w/ی>3_nE[;C^zH~Rs]j7{lf?y@/9@ ܵvK68BK%w4^GJfшl)NZ̻¥iwU1nQP2h0m[qV/=3XqifQ ۿ?7-Cq£1櫥0˿FeWm14]ҹoE:UVW3"\ݭ+?+_ikex;-ee/e^gw]M =-'fزj9jzKc϶o=6z5J/k*=6Z:/c>7_cY6^gNUNж9u[wWXwt;:uwd}.Ѵo(v=ޛ3eY]hQBQN{)#*8R\5v3:~]q"wWeD }U_o޹}]cKzNm6U`*Ύ?~o*h?Ƕ(K:ӷ_U#?5YY9>l}[@\{ j7HOM)=2,յ(鬮֘3)ck:ׂ׆JlϧGSk?hYCFcp;NF5Su]]RCq3ߕ\ո,~-omyݒւ6=eg[cI2ݣX[=jy[]!n'(\>?}lk)5>z~5ö @zU\fFDZpѕ_l;jT9"߇ LŽ |Of#k[UZ+-c%{le.e?2[fUSSz^w,| Gӹo}JK+1ޭl~;LuKƭmi6s+~56~WXU ue_mf9wsΥƬ6CԱy֦kUkW2"R${Y&q1Pϓ͎8G&6!C>G$,yp!ĸh6$dkn%ة!v? 0OlkӶcas͏u nxkv5gmO}nL2ASuLzMm8n|gDiVvzOM]O`ӛau5jǀGs6߹f걮6Z6[ WYT58}K&X~(REn-̆Z%#k7j$V=$.w[Px^wl:;?MxI)m^t;K}5S%^{ _ʭ=2csRIhPhotoshop 3.08BIM%8BIMHH8BIM&?8BIM 8BIM8BIM 8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIMG, 450x300_6,nullboundsObjcRct1Top longLeftlongBtomlong,RghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlong,RghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM8BIM8BIM UJFIFHH Adobe_CMAdobed            U"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?H1y"=wnAN>_:wraѽܑh8oF4 S{ wfYy4e)#Wrt k>]ܞFg=ܒD:~^=u4=itga~`WYWp~S+0X{8Z/~[*n+X"n'nUۉ~3Gm|)\0~Lx]V5i{(gyVsXRe5tjf6OVutS̀1mYQWCGfeӑd{Qs*^?6 ,gL/樲Ym Khɸ<5mm?flL;Kvl&P?I5$JF6l fmWk,MՖYOgY;ْ6Rv%~Lp=r[sicn}5b87ַ}{>UT𳰫 /Չ˚דKۻ-Z4ed:V3 >n,s,ՉXcm4RmoUX;*oW$%/zs%2jvvŕTKF?9xz*'wFպ99pm?c=8{vQf2Oճmi767rM B2ߋE 綯[vM0' x{QGO_fяm8ns'.{w^JeOvն\mO?nl|\Eؖ $~kWv*tk22cY' {,9#ˬ]@6(js,BdH7j=F!'"a#Po܆}'>8=_/Ս2w/ی>3_nE[;C^zH~Rs]j7{lf?y@/9@ ܵvK68BK%w4^GJfшl)NZ̻¥iwU1nQP2h0m[qV/=3XqifQ ۿ?7-Cq£1櫥0˿FeWm14]ҹoE:UVW3"\ݭ+?+_ikex;-ee/e^gw]M =-'fزj9jzKc϶o=6z5J/k*=6Z:/c>7_cY6^gNUNж9u[wWXwt;:uwd}.Ѵo(v=ޛ3eY]hQBQN{)#*8R\5v3:~]q"wWeD }U_o޹}]cKzNm6U`*Ύ?~o*h?Ƕ(K:ӷ_U#?5YY9>l}[@\{ j7HOM)=2,յ(鬮֘3)ck:ׂ׆JlϧGSk?hYCFcp;NF5Su]]RCq3ߕ\ո,~-omyݒւ6=eg[cI2ݣX[=jy[]!n'(\>?}lk)5>z~5ö @zU\fFDZpѕ_l;jT9"߇ LŽ |Of#k[UZ+-c%{le.e?2[fUSSz^w,| Gӹo}JK+1ޭl~;LuKƭmi6s+~56~WXU ue_mf9wsΥƬ6CԱy֦kUkW2"R${Y&q1Pϓ͎8G&6!C>G$,yp!ĸh6$dkn%ة!v? 0OlkӶcas͏u nxkv5gmO}nL2ASuLzMm8n|gDiVvzOM]O`ӛau5jǀGs6߹f걮6Z6[ WYT58}K&X~(REn-̆Z%#k7j$V=$.w[Px^wl:;?MxI)m^t;K}5S%^{ _ʭ=2csRI8BIM!UAdobe PhotoshopAdobe Photoshop 7.08BIMHhttp://ns.adobe.com/xap/1.0/ adobe:docid:photoshop:c3e1ca5f-78b5-11e1-9a9d-a708dcdabd1d Adobed@      ,9    !1AQ"a2q#B3RbS$4T5 CrcsDUV6W%E&X!1AQaq"2BRb#r3CSc$4T% ?4 HK4=?<\>6h>ʔV:IPKS*5g)bYtRZ\IܐQ N&9hdDy2k`VҪD:Qrr|F@EBA 1!{u} Km-NLK\?l)5 x;o"8|0ɍW*T$ 5CQ`q 1o2.T( /Z|ϤҧK׮sH/#1ɢ}:{~]]r8hbH"XԒ)M>'5˪CM =‘ l$*!HA+E!0*-!biS|F,*K)f4P+VApJ1+g'OQ b!?BWAʠ0_Nh$TW\JIz .ЭII>Wg R e$uXtѼ 2A/e^\.̯FC(\HRT1ȡnp NI#Pzz1rj7wHԘ]O=i# Qv+COq#1ͧ'RK3ݴ[ʨQ% $˜TDmlImybn!hHpPE(cJS',1H#w#0Q֞gԠ68-0t\ 5]\r XmS3\ւ EKT]dh?9g+Z,A5][5lhQLmjJK4uđSˉ:DҙATYv mW71nWr=zPe(daf1UXmW6RqɯO Ku{ ݶ9tżk{LTEYKR4ko]}Q?\Yt\ܥ,;-(\o!P<.݄ (HނTqs "l;l;٪ՙ 1JQ Y,n;/oэn>qB\9D2qԵe\y-nP_ym-7􁬶>ᝣfPщUA_UYjc2J=_ y[is״ٷu~\\ZY႒1~ǭ_.*M&fh{Ee$29@,UCe:L ggnzWm㦑De‘ť$\c,nO+w6.)gF,"mai5f;3J0s:?fNIҫ(Uqਿ3Hm/"dOS /{sgKx$S-Wt8ܯbjݽrBWςtnkl.xO'Ǹىc\MxCKQ4.eUV߆ۖX;AU]ss G|Ic#^ {H.fQfIJѿ{V:R¸WƏOч96p~VsӪ5mpv*n+q?-[{-R!,i!}HHQe)]=3;-=엉 &c>VI"aڶ}m賈w#] 4R9xB5U}>KI+vckrRj95UGJ8 b82_}d?g+WO/T_ι?Wn{Vh=f4zcb僰&^!5FAEp|Iy "G4"yi> QVEFF@&tAsh5g+:`)mnC=1$,/3+KؖݍchhAEWhefj?f{,ۢFQ=<%]cCѭjD3*O=0P*PFA`umLZ2iVֱuKy#H@SĞۺzKPîlI")AYlwJ2}?h>#^F4<]hm1<9.P*`X`IYMRe(qAPm C:y`Xm=V#:K HQҤ8Db]FYn&Tzf%kiZ5 ͭ# @#5էƕpWvrI(AXxƈ$ $rjG'"H& @Vc 2n[txBJ(3(7BWT6г-֭ exbȰ+hMi1~id,Q1*rGqDm,9% EC.Dָj)lM^F>$K`ɯf.S ` tw~| w#ݬY*d> ||1v)EM‹T ` C*8(=Z @:W /Z&H_[b Zs`rn5c\Hw S)u#!E -SZ.\{8||kN~'qL|ď[8}=Ǒ{F[Ppd٥=̅Р:Hϡ1Y\{,&7N)+ ɨ[jphfYwjMJ,haĈ*511cn5mj+U +YyoK b X-M5$JҠW,*k?!+\ctZ.*՝h|Ep2Xݣ]n|05,?͢gs< ZLe91>t OJ$\v.&TG*qS\ J'~RGvHM&ج-rk;0G{o+:F&/֨vr=6gϸpw6H{6ʔW!ұh N?+{W*-jvr8Ê6,@=tvdcm/m͟z .ϿXn vK(zG#M8ɂ$`6$jiYM *>8ES}a~iyk2XH"jJ Qi{w%nJQti5^qkx.vkI!u2J*O^js$66m1GutyDZ80wѳJKk441yrBV49)ƎvT8Nj2m7OuxNݷ[7ǻvِaqT.Ukwn)֙GJpuʝ^/iι%ܢBe{Y'w;In^6tBѹԹe~=F aoml8jJ0Ru& v5U:s m-j e"ŨXNZC#-Zu, fC€wy,JH`u20 0\(.{‹ K !"Je {ص +8<(nuHky$B%r=s A F+$yJ^]h{Se^bi %i$F?S]wm.T[t`pƎ&*rde?ۀ3uMqFdH>GwjnhS9T`V*AyT HԱ(i~PAr* gib@TTx'a\w#+)B?É^;hGc2 %DFܤKNֿ3F5% XZQTpEL(*{#TۊJƝ3Θ[8Ym4֗:ëǫ4T2:Wk$w+o#,;@ՠQZ`Xg۞њY%Pɀyvh"M!*M>B{I㶏9D T<ֽ0,&LI%9#quu4\G]>30* 0.q(̪58aIZ8@&Ԫ'Ƙ۫5# NA3wh{ѤR,u0H/#a{[#q%~\Ty4ª8 '@+ rQ5"to2z` ϙ&~w7j]^.uXc+)JxNJxװ~rTwFMB8Vi|=?^\}o6/dvR!u!ya HIEd<_hoK߮kϯUg5a@KqMvE^; +\k~˩ֵ {UPcge$ +],q u>ly CyJ>\Cq$b@PcdVmBWn,dݖk^<'nn-|A.LuZY=>m̖ܗ6S0WYxym_{\Q&fmY"۹=,JwΕ/.)> DyO%mv/~|lV.iŤB()RtvjFGE# ͸n"ۋOӗ=iiz]SeǾ}Mom {ø{ V/DImj@)PJ1;673+wb3uqR^᎚Rxr8\wp,.92fN,"8J"ˮ-,ە־X(.5Z)?ijWI,[xj]UHFi{ V$Oo+<Gx Eg/k˓>ZR)F}0!!9cV%' 4gU匊$5A8+K8a($PY|08- /,rj;DY L2 N .K;$cb>j ^- !ܾ~ .h4Y`5#0z$Mg35`s X rEhT8DBi@ҵs=9ռdE@B(XyOmll/n~` ZYy};Ijіf:`mVXe)vy%U$5*G;x KO@<utD-">5[gtpKvEjPEvDbE\MCQŦ%Jx/`F!P$eWƃ§sܕthx`櫷DtEX(,X`U]ތㄚeZ~y# *L }dx? 5_k=|bf~QF|FA LJ7EVY&snsqpGَ+uvyރndtX^nmAkq])W &w}y :ݮM?ڥ6Eoecu|_%R_OoGma\okOl5ncQ'(Ps&V2 PZ0Ż^qj J*~8 eQJUQ*Sᑮme[ym>@îU@z-ol.u1wW*5qWk74IUUqUH.wst%Mj3"iɒk[t OTd;dy *dߠmd6ћ3#bQENL\kmVՍ͸ɍwRr\E84oh9VkpVLwMy!b??Xbf$W}{%<5{mq%=¼0bFeYɅGVh#Ԏk^53X:[}?GOTKUXb={۽qv?#d1O:InU 4b)i/w{9]&x ܡikHK[Lp5fq6m{H5`0m$Fj'i#1Y15P u,sus/uAq}9G,`5 ;6?~}?TV Zޠ'H9UW, w{'ܴF(* %3p[eIKCc9t5-y?,d$/U0]f<6ܪk@)]$E `װ=#}<^Zp! dP&ۀ pZBiRO$>Fk+a&)WK\F+DW#怂x RļzceDPGVfդq ĀCrBGC ZEn g*@ _,&DE.f"Y-scvlXƣ =i E4j ĝ(%pݙXQZҴ!V7g% WG,BaoPy4ө:`W7QZ YD'>faR:;c2{pvegoC0v T;x `xtL gd"{hcr1O0p6FRd2HQi*jxqHơz(DRѲ`v /pG J@1 RmZ@m F+b!I!^K9E$ TiZ0rbz`֖ %†]A޵)WP`n֤{*_BGm X8f cq"+@laCOz$($*M<%Ƚ qΦKyfO M(Gm]iJ,_YdxtC"E<0[<@ŀ pxH"Hԝ-c<cyrZ9-H\k`qu,29 hn$JaKx `)`/~H$= Wm+ȭ 4u` QKYiC aVPѳĤ ? * ֘,WPBLTZif$qB0*$B)ȸX0NqH}(:ŏ-L%z@6I_+gJm (#(. ,JhX0_< 9a5@]%R&:A1H >~( k@ y@14O:0Lil}Nx\zhλf4i#"Dj߹O닎I?^ﶛ.-Im6%Mg2 QiwKҳkGMXj~QO6;r Gpl1@(gFƜ^~͑~]=G'li4Рy ePz\vE Di<2ʰzwQ+Wb HD_՝ {Q,($'e}NMB`z TT3of"42)=D HA]#:|[FFtR3D$T2XxJq"| .Niya'К~84ҙfJܰ1@#ZY}vi()>yfHlY m  `)a O4kF֣;,(:AJx;iH"zB@HeZBڜs2M5 >84pf+3?' kxs:GS_3S}kheYZkIӢBu) v,i1ASs]{XֆA&P5W%kޒk3?*WJV[e %iR]cV:r`TY1,a^ ,`f"`H 6e1z2x`;@AM~0~\+t6ev9J) -tS)|p7Kid`4>,|2X lb(ޥJFP:\Qcn&On>SuxҘI4QH\43v+}]Ha|O_SË; ,TcU~T1,4kJ#u`| ^4߫g]JOSKl Q-#QZ]a"N0sBkf^H}}29o-w\H[$3[RH;1aU8͈knt曩n;[șaK 8aʒ qZuJzW,$F ¦I>,zyb̩|e&6եіYݮZ[ G[KC`m[=yXX\B'˕t#Q c85VX0NDtiSWg>jiH¬ 'ywzbrr>Zb'; sXHb(5}u*o:UֶH* YoP ǿޛj5jAʪWQnfo6^܋ Hq/R4CcbYe&U4}>)O㉩^477*3I3hu@OG|rcinR azޥhԟ4>=޽Wn;G ͷ#V(.Dug@91:$ir ?O777c?Emrb$5rl:W,!/suQmb+Jt@Z8DbGJ@u9ʹaP21A>>XT E*yD)BF'ojjp7&Nnt$yAP$=P@WԴ_ HgikJPHbaras"=ɭca2=0n'QŒJ5:#ȒhSCHX%%ҬjP0 0@opvzEj#FJRmOb[x[V7s8ol%f ~W.TR}__q n܍6ˇ./v >Qw}c$4nS {v7NN/?>}/uoo܎q~45T3s  ÒZK5*+ )<ۓO9oI^B4Izzp:r.5ö$,m i%Sqq.W܌oB p>pnOl39ܭ7/[+:7|0Ra¾oon7PY5LYo/%HTS+Sbʶ&MKKuXjhk[U)"2WU  Lt[k3_{GPf\MEv+(`bM_:!9 p5hEuP0\>~<[zK$@ƒB Y+14D JPG `gkm4i*I8yƸ&1[шn+ c5V00FøjXZV? hTA-uE}>4W8RBU֯qI> mtZPEή[}qVHM[ 䛭I$Ƨ% Y`I6v8{2Ƕ\;ns^-Yj a,1A5-RJ1*4pKœ)soۿ7͇ݝ2[ncv*HTr^5\H)OOJ93&~C5O}<.'[mdeԱٺ“"5kb3I] @4iHs1^ m(<āi*^0X<*|(p%Wҋփ E{ƺHZ?ɞ?̆ (RPj< qRVk2+6}. _#\\5TATP > y"d(a P++ /4G[ *!եXQ#qıK@X̜K ˆ+a/~C*߅qNݦ4M55@pي8 kNiuy51!2v?zW tƳܒjVH2>GbK{qGкPӠ>#uuقw 5)Nb ˉ_b}{.=~KgU}O,"SGm51PV}w9$Fq즜i^'L -TgܒjnE]*X ۮ[Ǧŷ<4W@7Pj*s}ݹ8lze[%RniNDM}n6~;zTdŠyb@?mqsdeX>;GoO,1J7m/VwFk\9*fWdaoy6y_lpGTm֫m9hu'\uAk{i%>%!MA?G K#Yd `kZ,Y nJD?R3&M~C4t41:ZA1 {0$ \?V{--+QHQԜK,X7Om4'm?qDi5j+Z~Tw_ z ]ܘb `I&# #s\;qv[+]UFXҰc uPqX\u nTim:)sʩ?p뻍E򥾑r{)[X>#07VD\eoK}pHleXHP֩ 0wW$~=%0腢币]% lz ?e$9%HJ2W"GPG4oJw 'f7i`An*3h K2-B.lfM>h idAQ@1鈩#xK(XIMDaOI=)"Kn۾p^n5jAL+5f˧ƮNl<(S諯~kG"yOLtW=~.55S5ٟ`fm$M6E{gB7j {Pz̕PJqtm]ji y6:7}W[] :9(gwǷ^r}upl% 6ZO{,nZ,C)YjCB*K.1ox+ۍyؙ#9N=8m]oe,}{^_Li{+L4"r/aq*|'/^4O$eko6 vuvnSWzuT";-ur]Ķw/bhB[#YFf= PrѺSBJRRrJz>ϾuZ-RR)%ELhO~Imy_[Fݸ[mKW*uM "*Xy;udmrqyJ`-1ݎ}= ovm6]ZvleܬU 4̫*U[7֮#ֱ]).(C/˛͏KL۷rSR4ELIL<0:÷N3;6vv*;U$乴hZ |eXoyaNOSo{ߗ.؝_8-:QjKJ/bw+},in:~ZwJ@yge7XEKj}ru +ܯ`m=نǾ6.Mw{^8{k}kEUU5<;K;} 'oVޗ銋\>6~1=wgmw2vզ}"z+2Hc(52cйylr/V}nc~siH,>XY?͌cZҙ {ųoV+wRCR;UǩnjqRY5_iͼקfYN/-RKqó2\5Sj ȅ]I\ƥ$0tfSoĎҼGk3m{^%°BŬ>N>O4'gtc6;E#w{XxRߴ[4O_N'-̽L{|W y=K)dr#!5PRFk?oPfqt{W`"m,mEMñՅާw.Qk鏽&*Q0ѵ\%0p$\l+cr㗟 8@E-La@`ZΘPs0FT9㉠=CQxH?/ #f(<&yF~_\m[*mŔ%CUuuNӎ1p:~7(掘E1opP;~})Sx+-\."RbI9Kó˚zvrm?Ki7"3^[ɪ)Ѣg{iq4n:7\z6)2̓Ky"LFDJ檊MHqi9WqڪXF\xd,X۸V-rVHTU;(Em?Smˏg/YzG+H)221bl{!7i.d9!0Қp1Ve\ Ƥ2I ~.ʄt=pkxGcD1B7%| *$ XJ^D.,ȡaӮUplQl[BIpGBtYiLāJ#8QT\t ";r;%ۜ{>ŶGs;u hVbY.C7B:wN/o1Y+DZ7+a໺n{8\vI56CC* *Aq]߫t}JnSXX:Z~7mM]x}/7lmaX4f ]tשeeg)I흸~k6Rj_,rjËoc4֗ƹ-qLR&eeF{]s$fi,m\Sj*]㸺HL*Vػ)BEɿwNr{JRr|''IqUE=dzVxMi7N?}wrV9vC55E}[*sis=KWgc9= j**KڷD=mۣK$ E"Pt(gB)EQdvwf7YI-̅&u1n? U:w+wEEh[]>˶Ҿ9nc: i-c٪RkѣԱsʣ6m|f9.,kk6wMm'2њ{mTٯ}!ewն9|l>lwMXPoj^M"Yc_SYJ):Riſy}8>7y7hMif-ڂEPʀ~^(乊kx$֓ky BFX6#M@t +FԣJ RX!YB1R;G42POـ A$::i-b2HLȯJ ,IjbՔ)@p=#DkW&4@ܞi仇+!{]{fm;joa{[@+=CTݷ;%l|m{VẃI$ .AV4aͦߊu ;%[t;k9t3՞r҅o:Gtyyq64Sjݺr?My݉6;YCGθO/4حyfǿqM7l%1GOZ̅_3хj•7m%T~e ' )EK߷l=^rk;ĶmR$@/Z `A㏐Wei>/}G߹]s[ex;1ާx} mn"HB{Ѽ؏2ە\/R[{k{w]*z]'Q͓Ӎ{$m6vז74܅qZt49<nUGݎŮغ I?[N$RaIc l4ԩȚqU949lu7|,A|mB}&b@&Uc:>#n:s/_cDu(8yF;;j"K$׷f[kڡw׵7Qkq c6vjTSM$me^ i:lotMqREJ3z;rz~#l8˱mM5S-BCI\j=ZS䒧c~C]Wmߨܹ9)IJ<'Mx xbJ֬HrW͗c\qyݖ^s}/7Ռ)nt{d6Rm/ $R1`A%u'U\0)Lìgt(FݼmnܵV[J)*qF{[4o}1=Ŭ'%m+܌PYTs{z'Y>_j|Qϔۺް$SK2i\W}{Un.=eOKv۫z#yF(HyVv[jBV;G+M/m^Qsjqvm/sx w |CO;ΊjRi.LdJѥx͑1k;Zo݌ ǽv|厁5wm/n/~Qь*t "'߷n wv+HQ-Ԉ^KU]nD@UgkekEmk> ^c7RMґT#hmx}nC-k][|FP6mCAu"0Z;7T <&K#h%w6j;:O_;Ne-@k?Ѵ G=U +Ik֠*0%yM@_5> Zx ܻue8 q]6el28CdNOSr}Ֆm۔qO n#dMk$˩CTY#ӎMڽz~0z"{;_徜⣕_ϱݷ+rnd/.dbŝMI}qyaO۟ קLH&`jFyʞc`ƿ 580.QL8O2gKW3<kk)7nkʇjm]vh3|ǚ|b׻[vwݢK \[\0֮=zW`0#,N.iN/g7Hvt̵U:H յXr/hqǠ~s䆖4EGyRW*&JO]?~_8u̫mrCE@^M $`Br:^$dhΖuȆ\bEJ] a%zd 0&so hjCP$Vi$p(Z3N)ns{knCkJ$u&8m$X1˻w.:%GкVm1I^MǽnonG|^*Z|[bxW&T 0ǑkyݭVcAVrGk~~YJ1.>%7l69=}v3n},n[y]TT l-u$;:e%ie)*W%[}qy64?J9J)9TT5-Һ7 ,]y;-Z3Ҙ%d+Tާrx þJz҉)G%<>9|ųlkYW{{=MfMr8ی:Oq}o7E"..+5 ڙIc,EWEm_jp|?V[Hr*?*ǹ#c'KhPZTҧ1'g99*GcO K sYT:ާ8w2p֗mqmi\-n?QN9cF㏍&Vso4}?wwMGFR bV3dyn׳}oO?!3v]l8I9rc<t,=зe%T?~un<^Wfn3_Ο%3]ӽr?I[n{Î$I'bH"a3@" ~@'C__}揾!ba8N/ ,rn,Vk7g-v0/r[ɤTTv >%W-RQnOXJ}v}9cI>ek˺Y~lqqtA-PWz} v]\pme}3;kZqW% a/LcG:*nKfMϾE[UY^"*Uee!e q,&g{ez7Mc%~jd?fޮg8w4Yms ,Ol~7#Ǯ>yyvVf嶽(WU}u?V {qOG-3+!+C--`2H22n5몗䒅{SχcbŔzQt2ڎ_! &݋FK;Z\cki6EǛg1wyuͯeQ.כqNH@ fd=cѵ[3s:QN0o\|KҋVahQDF("(1V4Yk[vRwPEkL Rݮf%ݥS&UT[c2evYY\C+¸K}^=.MkYn)71xx(HIɣ5Ӂ{tgi\cyEF;u|G2iҪ7כdx({d7kh_KHMk3>N)-p^s{?k7n4}2- L˦]R8g53'3ƅS/,SO >$rx = dh B3O\*~8*gQ`P~!0NWtnاkv:9* ۧ/QǯERŴEU>1i#cvVUbl{j6Co-ԛCw ofWbH2HXn8R¿ggi/ W%9&wnIyEm&mM4T6VX\+.mo}g.7]Zm{2фIVf9*5<Σ좜/L^c- B>Ri%k~}ų]yB ֍{GTUV чp]GqUST|rҮZ/o\s u4m{Y弓؅NKܞl$Wj {+Z+ޥ${]ON35sN.Me(O?,m_í$tmlgF/2#!}{ ݥr8s\#2yzBKk{1qyI|F[n{l=tB*#6\c/85jQUp?dݭ[YW&:/ӄq h*vfɐM 2PiO c鶳FQɥOaVwonJu$3^)/+%)v:No?lsn 8n(xQiڷ70_ eH$D_ G/ޡ?ѝO>Wn,)j/ǴE}n;ne%cMkpY*:L}hLwv[O]Ww/}>o׆;C3l(wi rΣ[b_L_Vo]-/?kWSgL! &IF[؋K }&\Tfz4kդ}: _{±̮v mfJM:ro6ٕ~%.t38(t[F}potx'g^,v]#h 2!dY͟G@vnhXy{}guԷV MϖIQ}J7l=юx[l7[g{[NxJ@I>ctݾ)'|quqtUUT}cU^v,mo@Rw#S-$9ǟ.mjMrrt>qnƑKFu{e؞w k8P;D"ug$tױZmEv#ầ[K&KTQ$XlF52W!aeo\h%"jY# z[nfjHjȤT:}NcUbbU8K`!1̮(^6sqZnMkUuW{r"/X`%/ODj^+D3!7 c$y;6oj r IU O+jވІܱ/-\I%Hb r}5f1RAmlPU$ #uy:eA90DZ܇94%s_ "Onm tAt v 40cFozY~?H td*|kx}D*A#Fwh]QTTT3`x"h/wkimA.R8נWM!i8;LKMk踺JOuǟv3|FAgsioqf9k6&ݧVPY_a/Z:[$<Izp4f-\[ܪ^Yn+).%}Zf:aO#˛VTr/kZ.iVԔM*)wN44oB,עP"qG=~%^_mvKM<%dq"RxiTn+U[ n<,8#-5oh/6oox~ǹ!ڶrFuq5x鶑,2EW~9֯ۿr+qKkkg/n 9 .q.Lwlx)b@m&4y][=ܣvܴ>ָso=趮m7ͼxQZdɥ(fV~}ovXrz>#dD%_9#w(z1_}'m$]. /zf4Y[:Mu"*~ۍ(%υM11XM&⨫Ν0=ݼKS3Ԧ.x +*%bk "I"I"" yfEWIfy#!ZFu$0[h%&GPVuVoI^,eR >h92y֖Ruxg#j)`=0馊6J ΂ P.f Vki;pibTLcKx]ESD!ı;4S#k (*dxCLۺ_s~Z;ty.ʦ-]s%bY͵ekbjv=CJǧG᎔LGP7N@v.mԒH )H?ـ=„> #P:j$SSfi^/'{HYPG?R d=>w#s Ku=)9:)2- 9oLϪ<lSԨiu@%}5ù:;Zඐ~u=V=R5pݥ7ݪ{=P|hqxZQǩ'&ӓl/8m%ӸAl5MR`=|3?J|9Z+w߫k?0ܶۥ&4\N3oFZ"S>>׷I6*B'V~Î~K5S\Cn=uIHNgDh܌Z!_[@A:ƘQ( I9yx:WgE||pE J@LrĂINAO[d4/i+TU.N9.I ݮ&dD/Qfc@+0ԑxlhq}7e$}nHg̟Mm"K˽h.o/ڑ,m*dbiYPxVKHu[@c]?SEƧDWD_^7om\c=%fjⓔH!Ϸ2wMkL>5ELoD"rmFw#|f=#WE?[mM}m}Fe{ˈ7}pP TVǃ_U,a~QN~Hn5p{^.^M`MrgIPfF'U q9?r>ԥ}'M8w/W K+)=-js?;8?^rcÝx}%[&lўu>=NO;PI6RT~^Ӣ[o({Ĕmvyc_GR}/; |m{E_Jܩr/1=ڍ?yT^_riv8\hGo5͹/}Ipnl#o%'`F!ahTNkN}{#sӶZoM*2Z-i$J.<ٿ?w{-% l-_`i㨜Dv-UO^ZK}%9rh7۟|qy0r.%;ȹ 4qOjp:=g?'Wy=scP-1kmv`l}N^&6Y քxz0뫰}+4Y\W%gPH x%*mф7j 'p(HOqQ?1'7kؾ;d`+(P̀"wS-} pS(C]qBz`cH1$6܌{sgC +n) QJb*//#B %UBL1Pny#nđenEFu6RծVXr+*?}0G$*cRTbeK 5sk U#"ԁ sqfYn7v.'mqn]q]AkEE뎚eneBѡH~`#tI$Sz;ɘ횐|i_M!^*THgG ݜ6X_ r*k>b?a]Eͬjf-B<ܓwI6 ԐH)׮<Moڭ%78ew+%Z=sָW5E ny.w[Wesm9\3U}D/|+&ˑ)&x齳rVd*1 9tԣ"Fw+=jXTЏEs _ >8{Z7U%xcfo=mnՔOgMtm2X+5ł۝;Pn9o%>?r! bt'cu}ճc^9j^3Dj4[}ַmv/nw/g[&+q=(LU)*(lQʙ?ۭ=L}lCuohxlh$X³hF uC*c[3vf^?V.X'Rڭҥ+O_i~In^r(Gw%v_݋hlVhmM!ƿWwq&*Gp}/k-{j):>j8S+<}n#m0qݪmq]̒-ݧA4,Ҵ H:}[IڊJ4oםjy=K}9ӆ=2bJ{Čɹe-F6~I7WI{qybnV$JX{}bվik&|}, Mmjz})069RbR@5nOgoe$}useW`GOIQ"QG0ioڬR }ѣk86=, gPp{zl6[dUPRe+To">1yO 10툙OM0ԍs}mn I)m :JfiO>LrnW{.EnCa9Y/8ᜒ ~]WHؚ7,\Gs*-՚ky(!g}9p(O 71KhHZ?="Dw1. :"V[\T B+q7B1znbLڵFھR"sp8緜zu{ͬ$Ak#,g7Dn6ÂrH DY1+&K-$#JS0a="#WV 871 , 6Ǯ6: `PY"l vZJ[]j~\ ,wH.@:WRR9l@0T֋П/5sO_aV4I$Is1q*a6ͧvt[bd|l$kJn+kfZRxoP-#-UvPzTK)tڕbK6 C= +rbL?O_[NbJ-f-eĦ LJTșJPGQLYf0 irƸ ̛D_00"u "Itt[mlm { #~R@@2ȿ_ٛ9ywۆ+Ϳk47g-جIb)naY{9^E(K}|$d͔6wS={y K|亚[iZ5cwH`'qbST7ZP/svWcq\aHƽښ_DX}p_}tn7 ۷Su0<l7 hUɺ,~X䇞)?}mNn?竂Ӱٽd#bgjkv;}PFj]Rʼn%$Mqٳ 1P\򿸛:2\,-+CqۓfdoH69BVBH;@|r01!ecƽI6,{K+u?͔ 5o}]osn7%{s\ɑ77Fw7eq{-tkhT֗Mߟ}edr[M8#jN/,rӼP?}6/c}r28#WО6/Jl?DLOۗc@JukɋWE~bqv2[I4ACt~CWW/oN<?~\HNul`/7͜.mR~ q5<F{O?5xͱ]J-odYϢUe2R>8,vD{˷|}я mb;~7flM28 &E))ZQ(G[ρ?qn8noMmEArKJT*+7'VYOܖ2o! ^M?o0ݬ :u2,>cEEehY`BĒfk.bTZ z8K[9d<ɩaTHYQ#% <(Y12Ud_%k*`۽.֥^2$T,AR/8{lG',e`^"Pr%XJ1YMRJܜbh6g7nabw|ً]02iZZFIq˸ QV1}T% IQ{&{iGLj}E4sjlm^AhnmުT2zmRU9 Eі=\Пcdf6tdNA G`6øa Laܻ!^}\ǏKKgH%GM_6UO4e=67{EM 4BHTgVU*`T77-"̬e,B?@yR#>$yℂdVPZ҃Fna$FZ7*IRH(~M0qK]]AeD}rEy/8vl7 >f4ΠЂqSߏFqtoF'$ ïS3LlWQtʹwa%LsJ1ZS\4۶N5w+k=:I,a1$Y@y=ڹ{r 夠4GČDlEw*>@,zǂ̥{ݰH fOAPM(5rqr>VCDWpC2+ ɑd3dMڂ3$֮|Э5.8@(!2f[&a-jVm cN~QJWn%0 !h[aчUDϘU\ָTߑ9DTx* G&"ww=l7[' No -m/ROxSVSWW-G&}(>罥ݸ&N'1}k)-)qip8刐tXdqjpmr-ӭa ;ҨXEm#Ā1ӣn j]EO57бGVy*oi$dr:Ѡ%nMcrFi;uҳ` K /6;)+J˹]~Z_yIs c VϨ1f3QkndWFݠ_ߋ3;\*>*zbZsOF eצ ]qpz>x xb@BԊ?X2s91@K8MJ}{e19AFͺ6%Hy/7dts]]Z\PHs / :ogm+smImF4@1E X>OZ-whZb(fЬcE9S_U:^6ex: goK^{o}qta=h͢r)+6do}(aǾaN|=(=o/.ak Mo{tqFJh8c MQ?yGJ{qe}ߊ^͵}W}zAN鈢H%oP9b0@ЌS N^,CC |1z,%'kT.e8ӈ6GϐEw}ml׻g0#7֪ PXMG.✏i- x57+ukT5 ֽq;F=oNM\"e}m̭${ɮRc'H,3;>7\С̟qHJHVWd6 CSZn\$m|dZ4;탲7$ o"oh~=eeGK;@4vAZ|ZGr>K8o}?OYVӸ$ 2!;?:^eQlpysmUR{FiB^$5<۞8 ii1۾~7?O'Y$bЃ#<(ce~Ok$Q8u1ڭ a{Z#t鹵HơXAqAYW{=܋MprIce4* YP}q5_ ]爑BxO.EIGǔl=e΍orҋkLQ+ruR/O^8)jXSq;i nKi-ȢI%hpJH#ag FYUv Qaoq|IB9YۯXcC:;xuj5$ O4}*z~8AR)OJ'kH%\ L^(jk?n?i}ry-9: cY,w]seJCM`Ę<֛m)֫> }^%թ7>֫Í;hqs56kٷECGs fraNGf0V[}4'H}Wp^ X!+]4D sx@KF0W"Vi*4jhn%l\.PLuR,D?J?f$wcd9\ )M>?` %:~Ch,GdZֵ=<#R&{-{7nS;S T 馣!FNKpjサ?v]ma^0!Z*H4O0iEU.rÁ[:GG03<]{ktkzN|rbvnFqdOyg*[*QۏP.f9oН=}n?s]n< 93rfcj5h_ uL[D.$"T_qwtg?Î3s2 m=U"|}gOvW|m&4x{GkqW3nyl׆,G=aH5o滎s~rKKQiwo\H F>m[ꑷ9|!H=icr]ERnO++m[x.IOvl$"n$cS҇<-ŘD_sEf|ɘ&Y%$]2V"a&.(Usk[e+Q@Htp3hjHԯUUὴ:9#ʒ< ~5Ž n{T{Ԗh'qMzP&t̽: rdsQt99337lR%ʟ0]*?inQmK.˿"F^qhߵsƮ6[9VB,65je'xЇ}Y.cJ'o7i]}oܗ~a\Yq{f639wHјP̭&nnN|?^Nansr $fk{n5!JVI5Kn̳ҐZwS|؎c'W}ux=?k%YmO\zQZo,'C2m5Wtw7[]2)ڮ/6\sP6 Qhc5 քȬ^u7g>9mvڤ-%aU`hg\DmcJaxןƿ7s:Znm[ŝЍPLM Gbg'7Vu'1vY縎t Zi5.08?crjK^ J(&*XVyi<^h#<oSZBFse mK1 תYv|4YG^U&E+{fOɳ V)5Q}n9[Pu,1QκQjQEKVʐ`ZijwVtFXm:SňMˌ\ܽC-$ռ֒,rFIrmO_Sƞ֑f~mt|@{"\]n>d:xQ'HԅHeu.8w -W&wŵ;]V f3_qo< miݟ/oB!U,- HCVںr|9.t 7(UO>l>>namf_7kv?s4ZP>}BqG/Qڷnߩtvn;vVViEDE/p`Hvo6Q\͎40[Q*N{mи-ս%(<&/q{CuSx=[nEع{ ndjA9WTM>7ͽ/VVٕc\{ϮsUZ%Nq_av- ovݯ|jޮע6gHLYFL:v*'+/LeE'~:7-llEA(ƞ,`\}2j-㙫ۿܧueF,kI>pY S,⪊`C.>MtanZ0D"L<دW󺶹qS bjQEK~Ŷv)8?%\1-м0DV;e( ;9ѝ*[f s\pֹ]Λoo2Xf/TvUQWl)xЭtqɧJ\(Lo6yݺ;w>`RZ<0Sኸ`O&tkl{_ mwqn;d auCdIR%@ ۞N]Kk\bhK;y')WeuPJi%r q)iOӹlUKu0II媵-,x6KˋymsHh5XPj4_n ;#JVI4xB**c]rg{ۡt s$\%5^ڳ+QIN϶:Ej aZP4j}=Hs.zUsxcꌣaG7=qSA#9e)K~_}޻.vxRJɴ9.0ӢVAFM55ڹu.^)m=6޶T}ȑK%V7wqT{mj+%mS\0]Į2U`hZ*:x3A}xI I}m@,A踌VSZcT[k<`_a7V[\ (Vd9Zc :CIs}ŀQFy2#06%MAj1^Hի?1 L zgxc/qp?:HlϷ| m~w{q#mΑi"ҭZ2k.=/Soohˏn{9a&ĠtvXoob@=GTVŔ|bJ<:%XAoij$P<ڊU|^3^lq}w-fxm.H.n:an9mK ~]ʬzcn< 8[|_Kf :'J؎5-{3n+ڌ]P|q[e;S\/iӵ?Rk^Ri-q/J׼qn!7h />r۷7+.cٷrC,iqI0£K,vׇ/F~IFK*҄Yox{ww16|LJ[u_KKS.۷BjXЍgino$Fyiu1UEQ L@uzg6]BcV8ALh Y5Bt <+*fx͍AʒeU* q[siwnn{M꘮fTnD`AHr~{V_qxPwfUjƭ5Z3VNQqY~ …o?/X8 pқf+)MY)t? Ʌ`Φ{wN6",РﳐΧ*c"Ox٫y!'9 {~ s|\Q=oa?v/_h}sqMqH-jO1swq)/qus!vc㍌Y6% |1$=H 1}^K{H UL0 !kj|S>4Œ6 =n9xSBR#Vb-X-mQ)EXmg317^1;[If;H+KT3Θܕ0X5\Z]rcx3뙹-m2=lSs4wJw]rXw^vV6)-5cU? =vܛ+dو t,і ҹfOr/r9vɹ}=W7wI$t/èU1<2A!kC0Y}CBoɓK.ҹvq]]I k #LHB]KjoB÷i5OnRQX:a G tۤo6[9vuQ QXI$s8}SQrt׀nNTۘ*,n.aeB=JM?a:ȟSJڷjڄqƫLOqu8tcYg{oIaG_߳ pSzdytu;ڞ{me/tnd-yM(z.i*Nv$*eGw݅/a.^p\saxmy 2o u)>'<)mi]Ƞ֌c%Obړ2phUYKwsԨFhG~ ȌbA$ x*|)k\ sl+KJ RhX;G䛒 EY[xޑtMQm Xq/t~C~s#]EwVռnfmoB$m"AkVM938[o,fm6^WI8H&]^6c:55i od8w<ےl;P+Bb_,uۿD-֮$A]P%k\vEs#K؝ ]YK*,}hƇi+pji*P'$nǚٚ ?,D 9_,D8UJ(zGxUh ,"C*9qe7%],im6\W}g?縻hv% W Ҁr24܎y/w]{!8!w&,B*2$eT49bM⨽⒂RZ¸ظy%[)3ilZGi{{?xݧ{5cT{Hf?4kWsԱ$m(ld[q#cІx7)/l.2 J~;q|E\cŴPٰFC Bn-p!=*FxL[KI:`Ї{6 I:IH"YJc,QH!8zU[=>[\3])aZjMpy;>mcU7}mܷƍۺb^)HºN&;rbż]͙NFJcTےؚɪEjn,/"56So:"P e,֭ jjرm؛i7UGq]/uiyar fD2]&Rci,nbS~W//;)Wn>-h0Ƞ4gJUzҸgSųе%qL[Uǃ"~G[qΟK3C+P42xcEbۥUi̯98KBQV`snh6\ pdeԨ@ uʘ0K$ssr6 7RFvifӡgVCWf,I:r58i=Dqș\jQD':PLF جEo$`XK#Yi^Jw Kr6fn܇Hfր:W$V|fKfvQ5>#Ϧ*a(mMMЫ<;jNL䘘?gmVUqU۫KS>*j RM԰lۖlZ;\%`En?Wk37mKƸ XX1#)<EWj\Ȣϛ`iݽt#ph=4\WSL5ǘa3Sic@)l^^\DLu<#.^ppAp闂x$Dc^!y;)o쫨*ꢡ?<**bNv?j;ĜoOG'ȣ_\_Q-m;r=r#29Mx1p!6rh7ςfıs+4,Nr5,L)]WyU6fbߍm|nÒZo;')]_CZ].pJ5+, VO?>_]1ȭ閡Mh*~cJji%(C eF)x$\ XXl#RTL)ݷ!m(cE xQQ7F'@@O\Z~gctR_-zp[UB5|MMJBw,oQ2 xu2*[K} Lab@&3aGe V4I J|i-%)aJF_%9)w[\@Lf7\v"۝W30O#Iǵm$vvgׯ Lynm%c3ۙ$+J\9\3.CDZ414^[eF"̜UIJƷK<,вk8P2ddNIjz aBR@p04+i #eU$9m HW2ʲB%E_x>7^+=06(Fڕ@FP+ɞT򛛽60WLW1*T|=W⸖\Qٶ;yfޥEQL} P+]m83 :G r`MH @mej RT1q.a7/yBU"?,UÉF@7 ˹*F)-(@~`V0\Q]9pX_5<n. 6IP<{*@]S 3Xܷ\k _GzyJhfc{ xͮڊ޾4[YW'"GS?3?i<1z\kW9WKΔbrdmw9T׸!(2΀>#b1f`:7}Xc$G IƊ)6My,lvQ\ iA\LKdxhç$M& 'ʃ\!5)aot=Ai{!/3F2Y\wcޮnf3E>/L>R2ɹ~-@".C\K~ɳݸKI.`%ePkPHztj{]r)%gnJܴBFy &;|.7]Yfm"ƱܷE@5 qݳ$\sfWW _OzG#vO;z{s/~^<\%LS ҄+]G},UUBJkJO I0@ssr.:J>Hā[[wJi+UҏQ-| f)XT 92p{hyS<pt4=>1<f$-aQAu=2S5`+[8-QE & o5JJ9*WMHjo8P#PM> 3hH2U@|o ,gA̻xH|ѐ=h:k bCO 1&۲3UXUUXaB` "ꬒU dR „T)I\H9,,+ĤZ^OVCɪqPYR71iq,/޴ڑbId[dQTPgue,l'R6-Sih܆*#LԠaR@W2;1om/'iqFJ_9XY|4O70W$7ը JQ!嵧(AiiBY²GBU? Ny#}.mđRȁFVhs ׎p\A=vpԤ4R(MA NhB[}MmY@dxMG8(Z qWG&=4Fde_ [C"6ʺvW<`=1"m2o}ϴ924LOKmvy$)M-jAAjIhAlqOmx'[{HReBj#u,NP:f(q*,N=ǶiwbRVצ,idnY$6͍-zyKJ U$bМ#Wjpd *(:)l|s.! ߳[lk Y$3uibk[3ieHn}I PpȽ*"UǨEIOl_qQ?MCIX4U S̎a[BX´xy C+DV`:EiAաmQBiCJjr~9!qbmtA!4Շv_;$Ě_$ KE*b(\{t!rۨSW VrKK]4k1(V1Pqb답-]^܃@¹6t6R P](Q12?,EJ1vsgbV5-N1% wmMdBI`5dQ{ʯ'ii9!u9C6r1bhoVm}싲٬?]\6V @ =.ͤJgR_Yj!r@@ZA͹psg}pirˉ Cc"#Ǧ,[HFto"n=,SmJgxNA6 xͦV)o49GW[ueìJȵɛ|~8$W"x[_ϸ[F;sFn'0˭Ђhs"ɶU`{Ĥ[Ļ~VSHژUBá^U&8g3?-VY{xU{H_ M9oAť\IGr׵;nB@JdI*:77wڏvuYAG4{,VUEi 1T|<>I۫(.n䑋fy?)t#@ЌSIj˾ eln/IjC-{pb1Xh1Gv.Gm}Ʀ۬`^ Q"hpijMrwc3DFPxކWh0?/AiϴnܗpɔjҢXP7[.3nv.aN' SM&e2i\Tsඒ w;4v}J#*V:zI1Nx@ݟIe%q_OGR*qnSȄɸ,H]L"&JC\nj_qݧq_'lQ`ţEIXRAU^m %ϋ-U"!YP9<3!{,6>/C2*hTTu`--XMws([d*$Exu=7]A=kw61x5H ǖw N%#~XK,uAAd1 p>ߚf{k YDt3 ˏAfm𘯢[+7 WIM5sh36ٻ|{M5c ec'ȟѴBbw<#r3AHeu̟:E!{ie7)/Xƿ$@[A PIMP|B[7d[ms=h(-$4d$a--8Ƴz!A`x6Ym=3qp0##Vj&WL}RH‰V4>MORq5*M_AH4j #Tp"&ǖm.aWw0@=1%)S\-F{>} 4;T[5DWw P;;U-G5QFGG*HuX}ͳiHL*A{Yj*@3L#dBjF?7[ТĒ+ *P|-MR܊z#h.l፦ Ga ./&dA~[As_~-M F`j#^ qgڮwhA}.$3 Bi k\Uy囎׼C4 -E%H5`IZeD`FܶX1"=;ȺT*σq/Z zHQLW\2mn$Vd{-o奝V5`Ҩ+e&:/l9 w͍cRTiDe*O,Eu@N+@.}7kkizu7@Y*xck K1댂C$4 loM)n`U"[sӚS?39a[ۈV ^W-ƱV VSAҞ;}׳uܤN{qY 5JWIVpX[ wl|n= 2܀JR4RFg7/pܫKo70"k9<ڇ ukM*'XC\DUBqWjܭ㷸(-w8LW-k]$0_`\}rMqH72E:gc(tየu.9?I߫*.-u*'7?Egw~6qxHt(`I!HU9:G)HR#Ũ4\bi!^U}&ѷ쿤$lĀD*U 59gĕJ⼆\r-b98m G,SKQ@+b(nn./n7(#K"J_wFM~ZtIʕ=;+۝cQ,J$'r ({2>`MAls fڹ?%rimxb)- XTii^a}BeӬ2Y:e [\ kݟI%WddէA CTqͧO`l_wl7պ'J<=kqu9Wa˸y-XC91Cch<~-wKMm'i;UW2T:g.4kBV@-֠SDQmZ\j +"(9P{%& buT U.EKo:dv9 M'Q2 C(y;vA@$7 %HX5Eʦl pa=cX lh+ddE6%G{ r\i DfGymm{]PZyr՗s?'yf% Ҁg@^ #)FDY}DS KJh6W)v̷2 =u1ZI Mi\V6V1bkbj~Q`XmzOd+1NFq`k%.R;>=e$4R) ':(bYn}-䨄7j9I511+nG`=nԤkM:)]Ƽo^-={h,i c^tRU on?Lx׷#Zo]3R<@>c,@_S+J~bh\6nМ F@<%ks%ưϤQ(4>u?\YۙB ϯ}6%Ң @EU/@* G&ؙ;\n\mk%-2KYӪ=C.t |&($y̗vwW=`w6 *̜ˆʈFtw6{Ko WA$LQ$bS%IlmT`SqbUܠ3E3 RVݿr{fG6*CR6CXb%ۼn>CEh`RMY=VGA^@ n7 ݥ\ (FC6, 1-GEٷ 4DićA7Yb-hYgԵ*i+V柒V՘$rX"B+qǻ] ɶ9$Ig]Fۙ፣UiѦzze39mR77$bz_uߤn5pqo$RJ)Z29굩^HJV+mr~/7!Ggu^Eq@ Oq 6Ʃ.^xl/~Ϡ,ah1!mHi@QAĊq Ý!v6xOpm4eȡIG #H|F{;+M|r#⻺ɑM%g+\RE1D~+47}D 9hXYf "5 JDi\I70O?vdUEom $g"(1|Y2-+8XՑ{kJOĎ RhX+J6%UIu]-$ApRg'RU}EJ+P,E|#+jmBJ]4Eէ\EK~A&.u[M X.kq6,f]im4z;71 }GN2T42绅1Зji˞ljhFX$U!ey5ܶOe$&ZPW@Emvu-mo.#5(N^c7M$ś‹#L-BPj|9GY4v q[E4 qC= .d1$^@XC4=Eq2 }lv.:#!fRLW*M ?taûͪK'1M$W!Q++{_s}^ nskZsƪ#Z|Iew!neQZ(%y@$u@)Ŕ[K Vn[P@2PCtŪMQnn+NƐ*4ΟAA]e o//d!IVZ-mլmݶx.M6x+Fe-nn; 젩.aRif[kMrkZo]D&r鉫)͒,/Ku VjUEWrx㹗sskLp"и$@>#+"Hf ̂kSwZ0D5;̅?p b)627.ַyduDZ:F`ycx[2El_;lf>_ƕ|]=[BO)9%!)E6"q@WֶKUjO8/=k}7O_XQN䴯lkg#ථx69h` ċOُ*l~wPG~-J{ro[Ͷls|y,1%BeqJ)Ex?j3]Y9݂RƉiOvc߻_ozۖ7 lԥef*s9f1I,;bni]`Kpt(v`Pr%3E'MϰϹRGwHLt!kJ`!A?{3-Wwn(L”+"rG3I^ńd@MPbp/Wg-_[b^ฌ.lq)Xp;2Ϸq,׳mm0#yXkU LF|FRYqո[4MT4+xT s>_n:ؤ^#$f4bK&r.žrY6lέ"St1Noxݡv/agiWC 4n -!RgY"i˱By]uN1mq$rR!*8c M(T·0'yWm t #XJ_Z m7mNɅ K+rK!N@AZ/oev]]j);;%0~Ud1aa86޷ ޙ"ʆGK F$866ۜ_GfwҬ d:%Fxd>T}q)Mٷ9oV6 zFB†VDNƶq^S" AS=pĽ*?)a,RVdJ4Ft*hB[A<ޔFH(-R;+x,"3\D K( 7,QŞG$jMP u `P[6-L.:6xO8RCv6sɹS\vQ%x|1"~.s֒n6a+jt$$u1Je|AQ̮Ϥ-«iTdS*#a\(M!ǯR3'$+i}r Z#g C TtJx|N\INdn=m_^M][n1u}4=s'`kEg#X_݇!pT4J Yyٚ)tFj@چס"#l7V T`;˳:c)@s>bpC13_m)o ]$1SZj.Q5QUgVCC}n|!Gmu!I(Z0e՗Zb4`xs06{eMpbv")8Z2$ ;q!NZUivΰB*ΒASb2+mMcOu!u\*핶׹y=CIF#,CDij2|#EΠ(Ntj)+R­ s>{VE$aVy56۸IPRH 3ŕ͂>_7u\HTj c,]YDEľظ&$[n5i:s_ƪW56q?]a vю-ЏH' '`Ŗ]@ƹkCbݫ/9=*Ѿ\o~ܽ[M47FVKai$afA2+-WOK̖6<IAjr\1ԴK97 k]EKwmu;^4ܬ*)n?Tg;zUV(R[c. Kb7 Ŷ'o̢v5ֱ禕^}5øgn+QJLSz,7pܬf{{ bx\ b{FϺ\[nB$eFFF6`jJCbDF]ċЫY+U 44ǾoAkir,W1Nc*,R ~Ei,q]#E+ncTBUE (Ij5׷CE< ZI$\M* ϧ㉯adwnW0l,WI.r50 +bE͞__a*rz ;GGUnX@;1re""IE4_bԒ(kZ5#ʾc YP#:.GħPF[\p+ZUAiC%tЬɺmr͜wSUKHڴ2tXAݞ\Eoox۲c$EA@X A(6㿋deg68 ATTDO\m\).6۱sD+*PuS2 !kwidcg4/22+PJ: X\G #*=UDSqV. -.eї]d^rqdU/eܮ;ELbU)>QDDO[o_aUXH\)\¤c;v24\$l$t^"\ai@3!Pk2\k ¬UbbW:T:Յ 0a{P"RcU\H#\r+Y^ԐL@5>4&1,׹ju %(' QHA+TOĶwܬGamsp2FE&zH?J"(.&4_cSy$KJ+^ز(w{ܮw.\,q\5WQ_b-?!d,(A--Ų볘n81=DȤG5VU t绣8;MȈ];tmGQ >,U# +k\n;(iaOFcZuIsm;-rāơ@_*t%6縖mf賸ЫG_Py˨8>$T;{[iacnxZ3#P*P-2pi1P%՟ n-O7jr,Azy`"~TóqbcGEhcVIRAF~kQI=dn ULfF u6m4Qvқw*KƇ1PP 6,&[zYejT(zkKDsLɈ+ jb|z F1#ݱp35a ;"ą] M E< T$}݀ 'JӦ$/TX,AL!Gvf)6qUk %wPaCqe "E~?(ӯ*d<8#Sx=dರ00\3t(|+RZhpncszEm-n˘B-#݈k%ʹ&p?x8G%65Kevbz5t9 JrtNSi? #tXZT~optcrڹ ^ff RjVjeCkD?&wn]3Hܧj3NUj@Aθ`WQXsr/iJրa^Vwn3qlmߘL.o̜nwv6rb[; KŘ*")[&R2#A\prMyC$#gHΧG!.V'T1` =հעU2C]@ɨՅ[!\I-s&])}fVM_ (jz|0E0JG&O MmoifC5Fcیeucp#A)RE-@Jk\=Df.V#x}ugͭط%IpP+L)\È:N1n7{o[K%YyF(b1Vih|` R۷=7(;ˢg5LLE?`MM l -< 5Ek -02(5\EEȫ^ǷHRֵT mZy{Z뉣>m&̄b5e67ٵ"P)$m *|p $ܶnEsprE&Z((MQJ\CK5 'Ļk嬡uS;py]WVYC4"FEO\ںsq},"yj.#綹JIRj*|q]÷qR"tEi5RU,CpT!ՒIa27w3\[L֓F  v7YO{6z"ڑ 4_3{\nѬBT 3`Sj|9G¯YẸETF,]ȩWaV( el)bDнC$7aͮ=1EUhwx^MA MQ n\{f۠;Vw"*./Pyiy|.6N׹B"AAθPrq^GpלEI$ˠAF _뉢OvW&F9a3Pz[3\EC>gkw.7C.H2SDui[7Zh)gWQ'IpZ Go F)9Zejk+AՔv--{3E^BUZ(1!ݣwֱR/?LHH^a`(3hF dtK2FP҉:ZxaGE "qP1d3FąȒ,iе:PLM E~_C?Ԭ=]*zuSΕzrt~%\N% U+ο:ߥOLI_MZTS_}Nig?"m#?_~NOZ{ۏ-)~9Կ_z?ѭ;Qi)Q]yii:tR|k¸LG]X}oC]>هq.IޟZv+SLxU0ݽ޺/w)NLWuB'꯭AvM_OO5v|5VLJߵY{ZuU4:WGOn?-:~5Vc-titM-ovWW{O详b#d?Wc}}V:ݯWOFq_OG]uu4v Z_k?He{]rգ:W!ԫ+G{[ٗGbޟ__RBM0OQggT׳OUb/~Ou;׻)ƒ'ȿ~:'WVY׵yB>_K5??tkM4T+dZ+'MS~|Ƹ2]F^֭}N~C7}MSƴjL\~44Pi#ai.ܥ{Jbq*!F;4]z?*Y~_>{wϤn[F u,NI?X]cOT#]߳f7w?nݎ.g$7o?E;u:uz+8NM_ZkZ1uB ??^ߣ'>_˫_'}'}7򨕧-? Xj:i {r}]{:VYhL-4wRփOZ,E4OOwU4ʘ'ͫ>H鳯O ##_}Z~O>E-뛱F~hGS'ܽLU͘ha.ijn/Ǩ?5y&8~;'c]S[u:c%Ɨ[,ݺCuoMu?K,f D]n#|g@ˠo}7Ԧowc?-gcsS=a2|{+;羠w(9Tg$sV;4m:j@j\Si zN5'Q3,tB467;(Mo EV<ג&4$',;46NP +Fg{9'9)KgO KinW=]嵆,v;ܲP_cYNAhcLGԜ 7Z4 l3.t{T>t#]S:{ne"/#mFq#T>Q?GtfV_>{1 c3_w]5!~K«}UMv5hnC 50{nĹx$إs9""}UɃ"jyokAÉ$.kYSٷ$ %oFwjA4Ԇ;}coqq?-[ݿ9hxd/[5fέ_] CM[쟢<;6GU)ͰJln>JĶiGrWbևq}R`'<0hݯ d(V據ؗOo/Y0N;mc_ղZ֐rv#N{}g4hK8V508h4(XbNQcCG 2;ᕲ4)R2F, ˄ nW7שw'soѭi%[kr)}Q]X{asU l|\̑ mm_ 'M\;,ɧZβZH־ǗX/bz+Z!c?M+ϵm4aYu;o*,W:XT2X+h48>ߝbl$t+ @Y{\~wccNʣOE[պiM\]4Wcv~ݺ?EVGFΜv{A ͬnO`EƞLMEHAa?-cw[ټ~2H|MݩVL%ѳ8n'^$ry' e4R'buǷ$ZC\ND,124q$OEn{gjq&^#09IS0KSFY3s̫zEsɬL vO_rߢ_ԱNKUXƓ?Mݿcgּ+jە܋u OQuϮ{c7zoPfI [5uoKՇY ,hGS'ܽLU͘ha.ijn/Ǩ?5y&8~;'c]S[u:c%Ɨ[,ݺCuoMu?K,f D]n#|g@ˠo}7Ԧowc?-gcsS=a2|{+;羠w(9Tg$sV;4m:j@j\Si zN5'Q3,tB467;(Mo EV<ג&4$',;46NP +Fg{9'9)KgO KinW=]嵆,v;ܲP_cYNAhcLGԜ 7Z4 l3.t{T>t#]S:{ne"/#mFq#T>Q?GtfV_>{1 c3_w]5!~K«}UMv5hnC 50{nĹx$إs9""}UɃ"jyokAÉ$.kYSٷ$ %oFwjA4Ԇ;}coqq?-[ݿ9hxd/[5fέ_] CM[쟢<;6GU)ͰJln>JĶiGrWbևq}R`'<0hݯ d(V據ؗOo/Y0N;mc_ղZ֐rv#N{}g4hK8V508h4(XbNQcCG 2;ᕲ4)R2F, ˄ nW7שw'soѭi%[kr)}Q]X{asU l|\̑ mm_ 'M\;,ɧZβZH־ǗX/bz+Z!c?M+ϵm4aYu;o*,W:XT2X+h48>ߝbl$t+ @Y{\~wccNʣOE[պiM\]4Wcv~ݺ?EVGFΜv{A ͬnO`EƞLMEHAa?-cw[ټ~2H|MݩVL%ѳ8n'^$ry' e4R'buǷ$ZC\ND,124q$OEn{gjq&^#09IS0KSFY3s̫zEsɬL vO_rߢ_ԱNKUXƓ?Mݿcgּ+jە܋u OQuϮ{c7zoPfI [5uoKՇY , adobe:docid:photoshop:c4ef3411-78b5-11e1-9a9d-a708dcdabd1d Adobed@X      !1AQ"#aq2B3CRS$bc4rsD “T%d5& tEU'F 1!AQaq2#3"BCS$4bcsDRTd%5tU&¤E6 ?MVL ~//8b^5bQs[;;Uw>,/Whǘ峐нMowy@q5]N֕ʩpwiVTG_൬҆oQ~$ñYmwd"}^OƄ fGpV[@0ݬs^~?lWDZl}5=[}+Pka'P|};eu~occmrz<ܖ)7(w\bD]ɂ.- 3h$gn!1ޗ{Bri0뻑-GWwoyԿZafgTD (p^q:j1"bKՉ7kEţu]JNWI$xϓ=! EmUOh3n}K noY7Bޟ=e _l3"_ V`@z2GJF#4a #/걍U^ZAcSzA$S9*u0(T* .Gzv F⋈QO;(DS5$6]E#֍DU! Z H1Fj"5kR汨-TC[}_ rZڍsf"75v DNT}VB;*;7>RQ_Ggv'=9WL>ŊB դҵk-souu;]sZl>6/bs[kcaOGth2(VpF2K{FLr5j*#4i_gj,u)ZlBTjmLݎ(kIr{W]:*:ENNCF,$^$\*޻7 tU\U)9Mj03E극.[E$&*S_OdsM|OhEEغs" p1)p=~UTcqnDؖ5J&|W9qg]ߴk1pI |[zSFe];W[/ܶ?h^{>.G>f.~imJu-I3P]SqSi`N1~OO-ôڑBK}iKmRf`=5|6b/~O-fg'%f j"lb[)UͶ0[ŴX7icƷt<,cYq;hnjT\)7(_Kٲ!9nmZsSwApܝl!{mڌAΡ!iTF@^`sQyJڨʷ"[J"Uhw^T)7DQ ItXSȲLT2<bs-mƺ4^TL *kZ:tN|%W,u d*gǁ0+aDӡtq%FS"dp͙8UWc T!ދJB#ŘZۮVȈˀV;v8d≮n:.U+1Bmz!Z?з,rG,rG,rDSF04ԁlxRv2Q]SV(aBmr\Z`hoPoD =Q\!.kqn Kk%>RZ:kjF0ԹZ)@Df&ND'f.U鸪%@}R4qåR!OzY&ԋ}%<[s?y G'6xcCG Ɛ BHDmԳ>>ĵtXuyp:c՜l-S@T\1|WuɣC7' ~}~[OO έUBꙄT 3F; :eE0$@D?"mVXG~_z.ZBkn#EYPgNn+U; _?M25s=Us5kSjubFsuxdPKS#jXa&45$E$F"1g]o^ Pk'jx!IP(%r4"8Z\/+\J+jbJPu]U0X`SPA ]r#Uj5UˇF| N@"$dwuTWx[;{4v_bxj[miæS Za,ءvxn!IsN~[bKwx-а}>~O7=DWxNThǝ{Ѥ2M Nؗl|Uf*@sӴD-)@.T,2T[D%<sM#2A":9{L(B1+%WTצgS&j̊uf$uli%Ӝx&Dus p*U4bV & " B;rF$mkOôi+kJPfsf#$;{g``zGz[|M&|"B.@cp摬SH3ՂW G-koUa 5ȟiOZLۥB2 ^=-2w#ݠwӤB2[JT+,9 9)Y(RE&UTTHNDi]:4甈&Hj/z9sLTZ$ \ԛ4)j%I[pc04\Ndd#B9d#B9d#B9d#B9d!$OvFN4#.ʍG9z""*"%B#M[izSPERT&Ɛ1d܆h1ՙf g*9]TDĵ @~\ƐE*ӚDxP(q8v_: Z4 Erゥ(*yqVǪi.k = ?`t,Zv@'T 1䓮/i4P; 5_;sIO9 :Z⸕>Mj3eėE:*""5Ȉ-=˛U) a*U U-iwjB*ʉ?ce^,PͬqIO6Vs!/j(2? H WhwD)i,FLciA02?{nK_ROР1JHBMxAId'eUL9H芺A连GR)-&jYJƨ=R?jQR+pfblˁ? &SP6u('PH^FVuE2ӤgؖMR5U6fRP8)\F4H_~r )fC9G<^i(aiɚMxRlM%ܩ[5PiQ`I}"z7ߡ"g^uiLNICxIzH."#Us?-b0ةlô)Bvk "a>Rb=$ hLNYDFU*tB<qDA1csבU6">J&&TpE:Ke>#UKr4m,C \HjsgGbR6b̚^!#gTv#!墝Jh #&,򵨸[{4UW]+[M=ct}*K.Txe6-6Lw9G" NFKFὨW+#jq7U]>>'*X)ћ&Jn':G_s+n,`ҫ`kG7v%psp$`7 owEY7]vLP*f',ڢl:~Ks-TY*wwC /Pqi}j k>u/Լ!oR M#ވ3↧J^~fDzu畮ً55$HɎE=EkᓰPh`ꆑ\7u0ȟ8N(] }7}?b3-7je6qdC葌n#Ǽ ̃=lx4#r a x/7G5:J? f yԏ5D҅?1+VJpuY˥G#QpKẠ4Թ1N1ILo srYNmuYĎboAeZ(ZC8ڊEtYK2 ]1Xf\g’Rt:fYi riޱϢҨ֑(-;8ᨣ.bc6T.ڦuSItXfԦ2p)jr#,biB L=D*Vu)q\UZ(2"DCm(gxP59!OA, #+K>RK& hNIJ#䴯zEEW>$ak\۱{7&&'%ɪR5 i6˃gwE֐G\.s6N &F1{,B~?9g;[wDE?c/,ӂw7>[0 bn"9J \ȎTe3;-$>0z"mU[C"OWKVLp~1S?UJU)qnpnGW:F3ЗӋAکIVѠj12"Ҏ V4WQe%#ݘ/r'BZWuMӼt#Ga:o-%z.E4D &- cQKޜNUTKV\ʍJ][]Fk1+[V~vޮ<={AGQGgl>$sR_}LLEjQdMHhcXֵ/]UV؈^D[sβ5ZCAH,wE]G9S%uS(ȍyدk]d1F%t=mM_UP-J* KQDg(d$wHUޢ- qJ-0g%$#@#gv猣kcqUjbr2)mjh+&r.D`bl& ьlmֱXSpv93\38x휖Cr߰@~nG:ά - F·xܼ @8 {6\79mpt8 Tm[ƫXOKg3oFOI|> J=*􅧬CN<&AsIh7+nīʽ ]D]o*nӱ%N.vJdTz|KzXqiD:Do&a(ՍIh>yFjV1FޭTR*/U"*`1$DJ/Oz=>B 2* VX+buʮr\UUUri rց+=+f%17e|?Wu[u$uǥ7.ԑ)q2(qbEb1QQWeUr"*X¨ ZlkDtvKJHTRAG4iQet*2b[{V"l;ӼeKEh1x2f`MP!J/3WޠY[eWB2 ʫ\ LgKM(H$d5[rpIseF1qCB6 ƧU؍DD @讃jG|l}>ohE~Nvqj]o-,![9?O%\(/1.ӯ- ݷ~%~{tfrO=?:nqwe‚uqI 6T%W-gO"8Pʪ/}ȸX뮲KY⌢V`˨ʎ$-'.5&o7%2!=D2ڏXsfD7١_VvAұh5ڜ8 Xi3J)Ʈ`C"aWȍKysY<[RWIߚ:biIÚlmS>Qq.QȨ=Ql5AsS61L-rȾ鼻[AR *EKNҵ'U'32szX?uF [ym\EajRXV UG hswZ`c`x1ؖ{I̐!+!tvk-KOC-R9!'ZyO1,>+|n3QO$Z BLV9]7$v[mSIj5G< [&q/]C"e>BPMD"xGF0Mpâ܀>-Ct ?4Ys~2e6B R~ <@9f"EQ7 ԚhfRb3VX2g~jXFG.M`TU*SM4o=ʯhy4ꊰ:>C$̕珷I1{&e|R.ZjFz >T"cbԓPgOI wcaY-D\Qvk:A*YO1r3oV A ̓ ܐvUstfKԐ® |,}VZA4o'=HFS*YL*`Meo4!wf~RN føUt_=p%BJn \L v&Wd<1 3%2ȞĵZ~xCɃLCSO@Sh];AJ$d0.B]?Ҷs;F,unv&u{?}7MFw2ݾ;H=5J!paE-N`Hab4&&I\j-Wj9iB.! 26Fyz%u%jªDDZk d3k3ѦŃW&$m"> WpuTvƶ̕+IaPEɚPeX0 c0Ua\JەRUTDX+{x5{5yvR\Tëp W]}U:5Um/Q@XIApͧ.J ϔ`!kA EV1ט*W2T8Iƕ"R6baDj)TFk#W&)JbIA8c6AU (QSwjW\oUU[ 9d꫹O%/ ^m[qwb; ضwȒ8ETwT/m/H):|h;EP\v7~DL2o#?wYGi*2@d蠓-ʑ"Okb^‹F{61B(5ZH-oO:PRJW:4ͩRL`=$C21*z.E۵ZPȈE`Mר짐ʃ Nc6zkE{vGUmQ{mȒ"ǣihĝ-[LF2ƨG_{Sr*bTD!sQGXŸo%CzoYjXIO, F]E0s{+{A% l˵- ف`C:U興r"&UUK-0uh8h#h1j5":=4q@Elk::ڌįo[j"Z j6j}Z&W4J>E3 d i cFñȖrإMGtZIGBQ*D!5Ola* 9ʍtz4s+jL:h)b4#DDE)UHlDDDDDKs'.鵂zn[3"-7?ڶ.E_e|˰ڛq{Ne,اt,ٌa"N.~Ӷ|oevl;'|\,Dp;`|YQ/*wyYjZJ ʕy#Ñ?s +q#ХFr*aE]\.,TǪ)4ٰ[̹5%R&U&RS$TI+qP (%mWv? `![x^aCuvfꕍ>g<9?>qe`WZƫɩdk71ڕW mXt⦒fDYxY ڔQh(s#?vg8#"x⚥'IPh%iU8*TmIK840gC2(Bk;@?h'P1ŋUg= %>}lSꛨK>):1ovB{KkT6my[@FUK*CK#j¤ t]>tsH)L8MJs^z7^Q0\VGdcg{SJljTZE 2g%HUƬ3V5M}سyi8ɬ"5UzL**@ER+"Ⱥsԃ&/[Ղ״ZCkADCLOT7y#bQ=oe~PC]֗/nS8IrS=AY z6Xinfj73Df4D G0j|kN}Kp̧-=*E e26gCVRx{Kz;Z'*_*?'>M 0qzg\@=6\]ẸԸ¾,i\Gh8 M7䑙Zh"{1Su\'Nܵ4[VXQZkue2E.պAԵU*=bpeIa&̏#Zmf~0kJ9=z&G*D_|Mƙ -k gn:C~KL4أu*3mx5ԪШy$P Y\ir8V׫Zl*pzQ"=>)ӆp6<R$RƄxJR+D7bT{RU\[J~S&#LZmDDylFV#jIvow+S9\EUR`TR) [ϋdZpݒQRE"q8sZspEZҚfuz""%ȈrlZ7kTĕ˵{e rL~l_/+FMjf8Q`&MT`˵WUvgPbKӻiQW6Sv^vyN "7w?^ݜ}vi+{)Ҷc0& r'RUôBF[%qz;R'vnL(J(`=v;~C̹d~G#>3P:<]-: 05*DM(T𖯳[4>N`dzRjBcT55n-`4͕ L0.%kh+):8tG "ptYPE?⚟Qzq?k?wk62`R?Y @CO:pi "RŋTsDKYKss֣?D>Ax+Mdq$[3%6)ʓ܊hux40?|MR9#^&P'!- T M%$j=u^;,mP\s amQ@.IMֹr#3(5\4`Ta!Q|gF0A:8s{)P`Q|dE 2)Yᶥ%}OIH̉!0In2vB1vfm~eIԉ8™R6].b Cډcʾc GğYr)Gre(ВQDtĕEs:{^K,_Z]'MhO/W .TJѵ+>AXGƒIwI`FѺ : &l9CuOGBu>/PXÝܤ?F$pYiZ{k@mj<|b8]8Ti>+UM ?QcA56wv f'f4yU^CE}WqD4ղ;Ij Q<oEuDhP;x4O ^ό>EvfC զ:ʗy9UN TWӛ͕8!8(J sxѧ`H,'ZB4*HqCYS)ڶ&9JdHjT=M8OJT[|Q Vi]ZÁ|P!A.>RԔ0SI>CSfrfhômL~|bǵ ~wi[}ku^L2~җ!nokk<۝k鴠?I۳e"ElPJEL- ktn C +o1#* 2ܨ }{ke曂JW@T0,ZhҿSKuYʋJuN/1aaTK, s*1%s֣\}>J-VGg [irQSMUÍ9KRlċ4L+& 1(Qa0Bn<#nf10VԓpU1͏z5 Mڿ6i]5Oi2AeoGJs(V+QUvȈE&%ͻܺpM0a5tE}jqW܉u n !U!ZJzb"~@N"v$)s#!SHq뱎#mrhUJ%-K-*"0i4LI iP!PWbS^zulD^lDDo""r&DMю3OжB;/}VB:/i̿Ii q#vϲǬg}OQ:#|>hkSճ̑hPgHwM%J"ΐ3Uȍ:"VV+Ufz?Oն$C隵Aƃ&rşNfe 6CQz&$sz*+JБWJА[NK1Rd͒n4\3oY,C5Ȫ )wZe~#; F@M˃jآ11wW~G&P2ݨֻüQSU[I_֖6s:jHĦbWHSH{qL٥kq ^c9n[ܭMz*9 LsEg@EpHJRaBV仳? ѸLѤ}HX54u>"VMr4A|1F+Ic M똻fR)L,Zm])9 :UBe9M p$ QsQXj9s5$29kD =Cϲ*WDJ4Jwtrlؿ'ޝ;D]"-}vOQ]z]yfh2zb93'%A=QOKgلf~Գj -iGwMğ:щmأ7U*Q=h0fQI"NoMmȋkRY ݪ)UyXj)Aݦ#6g: \(oB92)+la.g?qz{9M*X ȍ! b޷ A=cyv'C!ZX*)"R HKt1pkQߑh}nH4WbAI\3 NFHGaBg~+_$jf9}D# k7!r]{ظ5b+"\Od pSt3uё{]֔SZbdXByg1zN$Ӟƴ͍ kEi Ɖp'lu`Y:<٫S1Z?xu;HYM!PTR壘n\ٺ2 ƕyIhtSTPem'*SjȻ, 05o 74FECqTAjJdto 6:\ݧRd ݡ2B ?*:^ZBzgYqpV@CSJ PCᾓU4xOqa$jf/Ȑ8%f.c~Fsh]' '}Kv"ݖh }[t Hw1_^nNR`R߷<R`.N_?~M|;ڵҨE-=Xswl9] 5p^O`h,B$W=16 }`:smU`DgJZ*v}D4(<dqBd#ҕ sv+/Fᤞ$o SN9ˣ [SNh#r5Dj"""%ȈK..M [\\Xz[*tLڋ;JQGs[?RwK05?*G}GhB-g_d#`çG H18Xn'-{!H{\ڪmָtOE/u:Yk֌x׫~r'5մY8uyܞNo&~d7-ڝnP9C\NC\n  Q_Z6w 2ϫq@qͫFI Hw) ]+B^jT)֪L̦$ -R,kLĒe[Ě;:CB.TTg֡lDETTY{ğU>oV3Zyb"; Sb\:7VBXitu7ƎPQX4QLhFcr܈rQ@FE|_JYƙy.ۇvj_X//KJWŋte(G5;6s6yZ_t6PT= ;UoK@|r00ֿ8")YR,`LS#&7z% eO]¥H T48k xw Wcc\lu5FB5dZ)_*uxerrZQr`Rd^s5r\ѶTB4PZhқ.5aheW, ݔUkh:_E҄1,0Fj+Ƣm[vM#![^_wQwh)P9:/3#zg%^w& GR5FSt-nQ״ydߛL$\[^[>{CJ|ͽa_.h4~/od6 w/AQB}rwtZ,m=z=mܖY jI+BPLF4l*\i@RDI@EGzv_n,QPM4jJD# 9x0EsQMUFZEUDKw1[zPusn'gY9̈́EŮ%Px[ 8s$vYQ3L/?}Qǝ0T<[r!<񿈚zP:O>@E0>U.i ?E`E~}'Or9]wIA" rxAR~qIi(ipJomNvyidMm֛>(*!棪TJz|d!%~k+zjOPo?SlAs7'ךkWH%I&ER=){8%f4:TXXees=I꺂E0*,zR QXK D3me=7hT'@[%HIdGH ژۍ`ed4^s'E;ɑ"*x߽˳Qͺ- mP1hjFŇ9h{"9hR+Ȯ=:M)%5Ɨ* 6B~2φXF\”#)4`3Xb=1ӊ)P&BVV'| {:v1 Z2C l|EvEl`y@]BP~gHM'_}'T #u:A71P;+\xU[wB^? ̖!E&(,rSi,p^)20ΡH"!L6D|kjٳX2.7FњKΦsU6K0JҬQG%/5E^ϣj0 fLwcms V~hoG٭5vuo]0%7ɪRWGۅhU/4CJ%$3bh PGMQ¾+p޵4˯5k+"eFYHg Y M8/Ӊ4T`&MGgf>{.|Bƛ~R~o4@oCwtt+Zv=<a;)5,}fErd_-;&,qKZRcG?nɧ\h65<%:T!MҴFrrл</-utVOcYAh˨Dga u%GjkUmāa,P L!oȿ]Pb Ώ+<{-nL(f_2/Mƿ +_ P!*2ȥ'n:x+cGv-/c2( ʊf 购rSp#Wj*萇 [HԴ rªfG]R94py߉jQhHEJC&d9RfI͟7w%W2.|lVN1 !b^WZ+Oǰ*=(Bέ3TU6b9uERDOStF(\WhR;1V5]rpÝ5NL&LuBPRɩԪR\d¨53)bcp YC{D]čiI +[{^=Xu׸h:,rg'^ۓ<~ 3715Qӧ|6zkGavw \@Ƭ/uwJuy[Gz^6bfW 򱹛=ij 4a[֫ h}姄(Ss֤Dۚ_ܖW%j] FZ]a|lew1h_GZ,&[zwy؄=_ s~~^mbAd|'Git=| ҖnW,auknOlp4=bFt]`TƝ9:|:sp+T9yP'l;͕a6^W㦾֚Rtョj ΔU#KTa /&}y`-Ty|_kkkT>ee idȢTIuEbxz~w١ʟA]݋3\\^&t9)VRst:/1{Y2c4l\|R \x#Qj å!2+qIR"y6uɶ+&IukN+_%UJ%MC!%MQ }o|72+H֩\t43&=4o}.=3F_0A{"|qV gRڡiPNgTu*.Be$JЯZP`d9К34#ʗ?1bs I]6Pu#Cq.a ̏K37*d< fiEXA2GsjtڳG&ka$y(hbOM+&rgC Bs̄H!Ee rQjZffYcbnrH1R@)붱LXFIK)u.:*K-:ʧ2^ȿ3XRX\>$a,rPٗ`p_Cz4pHNWIezuٹ/%}տȲqj -iaPMJ^$8ZR3(Mv\)E5\0_tLNOj7u>?U1̏Km*eNU:t̲40CvvyY}踶7&oPӲMrhڃ?RS+nFϥg c7?6`B~\uהeef̹n&k .dgZg=(dȨ z1is9WPNv #kQym\RX\Gb]iY UNqlj~W 4Ək8R>IORqHn3n@!I/mqO7m :KMuEbX5`1t_z +\|Qph(棆f1/s~r[- 6זs7 ~rď 5C曍F'*S"4jN\Vb\-U늭LZr/檕=Y |2o,l!\jB?#̙%D&P@#̜Z̖"d\H.!J޿©7l'_|*M)GjT?zMun)P'6,W}|E@gVL}Rsimv. 6 FL<\'ǵMd0?^/m8B(A7m WXʻ{rf5gs'bP S[wV߯m\C? Otq@_=}<|] n^<{67LDZyYM LWxnh J^RVsb)]Bƍ%Ws qƄDMDN""UU o[?v n s5l,ݗpo vKۣ|CH&V;pRhW/zzoHgz|R_n>I0 #<7kr./{TlR}ԗ9[/7YeLKqM(i-owyn MQsiov]eT'ˁ7QDK5=`:LTJQFJX4d+BP3<8PWҴnV Y$ O+*+ψUڋvfT-C?iTl/[n[˱ҥmM:A3NqMaAz=P1?9}0_^}7_ì#z>o2&AӴyNǒQ@GBpN4ƶV\lm/:bUiu&3]HLRg(y$"O-9ݬ~ 8ZrsG&S>fj<&ښR _QdOII'8ۡTBBVuncOP%+Yk 62]r=o0C3BifÜiԐcu|9#˃9=VL/,$5iw8%GsZ_8#/=b%҅بă*GE$)t/xSVt??E6@9Ȍ:Ɵ&K571K&,M-M礳"IJJ4Ɵ{`eϭRXH=@BfTXOW *~_c3&Is}Mms9|\;Ҥ4]ON+GHڊfRg]ڈv=kDbʪi_.^R}ksE4}Gx(PɕPR{vv]cdv2.\.-", =;]m.OTs̆iu% H6?å>.\dzl7, w6/=فar/_#PGr5"ֹzX"3P0s-|=WHTE]6^jiWw?1WQ;oVkRHXڗ[QjS0*.h4!ֵq_5#a{ªsb`w|]ja [OEtь#}l4/\LEƃbƢxuI(3,w9a qiQ<8n-hk- wMơu#Ss'WJFJ@S_~ B?KGomāMM'JXY0P #ްwS!;9;vhBXŭ8y ֥)thnoa%\YN`t~~nAwc5EMDx軿-#\&uuH+a6^[YZ%>q~7`lbxgߴoô>=fG w6[FH"2aG7d}6%2bGxڳpVܻm,z%X+=K"?Ɩ>{/)aozm o˷/_}~=4rvh+Gw}:y,ed# k}tZkrqE\.ul.3M-+0 QVB~@]u7bkM-1V#uk/:N-9B {sڪV=b;6Vz؅T6fj+{6{K N{ZLPְn=W5X\ /b(K{!,rG,T_(]aXMUL-R~O(ML,lH9 7l`̼+#T`k.2?2T]Eš?LH񿟪THZl\rRU%L">)2(r?'EB}ϳ%m @濊Is5VEp:f=?tL ,zN#7d ]<ҏ ݬbLgyrᬏUUMd8 ƜrsN`|Y bcC;V]rWΟ/Ņ5~Rgٿ/BQ, d2@SøsWb.aCl?F} T?FaXJՃj o/ʦ@q%/n *q@44<~Ȥ ONK3=ƄhT*uV9lޗT2rlRwDɰqP)7ZxN MMZ<ۿh<ԥʔmM=Ժ#y"Hh#>g1DC#>G'm}帖P4psfNYYYM,M=^@ -< ~Zf$8TJ l(LKWci4~ QxRd6BH)E007*?}<h؆2QϨOaZ;?~\# r 2϶o<ʒrEmcTZ0VmIDtrS+*7Hj*XjƧhPmJk4GS7@}6>9%ާɹ^^^,Y?oPv;~]udv~֗4ln$kc`R-#Jj%SCԱE,T+)2$ LanW\+~yg:r;[{IsXF'«4{2<ȰYlc*swhI$:)TjmYtR_maɀ_roݐ !i8UXzOZTƩI5!R j.\RH/$~̖?zG82q#LJzu ACj)t>Y,_O q57yK'@ʎM>n4BM)<2O5s){01?C<AF dGn!b8r5-4zS vjODKVIP*,y,;`8%B ^pUTuj& ]1Ri:P5B`@"{gbC`ؙvaEWaEQ.2ftP w[,d8%BzXN{}[h-S1vlXVsDoKk^S̙+mKQUGpbg}^8MRptd$yuv[~g~햪y~2ϔKrlGFC!M`ً.Ol}3IjÒEAXk.-|#8&/_Uɕ:npS}wg/vqYI :snP#:=ZiLHܺ+޺ahs_*KR+)qg91ZFUr+UZLDNkk]V湛Gsn7w\gmu+DhTTOG[<|H/ɂGK /A A{O5vp2P(:EQaqQr lww;bpqwylӰw m>7Y؄Unqu#}zT TRweRAWkGJUp;j,;6CPzeݣ3L+߹VJTk;[N91@~WyvwP^uSn`쟋ֻɲ;QgotG uWҖ8]l?]'P|p1lo758dko-#~s37pܴڦ3>g{M' bR8_rwSJbEB †iRȬAɉUWQo輨M*R~*_DnJ}OOA$u5|F(n+1] Ź6ȮUZb5VqiE}·4LRbs2a4r-G#G5Q*FxU]e3,NA} j:n47..k<iJ`[ZzzR-Z39d#B9d#B`)鲷x ,|pq#R@}-}y ??k/WqĞٜkڮQWчPA(u@݂GMݩFɆoi,>Ϲ?x*u_RA.G+";#aEK f*{!;VܾY%/-=zj'УiM(44D4TSj"<$C\l\b9,G507IIxӍeJ ȊDQ/E  wT˳jiKZMO4 {Y&Cf" q@ 9 '/.Yn6SK>8N dsS92o$&NVU8$J,2QsxCO4DyW)9{%#V1 L>8KE1fSZ`˔Q~(E۞Gmbf9?m`ф1C- 1]~LY ;9lRFS|JˋJseFD=(ȥPeTRN/z3龕%Y_}Q䞳yĔ޹I iP h;2//LQr?xLz^ 幆e*o ]" V5ZEn{e_Ph_I|Fm]>WKUƥ9iY>AFR9˙hd&+4zG 34|bPjRE ْOdRD/B i/t"f-MPz}bRpN;=f^e_5NuC;Jxj7T(^$Brt>X//f`sgM4b1>ӴAVWwBd4]'Ɲ6jXdAKhm.VO8zy!&=Vak1n'rZֵ/U]1LB?:<:pfP Ռ #eTeF7S8OD:ETVU49ruqfi\ Ej)8NKu2x Fڊ9rD9"t2ϕ Ӻ$jM:e(Q%ɍS>PPMiS:fmĝg"54`Lj0GzsW#gmqJj"ʮ[E'xFζb. G7^A~b~Ku涒d.aI%dtw0Ċϡv-_y̥,U&DD6ZHtZnSX΅0&!&g>\=44TgG*fF#Za Df&ZRr|Q?-1'ݷjw= ?u&[nVSUI36MF1& T҆ԧD"A`i 5cn%K[܈a$\z]6;fjxZ`Xn0 )9JG+—b~rȸBp@RmDZ潨sUkTTبJZ,[F=/srXY01)MG~y91_*'\K% ų ?]F77qȔ`q̦B%AyE& 8xڵGuzxr݆W7Z 6Oc#Xj)A6tSR\ #[a^ #ZW-ujIMww 2[~ؖ#v* Joi\ޕ泀ZX!qe`aN?=cZGZ[Xrl:w q9-VDK:LPL_VшK M:zn9EK/w}@ EB!bcb#Ok}q$I)T4n&v{@9V=ޤ+*kQBYRڐ4xJb=j -j`|%%Ɖ!pkR#ˡOsD^ p01)s5dҍhsi@Kr8lk6&Ƶj#Zݱ,ήvbbGlڒl;M=->"z8U{Zë( 9d#B9d#B9d!Yg%.f>?{ʂ>,7콥؜[;v~cQѠqSqk4~&:^ޟZJN:jVHAGpF]W.A JeBsN•SWtm;\I:.VJд҆bT% P{HBꊋu?Zd<o@BS.$1 kK S\Ï1.\W\3.rgkXcRSWMCFAp T^C2!l6GW*aNUU1WOR"" Q/`1 feB9bۜKs4_s̴\#: 0Ό|E˖"s ,T y465FVE;ڃt&$\sErXE,Y=KME&>*nZgØv:ɢWDum=`#hw!ݿ,ۭ*ռɑIeӟ( *֙KL6 _\yiEObf?2/P葆0Mre`ʮhUAm>5B;af^2HBvaa^̨I<1y$%#(cWvwj˗U@bK69摭V $;Ý^Ky#ZrXIQ\LtvZqVcE%R_)RcMhL1֒E,{WUEmXZ+Q)sFTJquM=aP ]gO8CdW D*#V+"{RoWm%"WES_1(JQtӱS^Б)4#ʌjx1iZY*[e0nM3~)ѢdF8^98ҩ4c(YDf+bv k[kdz\2jllEtvaD<%^hB޽ϳۭ KfYQRGRԆi"ݥ:C a >gb_pG12?m-l%& e~|PHMMuHN"=;^.R>xUA#orB^q&] =tjzZڭ1imx`--ĤSHZKyȘ1=qz4]:LRNOiL)OF!ua"5՚1HRs6KWk"&4sR PtfeֵFRRd,G [mUo[5UEr=kG&Lݦs'dكFI)WS%,T? Rw )m} ʬBLӴPFFtsv'= ܍Kt=_SorXG;XʨaHjf'a~3& 2:5o3?Y1Hؾ?n1D4K7F+QF5\5baVusb+ 6.]Qlr,h \P4vGaDj"K;!@ja-[R*x̨JSChTH $4DQ"brޒ'kvb|W/GGGE-zF$ThwNfcX@lFòG9,DmhR7O]M dCsM>Ei]C1ۡ]dZoHCN|KXLyiD1\GuF9Fʈl蛡+Uqk3֤!GePBU-dqrIu@ڃސr\rq)r\U)Q/R-D7K0`!kEx p2=F{p'N_Y6Щq"Eoyuꫵ^}9X*^VھNurGf%`K{,(pWn]}_:w-^n'b(B:ܷws&gG޵Pb!j 5TGZT0g+s\8ܮX!b{լKRTéԄiU:RI2=_NN3Z*!rQp&i^˧h RMV]!.7N̅dIi $J"29y&WZ5WXhU ʼn'3-±K4sF˜Սs]Ȋis7+{V`银l>yy9GbYaۇ FwPpv;/W2`.ju|;|۝w/ڿyD.^w}V1ڸn^e_B)Q) c=UsGX5UTD5{*hT8m&'s%DŽ芎{q+zZiBYIOu(cKuBc ML ;j h3֣~Jl#41JE m*#aTM"jC4,k#HHs{툗|VN*/MGX§q!Ga a0[zp6-aR3J:T{hdFe";FFzm-Silbnq_}if;9l:L?n!! ILMGdQ`çE$Sf אa}3$Fd "_VUJdӣjH!b5a``Vcir2# 6ePռXʝuV-UGPjQȊe%3Kr\9Q/}WF%#4P~F_4| hU(UIV&lV}PaeF-1oNtHts[Δ ,ve zf1kUs(H14fm@cn^"0m/ |^-Ev)y7(eg P%_okcVHy\k ,HpC59cIT9; gdٻlcanei?Rr7Gf^P?˵%χ.OL ;.NwL˦XkL Ǘُ-]x7?j+k}3'z}'OX.&nQ3e䗶l4XS+xA0nOf<"*M*6]k_OfUj9芵MکZ9WT3Vl x-8\&Z>)}<{>UoM-޽=Ce*3" G1Ƽ0RG"[[jTlo#mFDrқm>fF;0`%,E7a,g̶#_fh@80F`Q.iE(9seoik\nq}mva͵o嚝fha# XTFG !P J;Q$~̖5-_9޷wWCR7O"Z4?oĉj6FYY5U*nQc Ģ4>4*}7ntJ\ל? DLA"齑IdͽU<ZJ^~ p/Rq̶TbE$:7F*UtlI#H2SH:P 3Ҽ`HiPU5?sN*bV桴DUUDC 7Z &d:X$V!4GH)\7Byjt1\svIQS--L?WhVǓ*M)7u L(D@5EDUjE[y$:*g\qiS'M'FV^P`Sj4c^"$E!N`{4ȶt׬].Kn+1nلvz-rG7-dTEƻg"KJo~zi"ǰ) Dw]Msaw%"za_,`CgW}^y2O$PLr!\Bh65U{56ܖ}CQu THIQjROB{R#epL\,VzqMzCQը#-Ϧ鹭42Y7JHώF1I+j+TLNĪ./&u7Xx*RO<T\2(7}D!5@S<,q1(jD/,v_f65iRiV5jUPhȚf;NQptƧ<nA1TUM3V7Ui5g3jp4]j.ʩE-Ѧ,R8);ؽ\XZ믾i[&TקYfN*65 TQ9̙&4REi +=#5mCzFWB`i,絿)~?C; cF.9$HJQ cڰ6E19\; cO~bSQ0b v߃~A_fnmUJrKP]+Ga2xcS" Wc>X{cv6׵%1[I10h>It7SB<%K2Dy tQ8ߡB&7rș>[s/t:!|.&I2K5/z$rԵBJHWÌ! ~?KzXUΟVyx K~\b,EɄiɜ!@U1ljR>2¤L(Y97hN==?x+oProښw(Uڈcu xd KO$_ G8=&6^f^]=&S?0[!VQI~۬4Z\.^U"qKԺ[ !*\1\ҎW4Y&WLy3oc$񇽔{NSZA=x1Fli:樤WY Iͭl/AWž4CLV(B(XQ0ibo"/K0 66FV(7NO&`Ѳb Թ9qlK>~whUxn-`{ ;S50~A=|_m^_E8SJiص2SeTGzaGr8TswU#ñ/U0ZFU]C;W WSӥVB|G|M{1GLlUժ]\E kxj:iҩzkD ToE0-Pms=#$-0&DIR#)Qs %v ll,`Gr /TUUUYr 1qӶŲ ;彉HpɅ|V=TsTU#\>햙39UWlw'KC\Wrl7s*Hq'P- Bt/`Pb>D&7Wb_Eؚo}kK?{hrݵPɘG!Z&NŇ,1,!"R`67GQcUVDĐOc)i 'P-2p,@G"`0JN>knhPsIj JUF]T#xDѢGԵl , ¥=+OJ58mVX]+_QBM&%RTНBÍʜD4BsE-QQ%=Ht)10\ֱF71c+Xr2+nÔf_Nv]ZE~A?i S3V:o[>x[OwP]g==$vGpKB,ô]wWg]}Jf1t8pGPc2$˵~hV[KԂlg ?;2-ۼ.eA5Tns:GQdnke$mك: PZִn8m/kk[6`" {y>Էc/kk2 r .6:C<ѯLJ(ړ̯evW _r[=Ր BU|KQL${`2nd:'6Kmv:SdS_{Bʋ썾>w{ЖM,}"5,D!+rDc(2;"83r,Q\94+6ID;WE$4;BPO+ԳekZQeC2%2g?vsrza:cb!db|CE B.&o6Q2 ei,T#{˝PJ!Hأ 9P'/4]Cm7*%]=K̴ŝWu8cC*&td'Qݙڊd0QobŤ]\ުqGkmZԊY)1H2#ș.C$8s!%lY}Im0<~[{m~Xv-AL5"JL3zbgJlRAҠvSce{Xkh'Y^[y=P$Qjԑ4[$SX:<츻q d%';Semu׶5uScwi2jSfaUJQl/K/V!U^+ULDBՕ+BODdelW< ~CV.sL0:⦭[IœY5x-3[XCo,<."UVAe54[W9ޞ/I`dvۑ%@`G˫}!y󸺗c> CBv(\Ij = dͩ|d' +#;6G7=UUdD-j7OZ&<O%7y'{`҉u@KJh࿻f1iX)$EJ&ɟb˲Ȍ%w߰,bzvv&s~@;KH%y #ȍsF[9/[EB~5GU J9I:2i!*&D7 RʽVM AWR44Vc*zx9Uiv& oTs#czZ%{xڍ><SFV`!1;6r9ȘQmtx"AcF! #X1kQ6"YG4&$;MsWr[#?&7eOݠy͵z>KO>:^ЫiU! ތ|U絆[pOzgSP%-ݨ/Tfm;;#\;+*-fĹq,7vqrg.8Q8[q/wj↢І^BJJ$ĉqa+VL&;W,&WrqZz-Z^O#ĩG90tY y*1!IkޙlEiBS,~ˍ jŐ U2e@3T#ZʃP1QýȄ\8Q4P4h SǼ{ԌUQ.kQ,;吀^'zGҵ)6v}JHcȏOWӵ8%r6ju~mJQ"khog+(XBSg]AM}P9eVC$dݗۃnP7  iO64k{ļc_y ,xFq_,||]c!=nmƲl,. i zᑺ"r]j sd\wM=qG" ֔C0#L3 3;\)y#sGyMo'ʸk_ jXPm0e c0hbIhwe$+#veD;UDn=+}m$e/n bI5!)Y ⸝{ ~mb-8{th.83F~ $!Ekn[Xv|F^ޱјw*/`fQyEm ŋ  ۝i,"~=NJ qkU[=ף6)HƢ˱VBpV=Q/V!UDocCTA$&Ƨ*hڝ!ȌVW0G˲lbSqC7yAYF\ZُY'}.~jyuv *3%Ț(Jfr6ڹKDz!ڍKԑiM@F=V,*qiњM5Dk>cT)"F 6`Mҭn5ë(j`ip28H,w9Ehr%.D؈9G,rG,|pf8%k\31#]YăD^"+Pɢug(2%4?u 3G=qWe߃> 0vނ?ʞڧ 5.W쇼nA|__-}7mͲ! q{_#ٖwdb | F74za2xHc}g1pfbw;a4bG44Ҏ@c߇iȱI_u;[d=J_s"R`MlZ|')@n'5,ab1c5qXE&1d$D nHHA!#Fj"fXH: )"J9ZdHs XwcDkGYQ/p~_xKV͗1e U#*Hl6Ak IR*5*i?ͭCj" Wh0H0r?uq.dgg䓇 (!9fe!dAdƕ>[a|2i0ǫ%XdSڦ SEuWTc|œ.LvjO<$K"QVOĖ@zc*͒F7)\7nPSϥ l#O;KI֩"%%l+.vsTE*.vE@6LsI ؗ,/I/( =ѵIr\Oi+\*Ru?t $jײ]~HkUiO}EiT='Iji\c-@z|oLjKTQd Tܢ?  h5&?(ލE\ b}V8r*YE3N.܌/Z,Ƹ TMaJϋPoth|ZÖ|o6lѐi{ wzƷ7Nów{ҀW)hЙrۊN;Nsr~&'"""ӥ$z)lmr9 \Yo"*9nŠxQkT޽ R*v&rtmr!E>ih^H#W ɇr"2`Z(^iMplQER=c$UW;Rҷ'"\h#02Rq*TSXas39oiox$kws}q;eڽ+Ҷ!~"u [Tgg[o؜zEd v'u~$hCs=rh$ QD'"^NlPWWvֹ-U&%.P\ G.Ns[w66DEiQEkp*7s*-J8'7u+͋ȖOu/?B5f<~ީեHaNJ1 B9RsWe~5] EUj& 55L[AsLGI#SR&#DZXmGڢUѠj']΅\Yhj[h2#M`ުnSN \ME(Bh^uhAV׍T)$%>IdBƑ >%{Cv$r^Tn4HDZJ~ Lo#kHG+DDE#W*U1)!!ٮßRƍW.*Ɣ1Xu2RP[>;~b}V/-;JF`ʋ2<ʖqI !.h#mfļ~fy46 3'>k7¦2/&Z#1:X?0 #'*ok tھWUUj%F*8LjYd1Y2*L2pZڻ71GX-ȸ dV̫HL>8N$I5Y8:.4=$,pyB!p/j*@Y-6FP2eCQ!WjEG}/,**%+lree. 3eY݇XeFW>r\@5ȬF^I9i ~N/dQdr'3v"Ʉ{%q#Sa *",dXmdY3/P<7@:i%5 e݉#7ݓ;#dseڽ9qf,ܑT6EC:+-Y? 9_ y54vIKsUCqLI #0E|&sf%H*v\1“ix4%/(ZTXԎtpc>Lcd1@T ^U:)Z%Aۋ}H֔b2ua2,E1~gQxG*=ACL򿑁ǦaeeeXۈ:o1D/mi8PpuU'+O ,E xtK9Z_Ё>Z>Ƶ˵|>E&=~t\7NKA'u:˴w.vsws7w"#?8`S滦dدYk=u  fex]ӳ鳇N w/' }]EO}+m9 wt-J.sѩֵ9ʈ֢r,^DF<(Hex);cˬDLeN,RxbG^S)(I W7N jm#PNZ<io gQN fJ ZF(j)[\Ԧ)\59:HOM*s8,M!Q:{=.J-* c;CTs*\ I(UyNw5˱6"""""Gw͡fpߪ:#1#sQSp F"_~6Zcy͏~qN?*xa5[)YY{1z_''iOt]u+NXCKN{#8by{ưlG9Uz'2%"DHTjRU d8)թQ"V2wl{"+5EOZEU*JjY!RjGB$IRSF8i+^k9xTN4!2U]9 0Vxmz9?m#0#P=?7bulvS#ۚsֵ9ʈֵʪ-+;7uzk+~q*,Tf*ќ!05@/r_ŮDUzZV\=MfM&•F#KJ_D4UkBo 9AE\HUZRjmx TiLn_m;>>P"L3J#s2`1̨0!x rBXٓ17M5vpM ,{B+w6ɖIhn"|VVpB{s!S~s76'8ʙ*|Z^AR9R'Gٙqx6%ω/rjH>(фS4Xs'8QlY LJ6iV[r']dtC~|G8peEYØRv<6K;>i$Y򡊵ĭ?" 2I4b2@PTA6G>G֭K{[uG+FPe|gqJ4ɆaĴ g T6ʋه}̊$M U֔5J~L}IK2drdB *JPe}l$|_em-+y?Q/Dy^)c<: 'O|&ʕggv}W/9y7C%I_qeJHp2f4 HA qfŽK ( ~-ǗؗN4WEqbNCoɌuҊ sd8dvW}A?C^hYd.nHpͰ}V\_mf& HӲތ,\\7Ҳz9W&mVLm/9tI 2GsbT*dN+ok34Ћu7.PSjUAL0$2#5υ9CJ.iӲ,bgG%6Si+o=O- ~m*BuN-,ҍITȕ9GXMr1arr.˴v["iӮǨrE¸:cVS`SH 9 N$TPڎubQ XCr̿:ҧ2O-fQ4!eRǟOgJ9_IdN_d`kxuI/\`T#F,>V()g^lWe$Jqc@wV~]2$E({ݝh!{N?4¢RxwdF̥|yA&/O˃mݮHwMv'jyZw\>>Sp^iɑP?̥(4RxDJGo 0{Zj~W6Cľ G>=?Iqky?Â?ܯbd~tj4rW+x{OƙQ?O`DdqqJWաJ7UVH)CփCx<*_&7.6><=jϦi2V 4eP"zbpcm\ ۔$޸GR%L`p}~<Ңq!oE\Q䞣7M7-Fm<;i5?QlKU;8%X_'McZ4&fq_rs[(zKȘ]Pcj<]lmO l-Įow-S;x*'[v/i~;Aᳬ[sZьJn($(o9,eH8?6[sz{$Q4A݃k}%6"11]0OIo; ?jX"u,+wikЌ+}ىDsu-svtmڡФc ]u޴<)0O%?aEn۾z-y1ڮЁ,YKOXP q99Wqm.^hDٻ -zk,Mw& M31 E HH*g?lfoV빺{B9d#Bs_n}M8IX$q $.j0řhER?RHᎁ8Cə.HlR(|z._y9_%El3!.κe"C4 ;jt+5HѪSCϬMˁFi";!KYx%^y*i@gSbK :e/w䄂)aR60Ɠ$? 5ŵq\Ͷ&o*^0:QW*R\8?RiJ,_IvNY$ ̵ E-wLnffAREѵ%|}ڟfs&C>2* T r{l3zE$}uoW6)?N,Eq#RTAOO~C*aiBDp{Ag%qa3xPk 5T! 3D1akbl?vv_٣6v:ICP @19(ӆhwHR~VN@*7(Y ha˿9?PXt"uR,7nj:~bQ%<&VO3ˉo?^f#<Ϲa,AHˊCS j_lX2 4:}2Ü'mbSӼ6Rd'h3 R2((Xȿy-?/bd\$VGD2=P"<T %T 2֋HʯؖÇ+ u3zxi&qU<6dXJRŕYɘe33.ڞU̡^1Csɥ0sOJ'\rh(zhiwT=7M I>,jK  {h[TOUPm/7SjQ2vu9h1MW[UaL:NJni垱ꚲM/+==uT:4Elĵ-C5%?xZm]T0 t12BԚKVRgCNZo0o#'SNzZ8-٥>N/R%TVKŀ?|ŔbW` 08OF'չ!E_P/CjMeC"dhnL̉"?(e|<-2P(eO+=Gga˙rKؾYbY[jdnY 26L/eBv`g~&/7n 9cme@*]zݽd5vo;{mE&N{W䵺bgdn6 y[1P;:߽*FLomٯezǸu9˱|=Y; \,W;)+}Wsl,`L~U,ôunйyOvŬwu6a9'^Uiured#j3L, v I~cՈsܘpc#=?Ra, Z5MIgT(=QN5j{b3q춪q\;kTEI82TtzN(ώeDlE,/W4V1 }W"չ,T (o`ֵkZԹj"#Q65MxE7,Vu{Seg{M4,L5 9z[F닓ݷdpr3!\ޯ;I¿٤S"T"#߿k-}f_`=u޲wy{q[#UowoE nKۗRJ֭w{DQKI ;d/ٴ #wxb3vMuz݈8αzrB6{ s}'-;7}vp'f^E'h!vO}VlEpmٶFkIxʞҿGh_b395:]ޖq_K.UT/ThC3kZֲcZFoUDjlDNDB wh5rxGӬ=sne},x][Ր_!h5O,Z1 TPL@[9.|c_uV[scr/j㣿CK<8tCsHe4ї'&,%P&]Y˖_/q4|JvyGxQRD`D-LR)Gffvvrrܧ.2?\lg4m;&ZT?ȓ2,RT a@O0s Ql<}x>T<.1t[6DF^^77jC+݀hW?R469a I?(2TRoBkf)_(O}qKO5oسb~$gN(SCKմ>=n-=;6ߠwOo'sGgZ30ƭS{eIxqܞ ~ۣZ#e( RjɲhlN1}o~綒̕3 ~ῗўs"P}`whZ1i͙ qѱeHc $B˒W#tD=h"CMZ#"0iҵk\洭G\ETEK$Z)ďuM=.jW׏XwЦw+=9yyX _s=VT;)ˊwEL{ 5~}||<6hA3MßY֜B]56!ڪ&5v`[GmKjlޕT<5Paƅ!(3"mkT~-תلҗ^Ҷ iַRj4mˏZ :wO>!2MNS-$:\]_eY֪%?UX;ߙMo;_/M_`)vu{k>*[*E'm R7#;Ehc~ݷ[~tZݍ] ;r8,&7N7wMuz݈<$vylȼm^-Bv`9v]uRfb)Ώ}.n^~gl>؛6YNaG77?l?3pK Ȉ۹落ꋼN<-*7;u.?І ') rwS:tͼn ~RNvvx/Qo9E[K=6\l9vX!1G\Գ$<>KJH,kk/[!0>1^u=F07⒫8T B3,FdEzFuʄ?Y同xns{==[J=\ $e 3qb\s{!Z?}79K4v 4d:6@Ϳs~ӽwY-sǯ.-q++Au>;HZ3-f,X9" ‹ |X㶳?Nr[˫> 47K\|p]|RѺXkM]Pjj5(bJ5ncNUBMi{cy=N]4Emhd޶^w3Kf/3,~;~=|j*oPG4Oj> rPt]QB\%6?"ae:i{} .c4w33 ̒?}+0m ܶ[سeqY}a˄:s#Wk 4 SG6^ȣb`U|e@x;WXmy9c5UO(bnO&;+fn_O݄P U{N=d? u%oYyJ}a'JT`Tæ -Z涒ynN=_|yYT4h_VhxR6h 7L=+TP R5#d٬K$r{i?Ԝ&YwxG?g'MΠ'xa7D|3_ƑE"+KVv ?ƹ >t,GRY'I%L[跄r-/PV7H] E/A'>v֓ o9n.51ơ1h2jDdyA`% B~[m$L O12_'Mek142 `.s nYImRIFTԿe4S#M O6xҫ0鴠VbObyi.wrnQqkXM;ZpG\=8{#M*ZltQэKT T898ENLȲOϿy˔s/3RK!\ '<^/сj54((qk5Uh'R6U.O\T?feH/u.a~zAkɳ}Yd/*W ^46 5i:?NPkU8:~UZ3{ #q,^^_fKGʽ=#eϹ\ۓoә?Eտ(tL\7[f,r"ZW*+>bofӔAMN2"DIlHx#q꟨騄tzNr\muD뢭*Ô.$D1$!4N=dQSSw]>'P5#!{}qoϛf}ϥ'a4a73@u{m*a<}+n2sznj: T+;mМZ__qunz/>'{`)*+嶞,J{[ՈKW/ڽD -^dM UOxfϯaٺ9.jKI0­wadǰ: }[ܨ~_?H%o<Q[oK&ٺTo"'w}m`q}ޞ%3RCʟJR._Je>o`Žs/G= )I\T1mzYd'#Q~9Jn*;6y3;+numno-a "QTIv.^FOxyG2uCjQTP4XrR]9&x \>czseG^Y?W[~ʥ)^cdeSƕ= #LWjOi3*=;}zm!j~琱)X$S QK tp˚Om~er7:ɦVCU+4(uZTs&CKO{f52!MPʢ=;IǭẨb<8" ;"V~NL!^b͟剖\ CYShF=8K!0ޅ<:AldrPzV_9;A:*8l Ok(9QLPD!ot+yd1ˈ+D c`s#PY,Bff[K9 2Q[ѳOڥ<3)1VHoŽEw{<} ȳrzt0[uW3C?_dzQOiŏ.B &A5LU2ް|eXULtʤ*>#!َ;DuA#=W1WP? ]|puZU1VUǍW>mLgii%0ZDJKZ$UHbDĊ8 Ùֱ)5I4zU/J@7DbA-lYFڕ9.RUEU#"YJ˛.J~Z4R5_dQhtw$4PD8r  '03-8~6Viw%<朷s%f>W>fڰfES0G&A{Xn -BW"~{GK嶳GoÎe}On%D㧢.~|Ko<^d_Zp]1L:hp{1QyRX7~gs+9>p$x>@V`qn+$mG_A/?=m1R`NCq^Km2wш \ƁHS4# $.z Aq^KލN$EC1uU:\%I50`S4FSL da$ 22ō=rDj9%{2SEgykҊO6"QȲ6e; 34ۦ6zG"he4C#Pwz -M5]_H#QUSNóJ\a56<+ڄ#W\*ܜµj""sXH8؛viEWWzsw% cVLEꭇ{қ62'R﫿aRɭDM<_ޏ c)SIjw?&ճr߰L>=m#͙Brxam/d# \ݽOFY%Zf= XѮw['뢺8s}/ n -k&p$GTCSN:S 0Қ8-bji݄}nUD4\s*W_UG;=6R dI^sn.T]'U)(?F>!.OSGƹy.r~! \]܋n(Nw:n[6q֝{z;6T\wS%*E]ƄaP#pwێB 0Y:Z{ Cjr[ggRX=p- &,u.Pc [VlaY\ڵ *ժyQT )֨3E5XǠQk~\:\ ]atI IwSMlZwf Ieo6{X;W:‹ůn-ղj][X"EUU0my!d4y-vHR(ͽY"Κ&+(5NyNxyTԁ>*M>Xo(L'ͷzr>j 0ήo#S,é<ƹ0]oɔ\fо)" nr)P`[Ogb!'$kmam̼ZOM &$hd>1`;fε."Ump_L7`y[4)LUI>#K xsiqf _jPư^hHC{v0#9cٖH>E#Zi" ˗8AќÇnfLFXLz; .վs>)fшF3^GLEVDTkL֥26PˤD+.1䝤rG$\թ)QanM 5V({Q\\OGb:sviSp׏CHTʬG&Bu:1[F}@*(dGou2_65E- W ТUaD3G{AͧKVF еs<)37V *u"}a<AdL}0j9WKɏ%"W(PIkheLLVqL U&9%dyQ^St=Ega(4Jd}a[V/OdQ;ypro>{O,GĐG93b;.o5xDJ=_ѡ30;]G*Y)+1>^%"~m_Ӡ"Sl0QGV>J_jk\sշW%cU7 UmuBMWSRP B'2E(04IPNUdVpH5+X[EWfX~M=;0ʌe-bV2upx)O%1)Y$y."#`DVJJ*.1XFxJ.iӴhq HrXPÚʁaU6+kĻUmfԢ"VmĪRJNwyѩ 6?Kc(8j{ph_[#P/Dקw cTBtɨ: { DnҖL-D\y|V85\Vh_%g!yw-N?]f|Б7ӴA|_|a>'G~s:k~ھhUYE-GU7"b_ZN_Y`SkT LEd#'' V +Y*]EDODDUK>+0Pw]aBhUѤ;uHW("fp7`DӰtjh2I[I Ndjz  9vkPr(HAc%S^jFÔ=U]F2X2*)[ԧufoezrZ݌ʋ.} 쳆-n od!T8P{,6BR1nOeC 40x,Xcnv7m8ȑ4 \TӎqB,SH#D}'ɳ6U 7. _Wj^.9intK}>ef#iErnqDչUr4U*ѺSGJũ: FU._z>UV˧H|lNkUy_$mJIY<@&MxFӶm6\jh>-䱡y$,0y^aU}Q}\ɤ#.ANqg lQdo(#gQJ>/vֲxnfvLp6n\G #&R)wOc}%Au 1dc)`\ı*[%w1(04r2 ! Z>5HqA6 cxNdGdQfFDj/ci|Y7OE8g L&hSϴ]M*,88 c c.VP<r|Zԋ5-vLxb$F#cxP-NKoE[Ʈ]Qt9Qb3-+SRBVTO;e59*4h۽0hJ4z<1U '3r,6LQ-DNKU}B)|rd(Z4aؙnNjå\ZMB6dFx]i&6_厅듸GFӼ5Z^CꆕӴI5R^|eay]M'X-4&(5$^6?l]m YU:67'C_y2_Pz՞m4C\_I-~M,f~yatZ>MLpr<^]fo˕2̛X,m5d&jiLT{?e PBoZ.70'4m&o]zn%w=իįV%& 7_8z\[(oJđ%<'߼B'&2;[mrOLKdوSːc!16z0BjS"*UFRzR}"H.Q֓_KKBS 62p*R1ݍz1WGh*A5|YVa5+tc>o`NkQ[aك; slۉw6NSq{a$t*ʻ,+ aGHW];ʷyOvE3ǟsf&^X.×VWm3q>N_ -v3AwS[ͷ}RVawWb軽n0n+!M[H{*\Ӊ!#!{[ڗFqcҩsUTj"QHH"N*1IB'i"Op '1L«U+_ HBH-^oC MM isXDkćoV\&%r$:ZM (`T՝PkO3aܮ"u.shqi>=WJ wdy 2:h3= ƛד}poƫ<_BYôr5K[w'7r3B1XO[-")ؔ (_w2b5H/xʃ8kfjjrDj^%UkP.:5: b7φN"Kn{G2Ča VU'&`OjmfS5Tdm6dOl`-R5Z)p`Ph ge@sDcمnw1~-uYgFjB"5"+Y)QYC 1TW_{}ڧj=: PGdx63 M4q!sl\EֻkBNv)ɷF{=wGr׎vyE7oKqH'P^6xӳwW1n}ô}jغ|)wrVR1ԑ5$k $V \4TEMV6*FDr*BgPNU)-@$ U@׶) /1Zrx<КdP\3$vqfzۼg^U3~kcK1!1eǪ x_1C"ӽ7OzEuGg uc:CCFIRNʤ B (**̂yim̑g{Sm=Ic3)rhS=UK{eLab`:!cޅ߲mWb=2·Ϲ+:=mwP/cs&%m?$<;QfGX1}i)mW$EĽE6EVvey}{ߗئ>%Qq8c,p1Hyj**u芼to΋Bhº|Ù"D/Y˖zU*KϧnJS,e`FT9s 0Q.XId$Խ]4hrKީF-+PŕTJ--`VNR-;^Q7 bbxSN9̚sɮ C#>*jt1t ]vR3b*ܫuoI,g*Q,IVK]2h. ҡ#|x$0M"Fxsb7{W2xoOO?xgcݰْ7/r5>|)n3ѿ aa56? fAojT\L{) E/Qqǯ=Oڼ{H}9TH%e6Cu75E7VZdq(qM@E.Teo@7R^-[<3V'\})MbLxyTR~UzO/KmG7^TeԪP[ xn3T]5+ZcɌMITgϔ_1H[{!k>^ܞ/_=SUDETMvDO"#B>d}@,ԘBa(jUF "1Qv9vZ.-4&F gB<ItZZXڍ*K^ecA6++Q6'\*\tЙETx%N1S$rUBq^gJQ[ -4K"RI*մ 4l"h9"{#"UUUU[Z`_[uIokNFwEhe1oYecJgk45ZGƔ`qm4;jDzEŽ}~NDآY;5w-ORj?Ж2T"; pI!1BR *.En+UBDD*TǾ;EBS2SV$IN0ӜNp-c^7ȣJ꫷G3z/c2,_Yy7xպҟ7n༻|?NOҖ?cz:w%%1Sa~HB51p9bG*)cr^"55&U>GԴ6m>Y]0a;@$ƍ~&^7*\HM j]*W)r_(5r#@H" ̗^ %isiZXҎ:/2Te H:d " nSeCh!`DEz+94%DTLAcKW9ʍDjb{uȞުjɰ@fç`Hb5vلTLgz]^_ޱ4P"b<r}fq3_W2A"5𥺤Ol{ic 7uH檢9oŠzaQ9Vf ۦ.%kTk3="I5=3&H.tLX=ʯUOAnkd)h4?!svlV$R*1Z.I{J5ddb\^TT)'vuSӱAF (!VNljT5irnEGo{YnUڋTWB#\IMh$B6^K- K1:;_-_k&i7]b_j4O\QZ淬3H\q Yj5;F7߲2U {)(uq_k̙0\"%*.g{g}16 m[]e݊jg?}f;3{TcbgMƛʙU&NIQdġiEr.Kd6;ɗj52}SM+ RDt>)jBpg@h:x^c]!Uj{F"Z'i*+na4*ѵ 5 ƒ*.RrTѡJcx2{G_hf/;v3ZOK>-!r3-[oYs/=4Q8arQK,E.Jgym>m#?f Oz2輧3ZkףM0,*-V:͉2>Ƈn!#8@>Qa^A%Ubңu Ø#i G@eGx3# Q]/iav^xcɃEJ~bKo sOVMmTrGKn]2u7Ph|!Wd1͓? 7ө(bemgy|}sT\MqriϖKc|yMw/y=e`_9_/G2,MG:]W\sx\7֤ijZN,ZDN!V)G PndX&sQ.`ۅv-:]oFjpa q-1_I2@-q;EIƒSAQ"dr5Mg(0 ^9:UiEuJl6IQN +1Uv'ʢҊu%\Z Sc(ɑ,Ƥ)Gg+Lj+kZֵDDM\G s%On(ԗs]nY`__uŔcZk=߽K| tvz֍ĨpgHo7wG'u:ηSjmO-T:;4цE^ַ/wРK0e!Rlc"GUF{݈+VUUȜ UDDUEW*"iS5=y1SaTTt"1PSEsxvmS>+$]3‚AjT u1) 2Ēi^TVo>mBGWTGRi*t*L1#D|*b>\ܭNb5L2G9\Pfny;w/+/8vYSVZY}!h!JlR=zXM%f|ӭB15鈢( +F#7*omEsU1C]@iEOQTj23֩aDE@nF@ȣ$0#nQɅzͪuIXJ@GT*ڞUa=2XicХ3EP5V2M#C.7*UEwLBi a`b*„#BbEASUUUUU+ +ܖ y5\Awľ޻~i\ abv>wM׬!vCf?WtiSX!$JicX%oG'i=I;a85ݷ1}qeZ,"1L՛0r 49a<9s˹\֢^}NHɺ5-B.4Qj5VcB|NW ÐѫUQ+7\(tnUu( Bl\hJNb_Z ̄-? ɻ B#qL݆so3)2?Zl׉ʀֈ}g`W%v=kTOJ <ԙNc(QC7JLg!/Α2ۅQKEri'鮪GɈU$ziT@(ge UkoDBƮaL*i%`>ٙy/Pğ0#]ݵn=ҚHXOq$#Z I*A ' '[7ss1Or mM^Zx)P17b0piF G(YY[s/1t -;H4zxټn$l٠ֳ=dhF0RL M#$ (}]g.a&xSiNF9#vռ,?ـ;m*A2DpHLefE-/ќKk1CoP,ɇ閣PpIգ3REi!3cQD9Fؙ2?o!,O%>朾U]B+FdZ|H!󁹙y;%/o+c!!f6hyi/2(r#Jj04őj%qjLqF9rTjRze9L7Q/dLؤ֥פ}e[O4yb5$5jն ! S;*e<@+!cRE[-$ ގٽ_{]w5 ?ѿɲ|md X!ԉ9^-kΕw{mT^?&!K”5Mh<$+}%)"9kdʈ5ZMQO<} *X::dWJj1b:8v)c=U"m%u5(`e:,umAdb4h\1r_ʪ^䳨6tJbnwyA Bُ#0@&{|ISzlL![wDvѸyDn*ޫO3E'o:7){=wm@8Gr"7MwS|^mKM&L4J \B"*6GUIJV*Ц_Sc–,BlTdq9ڜ]D.oʢAm26%PCTdg)#NߦJQ$BpWCQ棜ƽTYIÂLt D=bP5{RSsѦ̙1XG*-ͽz-ut&Ƌco{kQ#:UWUUylix:OQl};{9 g/}W^NuY⢓0ry*Q`{%?ӧ7Zg[y (oؿV1kcj=(Â9YԌڤˆ{ؘSQVz։\OuJ#Z_DT:.].G&V]>|#+RFrkQm%1j;*UE@?M*%:x3BpGB)9-@FF k9q"4SIbAi]O]KDG,L_hJĩ}Q1] R5\ֻo/ޱC@MO/*[و/M/N0mo..]rڞ-X'Mobuf7~-\l[akRp@}韣qlX*j c*?8햄>slIksS}VVhP?KRha1UXÐx#!ݐl,_,!dr->uUbP{NwJlmԒdLRO{kvƶJG^qnT>/Oy5NKiGA* E XELYWav+YrK +@?PZXf_x`9޼}m3*V-(dvyZPkq0C-NS򸹅-ΊGUߓ>)~'"˓ٖsPkLpF*6Pph{L)rZ\)wm"6K\K/5q7_GC[@epdz-1 B*$ʷ2_a3 q;I$՚Uz\M2- +Dԓ\n)TvYRJ-l6tljPzlܟ÷y'/_5ou}oBhHW1aWH)PWNAوQ鉓3 b[qu΍Le6|<UI$>R>nx&\7ږ(%RD ӢSPn,ꈗm=A?,}e>^+o{o?8NY+y̱#WEi8lo6N;EN-Az)OPjR^PB4eTOv{⥥\nGŀ#,yEY4ioH&)Fa "Qf 72JF޻m׍JjjC-UW9qUJQ5fL=2d xE,l0ONlD 7 ީo/BzElmS~9yD"R֗4XNA6OfL 'y:9ZO4M␏RLt13}.÷ ?k ,Qf0 OEǪW`;sO5zknc:T^]bV͊P)p],;Cj+yx'?u!A|_><ּǗ.d_Ix-nZtZJ58}p⤡—QӺ;ᶫ(X.KNMϳqZ5?fy32~П:F+:<_ˤ4*)"M1wZ+bLW+ީY%-nj[6.>.TQL%"4=Fz>"`Tj߅ɵn7SJBq[-wYz8W=0Oky|W-o|dى> Ny_lc)U"YœU-e3W#4&d~/`e@gwVX7QVÅq6sU{ǨL.k,)'vậË/fkC cbGvȞt9ڠbX/YwJZv$t2{#X5\9UkQUUv%dN62SM lÎɓq)n4X^)PPT.dzv4r B8# -]MjKv$s^-+[@մ&-iICJi%U#ƨt&*(!^TTUkZl%5*UC*UBSb;B=LȐnL9:VUF7ےDDj#kz|_to'?C\I,VQT[qiYc^Ɔt5p*ӫҸdVUKX4҄ MDMT8`%)XQDѣzm$TqQZ&0Ѫ]w-"-iםb%@gkk$Ŷ98x \}L[z?]/xm4Q?(M{e湡`d踭rOz^16i&1v7j""oV>; YAqژY-i;9LB=5c9ʍkZު0mQM9@yVq:B>ʔasr\UڨtR!9T\ʭ>.ΘIj8Q!,EEsn%u5j9FFpՔڭy urtc$.Y. "Ąk %]jXz $qF7AzTkRUEa3>^~Qp.=1Fu{MU"n²zCXwƏ]2ːZI6FHM9kBGYb̊\*M/xU!hg,yNbҞBfH/JpgqRvٙ~aY|49$sYwI1D)&/B{Th.IeΘcOǃ @6řwm{㷏ə8V[n.Vn,p{NꪰhtLTQd쪑egAO/fc `᳉n疇[eήMKo_HѵǕjȟҤnE`bσy6Vs \srT[s>im7-^/_ ! Oŧ fS1+u fuE|i!>sm72)Do(3Uov%v,h]=r.a8t.1k]:Kt#I.NhLw.T0?.[ʶmtrwĞ[e5'O-?H1nJ4ořcrOfKfߛ$Y)l(tsO |HĈ3b̆iJd{K<' /UP)޷5wb*޲b>}B쿻[}}dS u*Ԛ"F1N S4fDrU,\{d\{ɝ c>-Yu4wu֗8&`ea B/$1U8s"Y߼%k5y%A>] @3$Ч!}Ua廵·̯"&b{WQ9&> 4ֱ0̟x;Y==y7+3>K 4)y:4d/1M\ `QeyonKt>ius g4JOm ҍPV1NK":g\=cFMÈ~aim} [5:=+ϒ_2k^cG<2p3CwT4Q HMz{,DFy+pUIR="(ƊXrE-mb?=U}uqgus Q'ʎ91, d$ӺQѮ3ѭj @sJ)[h2[sH1;v9~i"H~DpŅYLOE|_Mf'?fz.},5>WuY:6޵iU'G?f/{mTu~Z2bOk*_EIؽD8ҡZwU17 9mNnv"'_oz$c1HTәVk֯v[7unNK;n,ǰyj=7rn2cZ@T-roQ~~HA#Z$$f${_z.^KSs ^{m6'[@c&ތiw;{{7ĠEh$'Q4}'mRt TX6aoj nnab.߮AKFچLx@ UA # t2af%<9\7G&u( Xjj2*ԚSG) j:[0.UzSEsex ! NUӴ-XbSYJ Tl0֒P .67 w]T%hδP]$X&H$<&&ab8؈ەQ6-DBG*oe~"Cw''z`I7۳ܶUƣ,-w eQqNO_%J1Ms_ٯf$Ĥs-:f /Omguz?96o۷}BZ0nʑ:vXm<[ ۣ8LkHTViiuW*[UJl"j"i-PΕ/Tʥ֩2TiwT0(_UkU6\n:uGɃKӤF2qc2⎋E $QiRQdF \$A69Q\8@ Z/Ur܈vܪh3)Lv:3tm1v:8}"n-_Yin^*&g?O@ii.kֽUP'I~]T.~߱ߦ|O\MCsgIv~b~5qr;;[^|;{ـT#2L0TScDvv& v$v7"j"*_C<2Ujcg #fCFsϝ^8Q=mEGB%PCt2R婅(O%C,i;w2V(#TBvkR1J娐|iT>@U#E WV$ <6;^1FƳuՍDsʩʪD*M_S4Xk|qWx^䴌 QQf-3^.X]ݲgPg c\IA$=_o䖱"??.qK(a4vx C{XQe(=soٗEOVFkY3:o#GdP A,~\_B; /:TjIԖtMQ#uP; |+_f; /l1 1nQ D*Qi0$Ԧ<@db Uݵʷ5z"D{2^jS@ArT)s7i$*K #=@1\1#\F'bcd+6?CVpͪ6Uqæ6tʕ0K1#U\ضA\GIkuyY}=$h͉0Fh94{]~5W=pMAnAr""\t]k> r9Sw'WijLDunrs޽ FyN7b e_Km)Ui3۰tv~QtG[~ĖPkuN]EŸ,~/m:+fZVaqL8LW653"Dvr=߄r#D^k94޴r*D(#" QR &錏V1*Ktf#GmuG^JXl1TurrIr[/w7^EFSe5jL\rZ,اebnw+>+we{Hbe7^x{XҸEN[fͧTl*zclΠwn/*bvK514E' f ]@*kq8(+5˜zcE{MJ?-7AL(r"""""lDD؈bmZ 5B1S>eYܴڤy9ڹPK[3+`bSp ;Sf㗵XLݿQ H2]2Lxce)7\ȤM"5IwC)CŇ2{2dxp3r.?'ٗ['̙nWQڈu]B~pԲ2T@I->ѼU eO4;Ag~\Gn g91iC86̬HO$y%=&cae yaoIF{I@:fU;=íũSi:\ [+::FbvlL{Go' 63ye:%ޕajgRH2` 8r$C*4pT#/g {;k[/4UVQH̃IuI)r7T@$5!N$ӏ-5Dz yeQؑi>76T@CҺ&Im*M>TL$JB7hrlc{?Ӵ*C!DR1"0BHӎyo"IcU+b3ylpvD̑J4:I`&HʩePET !fiyOLYKLy9dQ|NV92@hi߾+,̻l-ϕ96׋9^n!H̟oB<~xbS! qbR < ?'cgIN5)GSi HcI! ]]v,3*IrtYCČu:- %)gqѧ=u ضϻdq#4oWեf,:;ݿw,L<1)gxwtN_m3ޗw$r${kQU\Dj5VB7 ȥ#s^ 1ͽkr註-kt}x'<.޿8v{S܍Z҆fU*fMa9Qp+洹˷+Sp}HwO5+5PT%*L+R\FR\X;Sb3moz&k}CrX>^80QL{U-C;7\5Jy;m%f1`|t?nG[lKF_A{%gRwпZ%IظyQ~t_>tyQ0B=#氬ivG"U6&QM!::CҤԧAT*'PGX":W5UkQ9{NNZJl( I-%C mC.KXSjlFr=Jvj> i9(u=Ppu4R^7;:Gt[ww-eyz'׵9pwʹ3oFinw[-,_8ҋGGzFN7mDrW%9VNDM ńTWgF%tpKxym#~S_ϯ.6/Dsoy[F u6f#I_%rZ ;Y^akFߣhǁCly6};81GuEJ&#7 ;O"mھXZWMP=?E}~McfF9ѲzGO%{ֻߚY LY; P>}.Tн"1M,yVWo/}M[-z]uƻC$zX9-~ʔ \_:UUٝѳϹc S(jZ'v%˔֚GT̸MY"a6UE s#HLYs#_NrkGXRb,IkRfd5E ̋4HRRj$cC1 @,F)DQ{s?kڦd5<[w\^sP1>T9ҧL(h)@v,&Zngז1a'_"w(z/R'QӫԲpГ /WyC}? 3Y_i왭_,5I858lӤ"BlL22! ah}%>ll5f3GF`sj4qZ]>,SLsL?a6FKYל1_G!RuG45COjn|Y^G/%'[i 6w3yefOO dJM!I 9j\6DxyjO,pkymHT]JM]3R$r>F Aa#xWP|ʥ/Tx;Qݮ8tÏl;RgM'k9nlX"ܠ?<u>xi,rGɕ`^|(qcӹ7-[bDQ;C"ƞ0qD#glI|P_ɮu.UKQOgFSfQ"l2 =ΗKڄ7G~g&r`x2X /,EtNeώQg )K؟"x;R=]x:DY =($YE=EiX kFpu\ɳ.J=RfkJMw3PxE.?mOl]:'yzmw}i;bkJWގo ѡ#1k5+4Tk Q1$}zsUvY*ЙSku*4[M7OjJ`9)@̌e=֝位"-*"Dj*&(9*KTiFQ 2] L`hpQUoaZ).kN}po鵽 go~!Gݒ-dBTt\]ߴk>@os.oWRѽИ5;#\ֹkܩa۴{Sޫl۴\"cpIwx׿3!]b oL7XG)5Z>+p}P7Lmܷ8k)`Ac3 F ;ىF{KUؖU$h"{;7[Fn..lMC~OOk)mè]žt[DىQ껥6wzIRH݀zM_K[.(3D}+RGA/ Ѱh؆+D{Gpzf3gnʗ󊆾}X/ɋgoGv]gKXÊOCݵ/nUY·xUm+;gwwӃNfAgejq7xrY6}ߪ,Qq7xbm}~='y:/PUKwPNOY`cx&Y%l]rtYTP Qw17g_~ύǰvB>}>KLǭw?E%zKs;-iN| "HG \^]Ψ:++DS~8Tfu T褦*Ò(*15 *f\S8*Ys&¿ʏ~`:;Ai.ۛ*>4P&%iך6Zċ:1R&EX2!gwx~_[+=ڭ٦.+u^5APCeZKZ)sE>DJ,Y&1 ڮC7nrT&o0SA7_f|+OIVTEKVt)rqee,-~3HB77ʏ tPӹ0ʦ =r> 2.:n ٷVL}CʤkY /oJFU4e%MϬV5*E(Qw#ZۑԹԹԹ9-uKsMpqִQ{p11G-3&^`f$_Ot|!v[`^C~ }LmylA4%we:ozn9ߵ{қ1]sk\_o*ف,gX^E~FZVƧQҩ:mJB"Qoc檻 {\r DZbb*=*Fw˥2MFN(r@Z!9VTe藭]:hMJEj/\~V_^ zaUh^b[l͈=O墓1M;QRBFk mDx5_?MFwZn=1[gs3I&: VŌPl{&Kx ]۳{@wxOM~ئ\m5؝w?iC`j&CiSpAyf jk#n'+SިNu[ӐQCY#8ӥb1,",yYUlxbݲTQ*RTDrGM'u:ɕ^&T\X'EAC [^m vf?S Vܻy+>= nTLџ"ێҁ ~.9dNT~x}\??vpk]vrٜ, * v'bl谳ì+檫13q_|L4ve.qL]oW仿l.®M̪^N{{< 7{80}Ef ~%xZ&XSM>S^ֽ}>Z.%] WC]L[fe9Ÿ͈xvonTٹn;ăP sowttM8c<0-u:9PZFaRgi}zv+uyWT̴{P=;T`Q&抧Zu1_5@`CvmD2Q3X밪kQSP*4PG TJϧ8 Z 2QRI0PdFި0j&D|JL .i5)M b iiɎsxѨFk G$r"" |HkޫNEJʦ1%-c1=ILE0U[k9U5W)qVi3_X* $Æi0S$?`2\̛U\#6'%G-F@j2-=`yP%sQiY5:, fTԙ Ɏa"Ba;XY&,snwsmBMfc0FMi9Hc JWk,_ H}R\7 ;Ɏ@㾞Ro b+ٖ^s\ <մ0yoB5!'Nm!ApG8cAeJ)Eg 7m\.w5_,-~4:6tCa2f`D=E9$|oz3+7~4EK5@T Ԉ䯎4xq9*d1g(MpN7e+m\>͞x>IZȐOǑ;tC,ŏZdBEp;˖_GYZ._$y +YM\zVTf>SJɑm,ms=h LkҠ JT9c N>t"t4h1qEpYBb J^B* QmI%%]t ^Ԣf xnjmeH0 Lůt|jcK4Qiem GukNT#U%A(@)eQ,„,-ײ/tL}Fiv8'BL2SVQpYI3>t(5e`33Og03B?i.։HǝPg3=32Q s3zS~GBabA-T" ̨H90~_%UHV0&|N4md>tR'lAW޻e?2e%q5fv+r-byntV}0NRH\ #q CEr+G#Zm+Zhiܧa#\xW}2W8Jtvc!ED^P+#t825`5Z%J]F]>*()Nؔ8cJV#Q+T+*ɔx;&eB G W8GDj{٨LZ "ۄZ<`#UB "8r.^[tOU/A_3Ap;]v}æk_]1ҒxDkgec힖;M(8ٻ,-ƮB 5 S;Iy0ZLlB:Fۜm83uTƄ&Vtnq-t)J+F'5W*(r$ȘIZ # ZU S&鬝HI!YB63+HVW5ͪ]Ucyƫ (Zc ߈dQQFV-{U4g3NJv?N3S#f0B^SZX^rzUU^G:D޷_YOao>N[m6ˉ:6yѼ|x<a(%ܸ^zBFk ﯗh#@)%o\t_{+-I7}z.'[o_gc$^3_-E9md֧`,":ɇݲLT{VQ]޻>@Gۅ+ק:T_"vkGU}SOTREa~N1Ș9c{Uj*^TLj^UԂ^ a׫UZ9S] tW bkPqTk \umBdjnPxєYOEPX`4dzVʍ%9"R"W#-sdoDJP5WNбNn#1 )[,a; y;:9ٮav{!fblq_DoA#0l*3\-߲"ַ%ll;CM] 53+yU|e  uZD}qrb4v1J6,@4q$W ulm1RD{+O͢CO4Ur,*tReS1yESȈa/4Uꨋٰ.(!S%  !"9؊䐍qV\bRHZ33u|X+eP.Һ*W;;YwukI44.~.$Lʽ 29[gY_VwXIOW/K.l$]z]wsb旫~/; x#~76UO5%;p)QР:H)Z4-NHd  rI 1^/9(FޮT";z |;:ԍJZ}/SXMEl1z3[T**ƵHHQKR9v-k&[b xpuS+b7S|jd.$S+\v7$8d4c !13" CsZZ5nol "Ʌ1+yޟ"XV`Ҁӿ 擇+ E 1♔H8Pq%I)ÁSdA&wҔƠɁ20GM|x("@jR$A=ͪXm|.ٔ|i( |Nbo?.nuA蔼Ȏ&cGx feK\ȣbX?>GF9aEZf2J32G$-,QRG;a~TcOZlȣ?ZFn}7>0R">-bʔv&T)u "ŪE=2VTs7i-I̟rO\K(:ڽ)u ,WlVA*9.oϞjgŞ)!`0sfu6Pӵ@7 *7\9拫eJI';sFNB/0&^Z >suY#UY:[IK%I-.]luu=2 bK.^c&\h8OQiҽ2C&OET58Ȇ4S)RvVi*v>*+Rfd\*J~pr*r=VӷRK Cw 4ʧ IdGY\{HYps.z5ed0GbvOuTv. 4w( 1uO3L:躌.4ϓQY*BPŔ]8 ߗceeI͖Owf\Eo(Mז9$ʃW024:qt:8$T)O->,]$UBX}KY\TV_K[h!OxQP &!7?iE+7(<.nNM0jcofgjBD-(5i|gʨE$(M3r n88YFӮ$a>jϏik.vC#sSa Xarn0C`ulV˷mjgč$H3&j(.)*SVb!JT {]ZLD`RAӡD=4eXtp<KU23R3!ȌMbUiJi -QthRT[P̚jMDVF$Ju)AEGW^m]!MJ|&"ڀ3*AK԰JIp\Jc\R$HF1%:ctTI84lWQ*Naā֑o5vk FO-Dv N$e@cJeR LjnMۙk]*orZW)ê4y'f:9# XnuT^4aFEӤ\V# #aA,uN ٕA_*c\l(Uk'm>rtNμ+ŋvMt91(F9Ȓ%,fI{ڲʊۉUSFʍD1Ujm۬WŖ?h߉*A|_E Yl8znOtbErCـU/uhS=?;lQKۨH`}E]lꭢ$Ϸƛ<Zn:ލu<lXuSziQE,3Ehdрk$W"G1+UT7N|5EQ#  /W3T+ݵsn&4]4P{Ө#pSпAm%x<RXWD4"YrxNŽK_v'|)ѸҳQU4D%gZJ"YbbyZc/UFF ɉr"'*%݂c]s_i∍Zd+* TTs>!QRFTUVƬDTN!EEZ]ZTLUXc6ͩ@x4I,Q/b-1K"ǹ(~!(O!3ETjAM4T"sg!*F,r(٥ȍF%DTAFrYDوX9@^eVJgW;٫i=Á ZccK w2ho}RtZ :u2U. lN~UgYk_G/ԓYkJ4H 6ZMūeÐg,30PLsu[}_!._8!ݜ}^^o;hVTX&+69 l6G4DNEFϹjeWC3T*kZ!GH<)hK tLQf &@iΎֱz~Kx0 0aGs,,;u|#xz/o؝;g;hFŸt'!s3OJć2; @p($eNwPI9oRDSUk*6y\bڒm`(?8՘?x9saΖY3utʔqJ,c!Qݢܢ&蜩*k @HR!M.G4R$W7wE0422!bF~Ic}׵wQ"?/;]}WWE3.-n >"ȳdWØj FefX $IQaB;_Z3uxJ' a_]Zw ^Ċ$> *NS,t*sU> s&S PIO@bS~RcKFcEĎ[YdTiM}AΩ:)s# d9cU Bt R"'fM@]m B;sӥU $t$tC hȬ1" ܍UrL`+lV'X`Tb!cʜ94V:~0\rMDriJP*E O8f1e8#4.{s݈U[sQ؟wcĮ9uѡ#1>wJH4Ts_΋ᴐ~h$ŽL>[oxi5l{=M/PxpwrZV1Qw=艸u91'Uj$?ޫmWuX^rb5"(H5VԏD$8#&P$FsP)DvW"":3it94n#a芒(/PfQ9hT=X$ 1DBƽ]n$|HŦ)A6-{ QuIYT9Y1BF1ZLeQ"kU]V]PeW->JCX`+sZqcz&7z916h(?_ZYaFwȘ;A['-$ySN":ȓ-fIFIsB19WkQ6"""%y0QMۋ}cɣN0ΎJ3KS:-$f*G7ZadD}= ylt_*\ZHWypӨ^z.O16g(>sֿ'7zF)z??G~[YҶ)@< W)H:4Ff3ڗㅨH"'*1[Dj9ʫDkjb,*M2U>Ȫe׬Usquy9<kkQZf} }1}ʊKv+UvُEM^chkc䙽Tʯ\w6Zk\ /%emE{f,jPꍪ%fhm5.w-U5q F}PsTdVN&,0D %בX1T`D[MX"'[ WTQ(5nKLMn"e#.hI!ڽ;ZY5mbR(WMȠ|0=9w6@&5Rmط"/|ag:YTz]ȚM$EW24" SEDk^TE^FyFᵮnƧy.r =kus̋g-0=z-=P6ٞIvL [1y,)N8Eb꧖m@W"L~-MU4u΋MR#-Z/zgj+_̤6^_w HiIUj24dl'C~0eUrB7I1\alKzf1JlXdb 86V7֤cJ,r$Fq ":^CTRO۟_x0]#* q\=4亓VZe^hLx )Gי"#p\UL@b)F2FM)س É~JMiTH[R< &U߂J|PFt6,y XSe-H =\VMH1Sk^\LbA yb!"k~Ӓ$ a43[xyPPrI[NGX!.iJ?[O WTV3ʓV$J{h<-)]§*V4)Ed䖒y_ <ߟ_esٖnF%6e6M*r&oU*XJޡAdC,k`B -mh<[:^i>A St߃q3KOrylŒ0,5OB~̈84A4]7K;ͣjR%LF":(72vYy; %/KE-9>-̥ y#9M~5@ yjun%j20dXɇ7,JUm;UU8.L{}IA?V.۰pvp-_ ̱ŝ3U'>,Cjg%-CU'Ŏa9DH>.<^CiKxBnylai3x+,ks44l*NQX bIW"*9tv)Y!$% [HM0$CE)Mh$=b JsDsە[W1AUreŠ!OPz*htZ\sc AC}jhj:K)с@$. u\7d#C؊ ETOQ֯*'Ÿ.NPhWҒlj4!i^MBYHcU(>k,JkCRwEu3"ħvYw}-S+h,"zc޺}c0U-38ŕ~ ] qUA^X'`!)^ьBU!F1j*"r3Zmj2΁LiQM6ZCcNkb=3K%Vͱ~.ӳYkػ{e֋Bs7ZOWeeZwM`׽;BIdxc\K-`Ө:Er*"msQgVTeZ"IOuDS@ytxTpɐ@ILY]rkޜTG"+O MӁW"KϜR<\3Q qTҊh壓hzH"g 2)W`\r^MפhJtrҜ:ﯞrvUiN]d*D\εݳmoL5 MDlD#s򭏊*ʑh!jlXow2Kp5^޳ìIMdȾt^sEJL75.ݵ=͞ns0:grچk=Kk+$ª8T0i111b{ޭc/UKVg.> :MhA% *:,U7NuVtTZa {M *VxC}6x'tP9+ ۇ-sQ\(| i]hAٚZ*VHOV!I6 7 ʏtFr""s9FC!dp 0F8E-WA1#R+XۯsʻV9puSeA3"=gXf# *o>ޑkI 3"&4Nӛ(^[2ў2j ( tIOpr׷g[gz}]$MfM{3&ޞ_3JIwYQ1B0o9\p*) mͽnKMAק沵Vd lbd&4Px/drh˅VFyUb2eIHujK4dSq@  2T%'Ue΄YHaHExj؈TVN8q7E SѢl7R4EV9ZE_d\F|f#sExc4]$s']CKVGtcSeoJ%HG"Àj5*yf9R+ܘ9dvdCjhmrJWJpL*bJN%s|U KsE>!ʔL0;;Q\زM6̕aA{S [&nԧć>+:a )]yvsȣ|ڮڵCEĬm7smJ3PIL5e,Kv,Q;?if3˚1Gkޡ1hdi%uBA|RTf,,$5@y8-לRtV[WE0XH'ŁX-.fHORLRSCr`zN[g-&K#;>]Ntt on>T$I%NS +2l99{co1לזErd'4{[ݞkc~hxU>5j檓wVӐ+Cj`H_I 0d݋T RxKc//Ι4Okɳ lBGDఙn |r=h{V>e-|PEA0X3a$f>Ey/9zˋkXABFǕ=Ft&dȑd 7".:ok(_]G-տgj'𦤶P`CHJfz hP=QDuI&TSQB&] TSݟXb>FD0ϩ)aR5\pX|pM5$56,,Uv]qK{*pylo"YʼnY.0dT+ejǚI3BUD;uꪼoP<{:"ΦSnTQgsygތ$i@qza+f@b8c_:C'\K<hYwgWy~{U 9)y2l#pIDQƒ C4 *M"\79HB 8+\#27əMH[N'VHKV~-o Θ#Z< G@S+ޮG8w+^ ; HW111Vsި-,-HQWPyćQOG4yw-f20EPkP lUr8lrG#"B墪aE=]Dkjb6:zXCR`˖cq5R佨U}mJT]=TUEGV:iqȔ҉6Vi#p&IøUoE" Mfzsѽ$|Z65c 6֥܍M;-ʕsWJLp ۳9E@ 5[ɇjy_hrG؃&bwz/'{m|*cyn^C….AjH^[,[]N%/l#ٛ?P[bg_?ШA7*߻izy,@dGѻd<͘SuG-5v#SM5b.r+T!lTv Mf{ױVjU]*umRYOn]ΓwN$z׻=hBRڔ:W??jE:֮SmN%h%IGj9擺;@6ѧ':'*/涕]! cZ&Iu@#Qб8Q;أ;Qc =խi'jF=dn zAu*4T@d* Lc# 0ۜG;bK#֪i]sFt%Z%Kx%JjUl{b$aخhh"sG**/v0CVsUEX%Q5+ܼ};p›VEڣp x;{L+W}4&g28P q{|֋uh8Q |]fyQZV@sF~>hAsqKs/0LwVgVcKv?9 a+.R181\cb%ֱUy,̪b߀ .;5 ) *L!9[E*LL񥽊{nc9UiVpjOMT2G5BG95bTp &:&D`܊ȸRV9ժ*փ^HQ)]Z."v4"ժ*֛\E:U%FӆA BWU%諔CKInyjPGѢH:-4h9\Or{9Uʪr'ЏGN#ç+,o޲7#CGQyB\m#n59z|.;2) ^rnY(*)ȗY}?y`d] c_SpA壈U hZHc4[N4CP.W7x=4E`=qHZ̦QY5g (urj?IYT(%S'm=W&To|bf\kgMmyuhS:FH]ԩV(p<Ş` CN{YS\ꑽ]ƸNYed?Hwj%+C5TI4\z~R->V׫{+'8>0vOioa$0C 5ďϘN)pêSta)!ӼYK^\VTKᡩvnwu,KgmMڭߜϖ锤|#aBL^[T.P4)z~Gll$!2e'kDIUR8a|||FF#5cǃ2Du܊FEW*"skUD,hܝfeFpɧ#*q'8#e1VFET9U4(jɷFC!Edͨ+:1HEcDD\7j\ETOK]k+SRuἲZkQ$"@͓6A#_ !Q0rmlM)p4PrwҾSLi$AI  QAݤ9ƆBɃ  @w|nEm龉STSr QiiKGLbJ9;{<:L|ߓ%j*)T̀ _XG\ؕ2Jq#Y6j:-.6iF'?r-w SqkP#6 Cjb p]uٛ| s `ًhsU?iBN4=Rkmi5%*8q;wNK ZL: `\?lXj.co䰈F[gmfEmCف]=NKty[m^>K!*\wJ!jRʌ6EFƹ^D[!"*Wu[)+9kx2PC0U`IpX"+\Sj:VxOxNI3eơsxjFW*SZT\NL{Tj}WtXuh#0Ѱ/#Z&=^\LKFF{_qM \DDDD&M-X#pTn/W~'G}OA2U9?ٲMH3`ERc/G,30ow'n񙉰W&B<ڟ mֳB ҧcⴭm 2'5o'ҶPg̝pܷV5@ U}:cqtTmĊ8bsZoc9kQ]ܛREj%4r*5T*Ux:uH[2OdMs5!rUQoDTmVQ\Dhdn"ƴuT$Q]<U-.XUpd1=ȪԶuuҸVe+T] hm-d]`[$T$Ilp5ν6ʷLfg_9Dȫu}/_,C NgFU4],nX#];F2պ\H֯崼);1KTňz2?TdU7/Om/ـih[W؆C7g2sbjGǸnt|WHa(fq摃kf7&' خ9VUDHp@*]ND4%>xHhP#$xsުtwQQ,s[ɣG5c{t~}jij֣Yu(GWN( SNrLڍ |FrW\%|ĮJh;ȝTjʮΚB*^ Ƞ)` #{@֣q+nJƛ5WDu OWiel^76B2?yoGl&.{ v#.Y>[wyShx!؄|{iv%ֻex/fd7i$}RJ{-\ aҤs9 4&iPҘR=~:6>%. S^#l'Idyj';~6b^6]}9n]%mcJ?+up&tNDZu( Qpݻʞ UZ;c:&;J/] ׈d\lDEOUZX!-EYS&SZLfcQ#A2u:84Ѥ#棑VJDѡQFF,5 `%U^wV8#Z*3QD 隫{Ċx7ƺ}_\^yxi[h~&֟hH\D_-p"gЏ˓M IH͘{{mjU^[qmDӥQ/!?eJr%T9alis @<2E]?."u%N.-HHeA/jx(D "lDFHG91UU>rNKW*vJpTUFF R3=Rmꨲ$rU;Ⱥt#V6/ SFEՉ'uIJdBGv' D毦׮$UTD#j+i ܢ#jkoĽ]< ]WO_[(FV:ޝ-;!Q0AES:/??% L4|2H8g=d4|qoܗgjջNy,QULyUsqú7B;wd"-.-81TeBE^&vqG&isȎ Rvmg._rI(Dyu#j4f#5_%l}h2n=CQSI*,Oflб{KsLTȳrf;;T"󈹥5Y E]b+z !e.LmN5[C$SPhq6vuh$jDc58pfe)JR{ 5 v8gl,|q?z-CőwG*@H8x{˟̑5&[f.Zd׆c@ qjR{?jɴlUc]$w g`7tA-6sod-3 f2'k_ÿߔL:v*D&!ǻQEff)+ao(1YH vc^Z+oKl_Uqj&x2P.s5~NrȲ> M7< V/~/2,T}-EhpcSi4q bbD,[z\k [Ri8Ɗ/ 4-rRCnj~VgErYi}JI ?Zf(1Yem?*bkF8X1cxR_-]?[*+cByH2Z\֐yUʍkŎSI/b `S/,APJHL{w9r 9s+R$o\q#tL)fJ <9W1EQniYz&:Xv+<kLA_uYV30޴v0?Y+3ӏǧOi?5R^X"Ζ#yk7ny}0ARUTY  ܞKMO<7]oJ\4t鸁#5OTAҧLX6W:,bzd#cZW9v"-lH*tDhVU,GA"M ܗNj9ԮUn7W/h0F"I#*hؠUB 5wUJx뱙!iRK62"z5rV)CGkn)nvz|( kt"/ OԿFPg)"N0'$Iƽ'G0|:絷#jި$ժ_ֵ4 8a1G #A mTkKȉD]7,US#]軧>//:In^;<,l1:)/g7i^*X}tY ڤyDY/w;|Nc9n%6}9vrC{1;ƶƻ'3'?o'g-D򝬆oT"pn&ޛ*lI-r ;z8z'2[ֹ'3ۄUTr%J؜-GֻW!Auw'~M>E'y:>[,4I]`t1ɆDsծNvWC }עcw4vHu-P34GA3B 111DkR*P)ҫCJfʻvR-ٚMM"āa!1v|>_fO`|rw`m鞘dV}꾰]%Ĺ弆_ZzgO 'N\ < M"QPU/%:du&g F?-ϪYj-hYg5=Fʫ#'k7'/ڪ0-&5<0t-#07v^aL{oG#yAϬkѣxIcDRFA41ZGq]Ը  :|cdL153y.-Ur[I; r(odqʅVRea$zf^Y@[R23h_\fGAJ3*z(4ض><͔Q'493xx)! ~o8z}+#PP$y+yje{l/ +*o_nךZCܛ{szZ* "ed /KzG+*y_8/JYT,2f?oW[Oj\wA"5*z 絣0iU&"n&ihhav$6\6Wa:ںoV@"2\yc8DP0*\T6Fʋ55UpJTXbҴ.ۣ؜y:RG]UX?i~ǦNz>߰C^6o^E;M1)T7Vd" ApmU[r%ȉn$mJ[iìx5I{滽ih~a:X*}/ѷ k5Z"_eKLTbF5IW;wؘ!M륧&.ߴ{Eat| ,/~)>ۭ; uZNi2Wi ^ M[gH_-tO?'MdZ4`E%N'Wj,OW2}R]ʧˌBYb\q s6ܨTUnjycwO^@$H8 VsA ˏ RN F(c 0[.+'Q\KFMtTF&QU)]:GXϧ@4-THEssy)TlUn%|kW8C"z?]-? u=rn5ˋ-#M79wf|1*{=F3" zۃ_FVWYZ_/5WgGd^wB256gNUB{ҕ\fwFK"d98[k!esoo[I̗ݷ=ws./|>k!N~r|{vgo~{+\f8a!M'(swΏ7=fFi,1u'M#}*07:w]l"Y徒ƣ D[ɷSe|[rnl9 T;o}酃E?-V|d.XJPH9Uz`*#O s_5iLѽ&^5*,~ԗA== yʰr~\0<#+pf~`@CI12Po(Vy\sdrdI/jf]^^k4ԭ1G- , #x!Ofbpwx XRJ-!Y 2tyj5q32;PO?~!JRK)T\TT$'&Cuq/͹K^_ksy̮ /{)?\/o èU4o"ϰjzj oƹߋ3}9rI?ӌߍ= 88caB1B/3O -Mcr^ԗχ͐Ris)a:jľNtƟx/OuJYVsL$%H7J+k/-&S1ed #҇F zw fxHT|oVxFL5qdsH1nڶiaItԃOI w<*= Ք$&4lMtZi_[Aq9o6 ZCdu6C}uW/Y ּ7OR~n_e*ڲHKat&G7!^xUmnEio%Y>v@ %DNzؽ{bY "n|˫@Nw:Qv:TN#s|/nnfḵUTËoi}vr5^W뇗 ^v-wqѸwuF{oF^}~bZ;ufT\ +m[껣n_d#듫\Aôaj~ץwzdkxdWB35|B;5p٘?}ٯ~!15_U6_hΜi<^tI ;4u.!o'_ݤwz=!i9}es~[s&{l/Y0eg>x  J9KVc.9.1z,- ȞKf/=O6\F>[[%s d&%Q_V;ԥ,-m$Gog7'>氒I^lFw7#J*ǾUAd5&>2 o^^KOuzxs;,t0yʓ-DTi۴>0ҿ2ER!Y/\= ك6?86Z !ɮ& 4f2fHdû+el?-&w+漟;?ȣJ_]RӤҪ!QR7cELľKc@[sK[W'OoD-%|o9ڴ5F%CC$RL38XˌRG; ""5JF#^rѨZLΨĜڤB*$"4iŊpGW*Wz8L(6I^$^:,}@3p4{[8'7ΩpGt1+={ #~%Ͷzx|c`8=[cr81X[oߣg[ɽ)8_I!/3/)TnDtesՈbkL  or>^޾SYzxyּD\^K B )JشA)U]܈&,miME3`ŠF<6[[}l$3xTUCdQftsZ{IBV,=S}IX#DilSJad49\[F>״eNl* DYcz.MضkK@E.% 6 3;[>&vFx^1$gIX#Yِ#?۶xϗ&f>Y>kZ)"Q5N$ʊFwSlD έE{nDU䶷i$fS9$Qs,?v6[ZI镫ĭRPZ3尢{ZiUG&>_[hMfZNHjA*Y]r5lZ= L45 ƶܮM .qWi29Mx֋JEhTH*ΨSBomI] O'DוZu*Dѯv+v˹.nukߧx @Yw'1Yv6+]<+g8{ZrVEǦN= @݉1_K.!Q99mKn9R%vL]H'.Kw%6EU0량{_iw؜-Hrݺ:r⸈ww/i tT'@n{b3~/=EZi0_oОU3̯L.;V(V:n>y-' =uW^E[tt\Df<9EYgul2\7.uج)wSuZo3e]dKv`ĝvBvOiWy~s3nr}o[ѩʍkRQU^DDK!uS+_:$SN&,9 aن9mF'ZhM.WUN1Ј4iH6 #+Z֕e]ܜ֑+D$KJ@_xmӇ|7'?vN~.uq{޴ }B:[0 ي~!;d#q]w~Gd^^ !cAܿU|Gd2GVQ5 9@2**e(cr5W*"ZŊ\\$^j#z-^zQ後BahcnζzYRҶ\[]PHȪ=KvK3UJk_[.[CcFO{jN$4 gBj'MZPcswT!yAhHpKƙmGJ8+N%3`8KV&{ܣb%݊ BGR-ͅ=*$8ϠZ&Xcfi Z n "*ިz)JYLt3Fs ,,,lU Ti &xlšLw^,hK\70%|7A dQI2)d0rH1蹂X!Is俉_7ՠp0d$ jh4%j{ױ n/?\Y"Es ?k'}.?=p0sбxs]6 #jR*jz'=חYe[|Cy2WY}/ ];g/iF*0,14ۼ@#Xe[\p, +RM.N_mEeQXx]ҮDb%-藉sr)=I*.o*OEM&t?J Qs36C꫕q^端/ś&ϕ!|40^f0oUsLtU #wcnO MI 7|%=Q_2PKN $6Cqv~4Mbյԃ'fܼWk @5FW=e^ib껱[q6dʼnΔ\xʝT`_J&qIMk}>k#,agMDM0N7AOf*ݳl{>6"5[3H3s#ֵBE:m~'LXŹ&b1Zcs_y\-ϮBc3kG$ksobQg$=>$S!0Dh غkIx&Z+ W%R\MPWS|X8HwyQ夀M0i )\)ZR zn'9t@\C"&L5Yiz'Q7h*d>{'+H2 \&j%mrq&9{oki2q 5; :0ޫ/vMm%ԿF?Gܞ 0̦8XkGr'"wT3M?asU.NbMtľ;݊uDErBv1uF#X3e (Cz]!ֳyv=o:,ɎnݝnjPvܞ|Hz<m@mY#D!&'9Q.rȜr^^z#_a&fTL}>Ds f[Ad+55ue/=C2n9v!'i}QItI*"ìFp\xdyn[jn+grȵ5ܦ8uDJ96aڠ%҄jZT+{W5\VލTm."(IUU/ݿh#_9eVRWa_bJif5ޓ=ZDbλyǽbs-忦cxֈF7hLj w؆/` dr>cDLJlUƉZ-7U(oW 9KiZD;@ҡrZVŃg{KyjֺMBz_(SU,( 9 [VTTDUj9FuH?$ԉ tP岟M6Kǁ6e`AsЭ#6?f# 㚔BPtZlYP3TV|͋2@Fcb#[6$JO<NZiZCNč>L⎣MQLۑ 0/Dةߺ_PQsR=7hek<EJ>5ɗv'-7M/+<(2WQxpcr;B3vZϚeo$tN">sii2 1 d=CM%y/-T_ILNiak(hfuc]PwP!mϕh仠C1AIx!EtV17K]>#Ď>GHxe'@Kؖ^A1幏8|?H徖O?U;Ol p鴚lqçÎ>(BOM9˅P[sMmn b48sX1lWr""5 p&kEOE>Zc!+6+7vR5]ҘϋVZ}>ai&4Ȇ =Q}<DžrUvC4*)'\44GB *̙64vavSBFGbbcKW.WXXK"10gR]I4r#gkޙrܜl`K VcҔ\Lzj ύ#3A|\BB!|V7̦9hRBs]6ƿ!{^ ba}kkY hn/4 ˔j c{Nо+R/FvwHkWh c>h}Ayj Tyd!{/ר'AN6k:RSQbD _gF1]⯑ ;VSo\adϲ_Ŷ:8(UJymZ k2Tj5v[nmjm7 ʭQ*QdIdI4sY#2QURV%Xamd Q""dR5*22T9T !{5Ǝ =UUDW"5ma)MD@!fq9JJG!{^3vٻבHW\rܽ>X5&@jP7Cc.$="_*ko2}; !X7Lқrr@oiwf$" Y٫^;a$ǰ" ;HC[| ne鴜 ط]jn>4snZGmq;ic_FITU]7өyM5,i{68wD4 :{¥:LЉlֵEѨcr5:ע J^ti clz$KT"e:Ka$8JI*iKUVn**^]_HUb1n)~$$OWXqS]w WߺFf¾ۜ![#}ngwxoZS6Vֈi z9Hwk]n[c}F469ָ9_z !!r"%5W(Z5ʍfuJRJ;S*iQ:<1-WaVKQ+Ru5G"&lmcEcEP듮{Ujc=jX4eWܭv؉rcĪ+SG$QR=55`SBI&=bTp=򢢕]bryU^ȚtjFЪOkZDkZQj""5r"'2ZR*sxB!;Go_'c39 Ev˟^u !k܏cxCLvf}?M`?2Nb[ZwzL+${Iz"ܛ/KlH8èiUFs1ȕ0D`kZW^r>\·M􈺍,N]eDmEG\rfQ$TINTDxjz\J[Qh/;٠4iXȱNm1.8#юV|@\V\hmƜ$ ckX5ck܍kZֵD؉f}Mc@\tu:~!ɌyrmZ%I yn|qP||Shz/TUfk(Z%bq>4w깢x8:ϱg\#J){pLk9-V2{E-JKIpH#L͗-6긙Yk:xٍ{G]E"N!Z`0"V)#Æ Us9Q]x Bӵ(#5Xm4 Mih ̄Jl=\kTV5W*9Bm8I3b7TԣO1b -PiLm]r5yپ5򑥜?zկ)jdd#e.nm>z]J6vٞX4Lj,E &fa?R=ըO%m܆g2{+&؄V!0eΖ\KR29&!s8'8;FT'SX-7BxL2#Cz4Nxl,B`Z*Hq#.a0 ','DQtUڍZkMFf2椏UU S޲RD0T#^u}e VsM@v]=$@hb[?0víoR,1) Gs+/3*%˗@Ȥ!)svF^t df=ݖnQUlw-0}漎XfҩLs iG,ڋ;>dW'3;[eN{:bLؖK'aY%Ri9CIȎtɢ+f5+nr1^^w}y.cCS/eϡ\Ј\pѝF5eq*#oE]noDv$v7_M|ܾŏe]@FZpw~U:)Һ#*;~}`|UE"9 b"Q0OGo㲨*5`R)*'G@c]hzܘKגDƫ=+܍EҠSSTm.e($9TēOKސrvJgצ۶+$jt*hML/k"ZG)]RC,Jb<1Uڒzjƍv[TW*1W/UFVpT%oF(LQjIdx aN|sM: I0cb{##EW**UlCXUָ;"%W06lN}Id!o2.,=j(s~߱6هMwlejo[*AS\ݮ[dts*G|Iֿ{X!&0iu{ƢQ*^-ҫn*9T>"ݩg!0821VYVĸ\VO3 k0O`LiA1S`dnX FrSOE~QZ /~(iH_λ=c4hۼ.&`͛8Rhf&W 3 <-oU3.FKnJ+ZE#jƊZ0 B l q\ mFo#Qb%DDJ& Tu[w%p͉?wGv]~B;5|B2bz>u%B;Yzbٜiݟv+<(9F5)K^^Eo˖Is. 8W1Bi`v3mˎĘq9~uʖ~q%΢b{!1GZ`h̩Q㙯i*<ŨP:DTdRS&c|i7,dV(=V=2>Pd} SB!E d"Q&'%[5Qŗ\Ѝ_:3B5\p^'zuV,#"omT!Pm|~;;ogm!s:6a]skQ\j]NkV8G$x OtU 9QB \DyUѪ**uD?vlj,]H/^7FiU:wD+B#QWUKKW1o]6ܱ4mYsXTVlzΨ7\ <>:XY̊?YHGǍMn̑X~d9]_Ǐ9Co1'3ٿ O'sǘ*df)I*X8|K n" u4_g;-fTEK֌8/Ho"l^eب_Bb_/q{W&28fG|'ܥ,z@m{_!O},G7|8OEa{O߅?)z[sұY^׵ 5X.E^JUBE䜆 eI}[nseso:$SOL-YԸ$!?)7!oEw-ȷ#.ɏj]XMYR"̀Xo+t$, dJ$#r+oDr#3;JPXqehGYGEC!4w^ Lj j9&75slK)z]>WK$q)gE

    ")!=-1){v=v.replace("
  • ","")}}v=v.replace(/\t/g,"    ");u.html(v);while(u.find("li").eq(0).html()==""){u.find("li").eq(0).remove()}u.find("li").each(function(){if(a(this).html().length<2){var i=(a(this).html()).replace(/\s/g,"");if(i==""){if(a.browser.opera){a(this).html(" ")}else{a(this).html(" ")}}}});var w="";var r="";u.parent().append(w);u.parent().prepend(r);u.parent().hover(function(){a(this).find(".snippet-menu").fadeIn("fast")},function(){a(this).find(".snippet-menu").fadeOut("fast")});if(d.clipboard!=""&&d.clipboard!=false){var j=u.parent().find("a.snippet-copy");j.show();j.parents(".snippet-menu").show();var s=u.parents(".snippet-wrap").find(".snippet-textonly").text();ZeroClipboard.setMoviePath(d.clipboard);var G=new ZeroClipboard.Client();G.setText(s);G.glue(j[0],j.parents(".snippet-menu")[0]);G.addEventListener("complete",function(i,o){if(o.length>500){o=o.substr(0,500)+"...\n\n("+(o.length-500)+" characters not shown)"}alert("Copied text to clipboard:\n\n "+o)});j.parents(".snippet-menu").hide()}else{u.parent().find("a.snippet-copy").hide()}u.parent().find("a.snippet-text").click(function(){var o=a(this).parents(".snippet-wrap").find(".snippet-formatted");var i=a(this).parents(".snippet-wrap").find(".snippet-textonly");o.toggle();i.toggle();if(i.is(":visible")){a(this).html("html")}else{a(this).html("text")}a(this).blur();return false});u.parent().find("a.snippet-window").click(function(){var i=a(this).parents(".snippet-wrap").find(".snippet-textonly").html();snippetPopup(i);a(this).blur();return false});if(!d.menu){u.prev(".snippet-menu").find("pre,.snippet-clipboard").hide()}if(d.collapse){var n=u.parent().attr("class");var h="";var E="";u.parents(".snippet-container").append(h);u.parent().append(E);var z=u.parents(".snippet-container");if(d.startCollapsed){z.find(".snippet-reveal").show();z.find(".snippet-wrap").eq(0).hide()}else{z.find(".snippet-reveal").hide();z.find(".snippet-wrap").eq(0).show()}z.find("a.snippet-toggle").click(function(){z.find(".snippet-wrap").toggle();return false})}if(d.transparent){var k={"background-color":"transparent","box-shadow":"none","-moz-box-shadow":"none","-webkit-box-shadow":"none"};u.css(k);u.next(".snippet-textonly").css(k);u.parents(".snippet-container").find(".snippet-reveal pre").css(k)}if(d.startText){u.hide();u.next(".snippet-textonly").show();u.parent().find(".snippet-text").html("html")}if(d.box!=""){var m=" ";var C=d.box.split(",");for(var B=0;B");var q=u.find("li").eq(0);q.unwrap()}}else{var F=u.find("li").eq(0).parent();if(F.hasClass("snippet-num")){F.wrap("
      ");var q=u.find("li").eq(0);q.unwrap()}}if(d.box!=""){var m=" ";var C=d.box.split(",");for(var B=0;B' elements are currently unsupported.";console.log(A);return false}})}})(jQuery);function snippetPopup(a){top.consoleRef=window.open("","myconsole","width=600,height=300,left=50,top=50,menubar=0,toolbar=0,location=0,status=0,scrollbars=1,resizable=1");top.consoleRef.document.writeln("Snippet :: Code View :: "+location.href+'
      '+a+"
      ");top.consoleRef.document.close()}var ZeroClipboard={version:"1.0.7",clients:{},moviePath:"ZeroClipboard.swf",nextId:1,$:function(a){if(typeof(a)=="string"){a=document.getElementById(a)}if(!a.addClass){a.hide=function(){this.style.display="none"};a.show=function(){this.style.display=""};a.addClass=function(b){this.removeClass(b);this.className+=" "+b};a.removeClass=function(d){var e=this.className.split(/\s+/);var b=-1;for(var c=0;c-1){e.splice(b,1);this.className=e.join(" ")}return this};a.hasClass=function(b){return !!this.className.match(new RegExp("\\s*"+b+"\\s*"))}}return a},setMoviePath:function(a){this.moviePath=a},dispatch:function(d,b,c){var a=this.clients[d];if(a){a.receiveEvent(b,c)}},register:function(b,a){this.clients[b]=a},getDOMObjectPosition:function(c,a){var b={left:0,top:0,width:c.width?c.width:c.offsetWidth,height:c.height?c.height:c.offsetHeight};while(c&&(c!=a)){b.left+=c.offsetLeft;b.top+=c.offsetTop;c=c.offsetParent}return b},Client:function(a){this.handlers={};this.id=ZeroClipboard.nextId++;this.movieId="ZeroClipboardMovie_"+this.id;ZeroClipboard.register(this.id,this);if(a){this.glue(a)}}};ZeroClipboard.Client.prototype={id:0,ready:false,movie:null,clipText:"",handCursorEnabled:true,cssEffects:true,handlers:null,glue:function(d,b,e){this.domElement=ZeroClipboard.$(d);var f=99;if(this.domElement.style.zIndex){f=parseInt(this.domElement.style.zIndex,10)+1}if(typeof(b)=="string"){b=ZeroClipboard.$(b)}else{if(typeof(b)=="undefined"){b=document.getElementsByTagName("body")[0]}}var c=ZeroClipboard.getDOMObjectPosition(this.domElement,b);this.div=document.createElement("div");this.div.className="snippet-clipboard";var a=this.div.style;a.position="absolute";a.left=""+c.left+"px";a.top=""+c.top+"px";a.width=""+c.width+"px";a.height=""+c.height+"px";a.zIndex=f;if(typeof(e)=="object"){for(addedStyle in e){a[addedStyle]=e[addedStyle]}}b.appendChild(this.div);this.div.innerHTML=this.getHTML(c.width,c.height)},getHTML:function(d,a){var c="";var b="id="+this.id+"&width="+d+"&height="+a;if(navigator.userAgent.match(/MSIE/)){var e=location.href.match(/^https/i)?"https://":"http://";c+=''}else{c+=''}return c},hide:function(){if(this.div){this.div.style.left="-2000px"}},show:function(){this.reposition()},destroy:function(){if(this.domElement&&this.div){this.hide();this.div.innerHTML="";var a=document.getElementsByTagName("body")[0];try{a.removeChild(this.div)}catch(b){}this.domElement=null;this.div=null}},reposition:function(c){if(c){this.domElement=ZeroClipboard.$(c);if(!this.domElement){this.hide()}}if(this.domElement&&this.div){var b=ZeroClipboard.getDOMObjectPosition(this.domElement);var a=this.div.style;a.left=""+b.left+"px";a.top=""+b.top+"px"}},setText:function(a){this.clipText=a;if(this.ready){this.movie.setText(a)}},addEventListener:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");if(!this.handlers[a]){this.handlers[a]=[]}this.handlers[a].push(b)},setHandCursor:function(a){this.handCursorEnabled=a;if(this.ready){this.movie.setHandCursor(a)}},setCSSEffects:function(a){this.cssEffects=!!a},receiveEvent:function(d,f){d=d.toString().toLowerCase().replace(/^on/,"");switch(d){case"load":this.movie=document.getElementById(this.movieId);if(!this.movie){var c=this;setTimeout(function(){c.receiveEvent("load",null)},1);return}if(!this.ready&&navigator.userAgent.match(/Firefox/)&&navigator.userAgent.match(/Windows/)){var c=this;setTimeout(function(){c.receiveEvent("load",null)},100);this.ready=true;return}this.ready=true;try{this.movie.setText(this.clipText)}catch(h){}try{this.movie.setHandCursor(this.handCursorEnabled)}catch(h){}break;case"mouseover":if(this.domElement&&this.cssEffects){this.domElement.addClass("hover");if(this.recoverActive){this.domElement.addClass("active")}}break;case"mouseout":if(this.domElement&&this.cssEffects){this.recoverActive=false;if(this.domElement.hasClass("active")){this.domElement.removeClass("active");this.recoverActive=true}this.domElement.removeClass("hover")}break;case"mousedown":if(this.domElement&&this.cssEffects){this.domElement.addClass("active")}break;case"mouseup":if(this.domElement&&this.cssEffects){this.domElement.removeClass("active");this.recoverActive=false}break}if(this.handlers[d]){for(var b=0,a=this.handlers[d].length;b=2&&f.charAt(0)==="<"&&f.charAt(f.length-1)===">"){f=f.substr(1,f.length-2)}if(sh_isEmailAddress(f)){f="mailto:"+f}e[h-2].node.href=f}function sh_konquerorExec(c){var d=[""];d.index=c.length;d.input=c;return d}function sh_highlightString(X,ah){if(/Konqueror/.test(navigator.userAgent)){if(!ah.konquered){for(var T=0;TQ){ab(ao.substring(Q,U.index),null)}var aq=a[ae];var P=aq[1];var au;if(P instanceof Array){for(var r=0;r0){var h=f.split(" ");for(var j=0;j0){g.push(h[j])}}}return g}function sh_addClass(h,f){var g=sh_getClasses(h);for(var e=0;e element with class="'+a+'", but no such language exists');continue}}break}}}if(!this.sh_languages){this.sh_languages={}}sh_languages.c=[[[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/(\bstruct)([ \t]+)([A-Za-z0-9_]+)/g,["sh_keyword","sh_normal","sh_classname"],-1],[/^[ \t]*#(?:[ \t]*include)/g,"sh_preproc",10,1],[/^[ \t]*#(?:[ \t]*[A-Za-z0-9_]*)/g,"sh_preproc",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",13],[/'/g,"sh_string",14],[/\b(?:__asm|__cdecl|__declspec|__export|__far16|__fastcall|__fortran|__import|__pascal|__rtti|__stdcall|_asm|_cdecl|__except|_export|_far16|_fastcall|__finally|_fortran|_import|_pascal|_stdcall|__thread|__try|asm|auto|break|case|catch|cdecl|const|continue|default|do|else|enum|extern|for|goto|if|pascal|register|return|sizeof|static|struct|switch|typedef|union|volatile|while)\b/g,"sh_keyword",-1],[/\b(?:bool|char|double|float|int|long|short|signed|unsigned|void|wchar_t)\b/g,"sh_type",-1],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1],[/([A-Za-z](?:[^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]|[_])*)((?:<.*>)?)(\s+(?=[*&]*[A-Za-z][^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]*\s*[`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\[\]]+))/g,["sh_usertype","sh_usertype","sh_normal"],-1]],[[/$/g,null,-2],[/(?:?)|(?:?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[//g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[//g,"sh_comment",-2],[//g,"sh_comment",-2],[//g,"sh_comment",-2],[//g,"sh_comment",-2],[//g,"sh_comment",-2],[//g,"sh_comment",-2],[//g,"sh_comment",-2],[//g,"sh_comment",-2],[//g,"sh_comment",-2],[//g,"sh_comment",-2],[//g,"sh_comment",-2],[/

      Just Slider

      stopplay
      Description

      To make the slider work tms-0.4.x.js file is used

      The HTML Slider Structure:

      <div id="slider">
      	<div class="slider">
      		<ul class="items">
      			<li>
      				<img src="YourImage.jpg" alt=""/> 
      				<div class="banner">banner content</div> 
      			</li>
      			...
      		</ul>
      	</div>
      	<a href="#" class="btn prev button1"><span></span></a> 
      	<a href="#" class="play btn"><em>stop</em><span>play</span></a> 
      	<a href="#" class="btn next button2"><span></span></a>
      </div>

      You can add more images to the slider adding <li> tag to the <ul class="items"> list:

      <li><img src="YourImage.jpg" alt=""/> <div class="banner">banner content</div> </li>

      You only need to change the src attribute value and define correct path to your image file. Image captions can be added to the <div class="banner"> block.

      Pagination is automatic and depends on the images amount.

      You'll get more info on working with Just slider in the template manual after purchase. Manual is located in the "documentation" folder of the template package.

      site_pro/kwicks.html0000644075506000000310000002056511734731420013023 0ustar named Kwicks Slider

      Kwicks slider

      • We work for your profit!

        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a.

      • Experts in business

        At vero eos et accusamus et iustomes odio dignissimos dumus. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

      • Succeed with us!

        Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui.

      • Broaden your market edge

        Cras ultricies, quam ac lobortis porta, ante sapien mollis dui. Etiam vel enim lorem. Etiam vel enim lorem.

      Description

      To make the slider work kwicks-1.5.1.pack.js file is used

      The HTML Kwicks Slider Structure:

      <div class="kwicks-wrapper">
      	<ul class="kwicks"> 
      		<li>
      			<div class="slide-kwicks">
      				<img src="YourImage.jpg" alt="">
      				<div class="kwicks-banner">caption content</div>
      			</div>
      		</li>
      		...
      	</ul>
      </div>

      In order to create a Kwicks slider you will need:

      1. Create a bulleted list <ul> with kwicks class (<ul class="kwicks">).
      2. Each slide should consist of the following coding structure:
      3. <li>
        	<div class="slide-kwicks">
        		<img src="YourImage.jpg" alt="">
        		<div class="kwicks-banner">caption content</div>
        	</div>
        </li>
      4. You can add links to each of the slides by placing each image to an <a> tag (<a href="#"></a>).
      site_pro/layouts.html0000644075506000000310000010772711734731420013236 0ustar named Layouts

      Layouts Page

      Structure of an HTML document

      <header> </header>
      <nav> </nav>
      <aside> </aside>
      <section> </section>
      Description

      The first step of creating any HTML document is formatting page structure. To create new website pages you can use blank.html file that is included into the purchased template package.

      Structure Configuration

      Page Layout

      Header
      Content
      Footer
      Description

      If the layout looks like a single sheet of paper on top of <body> and all content sections are wrapped by a single width-defining element, use the following code:

      HTML

      <div id="main">
      	<header>
      		 <!-- Your Logo here -->
      		<nav>
      			<!-- Your Main Menu here -->
      		</nav>
      	</header>
      	<section>
      		<div class="container_24">
      			<div class="wrapper">
      				<!-- Your Columns here -->
      			</div>
      		</div>
      	</section>
      	<footer> <!-- Your Footer here --> </footer>
      </div>

      CSS

      #main{ 
      width:1000px; /* Your Main Block width */
      margin:0 auto; 
      background:#fff; /* Your Background Color */
      }

      Page Layout width full-width backgrounds

      Header
      Content
      Footer
      Description

      If the layout is subdivided into several vertical aligned sections, covering the full width of the viewport and the content area is aligned or centered within these sections, use the following code:

      HTML

      <header class="full-width-bg">
      	<div class="header-box">
      		<!-- Your Logo here -->
      		<nav>
      			<!-- Your Main Menu here -->
      		</nav>
      	</div>
      </header>
      <section class="full-width-bg">
      	<div class="container_24">
      		<div class="wrapper">
      			<!-- Your Columns here -->
      		</div>
      	</div>
      </section>
      <footer class="full-width-bg">
      	<div class="footer-box">
      			<!-- Your Footer here -->
      	</div>
      </footer>
      

      CSS

      .full-width-bg{ 
      width:100%; 
      background:#ddd; /* Your Backgrounds Color */
      }
      .header-box{ 
      width:960px; /* Your Header Block width */
      margin:0 auto; 
      }
      .footer-box{ 
      width:960px;  /* Your Footer Block width */
      margin:0 auto; 
      }

      Columns

      grid_24
      1
      grid_23
      grid_2
      grid_22
      grid_3
      grid_21
      grid_4
      grid_20
      grid_5
      grid_19
      grid_6
      grid_18
      grid_7
      grid_17
      grid_8
      grid_16
      grid_9
      grid_15
      grid_10
      grid_14
      grid_11
      grid_13
      grid_12
      grid_12
      grid_13
      grid_11
      grid_14
      grid_10
      grid_15
      grid_9
      grid_16
      grid_8
      grid_17
      grid_7
      grid_18
      grid_6
      grid_19
      grid_5
      grid_20
      grid_4
      grid_21
      grid_3
      grid_22
      grid_2
      grid_23
      1

      Layouts

      Full-width

      Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla dui. Fusce feugiat malesuada odio. Morbi nunc odio, gravida at, cursus nec, luctus a, lorem. Maecenas tristique orci ac sem. Duis ultricies pharetra magna. Donec accumsan malesuada orci. Donec sit amet eros. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris fermentum dictum magna. Sed laoreet aliquam leo. Ut tellus dolor, dapibus eget, elementum vel, cursus eleifend, elit. Aenean auctor wisi et urna. Aliquam erat volutpat. Duis ac turpis.
      Description

      The template is based on a grid system that uses 24 columns. In order to create the full-witdh column you will need to insert the following code:

      <div class="container_24">
      	<div class="wrapper">
      		<div class="grid_24">
      			<!-- insert content here -->
      		</div>
      	</div>
      </div>

      Lets examine the layout creation process, step by step:

      1. Create a <div> with the "wrapper" class (<div class="wrapper">). This <div> is a container for our columns so using it is a must.
      2. Next you need to create the desired number of columns and add the "grid" class to them.
      3. Now the most important step. You need to add "grid_x" class to each of the columns, where x - is the column width index. Total index of all the columns should be equal to 24 and should not be bigger than this value.

      Two Columns

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Nulla ullamcorper ultrices mi a pellentesque. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui, a sollicitudin dui sem et ante.
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Nulla ullamcorper ultrices mi a pellentesque. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui, a sollicitudin dui sem et ante.
      Description

      In order to create two columns you will need to insert the following code:

      <div class="container_24">
      	<div class="wrapper">
      		<div class="grid_12">
      			<!-- insert content here -->
      		</div>
      		<div class="grid_12">
      			<!-- insert content here -->
      		</div>
      	</div>
      </div>

      Two Columns Layout creation:

      1. Create a <div> with the "wrapper" class (<div class="wrapper">). This <div> is a container for our columns so using it is a must.
      2. Next you need to create the desired number of columns and add the "grid" class to them.
      3. Now the most important step. You need to add "grid_x" class to each of the columns, where x - is the column width index. Total index of all the columns should be equal to 24 and should not be bigger than this value.

      Three Columns

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est.
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est.
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est.
      Description

      In order to create three columns you will need to insert the following code:

      <div class="container_24">
      	<div class="wrapper">
      		<div class="grid_8">
      			<!-- insert content here -->
      		</div>
      		<div class="grid_8">
      			<!-- insert content here -->
      		</div>
      		<div class="grid_8">
      			<!-- insert content here -->
      		</div>
      	</div>
      </div>

      Three Columns Layout creation:

      1. Create a <div> with the "wrapper" class (<div class="wrapper">). This <div> is a container for our columns so using it is a must.
      2. Next you need to create the desired number of columns and add the "grid" class to them.
      3. Now the most important step. You need to add "grid_x" class to each of the columns, where x - is the column width index. Total index of all the columns should be equal to 24 and should not be bigger than this value.

      Four Columns

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem.
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem.
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem.
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem.
      Description

      In order to create four columns you will need to insert the following code:

      <div class="container_24">
      	<div class="wrapper">
      		<div class="grid_6">
      			<!-- insert content here -->
      		</div>
      		<div class="grid_6">
      			<!-- insert content here -->
      		</div>
      		<div class="grid_6">
      			<!-- insert content here -->
      		</div>
      		<div class="grid_6">
      			<!-- insert content here -->
      		</div>
      	</div>
      </div>

      Four Columns Layout creation:

      1. Create a <div> with the "wrapper" class (<div class="wrapper">). This <div> is a container for our columns so using it is a must.
      2. Next you need to create the desired number of columns and add the "grid" class to them.
      3. Now the most important step. You need to add "grid_x" class to each of the columns, where x - is the column width index. Total index of all the columns should be equal to 24 and should not be bigger than this value.

      Left Sidebar

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem.
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Nulla ullamcorper ultrices mi a pellentesque. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui, a sollicitudin dui sem et ante.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem.
      Description

      In order to create layout with left sidebar you will need to insert the following code:

      <div class="container_24">
      	<div class="wrapper">
      		<div class="grid_6">
      			<!-- insert content here -->
      		</div>
      		<div class="grid_18">
      			<!-- insert content here -->
      		</div>
      	</div>
      </div>

      Layout with left sidebar creation:

      1. Create a <div> with the "wrapper" class (<div class="wrapper">). This <div> is a container for our columns so using it is a must.
      2. Next you need to create the desired number of columns and add the "grid" class to them.
      3. Now the most important step. You need to add "grid_x" class to each of the columns, where x - is the column width index. Total index of all the columns should be equal to 24 and should not be bigger than this value.

      Right Sidebar

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Nulla ullamcorper ultrices mi a pellentesque. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui, a sollicitudin dui sem et ante.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem.
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem.
      Description

      In order to create layout with right sidebar you will need to insert the following code:

      <div class="container_24">
      	<div class="wrapper">
      		<div class="grid_18">
      			<!-- insert content here -->
      		</div>
      		<div class="grid_6">
      			<!-- insert content here -->
      		</div>
      	</div>
      </div>

      Layout with right sidebar creation:

      1. Create a <div> with the "wrapper" class (<div class="wrapper">). This <div> is a container for our columns so using it is a must.
      2. Next you need to create the desired number of columns and add the "grid" class to them.
      3. Now the most important step. You need to add "grid_x" class to each of the columns, where x - is the column width index. Total index of all the columns should be equal to 24 and should not be bigger than this value.

      Images

      Floating Left

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui.

      Floating Left 2

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui.

      Floating Right

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui.

      Description

      Floating Left

      In order to create an image block with the text wrapping it on the right, add class "image_left" to the image.

      <div class="wrapper">
      	<div class="image_left">
      		<img src="YourImage.jpg" alt="">
      	</div>
      	<p> <!-- insert text here --> </p>
      </div>

      Floating Left 2

      In order to create left-aligned image block and right-aligned text block add class "image_left" to the image and class "extra-wrap" to the text block.

      <div class="wrapper">
      	<div class="image_left">
      		<img src="YourImage.jpg" alt="">
      	</div>
      	<p class="extra-wrap"> <!-- insert text here --> </p>
      </div>

      Floating Right

      In order to create an image block with the text wrapping it on the left, add class "image_right" to the image.

      <div class="wrapper">
      	<div class="image_right">
      		<img src="YourImage.jpg" alt="">
      	</div>
      	<p> <!-- insert text here --> </p>
      </div>

      Image without style

      Image Style 1

      Image Style 2

      Image Style 3

      Description

      Image without style

      To create simple image block without any styles use the "img" tag. Using the "src" image attribute input the root to the image file.

      <img src="images/YourImage.jpg" alt="">

      Image Style 1

      Create "span" tag with class "image_style1" and insert "img" tag with "src" attribute and root to the image file.

      <span class="image_style1"> 
      	<img src="images/YourImage.jpg" alt=""> 
      </span>

      Image Style 2

      Create "span" tag with class "image_style2" and insert "img" tag with "src" attribute and root to the image file.

      <span class="image_style2"> 
      	<img src="images/YourImage.jpg" alt=""> 
      </span>

      Image Style 3

      Create "span" tag with class "image_style3" and insert "img" tag with "src" attribute and root to the image file.

      <span class="image_style3"> 
      	<img src="images/YourImage.jpg" alt=""> 
      </span>
      site_pro/marketing.php0000644075506000000310000002624312220247006013324 0ustar named Performance

      Performance Tests

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='MARKETING' order by XML_FILE asc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from Testsconfig where ID=@ID"; $ds->InsertCommand = "insert into Testsconfig (Name,File,Class,Notes,Platform,ExecServer,Testbed,Date,Priority,Project,Time,tree) values ('@Name','@File','@Class','@Notes','@Platform','@ExecServer','@Testbed','@Date','@Priority','$project','@Time','@tree')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Use as template"; $column->OnClick = "myPopup2(\"{XML_FILE}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      Edit Area


      XML File Name
      <>,|= +¬-]/', $filename) || $filename == ".xml") { echo ''; } else { $filename = "XML/$filename"; if (file_exists($filename)) { echo ''; } else { echo ''; $file_open = fopen($filename,"w+"); //fopen("something.txt","a+"); to add the contents to file fwrite($file_open, $_POST['code']); fclose($file_open); sleep(15); echo ''; /* $xml = new XMLReader(); $valid = $xml->open("$filename"); if ($valid == TRUE) { echo "Saved to $filename, please wait 1 minute for tables to create test"; $xml->close("$filename"); } else { unlink($filename); echo "This XML is not well formed, not saving it"; } */ } } } ?>
      site_pro/marketing.php~0000644075506000000310000002624012161132403013515 0ustar named Performance

      Performance Tests

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='STRESS' order by XML_FILE asc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from Testsconfig where ID=@ID"; $ds->InsertCommand = "insert into Testsconfig (Name,File,Class,Notes,Platform,ExecServer,Testbed,Date,Priority,Project,Time,tree) values ('@Name','@File','@Class','@Notes','@Platform','@ExecServer','@Testbed','@Date','@Priority','$project','@Time','@tree')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Use as template"; $column->OnClick = "myPopup2(\"{XML_FILE}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      Edit Area


      XML File Name
      <>,|= +¬-]/', $filename) || $filename == ".xml") { echo ''; } else { $filename = "XML/$filename"; if (file_exists($filename)) { echo ''; } else { echo ''; $file_open = fopen($filename,"w+"); //fopen("something.txt","a+"); to add the contents to file fwrite($file_open, $_POST['code']); fclose($file_open); sleep(15); echo ''; /* $xml = new XMLReader(); $valid = $xml->open("$filename"); if ($valid == TRUE) { echo "Saved to $filename, please wait 1 minute for tables to create test"; $xml->close("$filename"); } else { unlink($filename); echo "This XML is not well formed, not saving it"; } */ } } } ?>
      site_pro/marketing_submit.php0000644075506000000310000002062412220247006014704 0ustar named ' , 'writeCookie();' , 'function writeCookie()' , '{' , 'var the_date = new Date("December 31, 2023");' , 'var username = prompt("Please enter your narra username", "");' , 'var password = prompt("Please enter your narra password", "");' , 'var the_cookie_date = the_date.toGMTString();' , 'var the_cookie = "user_password="+ username +"@"+ password;' , 'var the_cookie = the_cookie + ";expires=" + the_cookie_date;' , 'document.cookie=the_cookie;' , '}' , ''; echo ''; } ?> Performance

      Performance Submit

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,RUN_PARAMETERS from tests WHERE CLASS='MARKETING' order by XML_FILE asc"; $ds->UpdateCommand = "update tests set RUN_PARAMETERS='@RUN_PARAMETERS' WHERE ID=@ID"; $ds->DeleteCommand = "insert into queue (ID,XML_FILE,CLASS,PRIORITY,RUN_PARAMETERS,USERNAME,PASSWORD) values ('@ID','@XML_FILE','PERFORMANCE','3','@RUN_PARAMETERS','$user','$password')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowEditing = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->ReadOnly = true; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Added to Queue"; $column->DeleteButtonText = "Submit"; $column->Align = "center"; $column->Width = "100px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      This is your Narra username and password
      Username:$user
      Password:$password"; ?>
      ' , 'writeCookie();' , 'function writeCookie()' , '{' , 'var the_date = new Date("December 31, 2023");' , 'var username = prompt("Please enter your narra username", "");' , 'var password = prompt("Please enter your narra password", "");' , 'var the_cookie_date = the_date.toGMTString();' , 'var the_cookie = "user_password="+ username +"@"+ password;' , 'var the_cookie = the_cookie + ";expires=" + the_cookie_date;' , 'document.cookie=the_cookie;' , '}' , ''; echo ''; } ?>
      site_pro/misc.html0000644075506000000310000007533111734731420012464 0ustar named Miscellanous

      Miscellanous

      Carousel

      Description

      To make carousel work uCarausel.js file is used

      Add the following code to your html page and in the "src" image attribute define path to the image files.

      To add more images to the carousel duplicate the following code: <li><img src="YourImage.jpg" alt=""></li>, don't forget to define path to images in the "src" attribute.

      <div class="car-wrapper">
      	<div class="carousel">
      		<ul>
      			<li><img src="YourImage.jpg" alt=""></li> <!-- Your Image -->
      			...
      		</ul>
      	</div>
      	<a href="#" class="btn prev" data-type="prevPage"><span></span></a>  <!-- Previous Page Button -->
      	<a href="#" class="btn next" data-type="nextPage"><span></span></a>  <!-- Next Page Button -->
      </div>

      Accordion

      Automation
      Automation
      Automation
      Description

      To make accordion work jquery-ui-1.8.17.custom.min.js file is issued

      To add according to the page use the following code:

      <dl id="accordion">
      	<dt><a href=""><span></span> Heading </a></dt> 
      	<dd> Content </dd>
      	....
      </dl>

      SlideDown

      SlideDown Button
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
      SlideDown Absolute Button
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
      Description

      Here you will simply need to add slide-down-box class to any dl-list (<dl class="slide-down-box">).

      <dl class="slide-down-box">
      	<dt> Heading </dt> 
      	<dd> Content </dd>
      </dl>

      Add slide-down-box and absol classes to any dl-list (<dl class="slide-down-box absol">).

      <dl class="slide-down-box absol">
      	<dt> Heading </dt> 
      	<dd> Content </dd>
      </dl>

      Tabs

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Maecenas tristique orci ac sem. Duis ultricies pharetra magna.
      Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui. Etiam vel enim lorem. Maecenas tristique orci ac sem. Duis ultricies pharetra magna.
      Cras ultricies, quam ac lobortis porta, ante sapien mollis dui. Etiam vel enim lorem. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Maecenas tristique orci ac sem. Duis ultricies pharetra magna.
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Maecenas tristique orci ac sem. Duis ultricies pharetra magna.
      Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui. Etiam vel enim lorem. Maecenas tristique orci ac sem. Duis ultricies pharetra magna.
      Cras ultricies, quam ac lobortis porta, ante sapien mollis dui. Etiam vel enim lorem. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Maecenas tristique orci ac sem. Duis ultricies pharetra magna.
      Description

      To make the tabs work jquery.tools.min.js file is used

      Using the following code you can create a tabs with the menu in the top left corner:

      <div class="tabs-horz-top">
      	<ul class="tabs-nav">
      		<li><a href="">Tab 1</a></li>
      		<li><a href="">Tab 2</a></li>
      		<li><a href="">Tab 3</a></li>
      	</ul>
      	<div class="tab-content"> Tab content </div>
      	<div class="tab-content"> Tab content </div>
      	<div class="tab-content"> Tab content </div>
      </div>

      Using the following code you can create a tabs with the menu in the top right corner:

      <div class="tabs-horz-top2">
      	<ul class="tabs-nav">
      		<li><a href="">Tab 1</a></li>
      		<li><a href="">Tab 2</a></li>
      		<li><a href="">Tab 3</a></li>
      	</ul>
      	<div class="tab-content"> Tab content </div>
      	<div class="tab-content"> Tab content </div>
      	<div class="tab-content"> Tab content </div>
      </div>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Maecenas tristique orci ac sem. Duis ultricies pharetra magna.
      Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui. Etiam vel enim lorem. Maecenas tristique orci ac sem. Duis ultricies pharetra magna.
      Cras ultricies, quam ac lobortis porta, ante sapien mollis dui. Etiam vel enim lorem. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Maecenas tristique orci ac sem. Duis ultricies pharetra magna.
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Maecenas tristique orci ac sem. Duis ultricies pharetra magna.
      Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui. Etiam vel enim lorem. Maecenas tristique orci ac sem. Duis ultricies pharetra magna.
      Cras ultricies, quam ac lobortis porta, ante sapien mollis dui. Etiam vel enim lorem. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Maecenas tristique orci ac sem. Duis ultricies pharetra magna.
      Description

      To make the tabs work jquery.tools.min.js file is used

      Using the following code you can create a tabs with the menu in the bottom left corner:

      <div class="tabs-horz-bottom">
      	<div class="tab-content"> Tab content </div>
      	<div class="tab-content"> Tab content </div>
      	<div class="tab-content"> Tab content </div>
      	<ul class="tabs-nav">
      		<li><a href="">Tab 1</a></li>
      		<li><a href="">Tab 2</a></li>
      		<li><a href="">Tab 3</a></li>
      	</ul>
      </div>

      Using the following code you can create a tabs with the menu in the bottom right corner:

      <div class="tabs-horz-bottom2">
      	<div class="tab-content"> Tab content </div>
      	<div class="tab-content"> Tab content </div>
      	<div class="tab-content"> Tab content </div>
      	<ul class="tabs-nav">
      		<li><a href="">Tab 1</a></li>
      		<li><a href="">Tab 2</a></li>
      		<li><a href="">Tab 3</a></li>
      	</ul>
      </div>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Maecenas tristique orci ac sem. Duis ultricies pharetra magna. Donec accumsan malesuada orci. Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh.
      Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui. Etiam vel enim lorem. Maecenas tristique orci ac sem. Duis ultricies pharetra magna. Donec accumsan malesuada orci. Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh.
      Cras ultricies, quam ac lobortis porta, ante sapien mollis dui. Etiam vel enim lorem. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Maecenas tristique orci ac sem. Duis ultricies pharetra magna. Donec accumsan malesuada orci. Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh.
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Maecenas tristique orci ac sem. Duis ultricies pharetra magna. Donec accumsan malesuada orci. Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh.
      Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui. Etiam vel enim lorem. Maecenas tristique orci ac sem. Duis ultricies pharetra magna. Donec accumsan malesuada orci. Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh.
      Cras ultricies, quam ac lobortis porta, ante sapien mollis dui. Etiam vel enim lorem. Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Maecenas tristique orci ac sem. Duis ultricies pharetra magna. Donec accumsan malesuada orci. Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh.
      Description

      To make the tabs work jquery.tools.min.js file is used

      Using the following code you can create a tabs with the left menu:

      <div class="tabs-vert-left">
      	<ul class="tabs-nav">
      		<li><a href="">Tab 1</a></li>
      		<li><a href="">Tab 2</a></li>
      		<li><a href="">Tab 3</a></li>
      	</ul>
      	<div class="tab-content"> Tab content </div>
      	<div class="tab-content"> Tab content </div>
      	<div class="tab-content"> Tab content </div>
      </div>

      Using the following code you can create a tabs with the right menu:

      <div class="tabs-vert-right">
      	<ul class="tabs-nav">
      		<li><a href="">Tab 1</a></li>
      		<li><a href="">Tab 2</a></li>
      		<li><a href="">Tab 3</a></li>
      	</ul>
      	<div class="tab-content"> Tab content </div>
      	<div class="tab-content"> Tab content </div>
      	<div class="tab-content"> Tab content </div>
      </div>

      Tooltips

      Default Tooltipclass="normaltip" title="Text" Fixed Tooltipclass="fixedtip" title="Text" On Click Tooltipclass="clicktip" title="Text"

      Testimonials

      “Lorem ipsum dolor amet consectetu adipiscing elit. Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris...”
      “Cras ultricies, quam ac lobortis porta, ante sapien mollis dui. Etiam vel enim lorem. Etiam vel enim lorem. Nunc lorem sapien....”
      “Etiam vel enim lorem. Nunc lorem sapien, ultrices at faucibus at, varius a est. Cras ultricies, quam ac lobortis porta, ante sapien mollis dui...”

      Dialog window

      This is an animated dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.

      To add dialog box to your page add the following button code to the HTML document (button will display the dialog box on click):
      <button id="opener" class="exampletip">Open Dialog</button>
      Then add content to the dialog window. It doesn't matter where you put the code as it won't be visible until you click the button
      <div id="dialog" title="Heading">
      	Content of Dialog
      </div>
      If you want to add multiple dialog boxes to the page you only need to add new ID to the dialog box and add new initialization script to the script.js
      $.fx.speeds._default = 1000;
      $(function() {
      	$( "#NEWdialog" ).dialog({
      		autoOpen: false,
      		show: "fade",
      		hide: "fade"
      	});
      
      	$( "#NEWopener" ).click(function() {
      		$( "#NEWdialog" ).dialog( "open" );
      		return false;
      	});
      });

      This is an animated dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.

      To add dialog box to your page add the following button code to the HTML document (button will display the dialog box on click):
      <button id="opener2" class="exampletip">Open Dialog</button>
      Then add content to the dialog window. It doesn't matter where you put the code as it won't be visible until you click the button
      <div id="dialog2" title="Heading">
      	Content of Dialog
      </div>
      If you want to add multiple dialog boxes to the page you only need to add new ID to the dialog box and add new initialization script to the script.js
      $.fx.speeds._default = 1000;
      $(function() {
      	$( "#NEWdialog2" ).dialog({
      		autoOpen: false,
      		show: "fade",
      		hide: "fade",
      		modal:true
      	});
      
      	$( "#NEWopener2" ).click(function() {
      		$( "#NEWdialog2" ).dialog( "open" );
      		return false;
      	});
      });
      Description

      To make Testimonials SlideShow work jquery.cycle.all.min.js file is used

      The Testimonials SlideShow HTML structure:

      <div id="testimonials">
      	<div>
      		Slide Box Content
      	</div>
      	<div>
      		Slide Box Content
      	</div>
      	....
      </div>
      <div class="testim_buttons">
      	<a href="#" id="prev_testim"><span></span></a>
      	<a href="#" id="next_testim"><span></span></a>
      </div>

      Into the <div>Slide Box Content</div> you can add any content either text or images. The amount of such content divs is unlimited.

      In the <div class="testim_buttons"> block you can see buttons that are used to navigate slides.

      site_pro/more.html0000644075506000000310000002124411734731420012465 0ustar named Read More

      Personal Solutions

      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ultricies odio magna. Mauris a lacus metus, sed ultrices dui. Vivamus at eros non lectus ultrices rutrum. Sed in neque diam.

      Saving Solutions

      Mauris a lacus metus, sed ultrices dui. Vivamus at eros non lectus ultrices rutrum. Sed in neque diam. Nulla varius commodo justo, id consequat lacinia vitae. Proin dictum tempus tellus.

      Advisory Solutions

      Nulla varius commodo justo, id consequat lacinia vitae. Proin dictum tempus tellus, consequat venes quis. Vestibulum rutrum dui sit amet nisi sollicitudin vitae dapibus nisl tincidunt. Sed id euismod felis.

      Professional Research

      Nulla dui. Fusce feugiat malesuada odio. Morbi nunc odio, gravida at, cursus nec, luctus a, lorem. Maecenas tristique orci ac sem. Duis ultricies pharetra magna. Donec accumsan malesuada orci. Donec sit amet eros. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris fermentum dictum magna. Sed laoreet aliquam leo. Ut tellus dolor, dapibus eget, elementum vel, cursus eleifend, elit. Aenean auctor wisi et urna. Aliquam erat volutpat. Duis ac turpis. Integer rutrum ante eu lacus. Fusce euismod consequat ante. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

      Ideal Solutions

      Praesent vestibulum moles tie lacus. Aenean nonummy hendrerit mauris. Phasellus porta. Fusce suscipit varius mi. Cum sociis natoque peatibus et magnis. Nulla dui. Fusce feugiat malesuada. Morbi nunc odio, gravida at, cursus nec, luctus a, lorem. Maecenas tristique orci ac sem. Duis ultricies pharetra magna. Donec sit amet eros. Lorem ipsum dolor sit amet, consec tetuer adipiscing elit. Mauris fermentum magna. Sed laoreet aliquam leo. Ut tellus dolor, dapibus eget, elementum vel, cursus eleifend, elit. Aenean auctor wisi et urna. Aliquam erat volutpat. Duis ac turpis. Integer rutrum ante eu lacus.

      Offering Comprehensive Solutions

      Nulla dui. Fusce feugiat malesuada odio. Morbi nunc odio, gravida at, cursus nec, luctus a, lorem. Maecenas tristique orci ac sem. Duis ultricies pharetra magna. Donec accumsan malesuada orci.

      Donec sit amet eros. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Mauris fermentum dictum magna. Sed laoreet aliquam leo. Ut tellus dolor, dapibus eget, elementum vel, cursus eleifend, elit. Aenean auctor wisi et urna. Aliquam erat volutpat. Duis ac turpis. Integer rutrum ante eu lacus. Fusce euismod consequat ante. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque sed dolor. Aliquam congue fermentum nisl. Mauris accumsan nulla vel diam. Sed in lacus ut enim adipiscing aliquet. Nulla venenatis. In pede mi, aliquet sit amet, euismod in, auctor ut, ligula.Duis ultricies pharetra magna. Donec accumsan malesuada orci.

      site_pro/mysql_query/0000755075506000000310000000000012242071201013211 5ustar namedsite_pro/mysql_query/by_config.php0000644075506000000310000000134312242071201015662 0ustar named $BANDWIDTH,$MODEL,$LIMIT_FACTOR,
      "; $i++; mysql_close(); } ?> site_pro/mysql_query/by_version.php0000644075506000000310000000157412242071201016110 0ustar named $BANDWIDTH,$VERSION,$LIMIT_FACTOR
      "; $i++; } ?> site_pro/mysql_query/by_version.php~0000644075506000000310000000163012242071201016277 0ustar named $TIME_FINISH,$BANDWIDTH,$RESULT,$LIMIT_FACTOR,$NOTES,$VERSION
      "; $i++; } ?> site_pro/mysql_query/by_submittion.php0000644075506000000310000000244712242071201016620 0ustar named format('Y-m-d H:i:s'); $dateMod->modify('-600 days'); $i=600; while ($i > 0) { $stuff = $dateMod->format('U'); $dateMod->modify('+1 days'); $newdate = $dateMod->format('Y-m-d H:i:s'); $query="SELECT ID,UNIX_TIMESTAMP(TIME_FINISH) as DATE FROM resuts_performance WHERE TIME_FINISH >= '$olddate' AND TIME_FINISH <= '$newdate'"; $result=mysql_query($query); $num=mysql_numrows($result); $query="SELECT ID,UNIX_TIMESTAMP(TIME_FINISH) as DATE FROM resuts_performance WHERE TIME_FINISH >= '$olddate' AND TIME_FINISH <= '$newdate' AND RESULT='PASS'"; $result=mysql_query($query); $num_passed=mysql_numrows($result); $query="SELECT ID,UNIX_TIMESTAMP(TIME_FINISH) as DATE FROM resuts_performance WHERE TIME_FINISH >= '$olddate' AND TIME_FINISH <= '$newdate' AND SUBMITTER!='joaofer' AND SUBMITTER!='mlsumulong'"; $result=mysql_query($query); $dev=mysql_numrows($result); if ($num != 0) { echo "$stuff,$num,$num_passed,$dev
      "; } $olddate = $newdate; $i--; } mysql_close(); ?> site_pro/mysql_query/by_platform.php0000644075506000000310000000134612242071201016244 0ustar named $BANDWIDTH,$CONFIG,$LIMIT_FACTOR,
      "; $i++; mysql_close(); } ?> site_pro/mysql_query/by_submittion_total.php~0000644075506000000310000000244712242071201020221 0ustar named format('Y-m-d H:i:s'); $dateMod->modify('-600 days'); $i=600; while ($i > 0) { $stuff = $dateMod->format('U'); $dateMod->modify('+1 days'); $newdate = $dateMod->format('Y-m-d H:i:s'); $query="SELECT ID,UNIX_TIMESTAMP(TIME_FINISH) as DATE FROM resuts_performance WHERE TIME_FINISH >= '$olddate' AND TIME_FINISH <= '$newdate'"; $result=mysql_query($query); $num=mysql_numrows($result); $query="SELECT ID,UNIX_TIMESTAMP(TIME_FINISH) as DATE FROM resuts_performance WHERE TIME_FINISH >= '$olddate' AND TIME_FINISH <= '$newdate' AND RESULT='PASS'"; $result=mysql_query($query); $num_passed=mysql_numrows($result); $query="SELECT ID,UNIX_TIMESTAMP(TIME_FINISH) as DATE FROM resuts_performance WHERE TIME_FINISH >= '$olddate' AND TIME_FINISH <= '$newdate' AND SUBMITTER!='joaofer' AND SUBMITTER!='mlsumulong'"; $result=mysql_query($query); $dev=mysql_numrows($result); if ($num != 0) { echo "$stuff,$num,$num_passed,$dev
      "; } $olddate = $newdate; $i--; } mysql_close(); ?> site_pro/mysql_query/by_submittion.php~0000644075506000000310000000244712242071201017016 0ustar named format('Y-m-d H:i:s'); $dateMod->modify('-600 days'); $i=600; while ($i > 0) { $stuff = $dateMod->format('U'); $dateMod->modify('+1 days'); $newdate = $dateMod->format('Y-m-d H:i:s'); $query="SELECT ID,UNIX_TIMESTAMP(TIME_FINISH) as DATE FROM resuts_performance WHERE TIME_FINISH >= '$olddate' AND TIME_FINISH <= '$newdate'"; $result=mysql_query($query); $num=mysql_numrows($result); $query="SELECT ID,UNIX_TIMESTAMP(TIME_FINISH) as DATE FROM resuts_performance WHERE TIME_FINISH >= '$olddate' AND TIME_FINISH <= '$newdate' AND RESULT='PASS'"; $result=mysql_query($query); $num_passed=mysql_numrows($result); $query="SELECT ID,UNIX_TIMESTAMP(TIME_FINISH) as DATE FROM resuts_performance WHERE TIME_FINISH >= '$olddate' AND TIME_FINISH <= '$newdate' AND SUBMITTER!='joaofer' AND SUBMITTER!='mlsumulong'"; $result=mysql_query($query); $dev=mysql_numrows($result); if ($num != 0) { echo "$stuff,$num,$num_passed,$dev
      "; } $olddate = $newdate; $i++; } mysql_close(); ?> site_pro/mysql_query/by_id.php0000644075506000000310000000163112242071201015011 0ustar named $TIME_FINISH,$BANDWIDTH,$RESULT,$LIMIT_FACTOR,$NOTES,$VERSION
      "; $i++; } ?> site_pro/mysql_query/by_id.php~0000644075506000000310000000160512242071201015210 0ustar named $TIME_FINISH,$BANDWIDTH,$RESULT,$LIMIT_FACTOR,$NOTES,$VERSION
      "; $i++; } ?> site_pro/mysql_query/by_config.php~0000644075506000000310000000134612242071201016063 0ustar named $BANDWIDTH,$CONFIG,$LIMIT_FACTOR,
      "; $i++; mysql_close(); } ?> site_pro/mysql_query/by_platform.php~0000644075506000000310000000134112242071201016435 0ustar named $BANDWIDTH,$CONFIG,$LIMIT_FACTOR,
      "; $i++; mysql_close(); } ?> site_pro/mysql_query/by_submittion_total.php0000644075506000000310000000242212242071201020014 0ustar named format('Y-m-d H:i:s'); $dateMod->modify('-600 days'); $i=600; while ($i > 0) { $stuff = $dateMod->format('U'); $dateMod->modify('+1 days'); $newdate = $dateMod->format('Y-m-d H:i:s'); $query="SELECT ID,UNIX_TIMESTAMP(TIME_FINISH) as DATE FROM resuts_performance WHERE TIME_FINISH >= '0' AND TIME_FINISH <= '$newdate'"; $result=mysql_query($query); $num=mysql_numrows($result); $query="SELECT ID,UNIX_TIMESTAMP(TIME_FINISH) as DATE FROM resuts_performance WHERE TIME_FINISH >= '0' AND TIME_FINISH <= '$newdate' AND RESULT='PASS'"; $result=mysql_query($query); $num_passed=mysql_numrows($result); $query="SELECT ID,UNIX_TIMESTAMP(TIME_FINISH) as DATE FROM resuts_performance WHERE TIME_FINISH >= '0' AND TIME_FINISH <= '$newdate' AND SUBMITTER!='joaofer' AND SUBMITTER!='mlsumulong'"; $result=mysql_query($query); $dev=mysql_numrows($result); if ($num != 0) { echo "$stuff,$num,$num_passed,$dev
      "; } $olddate = $newdate; $i--; } mysql_close(); ?> site_pro/performance_config.php0000644075506000000310000002056612220247006015173 0ustar named Performance

      Analyse Performance on specific Platform

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "SELECT CONFIG,VERSION,count(DISTINCT MODEL) as HITS,TRAFFIC FROM resuts_performance WHERE RESULT='PASS' GROUP BY VERSION,TRAFFIC,CONFIG order by HITS desc"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "100px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "VERSION"; $column->DataField = "VERSION"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "Number of platforms run"; $column->DataField = "HITS"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{CONFIG}\",\"{VERSION}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/performance_config.php~0000644075506000000310000002106012161127317015365 0ustar named Performance

      Analyse Performance on specific Platform

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "SELECT CONFIG,VERSION,count(DISTINCT MODEL) as HITS,TRAFFIC FROM resuts_performance WHERE RESULT='PASS' GROUP BY VERSION,TRAFFIC,CONFIG order by HITS desc"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "100px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "VERSION"; $column->DataField = "VERSION"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "Number of platforms run"; $column->DataField = "HITS"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{CONFIG}\",\"{VERSION}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/performance_individual.php0000644075506000000310000002616312220247006016055 0ustar named Performance

      Anaylse on single test

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='PERFORMANCE' order by XML_FILE asc"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Timeline"; $column->OnClick = "graph(\"{ID}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/performance_individual.php~0000644075506000000310000003344212141776460016266 0ustar named Performance

      Anaylse on single test

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='PERFORMANCE' order by XML_FILE asc"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Timeline"; $column->OnClick = "graph(\"{ID}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/performance.php0000644075506000000310000002627412237132274013660 0ustar named Performance

      Performance Tests

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='PERFORMANCE' order by XML_FILE asc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from Testsconfig where ID=@ID"; $ds->InsertCommand = "insert into Testsconfig (Name,File,Class,Notes,Platform,ExecServer,Testbed,Date,Priority,Project,Time,tree) values ('@Name','@File','@Class','@Notes','@Platform','@ExecServer','@Testbed','@Date','@Priority','$project','@Time','@tree')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Use as template"; $column->OnClick = "myPopup2(\"{XML_FILE}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      Edit Area


      XML File Name
      <>,|= +¬-]/', $filename) || $filename == ".xml") { echo ''; } else { $filename = "XML/$filename"; if (file_exists($filename)) { echo ''; } else { echo ''; $file_open = fopen($filename,"w+"); //fopen("something.txt","a+"); to add the contents to file fwrite($file_open, $_POST['code']); fclose($file_open); sleep(15); echo ''; /* $xml = new XMLReader(); $valid = $xml->open("$filename"); if ($valid == TRUE) { echo "Saved to $filename, please wait 1 minute for tables to create test"; $xml->close("$filename"); } else { unlink($filename); echo "This XML is not well formed, not saving it"; } */ } } } ?>
      site_pro/performance.php~0000644075506000000310000003356612140120020014033 0ustar named Performance

      Performance Tests

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='PERFORMANCE' order by XML_FILE asc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from Testsconfig where ID=@ID"; $ds->InsertCommand = "insert into Testsconfig (Name,File,Class,Notes,Platform,ExecServer,Testbed,Date,Priority,Project,Time,tree) values ('@Name','@File','@Class','@Notes','@Platform','@ExecServer','@Testbed','@Date','@Priority','$project','@Time','@tree')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Use as template"; $column->OnClick = "myPopup2(\"{XML_FILE}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      Edit Area


      XML File Name
      <>,|= +¬-]/', $filename) || $filename == ".xml") { echo ''; } else { $filename = "XML/$filename"; if (file_exists($filename)) { echo ''; } else { echo ''; $file_open = fopen($filename,"w+"); //fopen("something.txt","a+"); to add the contents to file fwrite($file_open, $_POST['code']); fclose($file_open); sleep(15); echo ''; /* $xml = new XMLReader(); $valid = $xml->open("$filename"); if ($valid == TRUE) { echo "Saved to $filename, please wait 1 minute for tables to create test"; $xml->close("$filename"); } else { unlink($filename); echo "This XML is not well formed, not saving it"; } */ } } } ?>
      site_pro/performance_platform.php0000644075506000000310000002066412220247006015551 0ustar named Performance

      Analyse Performance on specific Platform

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "SELECT VERSION,MODEL,count(DISTINCT CONFIG) as HITS,TRAFFIC FROM resuts_performance WHERE RESULT='PASS' GROUP BY VERSION,TRAFFIC,MODEL order by HITS desc"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "100px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "VERSION"; $column->DataField = "VERSION"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "Number of configs run"; $column->DataField = "HITS"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{MODEL}\",\"{VERSION}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/performance_platform.php~0000644075506000000310000002614312140122251015740 0ustar named Performance

      Analyse Performance on specific Platform

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "SELECT VERSION,MODEL,count(DISTINCT CONFIG) as HITS,TRAFFIC FROM resuts_performance WHERE RESULT='PASS' GROUP BY VERSION,TRAFFIC,MODEL order by HITS desc"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "100px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "VERSION"; $column->DataField = "VERSION"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "Number of configs run"; $column->DataField = "HITS"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{MODEL}\",\"{VERSION}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/performance_results.php0000644075506000000310000003762112237127353015441 0ustar named Performance

      Performance Results

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,RESULT,MODEL,RUN_PARAMETERS,SUBMITTER,BANDWIDTH,XML_FILE,TIME_FINISH,DURATION,NOTES,TRAFFIC,CONFIG,VERSION,LIMIT_FACTOR,LOG,STATS from resuts_performance WHERE CLASS='PERFORMANCE' order by TIME_FINISH desc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from Testsconfig where ID=@ID"; $ds->InsertCommand = ""; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowEditing = true; $grid->AllowDeleting = true; $grid->AllowResizing = true; $grid->Width = "1000px"; $grid->PageSize = 50; $grid->RowAlternative = false; $grid->AllowScrolling = true; $grid->MasterTable->Width = "960px"; $grid->MasterTable->Height = "400px"; $grid->MasterTable->FrozenColumnsCount = 2; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); //$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RESULT"; $column->DataField = "RESULT"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "SUBMITTER"; $column->DataField = "SUBMITTER"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Width = "300px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "VERSION"; $column->DataField = "VERSION"; $column->Width = "150px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "BANDWIDTH"; $column->DataField = "BANDWIDTH"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "LIMIT_FACTOR"; $column->DataField = "LIMIT_FACTOR"; $column->Width = "180px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Width = "180px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TIME_FINISH"; $column->DataField = "TIME_FINISH"; $column->Width = "120px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "DURATION"; $column->DataField = "DURATION"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "LOG"; $column->OnClick = "window.open(\"{LOG}\")"; //$column->CssClass = "button_css"; $column->Width = "50px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{STATS}\")"; //$column->CssClass = "button_css"; $column->Width = "50px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); class MyGridEventHandler extends GridEventHandler { function OnRowPreRender($row) { if($row->DataItem["RESULT"] == 'FAIL') { $row->CssClass = "jred"; // Make the row in blue color. } if($row->DataItem["RESULT"] == 'PASS') { $row->CssClass = "jblue"; // Make the row in blue color. } } } $grid->Process(); // Process the class MyGridEventHandler $grid->EventHandler = new MyGridEventHandler(); // event render $_rows = $grid->GetInstanceMasterTable()->GetInstanceRows(); foreach ($_rows as $_row) { $grid->EventHandler->OnRowPreRender($_row, ''); } if(isset($_POST["IgnorePaging"])) { $grid->ExportSettings->IgnorePaging = true; } if(isset($_POST["ExportToExcel"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToExcel(); } if(isset($_POST["ExportToWord"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToWord(); } if(isset($_POST["ExportToCSV"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToCSV(); } if(isset($_POST["ExportToPDF"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToPDF(); } ?>
      Render();?> Render();?>
      site_pro/performance_results.php~0000644075506000000310000003765212220247006015631 0ustar named Performance

      Performance Results

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,RESULT,MODEL,RUN_PARAMETERS,SUBMITTER,BANDWIDTH,XML_FILE,TIME_FINISH,DURATION,NOTES,TRAFFIC,CONFIG,VERSION,LIMIT_FACTOR,LOG,STATS from resuts_performance WHERE CLASS='PERFORMANCE' order by TIME_FINISH desc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from Testsconfig where ID=@ID"; $ds->InsertCommand = ""; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowEditing = true; $grid->AllowDeleting = true; $grid->AllowResizing = true; $grid->Width = "1000px"; $grid->PageSize = 50; $grid->RowAlternative = false; $grid->AllowScrolling = true; $grid->MasterTable->Width = "960px"; $grid->MasterTable->Height = "400px"; $grid->MasterTable->FrozenColumnsCount = 2; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); //$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RESULT"; $column->DataField = "RESULT"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "SUBMITTER"; $column->DataField = "SUBMITTER"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Width = "300px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "VERSION"; $column->DataField = "VERSION"; $column->Width = "150px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "BANDWIDTH"; $column->DataField = "BANDWIDTH"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "LIMIT_FACTOR"; $column->DataField = "LIMIT_FACTOR"; $column->Width = "180px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Width = "180px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TIME_FINISH"; $column->DataField = "TIME_FINISH"; $column->Width = "120px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "DURATION"; $column->DataField = "DURATION"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "LOG"; $column->OnClick = "window.open(\"{LOG}\")"; //$column->CssClass = "button_css"; $column->Width = "50px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{STATS}\")"; //$column->CssClass = "button_css"; $column->Width = "50px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); class MyGridEventHandler extends GridEventHandler { function OnRowPreRender($row) { if($row->DataItem["RESULT"] == 'FAIL') { $row->CssClass = "jred"; // Make the row in blue color. } if($row->DataItem["RESULT"] == 'PASS') { $row->CssClass = "jblue"; // Make the row in blue color. } } } $grid->Process(); // Process the class MyGridEventHandler $grid->EventHandler = new MyGridEventHandler(); // event render $_rows = $grid->GetInstanceMasterTable()->GetInstanceRows(); foreach ($_rows as $_row) { $grid->EventHandler->OnRowPreRender($_row, ''); } if(isset($_POST["IgnorePaging"])) { $grid->ExportSettings->IgnorePaging = true; } if(isset($_POST["ExportToExcel"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToExcel(); } if(isset($_POST["ExportToWord"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToWord(); } if(isset($_POST["ExportToCSV"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToCSV(); } if(isset($_POST["ExportToPDF"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToPDF(); } ?>
      Render();?> Render();?>
      site_pro/performance_submit.php0000644075506000000310000002030012230063076015217 0ustar named ' , 'writeCookie();' , 'function writeCookie()' , '{' , 'var the_date = new Date("December 31, 2020");' , 'var username = "none";' , 'var password = "none";' , 'var the_cookie_date = the_date.toGMTString();' , 'var the_cookie = "user_password="+ username +"@"+ password;' , 'var the_cookie = the_cookie + ";expires=" + the_cookie_date;' , 'document.cookie=the_cookie;' , '}' , ''; } ?> Performance

      Performance Submit

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,RUN_PARAMETERS from tests WHERE CLASS='PERFORMANCE' order by XML_FILE asc"; $ds->UpdateCommand = "update tests set RUN_PARAMETERS='@RUN_PARAMETERS' WHERE ID=@ID"; $ds->DeleteCommand = "insert into queue (ID,XML_FILE,CLASS,PRIORITY,RUN_PARAMETERS,USERNAME,PASSWORD) values ('@ID','@XML_FILE','PERFORMANCE','3','@RUN_PARAMETERS','$user','$password')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowEditing = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; $grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = "950px"; $grid->Height = "400px"; $grid->PageSize = 200; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = false; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->ReadOnly = true; $column->Width = "100px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Added to Queue"; $column->DeleteButtonText = "Submit"; $column->Align = "center"; $column->Width = "100px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      This is your TaaS username and password
      Username:$user
      Password:$password"; ?>
      ' , 'writeCookie();' , 'function writeCookie()' , '{' , 'var the_date = new Date("December 31, 2023");' , 'var username = prompt("Please enter your TaaS username", "");' , 'var password = prompt("Please enter your TaaS(No CEC) password", "");' , 'var the_cookie_date = the_date.toGMTString();' , 'var the_cookie = "user_password="+ username +"@"+ password;' , 'var the_cookie = the_cookie + ";expires=" + the_cookie_date;' , 'document.cookie=the_cookie;' , '}' , ''; echo ''; } ?>
      site_pro/performance_submit.php~0000644075506000000310000002027712220247006015426 0ustar named ' , 'writeCookie();' , 'function writeCookie()' , '{' , 'var the_date = new Date("December 31, 2020");' , 'var username = "none";' , 'var password = "none";' , 'var the_cookie_date = the_date.toGMTString();' , 'var the_cookie = "user_password="+ username +"@"+ password;' , 'var the_cookie = the_cookie + ";expires=" + the_cookie_date;' , 'document.cookie=the_cookie;' , '}' , ''; } ?> Performance

      Performance Submit

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,RUN_PARAMETERS from tests WHERE CLASS='PERFORMANCE' order by XML_FILE asc"; $ds->UpdateCommand = "update tests set RUN_PARAMETERS='@RUN_PARAMETERS' WHERE ID=@ID"; $ds->DeleteCommand = "insert into queue (ID,XML_FILE,CLASS,PRIORITY,RUN_PARAMETERS,USERNAME,PASSWORD) values ('@ID','@XML_FILE','PERFORMANCE','3','@RUN_PARAMETERS','$user','$password')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowEditing = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; $grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = "950px"; $grid->Height = "400px"; $grid->PageSize = 200; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = false; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->ReadOnly = true; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Added to Queue"; $column->DeleteButtonText = "Submit"; $column->Align = "center"; $column->Width = "100px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      This is your TaaS username and password
      Username:$user
      Password:$password"; ?>
      ' , 'writeCookie();' , 'function writeCookie()' , '{' , 'var the_date = new Date("December 31, 2023");' , 'var username = prompt("Please enter your TaaS username", "");' , 'var password = prompt("Please enter your TaaS(No CEC) password", "");' , 'var the_cookie_date = the_date.toGMTString();' , 'var the_cookie = "user_password="+ username +"@"+ password;' , 'var the_cookie = the_cookie + ";expires=" + the_cookie_date;' , 'document.cookie=the_cookie;' , '}' , ''; echo ''; } ?>
      site_pro/portfolio.html0000644075506000000310000013727011734731420013547 0ustar named Portfolio

      Portfolio Page

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque.

      Read More
      Description
      <div class="container_24">
      	<div class="wrapper">
      		<div class="grid_8">
      			<div class="wrapper pad_port">
      				<a data-gal="prettyPhoto[gallery]" class="image_style3 image_with_capt lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      				<p> Text </p>
      				<a href="" class="btn">Read More</a>
      			</div>
      		</div>
      		<div class="grid_8">
      			<div class="wrapper pad_port">
      				<a data-gal="prettyPhoto[gallery]" class="image_style3 image_with_capt lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      				<p> Text </p>
      				<a href="" class="btn">Read More</a>
      			</div>
      		</div>
      		<div class="grid_8">
      			<div class="wrapper pad_port">
      				<a data-gal="prettyPhoto[gallery]" class="image_style3 image_with_capt lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      				<p> Text </p>
      				<a href="" class="btn">Read More</a>
      			</div>
      		</div>
      	</div>
      </div>
      Description
      <div class="container_24">
      	<div class="wrapper">
      		<div class="grid_8">
      			<div class="wrapper pad_port">
      				<a href="images/stock_images/900x500_2.jpg" data-gal="prettyPhoto[gallery5]" class="image_style3 lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      			</div>
      		</div>
      		<div class="grid_8">
      			<div class="wrapper pad_port">
      				<a href="images/stock_images/900x500_2.jpg" data-gal="prettyPhoto[gallery5]" class="image_style3 lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      			</div>
      		</div>
      		<div class="grid_8">
      			<div class="wrapper pad_port">
      				<a href="images/stock_images/900x500_2.jpg" data-gal="prettyPhoto[gallery5]" class="image_style3 lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      			</div>
      		</div>
      	</div>
      </div>

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget.

      Read More
      Description
      <div class="container_24">
      	<div class="wrapper">
      		<div class="grid_6">
      			<div class="wrapper pad_port">
      				<a data-gal="prettyPhoto[gallery]" class="image_style3 image_with_capt lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      				<p> Text </p>
      				<a href="" class="btn">Read More</a>
      			</div>
      		</div>
      		<div class="grid_6">
      			<div class="wrapper pad_port">
      				<a data-gal="prettyPhoto[gallery]" class="image_style3 image_with_capt lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      				<p> Text </p>
      				<a href="" class="btn">Read More</a>
      			</div>
      		</div>
      		<div class="grid_6">
      			<div class="wrapper pad_port">
      				<a data-gal="prettyPhoto[gallery]" class="image_style3 image_with_capt lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      				<p> Text </p>
      				<a href="" class="btn">Read More</a>
      			</div>
      		</div>
      		<div class="grid_6">
      			<div class="wrapper pad_port">
      				<a data-gal="prettyPhoto[gallery]" class="image_style3 image_with_capt lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      				<p> Text </p>
      				<a href="" class="btn">Read More</a>
      			</div>
      		</div>
      	</div>
      </div>
      Description
      <div class="container_24">
      	<div class="wrapper">
      		<div class="grid_6">
      			<div class="wrapper pad_port">
      				<a href="images/stock_images/900x500_2.jpg" data-gal="prettyPhoto[gallery5]" class="image_style3 lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      			</div>
      		</div>
      		<div class="grid_6">
      			<div class="wrapper pad_port">
      				<a href="images/stock_images/900x500_2.jpg" data-gal="prettyPhoto[gallery5]" class="image_style3 lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      			</div>
      		</div>
      		<div class="grid_6">
      			<div class="wrapper pad_port">
      				<a href="images/stock_images/900x500_2.jpg" data-gal="prettyPhoto[gallery5]" class="image_style3 lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      			</div>
      		</div>
      		<div class="grid_6">
      			<div class="wrapper pad_port">
      				<a href="images/stock_images/900x500_2.jpg" data-gal="prettyPhoto[gallery5]" class="image_style3 lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      			</div>
      		</div>
      	</div>
      </div>

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh. Etiam cursus leo vel metus. Nulla facilisi. Aenean augue.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh. Etiam cursus leo vel metus. Nulla facilisi. Aenean augue.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh. Etiam cursus leo vel metus. Nulla facilisi. Aenean augue.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh. Etiam cursus leo vel metus. Nulla facilisi. Aenean augue.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh. Etiam cursus leo vel metus. Nulla facilisi. Aenean augue.

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh. Etiam cursus leo vel metus. Nulla facilisi. Aenean augue.

      Read More
      Description
      <div class="container_24">
      	<div class="wrapper">
      		<div class="grid_12">
      			<div class="wrapper pad_port">
      				<a data-gal="prettyPhoto[gallery]" class="image_style3 image_with_capt lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      				<p> Text </p>
      				<a href="" class="btn">Read More</a>
      			</div>
      		</div>
      		<div class="grid_12">
      			<div class="wrapper pad_port">
      				<a data-gal="prettyPhoto[gallery]" class="image_style3 image_with_capt lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      				<p> Text </p>
      				<a href="" class="btn">Read More</a>
      			</div>
      		</div>
      	</div>
      </div>
      Description
      <div class="container_24">
      	<div class="wrapper">
      		<div class="grid_12">
      			<div class="wrapper pad_port">
      				<a href="images/stock_images/900x500_2.jpg" data-gal="prettyPhoto[gallery5]" class="image_style3 lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      			</div>
      		</div>
      		<div class="grid_12">
      			<div class="wrapper pad_port">
      				<a href="images/stock_images/900x500_2.jpg" data-gal="prettyPhoto[gallery5]" class="image_style3 lightbox-image" href="YourBigImage.jpg"><img src="YourImage.jpg" alt=""></a>
      			</div>
      		</div>
      	</div>
      </div>

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh. Etiam cursus leo vel metus. Nulla facilisi. Aenean augue. Nam elit magna, hendrerit sit amet, tincidunt ac, viverra sed, nulla. Donec porta diam eu massa. Quisque diam lorem, interdum vitae, dapibus ac, scelerisque vitae, pede.

      Mauris accumsan nulla vel diam. Sed lacus ut enim adipiscing aliquet. Nulla venenatis. In pede mi, aliquet sit amet, euismod in, auctor ut, ligula. Aliquam dapibus tincidunt metus. Praesent justo dolor, lobortis quis, lobortis dignissim, pulvinar ac lorem. Vestibulum sed ante. Donec sagittis euismod purus voluptatem accusantium doloremque. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh. Etiam cursus leo vel metus. Nulla facilisi. Aenean augue. Nam elit magna, hendrerit sit amet, tincidunt ac, viverra sed, nulla. Donec porta diam eu massa. Quisque diam lorem, interdum vitae, dapibus ac, scelerisque vitae, pede.

      Mauris accumsan nulla vel diam. Sed lacus ut enim adipiscing aliquet. Nulla venenatis. In pede mi, aliquet sit amet, euismod in, auctor ut, ligula. Aliquam dapibus tincidunt metus. Praesent justo dolor, lobortis quis, lobortis dignissim, pulvinar ac lorem. Vestibulum sed ante. Donec sagittis euismod purus voluptatem accusantium doloremque. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium

      Read More

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh. Etiam cursus leo vel metus. Nulla facilisi. Aenean augue. Nam elit magna, hendrerit sit amet, tincidunt ac, viverra sed, nulla. Donec porta diam eu massa. Quisque diam lorem, interdum vitae, dapibus ac, scelerisque vitae, pede.

      Mauris accumsan nulla vel diam. Sed lacus ut enim adipiscing aliquet. Nulla venenatis. In pede mi, aliquet sit amet, euismod in, auctor ut, ligula. Aliquam dapibus tincidunt metus. Praesent justo dolor, lobortis quis, lobortis dignissim, pulvinar ac lorem. Vestibulum sed ante. Donec sagittis euismod purus voluptatem accusantium doloremque. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium

      Quisque nulla. Vestibulum libero nisl, porta vel, scelerisque eget, malesuada at, neque. Vivamus eget nibh. Etiam cursus leo vel metus. Nulla facilisi. Aenean augue. Nam elit magna, hendrerit sit amet, tincidunt ac, viverra sed, nulla. Donec porta diam eu massa. Quisque diam lorem, interdum vitae, dapibus ac, scelerisque vitae, pede.

      Mauris accumsan nulla vel diam. Sed lacus ut enim adipiscing aliquet. Nulla venenatis. In pede mi, aliquet sit amet, euismod in, auctor ut, ligula. Aliquam dapibus tincidunt metus. Praesent justo dolor, lobortis quis, lobortis dignissim, pulvinar ac lorem. Vestibulum sed ante. Donec sagittis euismod purus voluptatem accusantium doloremque. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium

      Description
      <div class="container_24">
      	<div class="wrapper">
      		<div class="grid_24">
      			<div class="wrapper pad_port">
      				<div class="image_left"><img src="YourImage.jpg" alt=""></div>
      				<p> Text </p>
      			</div>
      		</div>
      	</div>
      </div>

      Filter Images

      Description

      QuickSand plugin (jquery.quicksand.js) is used to filter images.

      Quicksand replaces one collection of items with another. All you need to do is provide those two sets of items.

      First of all create a list with image categories.

      <ul class="splitter">
      	<li>
      		 <ul class="fleft">
      			<li class="segment-1 selected-1"><a data-value="all" class="btn">Everything</a></li>
      			<li class="segment-0"><a data-value="Category1" class="btn">Category 1</a></li>
      			<li class="segment-2 last"><a data-value="Category2" class="btn">Category 2</a></li>
      		 </ul>
      	 </li>
      </ul>

      Then you need to create a list of items that will be filtered.

      <ul id="boxes-filter" class="image-grid">
      	<li data-id="id-1" class="Category1">
      		Your Object Content
      	</li>
      	<li data-id="id-2" class="Category2">
      		Your Object Content
      	</li>
      	...
      </ul>

      Please note that each new <li> tag should have attribute data-id="id-1" assigned with sufficient id number and class class="Category1" with the required category name. Please make sure that your category name matches the data-value attribute in the categories list. It is required to define .image-grid li element width and height in style.css file.

      site_pro/queue.php0000644075506000000310000001445412231326462012476 0ustar named Queue

      Queue

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select QUEUE_ID,XML_FILE,PRIORITY,DATE_SUBMITTED,RUN_PARAMETERS,USERNAME,STATUS from queue order by PRIORITY asc,DATE_SUBMITTED asc"; $ds->UpdateCommand = "update queue set RUN_PARAMETERS='@RUN_PARAMETERS',PRIORITY='@PRIORITY' WHERE QUEUE_ID='@QUEUE_ID' AND DATE_SUBMITTED='@DATE_SUBMITTED' AND USERNAME='$user'"; $ds->DeleteCommand = "delete from queue where ( QUEUE_ID='@QUEUE_ID' AND USERNAME='$user') or (QUEUE_ID='@QUEUE_ID' AND USERNAME='none')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowEditing = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; $grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = "950px"; $grid->Height = "600px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "USERNAME"; $column->DataField = "USERNAME"; $column->ReadOnly = true; $column->Width = "70px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "DATE_SUBMITTED"; $column->DataField = "DATE_SUBMITTED"; $column->ReadOnly = true; $column->AllowFiltering = false; $column->Width = "120px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "STATUS"; $column->DataField = "STATUS"; $column->ReadOnly = true; $column->AllowFiltering = false; $column->Width = "120px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridDropDownColumn(); $column->HeaderText = "PRIORITY"; $column->DataField = "PRIORITY"; $column->AllowFiltering = false; $column->Width = "70px"; $column->Align = "left"; $column->AddItem("2"); $column->AddItem("3"); $column->AddItem("4"); $column->AddItem("5"); $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Confirm delete, your boss will be notarized"; $column->DeleteButtonText = "Delete"; $column->Align = "center"; $column->Width = "100px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/queue.php~0000644075506000000310000001441212220255167012667 0ustar named Queue

      Queue

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select QUEUE_ID,XML_FILE,PRIORITY,DATE_SUBMITTED,RUN_PARAMETERS,USERNAME,STATUS from queue order by PRIORITY asc,DATE_SUBMITTED asc"; $ds->UpdateCommand = "update queue set RUN_PARAMETERS='@RUN_PARAMETERS',PRIORITY='@PRIORITY' WHERE QUEUE_ID='@QUEUE_ID' AND DATE_SUBMITTED='@DATE_SUBMITTED' AND USERNAME='$user'"; $ds->DeleteCommand = "delete from queue where ( QUEUE_ID='@QUEUE_ID' AND USERNAME='$user') or (QUEUE_ID='@QUEUE_ID' AND USERNAME='none')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowEditing = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; $grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = "950px"; $grid->Height = "600px"; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "USERNAME"; $column->DataField = "USERNAME"; $column->ReadOnly = true; $column->Width = "70px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "DATE_SUBMITTED"; $column->DataField = "DATE_SUBMITTED"; $column->ReadOnly = true; $column->AllowFiltering = false; $column->Width = "120px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "STATUS"; $column->DataField = "STATUS"; $column->ReadOnly = true; $column->AllowFiltering = false; $column->Width = "120px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridDropDownColumn(); $column->HeaderText = "PRIORITY"; $column->DataField = "PRIORITY"; $column->AllowFiltering = false; $column->Width = "70px"; $column->Align = "left"; $column->AddItem("2"); $column->AddItem("3"); $column->AddItem("4"); $column->AddItem("5"); $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Confirm delete, your boss will be notarized"; $column->DeleteButtonText = "Delete"; $column->Align = "center"; $column->Width = "100px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/running2.html0000644075506000000310000002126412124656107013271 0ustar named About Us
    • site_pro/runningbackup.php0000644075506000000310000004073512220247006014213 0ustar named Performance

      Queue

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,XML_FILE,PRIORITY,DATE_SUBMITTED,RUN_PARAMETERS,USERNAME from queue order by PRIORITY asc,DATE_SUBMITTED asc"; $ds->UpdateCommand = "update queue set RUN_PARAMETERS='@RUN_PARAMETERS',PRIORITY='@PRIORITY' WHERE ID='@ID' AND DATE_SUBMITTED='@DATE_SUBMITTED' AND USERNAME='$user'"; $ds->DeleteCommand = "delete from queue where ID='@ID' AND DATE_SUBMITTED='@DATE_SUBMITTED' AND USERNAME='$user'"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowEditing = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "USERNAME"; $column->DataField = "USERNAME"; $column->ReadOnly = true; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "DATE_SUBMITTED"; $column->DataField = "DATE_SUBMITTED"; $column->ReadOnly = true; $column->AllowFiltering = false; $column->Width = "120px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridDropDownColumn(); $column->HeaderText = "PRIORITY"; $column->DataField = "PRIORITY"; $column->AllowFiltering = false; $column->Width = "80px"; $column->Align = "left"; $column->AddItem("2"); $column->AddItem("3"); $column->AddItem("4"); $column->AddItem("5"); $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Confirm delete, your boss will be notarized"; $column->DeleteButtonText = "Delete"; $column->Align = "center"; $column->Width = "100px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/running_backupt.php0000644075506000000310000004566712220247006014547 0ustar named Performance

      Queue

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,XML_FILE,PRIORITY,DATE_SUBMITTED,RUN_PARAMETERS,USERNAME from queue order by PRIORITY asc,DATE_SUBMITTED asc"; $ds->UpdateCommand = "update queue set RUN_PARAMETERS='@RUN_PARAMETERS',PRIORITY='@PRIORITY' WHERE ID='@ID' AND DATE_SUBMITTED='@DATE_SUBMITTED' AND USERNAME='$user'"; $ds->DeleteCommand = "delete from queue where ID='@ID' AND DATE_SUBMITTED='@DATE_SUBMITTED' AND USERNAME='$user'"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowEditing = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "USERNAME"; $column->DataField = "USERNAME"; $column->ReadOnly = true; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "DATE_SUBMITTED"; $column->DataField = "DATE_SUBMITTED"; $column->ReadOnly = true; $column->AllowFiltering = false; $column->Width = "120px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridDropDownColumn(); $column->HeaderText = "PRIORITY"; $column->DataField = "PRIORITY"; $column->AllowFiltering = false; $column->Width = "80px"; $column->Align = "left"; $column->AddItem("2"); $column->AddItem("3"); $column->AddItem("4"); $column->AddItem("5"); $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Confirm delete, your boss will be notarized"; $column->DeleteButtonText = "Delete"; $column->Align = "center"; $column->Width = "100px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/running.html0000644075506000000310000002126412055753013013204 0ustar named About Us
    • site_pro/running.html~0000644075506000000310000002126412055752732013411 0ustar named About Us
    • site_pro/running.php0000644075506000000310000004636512231612076013037 0ustar named Performance

      Running

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,PID,XML_FILE,DATE_SUBMITTED,RUN_PARAMETERS,USERNAME,DATE_STARTED,RUNNING_LOG,RUNNING_STATS from running order by DATE_STARTED asc"; $ds->UpdateCommand = "update running set RUN_PARAMETERS='@RUN_PARAMETERS',PRIORITY='@PRIORITY' WHERE PID='@PID'USERNAME='$user'"; $ds->DeleteCommand = "delete from running where PID='@PID' and USERNAME='$user'"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowEditing = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; $grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "USERNAME"; $column->DataField = "USERNAME"; $column->ReadOnly = true; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->Width = "200px"; $column->DataField = "RUN_PARAMETERS"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "DATE_STARTED"; $column->DataField = "DATE_STARTED"; $column->ReadOnly = true; $column->AllowFiltering = false; $column->Width = "120px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "debug"; $column->OnClick = "debug(\"{RUNNING_LOG}\",\"{RUNNING_STATS}\")"; $column->CssClass = "button_css"; $column->Width = "70px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Confirm delete, your boss will be notarized"; $column->DeleteButtonText = "Delete"; $column->Align = "center"; $column->Width = "100px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      Debug Area


      site_pro/running.php~0000644075506000000310000004635712223663506013243 0ustar named Performance

      Running

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,PID,XML_FILE,DATE_SUBMITTED,RUN_PARAMETERS,USERNAME,DATE_STARTED,RUNNING_LOG,RUNNING_STATS from running order by DATE_STARTED asc"; $ds->UpdateCommand = "update running set RUN_PARAMETERS='@RUN_PARAMETERS',PRIORITY='@PRIORITY' WHERE PID='@PID'USERNAME='$user'"; $ds->DeleteCommand = "delete from running where PID='@PID' and USERNAME='$user'"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowEditing = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; $grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "USERNAME"; $column->DataField = "USERNAME"; $column->ReadOnly = true; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->Width = "200px"; $column->DataField = "RUN_PARAMETERS"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "DATE_STARTED"; $column->DataField = "DATE_STARTED"; $column->ReadOnly = true; $column->AllowFiltering = false; $column->Width = "120px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "debug"; $column->OnClick = "debug(\"{RUNNING_LOG}\",\"{RUNNING_STATS}\")"; $column->CssClass = "button_css"; $column->Width = "70px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Confirm delete, your boss will be notarized"; $column->DeleteButtonText = "Delete"; $column->Align = "center"; $column->Width = "100px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      Debug Area


      site_pro/sandbox_config.php0000644075506000000310000002061612220247006014324 0ustar named Sandbox

      Analyse Sandbox Performance on specific Platform

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "SELECT CONFIG,VERSION,count(DISTINCT MODEL) as HITS,TRAFFIC FROM resuts_performance WHERE RESULT='PASS' and CLASS='SANDBOX' GROUP BY VERSION,TRAFFIC,CONFIG order by HITS desc"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "100px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "VERSION"; $column->DataField = "VERSION"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "Number of platforms run"; $column->DataField = "HITS"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{CONFIG}\",\"{VERSION}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/sandbox_config.php~0000644075506000000310000002056612172710416014534 0ustar named Performance

      Analyse Performance on specific Platform

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "SELECT CONFIG,VERSION,count(DISTINCT MODEL) as HITS,TRAFFIC FROM resuts_performance WHERE RESULT='PASS' GROUP BY VERSION,TRAFFIC,CONFIG order by HITS desc"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "100px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "VERSION"; $column->DataField = "VERSION"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "Number of platforms run"; $column->DataField = "HITS"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{CONFIG}\",\"{VERSION}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/sandbox_individual.php0000644075506000000310000002615312220247006015211 0ustar named Sandbox

      Anaylse on single test

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='SANDBOX' order by XML_FILE asc"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Timeline"; $column->OnClick = "graph(\"{ID}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/sandbox_individual.php~0000644075506000000310000002616312172710442015415 0ustar named Performance

      Anaylse on single test

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='PERFORMANCE' order by XML_FILE asc"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Timeline"; $column->OnClick = "graph(\"{ID}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/sandbox.php0000644075506000000310000002752112237131572013011 0ustar named Performance

      SandBox Performance Tests

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='SANDBOX' order by XML_FILE asc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from Testsconfig where ID=@ID"; $ds->InsertCommand = "insert into Testsconfig (Name,File,Class,Notes,Platform,ExecServer,Testbed,Date,Priority,Project,Time,tree) values ('@Name','@File','@Class','@Notes','@Platform','@ExecServer','@Testbed','@Date','@Priority','$project','@Time','@tree')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Use as template"; $column->OnClick = "myPopup2(\"{XML_FILE}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      Edit Area


      XML File Name
      <>,|= +¬-]/', $filename) || $filename == ".xml") { echo ''; } else { $filename = "XML/$filename"; if (file_exists($filename)) { $filename2 = $var = $_GET['XML']; $filename2 = "XML/$filename2"; if($filename2 == $filename) { echo ''; $file_open = fopen($filename,"w+"); //fopen("something.txt","a+"); to add the contents to file fwrite($file_open, $_POST['code']); fclose($file_open); chmod($filename,0777); sleep(2); echo ''; } else { echo ''; } } else { echo ''; $file_open = fopen($filename,"w+"); //fopen("something.txt","a+"); to add the contents to file fwrite($file_open, $_POST['code']); fclose($file_open); chmod($filename,0777); sleep(15); echo ''; /* $xml = new XMLReader(); $valid = $xml->open("$filename"); if ($valid == TRUE) { echo "Saved to $filename, please wait 1 minute for tables to create test"; $xml->close("$filename"); } else { unlink($filename); echo "This XML is not well formed, not saving it"; } */ } } } ?>
      site_pro/sandbox.php~0000644075506000000310000002751312224641613013206 0ustar named Performance

      SandBox Performance Tests

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='SANDBOX' order by XML_FILE asc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from Testsconfig where ID=@ID"; $ds->InsertCommand = "insert into Testsconfig (Name,File,Class,Notes,Platform,ExecServer,Testbed,Date,Priority,Project,Time,tree) values ('@Name','@File','@Class','@Notes','@Platform','@ExecServer','@Testbed','@Date','@Priority','$project','@Time','@tree')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Use as template"; $column->OnClick = "myPopup2(\"{XML_FILE}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      Edit Area


      XML File Name
      <>,|= +¬-]/', $filename) || $filename == ".xml") { echo ''; } else { $filename = "XML/$filename"; if (file_exists($filename)) { $filename2 = $var = $_GET['XML']; $filename2 = "XML/$filename2"; if($filename2 == $filename) { echo ''; $file_open = fopen($filename,"w+"); //fopen("something.txt","a+"); to add the contents to file fwrite($file_open, $_POST['code']); fclose($file_open); chmod($filename,0777); sleep(2); echo ''; } else { echo ''; } } else { echo ''; $file_open = fopen($filename,"w+"); //fopen("something.txt","a+"); to add the contents to file fwrite($file_open, $_POST['code']); fclose($file_open); chmod($filename,0777); sleep(15); echo ''; /* $xml = new XMLReader(); $valid = $xml->open("$filename"); if ($valid == TRUE) { echo "Saved to $filename, please wait 1 minute for tables to create test"; $xml->close("$filename"); } else { unlink($filename); echo "This XML is not well formed, not saving it"; } */ } } } ?>
      site_pro/sandbox_platform.php0000644075506000000310000002071412220247006014702 0ustar named SandBox

      Analyse Sandbox performance on specific Platform

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "SELECT VERSION,MODEL,count(DISTINCT CONFIG) as HITS,TRAFFIC FROM resuts_performance WHERE RESULT='PASS' and CLASS='SANDBOX' GROUP BY VERSION,TRAFFIC,MODEL order by HITS desc"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "100px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "VERSION"; $column->DataField = "VERSION"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "Number of configs run"; $column->DataField = "HITS"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{MODEL}\",\"{VERSION}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/sandbox_platform.php~0000644075506000000310000002067012172710537015113 0ustar named SandBox

      Analyse Sandbox performance on specific Platform

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "SELECT VERSION,MODEL,count(DISTINCT CONFIG) as HITS,TRAFFIC FROM resuts_performance WHERE RESULT='PASS' GROUP BY VERSION,TRAFFIC,MODEL order by HITS desc"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "100px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "VERSION"; $column->DataField = "VERSION"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "Number of configs run"; $column->DataField = "HITS"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{MODEL}\",\"{VERSION}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/sandbox_results.php0000644075506000000310000004111312237127404014562 0ustar named SandBox

      Sandbox Results

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,RESULT,MODEL,RUN_PARAMETERS,SUBMITTER,BANDWIDTH,XML_FILE,TIME_FINISH,DURATION,NOTES,TRAFFIC,CONFIG,VERSION,LIMIT_FACTOR,LOG,STATS from resuts_performance WHERE CLASS='SANDBOX' order by TIME_FINISH desc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from resuts_performance where ID='@ID' AND SUBMITTER='$user' AND TIME_FINISH='@TIME_FINISH' AND RESULT='@RESULT' AND LOG='@LOG'"; $ds->InsertCommand = ""; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->AllowMultiSelecting = true;// Allow multi row selecting $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowEditing = true; $grid->AllowDeleting = true; $grid->AllowResizing = true; //$grid->Width = "50px"; $grid->PageSize = 300; $grid->RowAlternative = false; $grid->AllowScrolling = true; $grid->MasterTable->Width = "960px"; $grid->MasterTable->Height = "500px"; // $grid->MasterTable->FrozenColumnsCount = 2; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); //$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RESULT"; $column->DataField = "RESULT"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "SUBMITTER"; $column->DataField = "SUBMITTER"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Width = "300px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "VERSION"; $column->DataField = "VERSION"; $column->Width = "150px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "BANDWIDTH"; $column->DataField = "BANDWIDTH"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "LIMIT_FACTOR"; $column->DataField = "LIMIT_FACTOR"; $column->Width = "180px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Width = "180px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TIME_FINISH"; $column->DataField = "TIME_FINISH"; $column->Width = "120px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "DURATION"; $column->DataField = "DURATION"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "LOG"; $column->OnClick = "window.open(\"{LOG}\")"; //$column->CssClass = "button_css"; $column->Width = "50px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{STATS}\")"; //$column->CssClass = "button_css"; $column->Width = "50px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Confirm delete, your boss will be notarized"; $column->DeleteButtonText = "Delete"; $column->ShowEditButton = false; $column->Align = "center"; $column->Width = "50px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); class MyGridEventHandler extends GridEventHandler { function OnRowPreRender($row) { if($row->DataItem["RESULT"] == 'FAIL') { $row->CssClass = "jred"; // Make the row in blue color. } if($row->DataItem["RESULT"] == 'PASS') { $row->CssClass = "jblue"; // Make the row in blue color. } } } $grid->Process(); // Process the class MyGridEventHandler $grid->EventHandler = new MyGridEventHandler(); // event render $_rows = $grid->GetInstanceMasterTable()->GetInstanceRows(); foreach ($_rows as $_row) { $grid->EventHandler->OnRowPreRender($_row, ''); } if(isset($_POST["IgnorePaging"])) { $grid->ExportSettings->IgnorePaging = true; } if(isset($_POST["ExportToExcel"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToExcel(); } if(isset($_POST["ExportToWord"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToWord(); } if(isset($_POST["ExportToCSV"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToCSV(); } if(isset($_POST["ExportToPDF"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToPDF(); } ?>
      Render();?> Render();?>
      site_pro/sandbox_results.php~0000644075506000000310000004116012230170500014746 0ustar named SandBox

      Sandbox Results

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,RESULT,MODEL,RUN_PARAMETERS,SUBMITTER,BANDWIDTH,XML_FILE,TIME_FINISH,DURATION,NOTES,TRAFFIC,CONFIG,VERSION,LIMIT_FACTOR,LOG,STATS from resuts_performance WHERE CLASS='SANDBOX' order by TIME_FINISH desc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from resuts_performance where ID='@ID' AND SUBMITTER='$user' AND TIME_FINISH='@TIME_FINISH' AND RESULT='@RESULT' AND LOG='@LOG'"; $ds->InsertCommand = ""; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->AllowMultiSelecting = true;// Allow multi row selecting $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowEditing = true; $grid->AllowDeleting = true; $grid->AllowResizing = true; //$grid->Width = "50px"; $grid->PageSize = 100; $grid->RowAlternative = false; $grid->AllowScrolling = true; $grid->MasterTable->Width = "960px"; $grid->MasterTable->Height = "500px"; // $grid->MasterTable->FrozenColumnsCount = 2; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); //$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RESULT"; $column->DataField = "RESULT"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "SUBMITTER"; $column->DataField = "SUBMITTER"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Width = "300px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "VERSION"; $column->DataField = "VERSION"; $column->Width = "150px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "BANDWIDTH"; $column->DataField = "BANDWIDTH"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "LIMIT_FACTOR"; $column->DataField = "LIMIT_FACTOR"; $column->Width = "180px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Width = "180px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TIME_FINISH"; $column->DataField = "TIME_FINISH"; $column->Width = "120px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "DURATION"; $column->DataField = "DURATION"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "LOG"; $column->OnClick = "window.open(\"{LOG}\")"; //$column->CssClass = "button_css"; $column->Width = "50px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{STATS}\")"; //$column->CssClass = "button_css"; $column->Width = "50px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Confirm delete, your boss will be notarized"; $column->DeleteButtonText = "Delete"; $column->ShowEditButton = false; $column->Align = "center"; $column->Width = "50px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); class MyGridEventHandler extends GridEventHandler { function OnRowPreRender($row) { if($row->DataItem["RESULT"] == 'FAIL') { $row->CssClass = "jred"; // Make the row in blue color. } if($row->DataItem["RESULT"] == 'PASS') { $row->CssClass = "jblue"; // Make the row in blue color. } } } $grid->Process(); // Process the class MyGridEventHandler $grid->EventHandler = new MyGridEventHandler(); // event render $_rows = $grid->GetInstanceMasterTable()->GetInstanceRows(); foreach ($_rows as $_row) { $grid->EventHandler->OnRowPreRender($_row, ''); } if(isset($_POST["IgnorePaging"])) { $grid->ExportSettings->IgnorePaging = true; } if(isset($_POST["ExportToExcel"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToExcel(); } if(isset($_POST["ExportToWord"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToWord(); } if(isset($_POST["ExportToCSV"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToCSV(); } if(isset($_POST["ExportToPDF"])) { ob_end_clean(); $grid->GetInstanceMasterTable()->ExportToPDF(); } ?>
      Render();?> Render();?>
      site_pro/sandbox_submit.php0000644075506000000310000001720012230170710014353 0ustar named ' , 'writeCookie();' , 'function writeCookie()' , '{' , 'var the_date = new Date("December 31, 2020");' , 'var username = "none";' , 'var password = "none";' , 'var the_cookie_date = the_date.toGMTString();' , 'var the_cookie = "user_password="+ username +"@"+ password;' , 'var the_cookie = the_cookie + ";expires=" + the_cookie_date;' , 'document.cookie=the_cookie;' , '}' , ''; } ?> Performance

      Sandbox Performance Submit

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,RUN_PARAMETERS from tests WHERE CLASS='SANDBOX' order by XML_FILE asc"; $ds->UpdateCommand = "update tests set RUN_PARAMETERS='@RUN_PARAMETERS' WHERE ID=@ID"; $ds->DeleteCommand = "insert into queue (ID,XML_FILE,CLASS,PRIORITY,RUN_PARAMETERS,USERNAME,PASSWORD) values ('@ID','@XML_FILE','PERFORMANCE','3','@RUN_PARAMETERS','$user','$password')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowEditing = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; $grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = "950px"; $grid->Height = "500px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->ReadOnly = true; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Added to Queue"; $column->DeleteButtonText = "Submit"; $column->Align = "center"; $column->Width = "100px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      This is your TaaS username and password
      Username:$user
      Password:$password"; ?>
      ' , 'writeCookie();' , 'function writeCookie()' , '{' , 'var the_date = new Date("December 31, 2023");' , 'var username = prompt("Please enter your TaaS username", "");' , 'var password = prompt("Please enter your TaaS(No CEC) password", "");' , 'var the_cookie_date = the_date.toGMTString();' , 'var the_cookie = "user_password="+ username +"@"+ password;' , 'var the_cookie = the_cookie + ";expires=" + the_cookie_date;' , 'document.cookie=the_cookie;' , '}' , ''; echo ''; } ?>
      site_pro/sandbox_submit.php~0000644075506000000310000001720012220255204014552 0ustar named ' , 'writeCookie();' , 'function writeCookie()' , '{' , 'var the_date = new Date("December 31, 2020");' , 'var username = "none";' , 'var password = "none";' , 'var the_cookie_date = the_date.toGMTString();' , 'var the_cookie = "user_password="+ username +"@"+ password;' , 'var the_cookie = the_cookie + ";expires=" + the_cookie_date;' , 'document.cookie=the_cookie;' , '}' , ''; } ?> Performance

      Sandbox Performance Submit

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,RUN_PARAMETERS from tests WHERE CLASS='SANDBOX' order by XML_FILE asc"; $ds->UpdateCommand = "update tests set RUN_PARAMETERS='@RUN_PARAMETERS' WHERE ID=@ID"; $ds->DeleteCommand = "insert into queue (ID,XML_FILE,CLASS,PRIORITY,RUN_PARAMETERS,USERNAME,PASSWORD) values ('@ID','@XML_FILE','PERFORMANCE','3','@RUN_PARAMETERS','$user','$password')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowEditing = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; $grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = "950px"; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->ReadOnly = true; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Added to Queue"; $column->DeleteButtonText = "Submit"; $column->Align = "center"; $column->Width = "100px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      This is your TaaS username and password
      Username:$user
      Password:$password"; ?>
      ' , 'writeCookie();' , 'function writeCookie()' , '{' , 'var the_date = new Date("December 31, 2023");' , 'var username = prompt("Please enter your TaaS username", "");' , 'var password = prompt("Please enter your TaaS(No CEC) password", "");' , 'var the_cookie_date = the_date.toGMTString();' , 'var the_cookie = "user_password="+ username +"@"+ password;' , 'var the_cookie = the_cookie + ";expires=" + the_cookie_date;' , 'document.cookie=the_cookie;' , '}' , ''; echo ''; } ?>
      site_pro/sandbox_test.php0000644075506000000310000004664012220247006014043 0ustar named SandBox Performance

      SandBox Performance Tests

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='SANDBOX' order by XML_FILE asc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from Testsconfig where ID=@ID"; $ds->InsertCommand = "insert into Testsconfig (Name,File,Class,Notes,Platform,ExecServer,Testbed,Date,Priority,Project,Time,tree) values ('@Name','@File','@Class','@Notes','@Platform','@ExecServer','@Testbed','@Date','@Priority','$project','@Time','@tree')"; $ds_detail = new MySQLDataSource($db_con); $ds_detail->SelectCommand = "select ID,RESULT,MODEL,RUN_PARAMETERS,SUBMITTER,BANDWIDTH,XML_FILE,TIME_FINISH,DURATION,NOTES,TRAFFIC,CONFIG,VERSION,LIMIT_FACTOR,LOG,STATS from resuts_performance WHERE CLASS='SANDBOX' order by TIME_FINISH desc"; $ds_detail->DeleteCommand = "delete from RESULTS where ID=@ID AND End_Time='@End_Time' AND Tree='@Tree' AND Result='@Result'"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 150; $grid->Height = "600px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $table_order_detail = new GridTableView(); $table_order_detail->Width = "100%"; $table_order_detail->DataSource = $ds_detail; $table_order_detail->AddRelationField("ID","ID"); $table_order_detail->AllowEditing = false; $table_order_detail->AllowSorting = true; $table_order_detail->AllowFiltering = false; $column = new GridBoundColumn(); $column->HeaderText = "USER"; $column->DataField = "SUBMITTER"; $column->Width = "50px"; $column->Align = "left"; $table_order_detail->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "DATE"; $column->DataField = "TIME_FINISH"; $column->Width = "65px"; $column->Align = "left"; $table_order_detail->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RESULT"; $column->DataField = "RESULT"; $column->Width = "50px"; $column->Align = "left"; $table_order_detail->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Width = "170px"; $column->Align = "left"; $table_order_detail->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "VERSION"; $column->DataField = "VERSION"; $column->Width = "130px"; $column->Align = "left"; $table_order_detail->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "BANDWIDTH"; $column->DataField = "BANDWIDTH"; $column->Width = "80px"; $column->Align = "left"; $table_order_detail->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "LIMIT_FACTOR"; $column->DataField = "LIMIT_FACTOR"; $column->Width = "150px"; $column->Align = "left"; $table_order_detail->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "LOG"; $column->OnClick = "window.open(\"{LOG}\")"; //$column->CssClass = "button_css"; $column->Width = "50px"; $column->Align = "center"; $table_order_detail->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{STATS}\")"; //$column->CssClass = "button_css"; $column->Width = "60px"; $column->Align = "center"; $table_order_detail->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Confirm delete, your boss will be notarized"; $column->DeleteButtonText = "Delete"; $column->ShowEditButton = false; $column->Align = "center"; $column->Width = "50px"; $table_order_detail->AddColumn($column); //$table_order_detail->AutoGenerateColumns = true;//Auto Generate all column from tables $table_order_detail->DisableAutoGenerateDataFields = "ID";//Disable generate column for orderNumber data fields. $grid->MasterTable->AddDetailTable($table_order_detail); $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->AutoGenerateExpandColumn = true; $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/sandbox_test.php~0000644075506000000310000004125412175606107014247 0ustar named SandBox
      site_pro/sandbox_version.php0000644075506000000310000002066612220247006014551 0ustar named SandBox

      Analyse Sandbox performance on specific version

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "SELECT ID,CONFIG,MODEL,count(DISTINCT VERSION) as HITS,TRAFFIC FROM resuts_performance WHERE RESULT='PASS' and CLASS='SANDBOX' GROUP BY CONFIG,TRAFFIC,MODEL order by HITS desc"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "100px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "Number of version run"; $column->DataField = "HITS"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{MODEL}\",\"{CONFIG}\",\"{ID}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/sandbox_version.php~0000644075506000000310000002066712175573462014771 0ustar named SandBox

      Analyse Sandbox performance on specific Platform

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "SELECT ID,CONFIG,MODEL,count(DISTINCT VERSION) as HITS,TRAFFIC FROM resuts_performance WHERE RESULT='PASS' and CLASS='SANDBOX' GROUP BY CONFIG,TRAFFIC,MODEL order by HITS desc"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "100px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "Number of version run"; $column->DataField = "HITS"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "GRAPH"; $column->OnClick = "graph(\"{MODEL}\",\"{CONFIG}\",\"{ID}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>
      site_pro/scale.php0000644075506000000310000002623712220247006012435 0ustar named Performance

      Performance Tests

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='SCALE' order by XML_FILE asc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from Testsconfig where ID=@ID"; $ds->InsertCommand = "insert into Testsconfig (Name,File,Class,Notes,Platform,ExecServer,Testbed,Date,Priority,Project,Time,tree) values ('@Name','@File','@Class','@Notes','@Platform','@ExecServer','@Testbed','@Date','@Priority','$project','@Time','@tree')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Use as template"; $column->OnClick = "myPopup2(\"{XML_FILE}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      Edit Area


      XML File Name
      <>,|= +¬-]/', $filename) || $filename == ".xml") { echo ''; } else { $filename = "XML/$filename"; if (file_exists($filename)) { echo ''; } else { echo ''; $file_open = fopen($filename,"w+"); //fopen("something.txt","a+"); to add the contents to file fwrite($file_open, $_POST['code']); fclose($file_open); sleep(15); echo ''; /* $xml = new XMLReader(); $valid = $xml->open("$filename"); if ($valid == TRUE) { echo "Saved to $filename, please wait 1 minute for tables to create test"; $xml->close("$filename"); } else { unlink($filename); echo "This XML is not well formed, not saving it"; } */ } } } ?>
      site_pro/scale.php~0000644075506000000310000002624512161132265012636 0ustar named Performance

      Performance Tests

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='PERFORMANCE' order by XML_FILE asc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from Testsconfig where ID=@ID"; $ds->InsertCommand = "insert into Testsconfig (Name,File,Class,Notes,Platform,ExecServer,Testbed,Date,Priority,Project,Time,tree) values ('@Name','@File','@Class','@Notes','@Platform','@ExecServer','@Testbed','@Date','@Priority','$project','@Time','@tree')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Use as template"; $column->OnClick = "myPopup2(\"{XML_FILE}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      Edit Area


      XML File Name
      <>,|= +¬-]/', $filename) || $filename == ".xml") { echo ''; } else { $filename = "XML/$filename"; if (file_exists($filename)) { echo ''; } else { echo ''; $file_open = fopen($filename,"w+"); //fopen("something.txt","a+"); to add the contents to file fwrite($file_open, $_POST['code']); fclose($file_open); sleep(15); echo ''; /* $xml = new XMLReader(); $valid = $xml->open("$filename"); if ($valid == TRUE) { echo "Saved to $filename, please wait 1 minute for tables to create test"; $xml->close("$filename"); } else { unlink($filename); echo "This XML is not well formed, not saving it"; } */ } } } ?>
      site_pro/scale_submit.php0000644075506000000310000002062012220247006014006 0ustar named ' , 'writeCookie();' , 'function writeCookie()' , '{' , 'var the_date = new Date("December 31, 2023");' , 'var username = prompt("Please enter your narra username", "");' , 'var password = prompt("Please enter your narra password", "");' , 'var the_cookie_date = the_date.toGMTString();' , 'var the_cookie = "user_password="+ username +"@"+ password;' , 'var the_cookie = the_cookie + ";expires=" + the_cookie_date;' , 'document.cookie=the_cookie;' , '}' , ''; echo ''; } ?> Performance

      Performance Submit

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,RUN_PARAMETERS from tests WHERE CLASS='SCALE' order by XML_FILE asc"; $ds->UpdateCommand = "update tests set RUN_PARAMETERS='@RUN_PARAMETERS' WHERE ID=@ID"; $ds->DeleteCommand = "insert into queue (ID,XML_FILE,CLASS,PRIORITY,RUN_PARAMETERS,USERNAME,PASSWORD) values ('@ID','@XML_FILE','PERFORMANCE','3','@RUN_PARAMETERS','$user','$password')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowEditing = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->ReadOnly = true; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->ReadOnly = true; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "RUN_PARAMETERS"; $column->DataField = "RUN_PARAMETERS"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridEditDeleteColumn(); $grid->ClientSettings->ClientMessages["DeleteConfirm"] = "Added to Queue"; $column->DeleteButtonText = "Submit"; $column->Align = "center"; $column->Width = "100px"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      This is your Narra username and password
      Username:$user
      Password:$password"; ?>
      ' , 'writeCookie();' , 'function writeCookie()' , '{' , 'var the_date = new Date("December 31, 2023");' , 'var username = prompt("Please enter your narra username", "");' , 'var password = prompt("Please enter your narra password", "");' , 'var the_cookie_date = the_date.toGMTString();' , 'var the_cookie = "user_password="+ username +"@"+ password;' , 'var the_cookie = the_cookie + ";expires=" + the_cookie_date;' , 'document.cookie=the_cookie;' , '}' , ''; echo ''; } ?>
      site_pro/skin/0000755075506000000310000000000011734665220011602 5ustar namedsite_pro/skin/blue.monday/0000755075506000000310000000000011734665220014017 5ustar namedsite_pro/skin/blue.monday/jplayer.blue.monday.video.play.png0000644075506000000310000004243411610242670022460 0ustar namedPNG  IHDRp0yeS pHYs   OiCCPPhotoshop ICC profilexڝSgTS=BKKoR RB&*! J!QEEȠQ, !{kּ> H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_F:GIDATxkTչ6sKUuFAEHs ӊšVw'o{G~$hP#3Pt42TPn/Zin]}y~0gzuU_9Uյ֪^]k"ǥ;)px\ġ !@ EB P\>0 :4DUS $xׁ|  @? 5bxY*10EQ&=EDR1M@s6 18yd5n2$缀ssea>}pBDb*bqk„ },[/7$L~'OZZZ \-dr%X(̚PD PD@MBEE5n8Rr3𩧞"6lP )b1 s`a,d !O2L^,F mH'HX7xk׮G> |;!;v(,8bX !a9#d_LD&":h 6:e81cӦM @yO?/r,J_9/RI Bdz]D@D#>; K1 !EQ2[%%%V2`V/C]jJmmm%bJi cs^,@+$" hA !G4cقƘ[#G,XZ\!A?~۩:PBHE*@8|1pcHQѭy^,KQŲ,رcVeey 4<_VTlqQy9iJ81H \'{To$86"jA 圫œZb8"f881M}'N8`WTTvN`)&Mº:4MUQ%1BT.LiRR/7Q( VWWwNg2p:@Ҍ$⇠sΥLPJMaz5ι9|DZ6ɓVMMl2l566oF_Ym!cd2( }PJ cLx<3`رzo[VVVs=#_{;vt>0qD4aVMD"r !4AĄK'Nd3G[[[ /*ž\"cJ|huyWϞ=7lYzunHcUKs 3_B1R}2MSuG[ZZ{ZOЃˇǎDy R0b lBbW,XPaÆ׷544xs.>9q!:<& tB-rKClB 靖a566jmmm?Oƾ{[nE๚WC` 0 @aFG9gpu<䓓.]:r͚5oF01&C9R-Ec1*hL#A nя~:W d`MӐ1A c 8Y ReHS3f(~gK,i_zu|+E1UT9bsR PuX1EQt-UU50bG5lVO8a-Z_ti. 'CLbo'[|Lh>dɒQ7tS[_}զÇ;sN9SADEqTX &z1Jy^LQ۶mԆM?~uAkԩ,d>V#f_"@0}&cLPl3 \}̛7dƍUUUmmm^Ȭ,a DCQR}GQq<رcT*۷ouA M"`92_4" A fz\O<ĵ%UUU[nMeT,rD"e6}1cT)$1m;9c>}:nWWW[sSQQsH޳AI#@ c,6HJLQȼyJg͚Udɒ5k4}GBLDzfU괄1-x3tq,B ZSSNL&cX\LjD<GM}p](x:f0tLuM7͕-bB !:iY̚Ԑ[eYii'T*ٵュK sU&* VoQJ1l:!C)b=Z~0tÆ ͛7oHR41KHTNW)3T뺚 5cLƬ7'MdaӦM9^A 3@UUQ2O< c Ҕ^0)8eʔO>XhQieeeӻ{:"\`DԄjKqBS]DN&68NI5k]^^Fj.TDD>Q(`,h##@|( d޼y#N;׭[R]]mc%HY.)EH@ 4&;RSED1rUsnxo3Kk߾}VYY/jObBE  $Zc8%`b[o-޺ukڵk[[[[=D4ƘU~PV\t'hi4͘aFGGzA^pJ;dRLy(R Ba(c׿^qϞ=a0QD<@5GsBLDTEO6L&S__oݻ*//~ᠯ~qXPPM#d))4i6/ M>?y'|jٳgO'\B\G%^̘Tp@v 1sn!u]-Nqiz)⠊x̗KF~!~رci8q"|[߂^pqt: dƏ&L,p‘eee;wlכ\iVc(UE8U""VsAo",ke4***IiB`/*`4Dȑ#?4455i#i9u]>;vL.y^ ,ye?gĈڃ>8fΜ9oF˖-[D 9q!%G s3pl Sya Ȏ;hKKK^{RmSO=5"6gmm-utt$J᭷ނT*%} N:'OX,֥8gΜٳg'm?:d\ GSKcqϟ?8xA@EQ l$*Xz`P۶s2V _|E6X̋2P`g֤mʊ~%M6۷/Ty鸬n8S80}9GqX*G]84-u?D4iR=r”)S9_va|.R5r>|?+[ŋ_sMO~2~ر(@)EUUQUUBKR%X%P 1AeYݻ\n p rR\H)EJ)~0'?>~ Baa!|[߂QFuرc׿‘o;v,pΡjkku.?r x`ܹsK֭[o @D1A\,K J %s1 T*e:tȪqB۠IiaiH$1Fc$B)D !(%䂪<̓L&G*!t]p=ܹs\S]] 7o0P]]@9ƍ'79rƍ-;w<sB1 %2fqO\PJcij_iӦybI" 9RJ$ҎF,yNy444t D(h"[̚5 <σ?]lmms8k֬S.^cڵ-_~%@s &s=J EQTMMSNp.r沧3ZQTUu]' Ȉ"J)jFEwLJ~| X .4iRt: A@<Gp7iӦ?hnneN˯9sf{׾nݺ_y  c^""m۲6*Rxqe*D#F***,\pDUUUӶmNY!u]&zRUUi(jcc#3f ?.):ʚ0ЏiDӴ~1жm80Ʋ"]j0u.b@Oe3&c];y5k}$ɁWaҥ-ZT" TRJUDTģ&TιNǏ+s?y Jfr"`EF=UU?R"(]f4ۨed?@춊#B@~")!D*:Gj6,+J~~;ȑ#+_ |0s1 ߲eK/~X9B pB^DW<2`;ۥ<߹sg /аuT2Nm!F=a}555ĺu `|8{ Sd SD34Ìhll}ن?JXfD[N133^^]{N~ǙRe嘆62FDC([9A?Î˗O:Ճ8f|J然 'tWFKWs0kjj+V_vm{GGG.si@Cl7; 3b'%|GٖL&W^N>|~׸bŊ涶|~ΊLj0H+ % > |0nfs7on^bESuuCZJ,I>pǎ=C^ϵm;صkW/*擿FsVP=^ViĽ }W^yڵktC qFČ5 @MӲmr@EE< RN8aYʕ+O<+-sݾH.Y?vؑm׾ ,SYYK/t?DY>Dnojʐ0 ƥw98={WZ؃e1s-<Ҋ(/|bt^믿xs)ٖaf{][6mj~9䑿\,?wEd~u{Q W+y"g{>S+Vhشi)˲Uqu.u8_|oPYYٞZ+_\iAT"`~n(30'^[[[7555v+Yy/;2PBn`9^i۶mk]r۷w E5H+_s@bjB3;{}駩_UUUmsjA&G2#7XwU<|!Gε~C\':tȨl\jUK?\4-pr.5T˺o#`dhx]g䮊gzH@3҂}2g (Kzu)w+/m%xc`hl/ #F\.kȧC5" _/S ;n@:9h{YbJD2AeavDKÿt/. 0@aI#&ԇ /IaZs=F`ns%nH#!͓ȇKPrP "R%$ 6)px 8<px 8<.Y1f 2` 6Zh F:Dº]v?avT;ٱcGeYA3ƊxPH,,P9Ehd_Lsj!"Ziyz̘1iӂG~2s}O/KRžp΋,$@R)}!^@@WhgA t !&!$(JFuJ&vt2Q͞=[-v]1VL)-as΋hDBM6!DBDdYHWg &fcF7n9Z`jժs 3EJ (~iloo84 b"&9EPɐqZsٹFDMQDTQAD]ojj2oߞ;o_lYU( ϗ}nGs4 C4Mqu"ssH10ט4iii(A1U,@N%ϟ_o|HQ6wޝd2t I AKjbo}qNokkOo?TgT__O PĉS9*!Da)(_sEGᄏ䗿'N,Hޖ-[_{O?Ԍjs 1B-`%~$ckuJ9qcAXsͲ,I߲eKرcG}4mJ(6l@~ӟ&RUm_#cpJq$<)ޭޚ\rWsfܸqc󫯾R__5sCAιEIB RK<ڜsRjSJMD44M d2iΝ;י>}:@'qWeهq2(RJ $!Jp\?>_dɒW>~v4Y@& BY5[MFsqu0L&۵kua.//g~{.0n yh&AEQRJc ;vl7.+++zg 瞑Zӎ;:] @Uո`0lPS bBҋ'2#Gح^EEEH8Kb_?RJs8]| ]wyٳK|͖իW7}V1&+J(Q80!$3)1-4Uqjڻw5@ =(~|1pر(N4 #&&)..Ve%6lh^~}[CC' >!DDzNudAP}_ED0 QkkkZ555r-_ռPPPrm#J)pQΰr#;u'|rҥKGY7H8s^ Un0^X11B`8pGAslLfQ4 c2ƀse)Y&45cƌgy&dɒիW7}RSE#9(/O UG,ASE}RUU3 #}Qömĉ֢EK_~2h sJKK-ix>&4\dɨndjÇ9'眈 "8KDB,WrCD=@1&Md`6Hj{W͛Wq檪6/dVAb"TE!٨ _(8y~رcz*۷:x}]wӦMc9tV A fz\O<ĵ%UUU[nMeT,rD"e6}1cT)$1m;9c>}:nWWW[sSQQsH޳AI#@ c,6HJLQȼyJg͚Udɒ5k4}GBLDzfU괄1-x3tq,B ZSSNL&cX\LjD<GM}p](x:f0tLuM7͕-bB !:iY̚Ԑ[eYii'T*ٵュK sU&* VoQJ1l:!C)b=Z~0tÆ ͛7oHR41KHTNW)3T뺚 5cLƬ7'MdaӦM9^A 3@UUQ2O< c Ҕ^0)8eʔO>XhQieeeӻ{:"\`DԄjKqBS]DN&68NI5k]^^Fj.TDD>Q(`,h##@|( d޼y#N;׭[R]]mc%HY.)EH@ 4&;RSED1rUsnxo3Kk߾}VYY/jObBEA\uD !~XD[nںvVO0 81&AtyՅ]F !htZ7M3fѡԁ.b>y TbB P cرoܳgOaL@a@T;4(/EQ;Uj&[{~8_tDYJ2M͋iB{ӧO/^'Z9Q 3&]*cL[Dkkjt:NӧOSN?U̎(gd^20" ==bBpc{j$z/KL=H&YYn…# w7չҬ2P諊 pB.rED6\ @}DDYHyiTTTH҄b_8Th#R>۟SΙXڇNssA}/ɓAa֬Y0sLP3iĈڃ>8fΜ9oF˖-[D 9q!%G s3pl Sya Ȏ;hKKK^{RmSO=5"6gmm-utt$#TL_WH]LÈt> 0nܸ.cs)={vҶm㮬sJaI6O|U )8P}t9e 뺄1ammmY4T Fe; |v: =z-|A0M_%kReeeE?ϒwqGMZۗ EDLGt\Ve7)[Lc>ᜣ8,J{#Ս.lیhɺF@0 :@MW裏رc]f_Y__{W"/瞛dرc5EQR#b1!KK 9%A!b2˲ݻwk@v夸RRo0Zh{Ǡ>DG&aBAtWF'N 8'N9ZaҤIG3wܒu5ۧ:;; 9cAi&R¬aB !${177Jهjjj6hRZii& d PJ/CBJɭ?N~\{Ǡ0XwR[[ 4-l!`…PVVœC].6/r7.O\o~sƍy1}… c,A1Kd>㞸<ΡL(ӦM`$D"At]'!s.e)"?Hs*)x---]#9s`|WU}ٓsTYNZx⎵k׶|嗖}ׂ Gʚ9(.dEQ5MS4MSO:BŖPC}( qEQdEd  5M#H:2(=-XH2LԩS~I:::fΜY{ﵯ[×@zG H0ƘG#ȩ#f۶`2)I<G'a UH 4:L_](,L1@Qu= D<X,S `FsUFUTTYpሪm۶,B("SM\4MQ5uF2f~> 썕]SJQu"5a EAMӈib` @\έAU.,RGPcy5a3fLv5k4y(*a!ZeYѣG1c(3dSY},JPUU"ͭH EgF$)Օ|ԩS`Fv[UU硯ҥKG-ZD( GMtǩs}-NkǏW~0@ D5:{b43eB'R tF:nWXX8 'eee1H ! T9R۶eYQ;ywɭ/ ߨ@.):D^3f(Xx}9Lgih D~U*) P%m۶A&ns5mݖF;::}8t{m_>`F筷:--6S!fx}Z#<\rPmæM?qF&M9s ~ vIZ݇7$g}~C=D>{[=g~\5jۿL8us=wlڵ 'O. H 7?=`^a卩T*څ&tB9|E믿z!ػw/x0j(:u*L2_0 ߲eK/~X9B pB^DW<2`;w.|ys|Νm/B֭[S9sC;EiMhDuԤ֭k7 Eo 0#08g}% (O3gV/+]I2Gs/ɏ?8\WԎN. C !׿l8;/_^?T~N.lF̧Nh0x^JJJJ4ޡk„ `MMMzŊk׮me.HvmQf|a&4;C5tѭϰ#rH"͛7i0n8fgihnn9?ϔ 1sPor0$x4ҭհ LiBIIId۷Zq۶m9̥ 8€!03vNo}^N ݮNH3%4K_L}wގ~֭)qx?gɄDhG" Wg0G;}hs T{?6~5X-"1" 0Ҋ~wvwY8˺b777ۛ7on^bESuuCZJ,I>pYe#@۶]v Bk>+ `Y?gՃeF<:ilɵk׶ #㌈ 3,jBss1`]W?3 eI'ĉ5kN\ɓ;I L/~. ݁]0J.+?7 e\BHi}H~H$K \H`x 2| s)/IENDB`site_pro/skin/blue.monday/jplayer.blue.monday.jpg0000644075506000000310000005522511552122132020400 0ustar namedJFIFddDuckyPAdobed         !1AQ"Vaq2SUWBT5Rb#tur3s6$4&v7CcD%F !1AQaqT"2RSrBb3s4#Cc$t%5 ?YK.J1[@rpt"2tЩJN1YkVkIn__xl5JhݓES҈ _;JY|}荋to/bnׁ.G>3KI2B8)D$R7'S8' jRZ%/X5[_'-bgc/[9%=k_ 5k{wk]W8Dui)y A)׆uٹ\Z|*ZJ.<# n+.R?oq OY53v?eHnEh^d2?Bݜw=EZOZe4TRR{3ׅӂqsON/wm@]?)"{P @(P @U 䬏16IJ$$R'SZfRZc%/8j6%Ijӹ%N%˿2v=^ ":ѯTOtFZc~8v/yyXkPkx ǩwMgr˘c'կrC}]2?#Ѝ>{+LۧexLR5%ʦ a]$y m[Anoh"2uW|t*RcfAb=2']}bq4M*F+TSקvOE^KB7\e*C+u ڕ4<`vʰ{_fcGi\RO\_?E=6tWk)n4O50_?{i>D4.a~̗+_xԻq|oe1׹!>68e(F ׫R$ެ<-w˚evXkܐc \q/9#ޮhBv AS^zܡeJZhK{oލDT!XµI-z@:-$T!d2hP @(PG-sf#]+QV:IHpx.sj0Z43En.w%+oA.hw 4ޟ[#-?xFZ9\|**'9iQ^w|߻Ǟcgҗh4[;ޅg} ZeoW7B~lBޓ}*Yt| R~ w΁s9̔ v[BӯAA >3NR='^_,Dpq~msN`KEGߵ IA*KlQ]޳ҸP*&Ju|uy= @(P @((ݿi:X5%W;;g @R֤(" tU1p jQdȇnC#6 m+!.6-t!@ w+CPHr@r*$& Ok}C oɿP+׆79g?Y.psxoN)$I\HPAZ2HcN>:{I'$՛Io-H%6GLq*::>o|WA5~u'(?߸Z`?o uZ/3?o)i}gaTUc"?VbEӴK[U[?3Qw4,CyN2ɛ}I,/j=(h~c^>N3e~bקД`sطהۤcMg2iN]cQQ#X:z碹 :=IB2d4{I&e)s`?~ԝ#~ioyx[[R[kz2J+tk$y̡4a1N8% + z tҹni]蜛oVgmNV>D3.wL6"`M ZzAYCY K[ʪmw[.j͘meDN2!gYp/Y8ea['q̟V9sO+~[cp& [5a.+ QRTzt(ż=Ӳ:oi򜒒4v"ڍwuP\=t5u|TwnǐN&tW2RkJ)^vNpp:nWXy7q\ƕPa* ,t0JR6?-)*tTu5Oڧ% f+x~˿mSl9r՚l&wLTw%mB6@Ri rƧuarzo6`b&kuj)rWn+nnXZS"KSB َw7 m۔/I- f?/f-ѵ=peW %zw2]lދA*Vd.}CtʓͿ>!׹Qar6^mJ'ğq.,- B:FEv7wppe͸=118ֆHZzӹCT?~[5&nL/ů!س/ܾvʙ=qK iAxW?fq]"ެZ𳯶y}~Q~Ņ9%E%*qh([fFJR\Kaen:n[@J@$q=˭ڔx:'I6G,cs{ס\Z(p֣;"W`:⹠T}e?PB?iK\߇\xVhP @(P @(UOlNcv\2P.IVHZsv8U nVS] [`nIۇInOjQo]+Uy5 =ni޷S}=L^!֢ڜWY^_}|<5Ha8hHwQ1ٽϦLɈB{uA;),+Dwtr,4ܗ79˸{FLr{E-ewPZH4n7[)w#\F[rzM&7sYKכ<୴pK,4@^~nxs K4,5͵[֓_t.rL|nv VObMjfjxR]^cI7#s*\Cҟ=1j;r5./Ai0jgD[~WE%ݞ^S1/^J Wʗg0.݇>+7ӣJ\mijgێ•hKZ)W8S۔.3L;]uu=]}vyxndf*eV6Ԇ:MV%'/_C](X}c0,4!-#f͋ӆ4Ҡnݻ+Roj͛1)ܡ.Q9o Sym#M,b[b ^#TۉJmKaje^W,n{TS\ ŕ8~垇O^>cS]ʺ2 o͐0Tkڶ!p{Urׁˤ9ZRi¡H Ch$64:m\jP @(P @(TU#$ȮO%22f45)uH*? 5)cpU=4!2XrUqKExM D[N3\qJP릤$Y6nHC x$NI=GK|mq-_b[84ԞVH%rUnܤ\+Ju;Voaڊ.и.lk[-c8prPN^p'RO]B+7*wRr=td# v9FUPZ\<7&x*ev!. -'iБ@5^5x[/bUt!;ұr4k*G0Wqlr$KISd({򩵈7&ZOG{Z8sqxIkj/u8|Դ8^[Wv#+WƦk⤚%-Kj l+P @(P @(ѹ7~O7r(^ۑD'359S\28 ݬ*Jkn?{СNa4ZLŰI}MU_0vE͇mFWb™qٲ.#0WׂRI߷ab'rJ1J5oW; {mΉ*8[w0 OפuN$'⵿_/n:.0J8 k1S#=/Mz_#Ee MʕM%&$Щ6Su+ j岣'g?ommCkLcj4$Ժ6{# *"RmGf)o#6P @(P @( oY$̇v N% z5YRkQQR֪eO/HPp\8S2@J%[BBuS{>S_abÍ|cX2ӝ]qPMA>իw'ұRQ oݵnT%(UhtN}9ͻ;kmV92Iy6YAP!/Dݡ(ٳ,!zzoJi>&8ӧUU+B:ήXEb֪A)7Sz4کiѡϔ̃@ ']@ۯ]S-MDKZOo'^G??[O_?C@pnwr|yM;v|=4Qmr-Hr]cN)ht?ꓠ \]%DΘz yj l"<j:\BPTPTk"WbQ5WeNÚ`;I B6Zh+creP9jIaӶwP tq |~dT_lk@xuW^eyYv7*SZJOð2q+)Rk»r3s ^^f#6ӊ[@q[2>I4<4*Ot>kVUnVhzqVѧD].U<=\Tn*M8WM0jOVr$Wmvp݉%j]vL_dP)JJw%U\an6UISO Ѽ7D>ǐڜ^+MqII^멵F[R,5@@(P @(P @(WmrOY$_@cʯ0YLhNE*Z6V@JQ'NQR3!#)]]@`g|HaQ[t%jh;*BTSzgK=iִ5VYNemE\kIUR6βTŶFI;f]}o<@=[h9wt]}o<@=[h9wt]}o<@=[h9wt]}o<@=[h9wt]}o<@=[h9wt.P @(P @(P @(~ ' =>qg>=K|X-y > =>pR0{{ ,COcO>ccԷ 'ଣX-o7`4+(>>=K|X-y > =>pR0{{ ,COcO>ccԷ 'ଣX-o7`4+(>>=K|X-y > =>pR0{{ ,COcO>ccԷ 'ଣX-o7`4+(>>=K|X-y > =>pR0{{ ,COcO>ccԷ 'ଣX-o7`4+(>>=K|X-y > =>pR0{{ ,COcO>ccԷ 'ଣX-o7`4+(>>=K|X-y > =>pR0{{ ,COcO>ccԷ 'ଣX-o7`4+(>>=K|ÈU @(P @(P @(P^K]:N_IᜧYsGRb>iì]rgK]swӗ>z4{/v#H:N_Hg)~e؏ x{0}9}#ᜧYsGRb>iì]rgK]swӗ>z4{/v#H:N_Hg)~e؏ x{0}9}#ᜧYsGRb>iì]rgK]swӗ>z4{/v#H:N_Hg)~e؏ x{0}9}#ᜧYsGRb>iì]rgK]swӗ>z4{/v#H:N_Hg)~e؏ x{0}9}#ᜧYsGRb>iì]rgK]swӗ>z4{/v#H:N_Hg)~e؏ x{0}9}#ᜧYsGRb>iì]rgK]swӗ>z4{/v#H:N_Hg)~e؏ x{0}9}#ᜧYsNQDP @(P @(P @(<5>y1qj|4>b h|ѩS(FP?sC.>O~\}@<5>y1qj|4>b h|ѩS(FP?sC.>O~\}@<5>y1qj|4>b h|ѩS(FP?sC.>O~\}@<5>\ |˼矝>Qfϥ?\ \̻xE{[> {sk,Gs1r2$ymlS11ͯX |˼珔YOǸ6b~?)/.G>Qfϥ?\ \̻xE{[> {sk,Gs1r2$ymlS11ͯX |˼珔YOǸ6b~?)/.G>Qfϥ?\ \̻xE{[> {sk,Gs1r2$ymlS11ͯX |˼珔YOǸ6b~?)/.G>Qfϥ?\ \̻xE{[> {sk,Gs1r2$ymlS11ͯX |˼珔YOǸ6b~?)/.G>Qfϥ?\ \̻xE{[> {sk,Gs1r2$ymlS11ͯX |˼珔YOǸ6b~?)/.G>Qfϥ?\ \̻xE{[> {sk,Gs1r2$ymlS11ͯX |˼珔YOǸ6b~?)/.G>Qfϥ??RUIヺpAoV*Tjop'Yn펎pJN3{]䵜%'$+VŊ=迳rRۺK hguyțF1ZĎ&y''WpUߕZF8wRNFj"veR^@q-F:+ O;\dҮ#pX_fvFnL"X[nRح-)EjۢtV1eϏ6AOywLn $:7'azҝ}jոY6#MޖZeEwY!I]%pSkr|\U#^$H:CU;!~+i}Y86ӫڢZr97MXs.gx}svq\,l`);% |h `a(.mh6۽|5 |:P.,I6o/DlIy!-Fe$AgM9ioV1;n6-E*w_.u^[N1m.*-a%RjoԪ[mB1Xiquշ&Ţ ٻ7k;Ӝ:5r3vz=Sƫک0c[~3ťc6-i-M!):nlj8k]/f)uWƫk&]2R]d^[3[{>+I1UmZTґem -IIqeiBP @(P ZaeT!)JGI$۹]2)X[K"+I\yEmd0 $:@NyV˨uE%HPP ICQ{"ۼ+, vn;Z7~ k~ w-PrSosb0ۿ8;j+ЂlpRðݭbDDpRSt֥3n2ۊcT"KLy~qiܱ:82e=p A I!IPj'SfIv>p%^d]m.Xn zE@5޹dK-meKemRnܭ:6[fs`QDWSޒj*0PPR5HƞqeѡAqhzM(m7a`X;}}>$R`esf݊ޭK5K} mL [[NZO`{5Yv#M 5|)NVe؈XuVUMIAhFvhtVȤ)"?0ߒKh|%jӜP8Mi4Y!z&IOC=t$O8!;Bz ӆtWiP @(1̥͑#}*Ir#3YvciTl * WN@mm×ȭ̸͹ m-(VI4G-3U\g\i+Em)H,l#qKGQGR(@W?ٹKx2bN {xv-Gb˩t/NqD$bo`mW̌<ixҍ)j ݞeErR&w?R6HKkihץP[ɜ~v3hƜltgdZ$'jũOz+qrQ+^*/%,<+;QYۛ|5H嘹+m,]-^i۔)$W{R84և5)5Q㲶ayڌsʪ[N*^4`W)$ї *ȱRQ1VЈqHp _-gƢrexPXCeN2e:JmN#T(€e>Y +6+cKR4oęXDi蜵jŊBznڄ-<4 #hiH).gjdh]%E2޶,C- HV65Jxȧn̶\r#+=/A^=0M[Rkj.j\).Fj㸴Tt'F8E.Y1\{\m<\N~kTq;/^?6 HиZH*^tH׽נ6In&5ԏ.9 .Ef [ w|{#hͳZzEb%N05iԥ`:H@G ni ZާnӇA"3w=+Iq8EKw%& eLDڄυ{--K#Ǐdc䥀izwe99={v#n*1I%Ȏi\'&3z_z#ֳqP @('?IF-Lօ.7JТhrEʮL =A1Xa[+`jӹJoP6G]krqQmmPH5h@pni[QaLڄQ{(YZT+q*: HjՑʖqŹm-Z5QKc뻏-mWJMmhXlWkKڊ[4ihQFu.[ba6sYK+r뮭['bT4 狸ʖ$tӬvz.KjѭFѼiHHpZvuWZw@& 31̶w]79Fk)_:/Lć5yHCKOhRJS w{VǺepnIʯSМSz4 3̲;/5UVԥ;T^*ҥ=f0m\uqӗ5*L(e嶦#KHԅcBz; ՏyU [JqMj[⦥FvT/^RiR*M5H)nToV=!(Hݩyu@(P @(N}޲{ m6;-\ˏQXRZoU=v) WIj~K[:*RpA/,7_2\^eVV]J%:h{H874cgy5a+fA[Yk/>Z[(#VG0y힒rUiDѮk]nL]1Ek&ޚҞ-(SLfh.뭙!0CE.2ih-{a~e-VuksQמvr3 nq8jcF44kf2ZY,?yp;v\w-`+PH:\./;֢:hURW  = %]*g^&1RW}nl&gǔ\-w׻vIFLuq+RnS8C[@RTR$&CxjdKʷ8ra{6HY GG44l$7+Iޠ e,EU9c=h-D\GuqiBc)⚭5Һi9;Zz^ Ӗ<}"o+<%<֨$ӎzǟqX{nҭ][OqV撡nbr劼:QU7T\bܰl)jF2lc C5 % or\ 'Nl\Nv'4ݕEWӱ㮎(KBҕ%Mo~ڈ{DVzt *_MP @(P @(P @(P @(P @(P @(P @(\2rms1ό#EnymV$Yˏ\-]~)r{hr1yMy,Dʠy|I?^'`+rKk9].ž2R6^L[iGWkHbK GKn,Y~"!& ٹv)ڿ.=pHmN/K)昭jƞؒ{ v";0MKd-.!. ꅀ!r׹~~ssв_=v+;Nﳫn::֣ ra۴i3v>'v4ӆ0uE͇mFWbkS^ǼU?~_aڣ4NA==66uVfZ:)[tէ{Icm~b|My}oݯf]~bڮ髇Qg'-~V.٦|t+WkWݯ'R^RY5{˗;ˏJnP @(P @()#+p"+~MԾ.jJ Ǯ}Fc츪i@eᆔ̶]JOkG m eWuJuM4A)X:}ʊؖ':H1ٰ!,a%Ii+e=˒ٌ[|FثVb9f;sˌ[qw;kK+Z"VӫZWajRzry*Vb=񋬮+ZP8{-Fd#Tigk+A;o.ٖSOu,6:"Pk֟5Xb,77vaju[.b7`sqZmĵvn;ی޹(IKtO`.tё qzk%:OI]9m%HA֯}jK}q8N̰jW.-'ר]ĵkjM6^ObP @(P @(vfkuE.Oamb.EIp?죗ۿ?8=À02b_8 ?vO2RW$M-Z|D6 l6H%Jӽ I*.n)o\A'] EHNIq%m\Q죗ۿ?ehÐ[pVY#@ AO潋{o| ?ĉ2Ж4BJGpγP @(P @(P @(P @(P @(P @(P @(P @(P site_pro/skin/blue.monday/jplayer.blue.monday.css0000644075506000000310000003000111717265256020413 0ustar named/* * Skin for jPlayer Plugin (jQuery JavaScript Library) * http://www.happyworm.com/jquery/jplayer * * Skin Name: Blue Monday * * Copyright (c) 2010-2011 Happyworm Ltd * Dual licensed under the MIT and GPL licenses. * - http://www.opensource.org/licenses/mit-license.php * - http://www.gnu.org/copyleft/gpl.html * * Author: Silvia Benvenuti * Skin Version: 4.0 (jPlayer 2.1.0) * Date: 1st September 2011 */ div.jp-audio, div.jp-video { /* Edit the font-size to counteract inherited font sizing. * Eg. 1.25em = 1 / 0.8em */ font-size:1em; /* 1.25em for testing in site pages */ /* No parent CSS that can effect the size in the demos ZIP */ font-family:Verdana, Arial, sans-serif; line-height:1.6; color: #666; border:1px solid #009be3; background-color:#eee; position:relative; } div.jp-audio { width:420px; } div.jp-video-270p { width:480px; } div.jp-video-360p { width:640px; } div.jp-video-full { /* Rules for IE6 (full-screen) */ width:480px; height:270px; /* Rules for IE7 (full-screen) - Otherwise the relative container causes other page items that are not position:static (default) to appear over the video/gui. */ position:static !important; position:relative } div.jp-video-full div.jp-jplayer { top: 0; left: 0; position: fixed !important; position: relative; /* Rules for IE6 (full-screen) */ overflow: hidden; z-index:1000; } div.jp-video-full div.jp-gui { position: fixed !important; position: static; /* Rules for IE6 (full-screen) */ top: 0; left: 0; width:100%; height:100%; z-index:1000; } div.jp-video-full div.jp-interface { position: absolute !important; position: relative; /* Rules for IE6 (full-screen) */ bottom: 0; left: 0; z-index:1000; } div.jp-interface { position: relative; background-color:#eee; width:100%; } div.jp-audio div.jp-type-single div.jp-interface { height:80px; } div.jp-audio div.jp-type-playlist div.jp-interface { height:80px; } div.jp-video div.jp-interface { border-top:1px solid #009be3; } /* @group CONTROLS */ div.jp-controls-holder { clear: both; width:440px; margin:0 auto; position: relative; overflow:hidden; top:-8px; /* This negative value depends on the size of the text in jp-currentTime and jp-duration */ } div.jp-interface ul.jp-controls { list-style-type:none; margin:0; padding: 0; overflow:hidden; } div.jp-audio ul.jp-controls { width: 380px; padding:20px 20px 0 20px; } div.jp-video div.jp-type-single ul.jp-controls { width: 78px; margin-left: 200px; } div.jp-video div.jp-type-playlist ul.jp-controls { width: 134px; margin-left: 172px; } div.jp-video ul.jp-controls, div.jp-interface ul.jp-controls li { display:inline; float: left; } div.jp-interface ul.jp-controls a { display:block; overflow:hidden; text-indent:-9999px; } a.jp-play, a.jp-pause { width:40px; height:40px; } a.jp-play { background: url("jplayer.blue.monday.jpg") 0 0 no-repeat; } a.jp-play:hover { background: url("jplayer.blue.monday.jpg") -41px 0 no-repeat; } a.jp-pause { background: url("jplayer.blue.monday.jpg") 0 -42px no-repeat; display: none; } a.jp-pause:hover { background: url("jplayer.blue.monday.jpg") -41px -42px no-repeat; } a.jp-stop, a.jp-previous, a.jp-next { width:28px; height:28px; margin-top:6px; } a.jp-stop { background: url("jplayer.blue.monday.jpg") 0 -83px no-repeat; margin-left:10px; } a.jp-stop:hover { background: url("jplayer.blue.monday.jpg") -29px -83px no-repeat; } a.jp-previous { background: url("jplayer.blue.monday.jpg") 0 -112px no-repeat; } a.jp-previous:hover { background: url("jplayer.blue.monday.jpg") -29px -112px no-repeat; } a.jp-next { background: url("jplayer.blue.monday.jpg") 0 -141px no-repeat; } a.jp-next:hover { background: url("jplayer.blue.monday.jpg") -29px -141px no-repeat; } /* @end */ /* @group progress bar */ div.jp-progress { overflow:hidden; background-color: #ddd; } div.jp-audio div.jp-progress { position: absolute; top:32px; height:15px; } div.jp-audio div.jp-type-single div.jp-progress { left:110px; width:186px; } div.jp-audio div.jp-type-playlist div.jp-progress { left:166px; width:130px; } div.jp-video div.jp-progress { top:0px; left:0px; width:100%; height:10px; } div.jp-seek-bar { background: url("jplayer.blue.monday.jpg") 0 -202px repeat-x; width:0px; height:100%; cursor: pointer; } div.jp-play-bar { background: url("jplayer.blue.monday.jpg") 0 -218px repeat-x ; width:0px; height:100%; } /* The seeking class is added/removed inside jPlayer */ div.jp-seeking-bg { background: url("jplayer.blue.monday.seeking.gif"); } /* @end */ /* @group volume controls */ a.jp-mute, a.jp-unmute, a.jp-volume-max { width:18px; height:15px; margin-top:12px; } div.jp-audio div.jp-type-single a.jp-mute, div.jp-audio div.jp-type-single a.jp-unmute { margin-left: 210px; } div.jp-audio div.jp-type-playlist a.jp-mute, div.jp-audio div.jp-type-playlist a.jp-unmute { margin-left: 154px; } div.jp-audio a.jp-volume-max { margin-left: 56px; } div.jp-video a.jp-mute, div.jp-video a.jp-unmute, div.jp-video a.jp-volume-max { position: absolute; top:12px; margin-top:0; } div.jp-video a.jp-mute, div.jp-video a.jp-unmute { left: 50px; } div.jp-video a.jp-volume-max { left: 134px; } a.jp-mute { background: url("jplayer.blue.monday.jpg") 0 -170px no-repeat; } a.jp-mute:hover { background: url("jplayer.blue.monday.jpg") -19px -170px no-repeat; } a.jp-unmute { background: url("jplayer.blue.monday.jpg") -60px -170px no-repeat; display: none; } a.jp-unmute:hover { background: url("jplayer.blue.monday.jpg") -79px -170px no-repeat; } a.jp-volume-max { background: url("jplayer.blue.monday.jpg") 0 -186px no-repeat; } a.jp-volume-max:hover { background: url("jplayer.blue.monday.jpg") -19px -186px no-repeat; } div.jp-volume-bar { position: absolute; overflow:hidden; background: url("jplayer.blue.monday.jpg") 0 -250px repeat-x; width:46px; height:5px; cursor: pointer; } div.jp-audio div.jp-volume-bar { top:37px; left:330px; } div.jp-video div.jp-volume-bar { top:17px; left:72px; } div.jp-volume-bar-value { background: url("jplayer.blue.monday.jpg") 0 -256px repeat-x; width:0px; height:5px; } /* @end */ /* @group current time and duration */ div.jp-audio div.jp-time-holder { position:absolute; top:50px; } div.jp-audio div.jp-type-single div.jp-time-holder { left:110px; width:186px; } div.jp-audio div.jp-type-playlist div.jp-time-holder { left:166px; width:130px; } div.jp-current-time, div.jp-duration { width:60px; font-size:.64em; font-style:oblique; } div.jp-current-time { float: left; display:inline; } div.jp-duration { float: right; display:inline; text-align: right; } div.jp-video div.jp-current-time { margin-left:20px; } div.jp-video div.jp-duration { margin-right:20px; } /* @end */ /* @group playlist */ div.jp-title { font-weight:bold; text-align:center; } div.jp-title, div.jp-playlist { width:100%; background-color:#ccc; border-top:1px solid #009be3; } div.jp-type-single div.jp-title, div.jp-type-playlist div.jp-title, div.jp-type-single div.jp-playlist { border-top:none; } div.jp-title ul, div.jp-playlist ul { list-style-type:none; margin:0; padding:0 20px; font-size:.72em; } div.jp-title li { padding:5px 0; font-weight:bold; } div.jp-playlist li { padding:5px 0 4px 20px; border-bottom:1px solid #eee; } div.jp-playlist li div { display:inline; } /* Note that the first-child (IE6) and last-child (IE6/7/8) selectors do not work on IE */ div.jp-type-playlist div.jp-playlist li:last-child { padding:5px 0 5px 20px; border-bottom:none; } div.jp-type-playlist div.jp-playlist li.jp-playlist-current { list-style-type:square; list-style-position:inside; padding-left:7px; } div.jp-type-playlist div.jp-playlist a { color: #333; text-decoration: none; } div.jp-type-playlist div.jp-playlist a:hover { color:#0d88c1; } div.jp-type-playlist div.jp-playlist a.jp-playlist-current { color:#0d88c1; } div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove { float:right; display:inline; text-align:right; margin-right:10px; font-weight:bold; color:#666; } div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove:hover { color:#0d88c1; } div.jp-type-playlist div.jp-playlist span.jp-free-media { float:right; display:inline; text-align:right; margin-right:10px; } div.jp-type-playlist div.jp-playlist span.jp-free-media a{ color:#666; } div.jp-type-playlist div.jp-playlist span.jp-free-media a:hover{ color:#0d88c1; } span.jp-artist { font-size:.8em; color:#666; } /* @end */ div.jp-video-play { position:absolute; top:0; left:0; width:100%; cursor:pointer; background-color:rgba(0,0,0,0); /* Makes IE9 work with the active area over the whole video area. IE6/7/8 only have the button as active area. */ } div.jp-video-270p div.jp-video-play { height:270px; } div.jp-video-360p div.jp-video-play { height:360px; } div.jp-video-full div.jp-video-play { height:100%; z-index:1000; } a.jp-video-play-icon { position:relative; display:block; width: 112px; height: 100px; margin-left:-56px; margin-top:-50px; left:50%; top:50%; background: url("jplayer.blue.monday.video.play.png") 0 0 no-repeat; text-indent:-9999px; } div.jp-video-play:hover a.jp-video-play-icon { background: url("jplayer.blue.monday.video.play.png") 0 -100px no-repeat; } div.jp-jplayer audio, div.jp-jplayer { width:0px; height:0px; } div.jp-jplayer { background-color: #000000; } /* @group TOGGLES */ /* The audio toggles are nested inside jp-time-holder */ ul.jp-toggles { list-style-type:none; padding:0; margin:0 auto; overflow:hidden; } div.jp-audio .jp-type-single ul.jp-toggles { width:25px; } div.jp-audio .jp-type-playlist ul.jp-toggles { width:55px; margin: 0; position: absolute; left: 325px; top: 50px; } div.jp-video ul.jp-toggles { margin-top:10px; width:100px; } ul.jp-toggles li { display:block; float:right; } ul.jp-toggles li a { display:block; width:25px; height:18px; text-indent:-9999px; line-height:100%; /* need this for IE6 */ } a.jp-full-screen { background: url("jplayer.blue.monday.jpg") 0 -310px no-repeat; margin-left: 20px; } a.jp-full-screen:hover { background: url("jplayer.blue.monday.jpg") -30px -310px no-repeat; } a.jp-restore-screen { background: url("jplayer.blue.monday.jpg") -60px -310px no-repeat; margin-left: 20px; } a.jp-restore-screen:hover { background: url("jplayer.blue.monday.jpg") -90px -310px no-repeat; } a.jp-repeat { background: url("jplayer.blue.monday.jpg") 0 -290px no-repeat; } a.jp-repeat:hover { background: url("jplayer.blue.monday.jpg") -30px -290px no-repeat; } a.jp-repeat-off { background: url("jplayer.blue.monday.jpg") -60px -290px no-repeat; } a.jp-repeat-off:hover { background: url("jplayer.blue.monday.jpg") -90px -290px no-repeat; } a.jp-shuffle { background: url("jplayer.blue.monday.jpg") 0 -270px no-repeat; margin-left: 5px; } a.jp-shuffle:hover { background: url("jplayer.blue.monday.jpg") -30px -270px no-repeat; } a.jp-shuffle-off { background: url("jplayer.blue.monday.jpg") -60px -270px no-repeat; margin-left: 5px; } a.jp-shuffle-off:hover { background: url("jplayer.blue.monday.jpg") -90px -270px no-repeat; } /* @end */ /* @group NO SOLUTION error feedback */ .jp-no-solution { position:absolute; width:390px; margin-left:-202px; left:50%; top: 10px; padding:5px; font-size:.8em; background-color:#eee; border:2px solid #009be3; color:#000; display:none; } .jp-no-solution a { color:#000; } .jp-no-solution span { font-size:1em; display:block; text-align:center; font-weight:bold; } /* @end */ site_pro/skin/blue.monday/jplayer.blue.monday.seeking.gif0000644075506000000310000000632411560117254022015 0ustar namedGIF89a0 Vncw@OI<:EK_! NETSCAPE2.0! ,0PIaͻA!dil)kq|+ plJ cպf[_K`| tzz|w ¨! ,0tpFX{'ZE㲠cy–t%痍;^'"(L* 3J>z1wÉבֿp'a|~Ju}G|> 3! ,0t1!8k6 V@hJRา[™2ӗk龋B̩ ,*M՗mw80h^69ɑy^!s dHxE> ,! ,0qI&D89 V@hJRา[˜$癍;^ %ND* ה J+{B=J1Zi^34u޽I"s ~|MG '! ,0q)D89 V@hJRา[˜$癍;'"Jܚ# mP+/YB=J1Zi^34u޽I"s ~|ME !! ,0q)4k= U@hJRา[”$癍;'"Jd$GrUޭl\=J1Zi^ 37u޽I"s ~|ME ! ,0I 4<:T@h2KZX.p<)xmKn 1bQr\N˦Jum@2 tv %3#z|~6x}ff| yS|NSK;! ,0tI=\( b[”$畍;'Ģ(L*!ƈJ E.KR8AAG BF@!SsI@e'BhATu2 ds{`B( Gt( F< 9"#'c⨈(M-Ϗ^QC&);]KϓPXv*51Y:GRgI:R8A[y6J E.KR8AAG BF@!SsI@e'BhATu2 ds{`B( Gt( F< 9"#"KcrWv0PɤNwR,3pTLaVG7.d>a}D)Ibi όDCWM=bPA'S5S=='-H!ppYL  C!sXA@Nmρ&AAG !RXI A9pS[3CР%8B84hCpprrM-^QC&);]KϓPXv*51Y:G]'p>3u3=6bPA'S=Qr]u-ap81~̷}$L  C*p_ sn| 4B =M  ʒՒNP al3BܐE=N(Ǚ7DSDw:$Cil||TJ4I]E| 3Q*F8̞/)>*%xgc E Hgyu.>NHGA`بdp#}BOCvBv& D<o'bA@LDMu쵆jZ BڶSA@e!]mK B2_sPl;&AAuk (]|lzP aLWj a r@!`Hu:gGMrrTNIPv9+;j(dE'{;˩urB8* F0#Y2zK4gn!`y='أJ g"n^ e3RԎAG_ղ-7U3-A 4ZoXA@a 4B PC]m&@eIWjclu2 dscN_^gB( >OPy!stE4>CpprrM-^QC&);]KϓPXv*51Y:G]'p>3u3=6bPA'S=Qr]u-ap82vi&@!jm)w [c.A #mQr^u:{ BܐE~mcР%8B84~r ξ$CW_c3M$RwQa'$# Tjc 8u!s' !JO;H|f"fzm1NĠ Nz&Z5-H!pe[)u[L  C2SE6%!A x6A  E:hBhAT|v|=VS(\AG<ڢ/Rt0 Q0}o'tN(Ǚ- OFvCpp|ay6j3;ᝌ52i"Ժ 9!gbSUìq =_Q RyؚG37Q0 lQv%Au37/_jG #/jOB`AAҚ-wq,  BS}Aw!Ab(!SE6@ B2t:BB29z/_8)-POy=+t( F<LB;Z8̞/'%IQC&).XgPv9+;j(dE'{;˩urB8* F0#Y2zK4gn!`y='أJ g"n^ e3RԎAG_ղ-7U3-A 4ZoXA@a 4B PC]m&@eIWjclu2 dsͪ".^ οgOapS[1z3zWMPyv/kchW2z7K%T~yqNz uV|TJ4I]E| 3Q*F8̞/)3u3=6bPA'S=Qr]u-ap82vi&@!jm)w WRr}DyD yD^y3ng_Dy}M1z3zWM/yk4y}쩬? =%s't ɖ?K}:i}]Uc3M$RwQa'$# Tjc 8u!s' !JO;H|f"fzm1NĠ Nz&Z5-H!pe[)u[L  C2SE]- B2_sPq/._L !YMg v!RUںy򽺖֫' dsͪ".^ οgOas:#tmE>Һmxk]ieMe$Iq+=_]NL~X/;KR3;ᝌ52i"Ժ 9!gbSUìq =_Q RyؚG37Q0 lQv%Au37/_{OR8AA~;V|XhoAAҚ.yqϣ #!O5i}s.a  E:h{8cv  ʒϕԴ܆_Q>Q #mQr^u:{ ۙQkSo,B( ED^lu ǞsZM_{*k)"OHҺmxk]ieMe$Iq+=_]NL~X/;KR3;ᝌ52i"Ժ 9!fc^*%_v0PɤNwR,3t栅zY¬do\}.y3.9>ƪH|f"fzm~O>R :ꈛR wp82vF]]@!jm),;H B2_sPvW2B PC;Nh *]<^KMkUmB29z/_͹~i6"TE|[]6Py5$Z8̞/'&Z ,QpNz uV|TL~*,j(dE'{;˩urB:xsZilAUìq =_Q?uGeO8Amc!_g#gϤ Nz&sԱvc  e>QpW1!fZJhK>R WRr}DyD yD^y3ng_Dy}M1z3zWM/yk4y}쩬? =%s't ɖ?K}:i}]Uc9_=,Ey̾wR,3t{Mg<Bq =_Q?uGeO8Amc!_g#gϤ Nz&sԱvc  e>QpW1!fZJhK>R WRr}DyD yD^y3ng_Dy}M1z3zWM/yk4y}쩬? =%s't ɖ?K}:i}]U ?[R/L]eboCZvKK^GVq0Yy0Efqb6RI#D_9_Qj)Fqz+&-ּUÄۅ+wb*9~?vr}X8Ok˦FRz]z 4+o忊x˳y۰5V(-QuH$#1O5q׊n K83dkUཛ:ա ړGf& G,~fuFb§rr*!%aao *?Ľe^:Tu_ ?[R/L]e՚LeW/^y<[-.",sʽyYe8)L1ucXMԒH0W9:NWwdpgw"n"k\8N]RG~"#7Zg'o+tFϱʌdm5/ǫۜǧ0K/K[g17Z b۵7[RG3WxF<ڌx;hFQ ٳZP4vbb *1X8(draO'_f,**W.b"Zv\,?6Ma}fOa}ܪ:gjE鋬8>I [-.",sʽyYe8"DZ1d$&:?I$~t}Gef+U;ՑY7n'.)_[T-I7#_gF]26V_٥[-V3]݁G_mڍG# yּU#qldFRYǼVauk#Z֭ (@^Ԛ;11_ 29c03?+1W -; xIP %/vʣG`Yڑzb/N8d*H%vKK^GVq0YwQ8ָY@c u$4LNNӕYC0Z Ӿ:²n"k\8N]YX("R~ pn9QLvsei~Vf&`kAQ[vrb HFbjHA=Y';QqgmZ֪1{6uCJ&LA%W+g X)DŅOJUBKNT{lݮur~^Ӄ?4:ʾR _݅*<ב՜L]s)nTN5Vg:?I$~t}Ge=PŎY7n'.+lUR~ Ԧd5f}S_Wk9[Oa~_fm[vbo;v j7 n" f 0 ?ZTՒx#IgYvլjgZ4{RhU~b6pPžNXTT\\D$,-%@'̽g_w* gjE鋬8>I [-.",sʽyYe8"DZEf|qԒH0W9:NWvSe h+LXՓq^*w¿.VXy`oܵ'O*}?5f}Uy*_Wj%k!s?Ч0K/K[g17Z b۵7[RG3WxF<ڌx;hFQ ٳZP4vbb *1X8(draO'_f,**W.b"ZvKf^uGP"^\qYUJ-̖W9^`Krqp">8AI$h+s+;)貆`,tɸup;v_L+b<7Zg'oHS3>*v9 S_ٖb|ElDR9VG /ǫtd,7uV3]݁ 9P7[RG3W-bd]=Y';QqgmZ֪1{6uCJ&LA%W+g X)DŅOJUBKNT{lݮur~^Ӄ?4:ʾR _݅*<ב՜L]s)nTN5Vg:?I$~t}Ge=PŎY7n'.+lUR~ ѱJ#_gX~T!J ,^W [vbo;vJ--F A#ԑ,p[]=Y';QqgmZ֪1{6sZc<;11_ 29c03?+1W -8IP %/vʣG`Yڑzb/N8d*H%vKK^GVq0YwQ8ָY@c u$4LNNӕYC0Z :udE׊pp& VX-I7ʤ_FOe)cadrRzWKO) /{\w_n|ElDR9VG /ǫtd,7uV3]݁q {9KQuH$#1ykDN*6zOv),+0:T~.ujFF}JV SԘԱprL!c"@IP %/vĕl~S|L?~^Ӄ?4:ʾR _݅*<ב՜L]s)nTN5Vg:?I$~t}Ge=PŎY7n'.+lUR~ ѱJ#_gX~T!J ,^W [vbo;vJ--F A#ԑ:ت<ڌx;hFQ̹ի jYvbb *1X8(draVe/W/eU;ja [JOq/meA!ݚ_Ov.&NWwand*ug|\[k2RI#D_9_QOE31cVM[x ˷ |"`[a偿rԟ9>|ElDR9VG /ǫtd,7uV3]݁q {9KQuH$#1ykDN*6zOv),+0:T~.ujFF}JV  *g]z{ ܫSjȐ>TyԱud;)eWgjE鋬8>I [-.",sʽyYe8"DZEf|qԒH0W9:NWvSe h+LXՓq^*w¿.VXy`oܵ'O*}?5f}U?EK].r?ħ0K/er f&`kA\BRn@lD=I@{Z8S@K83dkU˝Zц%Gf& -G0ٞ<)κ2\Vձ |-aؑVO迳!49K*& ?[R/L]e՚Le_)iqqcU& .*'+3 dF :r(f AZbNZWnDr*~?vr}T؉l?3r?LA*_Wjs%?Y}/c+ng17Z %rrrb HFb։lUwldJ+0:T~.ujFF} Abp'|yS͝ue*rL!c"@XA+9Jud;)eWgjE鋬8>I [-.",sʽyYe8"DZEf|qԒH0W9:NWvSe h+LXՓq^*w¿.VXy`oܵ'O*}?5f}U?EK].r?ħ0K/er f&`kA\BRݳ J V|q1V^<)κ2\Vձ |,bd:C`"^\qYUJ-̖W9^`Krqp">8AI$h+s+;)貆`,tɸup;v_L+b<7Zg'oHS3>*v9 T7u~fp6>f&`kA\BS+\\.VecZ' uU(K=܌.OI YG2V4a dgdώ&*|7ǘ<^^«w*2$1TÔ!gQ6ChrU|L?~^Ӄ?4:ʾR _݅*<ב՜L]s)nTN5Vg:?I$~t}Ge=PŎY7n'.+lUR~ ѱJ#_gX~T M!Lxk;oer J޶N5bo;vJ-2Xjv^I [-.",sʽyYe8"DZEf|qԒH0W9:NWvSe h+LXՓq^*w¿.VXy`9>|ElDR@qJ#~ѳtd4[}/c+nVvgy۰5W.!og)R.+S:ت %xF'YvլjsV0Մ3`2 gk>BlS/aU;ja [* ]VO迳!49K*& ?[R/L]e՚Le_)iqqcU& .*'+3 dF :r(f AZbNdl׎;v_L+bC΢lt,"#,mH1uVi2u| V|q1V^<)κ2\Vձ |,bd:C`nڑzb/N8d*H%!e|0cU& .*'+3 d,J k|P19:NWvSe h+LXNw`[¿.VXy`'oHc7k/ʰ29豟7KO1cKb2o['k{17Z %rrZ,r;/X@{Z8S@XWarzOgmZ֪?y:a XK#> V|q1V^<)κ2\Vձ |,bd:C`CٻYzp}qf'YWA+ c$ 0.d Vq0YwQ8ָY@c bWO,\kcYNWvSe h+LXNw`[¿.VXy`'oHc7k/ʰ29豟7KO1cKb2o['k{17Z %rrZ,r;/X@{Z8S@XWarzOgmZ֪?y:a XK#> V|q1V^<)κ2\Vձ |,bd:C`CYO4:ʾR _c' L5iS*'+3 d,J klk2r\z,-i:B,ckp]Wث,?} ѱLsXe9VG 31fs&=,it,^W ԭdsZf&`kA\BS+\\.VecZ' uU(K=܌.OI YG2V4a dgdώ&*|7ǘ<^^«w*2$1TÔ!gQ6ChrU|L>ɐjXZDٟɐ6QNǵ,-"zH똪pLٲȞ԰#H,nMUWu1!l',-"zH0 ]w&ĝUfr*۩ e=aiGZ5V$«?]PeZN<},}YwS2f;"{R' rjIۅV~ʴnpu ۺ(ۚ/ޗVc&ClGdOjXZDaMU;pr=Vp{w[wFw`KsLdm(K H8 4]ɪ'nYZ*wá.n ~ nܼ۰}Π{rbPEѿn2d6͔vDOIAkX w-Cٕi;y?wn^t m}Π{Vʴ}j~ʴ LٲȞ԰#H-uܚvU{2'qۜ:B2΁-ϹOjYVgwUݸac&ClGdOjXZDaMU;pr=Vp{w[wF@ܖ'jnGvfU`_s= owxm]Ldm(K H8 4]ɪ'nYZ*wá.n ~ nܼۜAMՕh֘S*%EuzAWNLٲȞ԰#H-uܚvU{2'qۜ:B2΁-ϹOjYVi;3? #H*/hNLٲȞ԰#H-uܚvU{2'qۜ:B2΁-ϹOjYVi;ԽX,OyzAW1l `'CPGXCjc&ClGdOjXZDaMU;pr=Vp{w[wF@ܖ'jnGtʆ֘S*'N`A=s^RVEP8hNLٲȞ԰#H-uܚvU{2'qۜ:B2΁-ϹMKiVyڛ*j? L^SZaNv]sח #H*򒰚*Ft5 u62d6͔vDOIAkX w-Cٕi;y?whϵy7%ox${3s<7f7VU*S? L^SZaNv]sח #H*򒰚*Ft5 u62d6͔vDOIAkX w-Cٕi;y?ew#n ^t [{3s<7f7VU*S? L^SZaNv]sח #H*򒰚*Ft5 u62d6͔vDOIAkX w-Cٕi;fۜ:B̹*n7JٻE:䭏=ϹN}Uyڛ*j /)0~UX;xOW9kg{yIXMCdM::WS2f;"{R' rjIۅV~O/F>ͨ{2'q\p{3C\%E2/ѳw#n ^t [{3s<7f7VU*S? L^SZaNv]sח #H*򒰚*Ft5 u62d6͔vDOIAkzU;pK2tVj̫Im'w=á. ߒWJٻE:䭏=ϹN}Uyڛ*j /)0~UX;xOW9kg{yIXMCdM::WS2f;"~SZUXZDaZfCYjIۅV~Yo;PeZNl8pfڼTFЍ*/y7%lx8}Πvc*ݛYVPuL(m1yMi;zt ^^'s= Jh'm 7QȂ]Ldm(OkfiaiGZj~ɛ V)'nYfNռCٕi;8t:T[j ~ R7B6ਾ@ܕ>9:ُvo;SueZ>A35ʫo '0My{9o)+ l `'CPGXCK"2}ɐ6Qm4W 裀H-u?dʆX t'AUavʴrpsٜ:B*-y?~pT_jnJpCٜAUY7AVPb wUz&OyzAWT6N0n!-e-;&}epӲiu\hϸ♿Ӳiu\hŸ㠾a;N˪F- mCo-;.vUƌ[: hێp]_is캮4bq_pFt;[I-;.vUƌ[: hێpKt]f-;.vUƌ[: hێpKt]>왿N˝eq㎂6--COm;-LŧeӲыqA}mqn'ѶFӲiu\hŸ㠾6w tKuNZ l;˝vKNӲiu\hŸ㠾6w tKuNZ y]eΌ;}WEeӲыqA}mqn'Ѷ'\˲чu-;.vUƌ[: hێpKt]>br[NWev\qZv\;.t&ѷnn>>6^NZ x8.˝|]|:6N˝eq㎂6-- 6ӡO>6^NZ x8.˝|]|:6N˝eq㎂6-;&}vBMS/OhM:r.˲F._Ӳiu\hŸ㠾6tvQ- 6ӡO>6^NZ x8.˝|]|:6N˝eq㎂;-mmCZhI } m br[NWev\qZv\;.?>2$NA-GhГm: h堷˲ч˅êhrB. fq_G[`FDi;EZmBA}}Bmqӕv]:0pu\yhZv\9iƎ˪F/}|t&ё&t:j;EiЧ_`FЛF/'-tv]eΌ>\.W|>NZpF/}|t&ё&t:j;EiЧ_`FЛF/'-tv]eΌ>\.W?ܿQVݪ8!QVݪ9HSXTUjc6%WTUjc6%**۵G1PW䍿rU QvrF#oÀTsy.H(} _ QvrF#oÀ􀃲d)? QvrF#oÀ􀃲 jJ[mڣ䍨+rF߇Cerԕ=`ng$mA^K68 H;-ې6ET3= ¢Tsy.H(} n@ڒhf{1i[aQVݪ9Hڂ$mp>v[ mI^ŌPKXҶ¢Tsy.H(} |cԕ𞹱kVTUjc6%~R o(;jJxO\ nt+l**۵G1PW䍿`) @ڒ61C3۝-cJ QvrF#oÀ '0v |mI^ ΖmE[v;9#j \Ah9 o(;jJxO\ nt+l**۵G1PWfFB(Ah9 o(;jJxO\ nt+l**۵G1ۇr6'#y!K@D4 \7R%z<'lbg:Zƕ|㪌ڣPy<$9Z!R؁ +=sc3=4xZPy<$9Z!R؁ +=sc3=4[󎹳9<I)PWNؑÐ%Px.N`) @ڒ61C3۝-cJ?}?`޿0Vt37v+(-W7yB]}|ժ~guI&e*C\(ݷXhQ5o(qc1@fvvhW:A暃e֊օ%̸q~˼QU[>Ć) o~[J@{ Ð"w임t]ң~ȖR@hnj~j4rTFLaXu~a 84{b C9Gҍaҙoۡ#r QNwLB5Bo~.ZBy}IrÆwߗz85!QVVfI{thVIvPk1`-sFl*Pkڮ( 0IEb *_M]UDmFޒ<%\]X{h 0J v/Qf Z;wWUzíZ޵{y_ځgF|!w!9I4)TobEFLG3BLui7zdoHG!?%fo:A暃e֊օ%̸qs_pP-SHlt '9gZB,w~.N7E*8|=i$fFO~ۉXG%O`?$6 n~J'WПÈSG*9);3*d{n<]() {r;' ]poxtt#X /y.q8gh{GX{|Ejfi tJ֊@%dWe v ͑Mc >f1-" f⌐L4^-;zB^4Fm(I 3ZUUՎ ׹@2 *ʵZ;OBįm*^cD#;ݾ~wuqX7:ծ ]J wftg|bWX[GKNJI4)TobEFLG3BLui7zdoH_چ+mj+w5f|LM{ZQWз乗.p/NLcQ4̇øߖҳP-0>gxARs\n:Tp{9ӑH ҍSОFJ~Il8 <4N#>=lTrSwahg>TxQ:S1 t vNAbJ=IFA+H_o/?7Î\@?p{G$6J j6/nJ v#41}͞cZEAYY {U!& 6h,[dvO髿|hP@g$r d]fZ0ޥ1P69!KY|o_u]ֻos+P0ϕ.0x_Q'1MU؇rQz1ѻn/SУsSE]Zj^:YZJY^k5ֵÇT{,Uƴ-.eË#> ӓ+x+s'l; o~[J@{ Ð{qW)1IᎣ#SvGJy"Zr:¦üКF =mĬCQ̫IQɰSt,PrP :0B=QN݅S#p FL7mЃۑ9녋}('; ǡht!}Ϥ9s@;n @E=ؐ(+U3LkVRq+$(kllzkưX#6y i(Ued5Wd$amy?6#oIBI_Ү pf4 quwOޥk;z3HYB wu-g󻫏~a֭vfoZVP[@3>WX[GKNJI4)TobEFLG3BLui7zdoH_چ+mj+w5f|LM{ZQWз乗.p/NLcQ4̟1;1l+5?3@ca7u\': N7E*8|=i r4t&\H1߶V!F'|n~K$Z͡fMdB=QN݅S#p FL7mЃۑ9녋}('; ǡht!}Ϥ9s@;n @E=ؐ(+U3LkVRq+$(kllzkưX#6y i(Ued5Wd$amy?6#oIBI_Ү pf4 quwOޥk;z3HYB wu-g󻫏~a֭vfoZVP[@3>WX[GKNJI4)TobEFLG3BLui7zdoH_چ+mj+w5f|LM{ZQWз乗.p/NLcQ4̟1;1l+5?3@ca7u\': N7E*8|=i r4t&\H1߶V!F'cs])(y9,(_s'ǰ튎IkK+M* ; ]#i)FL7mЃۑ9녋}(';bitz[[A+H_o/?7Î\@?p{G$6J j6/nJ v#41}͞cZEAYY {U!& 6h,[dvO髿|hP@g$r d]fZ0ޥ1P69!KY|o_u]ֻos+P0ϕ.0x_Q'1MU؇rQz1ѻn/SУsSE]Zj^:YZJY^k5ֵÇT{,Uƴ-.eË#> ӓ+x+s'l; o~[J@{ Ð{qW)1IᎣ#SvGJy"Zr:¥= 3 n~j4rQm X|n~K 34\84{bu-lTo:G52.kC|=|X=g(f=Ci }'q˜hûnɄ۾ .ؐ(+U3LkVRq+$(kllzkưX#6y i(Ued5Wd$amy?6#oIBI_Ү pf4 quwOޥk;z3HYB wu-g󻫏~a֭vfoZVP[@3>WX[GKNJI4)TobEFLG3BLui7zdoH_چ+mj+w5f|LM{ZQWз乗.p/NLcQ4̟1;1l+5?3@ca7u\': N7E*8|=i r4t&\H1߶V!F'cs])(y9,(_s'ǰ튎IԵQYxQ:S1 t vNAb3yre#ht!}Ϥ9s@76yh{ aHmAՙl5^+Z)A]566G= F ݏR}3!S  i(Ued5Wd$amy?6#oIBI_Ү pf55 ]fZ0ޥ1P69!KY|o_u]ֻos+P0ϕ.0x_Q'1MU؇rQz1ѻn/SУsSE]Zj^:YZJY^k5ֵÇT{,Uƴ-.eË#> ӓ+x+s'l; o~[J@{ Ð{qW)1IᎣ#SvGJy"Zr:¥= 3 n~j4rQm X|n~K 34\84{bu-lTo:G52.kC|=|Xwu{0A+H_o/?7Î\@X]gL':Ć)DZYf]%ҵ;Y$ZÆؽXoXMm%TU ׵\Q`iŶAoHTƈx% $yKJn%ҟ3?PjÅx7U]fZ0ޥ1P69!JzqX7:ծ ]J wftg|bW\,Fy;:L`dw /y.qj~,.BCDeĝw|pkbCoV3aZHīT-t]܅PXOń6ZEAYY {U!& 6h,[dvO髿tVe(L۶iVRo&8[cuXa?;z ^!e Ӎkc LO47~a֭vfoZVP[@3>WX[GKNJI4)TobEFLG3BLui7zdoH_چ+mj+w5f|LM{ZQWз乗.p/NLcQ4̟1;1l+5?3@ca7u\': N7E*8|=i r4t&\H1߶V!F'cs])(y9,(_s'ǰ튎IԵQYxQ:S1 t vNAb3yre#ht!}Ϥ9sCSaub2#,$<#X{|Ejfi tJ֊@%_ ʡk,~,&*Pkڮ( 0IEb (&ծmnSZs?UZU[ɫzkV6ƴquwOޥk;z3HXQfZJ 3CRq2? >Zۡk?IXAn Ό\BCanm.s)$ QW+1 7?0tUզc命!jT՛ q15v]k\8uGPkE\lkBOے\8392 AGҷ2~,ðt '9xgr#;<%8dtr%#*\1Йs1 O~ۉXG%ڠewȦX䰣3ME̟ÈSG*9'RF ds[)FL7mЃۑ9녈'yYɗ ]ҴO>|84 OŅyTh{ aHmAՙl5^+Z)|* { I۸KH9B+$j$$& }\2SV:gz֜K~ۭ*T-Շ p=5ncZ8;oR=NZb @2봅r:Ci+0>)@[I˴Cxjnf%`E 3:3q 1 }/x@2F!\^tn۬ s4(TWV|Fk֫)RsVl-ױup?qAq y?nKpς|.F9,sJøߖҳP-06}gUhR{ct]ң~Ȗp#OgBeă=n%bnjq75"bŒ52|{!MبK[Πeo̧å3BnGd+#W\,Fy;:L`dw /y.qj~,.BCDeĝw|pkbCowO$w>𵢐;W+Z07 - mxk KljTxX]ǘ*jLSZӔ0S[{ouYJn'clkGy8ivj K3U'џ3HW*A>V LO47~a֭vfoZVP[@3>WX[GKNJI4)TobEFLG3BLui7zdoH_چ+mj+w5f|LM{ZQWз乗.p/NLcQ4̟1;1l+5?3@ca7u\': N7E*8|=i r4t&\H1߶V!F'cs])(y9,(_s'ǰ튎IԵQYxQ:S1 t vNAb3yre#ofkd=K&<˜h dq']f6-f[KL -hU  .B(, }'lnsf:45 x1[J6MXbKZr ~y/mn)PV-1mh"' .2-]`Fz :3i H tWpa|RiX7:ծ ]J wftg|bW\,Fy;:L`dw!,~/ Mb;yq˜h dq']chrnUĴ֊@%_ ʡk,~,&1csJCYZ8ڻ3k0TՎ^$(`귒߶J y5afTH|%w! y)8vhoUzíZ޵{y_ځgF|!w!re9hR?‹юuzf:*Vo1ސ cVe*Vjͅ;Y:g(565o's.\^] Ŏi[?cawc{:Vjpfo3MOw un:Tp{9ӑ.iLcw'mĬCQmPN2PeX:=ӄխn9,(_s)"ö:*7A#ߙOߡQbނk]h+#V LO47~a֭vfoZVP[@3>WX[GKNJI4)TobEFLG3BLui7zdoH_چ+mj+w5f|LM{ZQWз乗.p/NLcQ4̟1;1l+5?3@ca7u\': R3z;أ~Ȗp#OgBeăO;]#XU njq75"7>Œ5279"po7$Zبu,k~e>b{~En@{z mu|Xwu{0BX1o^2/w85?Y!S!2N87,Ѱܫui!JA]BAٽXoXMm.c۬X敼ao&+iRqcvf`3ڽLIkNPOo%m֕e*jÅx7U]DfC1,(ATF|!\ZJ 3CRq2? >Zۡk?IXAn Ό\BCanm.s)$ QW+1 7?0tUզc命!jT՛ q15v]k\8uGPkE\lkBOے\8392 AGҷ2~,ð,s/(Gf$z?'s@ca7u\': OpߩPaZ_-9aRF΄˙7}BsG92lO%ڠewȮeϽ䰣3MȨoȬ\':*7A#ߙOߡQbނk]h+#V LO47~a֭vfoZVP[@3>WX[GKNJ^v{gEFLG3BLui7zdoH_چ+mj+w5f|LM{Z ך@r[r\ˇ8F|&WCr1(cVOŘv"ĝF輬Ƌ> 1 :SDbG|G8oԨpDuK9{:.f$ iY|ͲŒ5279"po7$Zبu,k~e>b{~En@{z mu|Xwu{0BX1o^2/w85?Y!S!2N87,Ѱܫui!JA]BAٽXoXMm.c۬X敼ao&+iRqcvf`3ڽLIkNPOo%m֕e*jÅx7U]DfC1,(ATF|!\ZJ 3CRq2? =!,:>jnf%`E 3:3q 1 }/x:mc7n^}FOz1ѻn/SУsSE]Zj^:YZJY^k5ֵÇtňvlQ7ZGX֌4[|\^] Ŏi[?caw?wu}֗6}gUhR{cهc/[Ȗp#OgBeăM9#Xٶ@c~mPN2W2rXQSr7V.K[Πeo̧@oШMoAAr Nγ/fK:¦SE~r<*d4FY=IwxG?Ř6n-2D2>𵢐;W+Z07 - m{uҷl-m*V,vv5c{W-i)佷ҬBMXpX걶54Ltw%*ϙ+ +I]aHzJN&]ԈL-S!`JIXAn Ό\BCanm.s){Ϋ[i%jEXܭBH_j4j Tn~*`諫M[ W#zB5[kU[6bkfָpNM&Hє'e[ɕ\r 0nIԵQY} ܀ZG ]p<92a@c߈*e4_i.qj~,.BCDeĝw|poYaYV$C# Z)|* { I۸\ǷY+y f 1 :SDbG|G8oԨpDuK9{:.f$ iY|ͲŒ5279"po7$Zبu,k~e>b{~En@{z mu|Xwu{0BX1o^2/w85?Y!S!2N87,Ѱܫui!JA]BAٽXoXMm.c۬X敼ao&+iRqcvf`3ڽLIkNPOo%m֕e*jÅx7U]DfC1,(ATF|!\ZJ 3CRq2? '?!*[kuK}S\9Ҝb`u+siTMOelk)ۙn[طitHFЇ@-yxDv찘;ac0p'? BQׇ1p7C.)E,X'cxHݽMӏa{ȋ,XbjI\trGu[>ob,Xbi}{PލTyܣ ,XbŋG2h5,M;Xbŋ^csO3okGըpCuBXbŋ;ex [v'4g_H,il$k2;8ŋ,X j86| n|0}0)SidP('k*71>Xb')yæTnŮ .YMsR`JN~!^s>E_}!1G7z/voi ҇\&9JǫS!5Kn^9,&.XB tDGkÉʘKRPv"ŋ,s7OOgq>}_(ŋkCbD1&!,j3;3F9D*}Oz@G=Oalvؒ4~"GTg/9XTveg;m/PC՝4gYY¥Kv-tNiuϪk2Ru= 6iV?DXɾe=s74 iC&ir\({Kn^9,&.Xf'5eLE )(Kebŋ $7oot:F^"ŋ,XRDg6}c+ϫs;ŋ,XaZw_s7sw(ŋ,XbtLZ>KNE,Xbŗcj} b,XbŎY^,Ã, ;Zx#I3Z̴NN1bŋcڰN;H_ 8L>TY/ ŊM!xrV hp~DzI5z>K@ ]#➧06fx;GlIN?#m+LI 4oy: Sk߉ZϢptU*[kuK}S\9ғfO'4MOelk)ۙn@X3Jԏ46PBVC ¥/ݖ{vr,`rj1C9l.Yhw1p7C.)E,X'c. WR?w,sgZ:֜= 4,Xbň #<^}[ߐ,XbŘ3 Ӿ*F,Xbŋ(8{eZjXw(bŋ,fS֏Pkbŋ,w*ffNhξYIewL:q,XՂqm@=< aaR|PN,U"ncŋ} NSCx#Nn؆رЩ>Z]>7+;bJwi_g>OX>S{ϙָM:^J}M#R݋]]v9̤>OpC4M}`=k02o~6;(fYOEuM7rP>ɧyV>-yxDv찘;acQh: x2.moTZ]Y,X`V I>$Ev~gWX( DXbŋ#S*:3.-%K/**ezng{~CXbŋ`Ɯt#_fwXbŋ,X=kGѩbiȢŋ,Xy}L{Z>CuRVŋ,Xܫ+Řpeޓ9:AgkOd|I&kY0,XbL{V q#It6x+JK%A;\XV9.AJ09MhI9bbƣ3s4cOBhw |Sfܯh)GB$z  =cM>gZ4m{+\{C4ʥKv-tNiuϪk2Ru= 6iV?DXɾe=s74 iC&R֨rrXxT}۲bQMF9x8pg<7˘GySiwt< JdXbłv1X*&@X%q]`pL/ybŋ,XLOsIS+ϫs;ŋ,XgZ IF,Xbŋ_n|U_8ʵԱ4Qbŋ,Yy <;=V Ϻ) +Qbŋ,XU82oI؜ѝ} >$5Dt,X`&=$zx<É M@,X\DNj %a4G _ cQ91'S}D>)}C3fnWvĔa!=ҿ}t}SN3pu6=!GOR'X4g5sI}):hQϴ+L z@ai,dtmvQ沞ݹn4}MHѓNe)ekT9q9@}<*[p>a1wlw( &<t83e\Dߣ% qOl,Xb;]I }H8ή8Qbŋ,FTu'ԩgչ Qbŋ,Y(U}i^;Qr,Xbŋ,aFʵԱ4Qbŋ,YySITAn^}ֱHYZ,XbrakzNj ;Zx#I3Z̴NN1bŋcڰN;H_ 8L>TY/ ŊM!xrV hp~DzI5z>K@ ]#➧06fx;GlIN?#m+LI 4oy: Sk߉ZϢptU*[kuK}S\9ғfO'4MOelk)ۙn@X3Jԏ46PBVC ¥/ݖ{vr,`rj1C9\ʹM;ʘKRPv"ŋ,U 4ď(ӏa{ȋ,XbjeGX{OJ^}[ߐ,XbŘ2W6u3w(ŋ,XbiqZ>KNE,XbŗH7_H/>X,E,XcVWci>Cnv6GĒfhbŋ,ǵ`orZjt׳ u.=É M@,X\DNj %a4G _ cQ91'S}D>)}C3fnWvĔa!=ҿ}t}SN3pu6=!GOR'X4g5sI}):hQϴ+L z@ai,dtmvQ沞ݹn4}MHѓNe)ekT9q9@}<*[p>a1wlw( &<t83e\Dߣ% qOl,Xb;]I }H8ή8Qbŋ,FTu'ԩgչ Qbŋ,Y(U}i^;Qr,Xbŋ,aFʵԱ4Qbŋ,Yy}OX:tpCuBXbŋ;ex;϶?VgkOd|I&kY0,XbL{V9_~̩b) aaR|PN,U"ncŋ}x#.=$jmюQ= S%uސ.OSA3r${ 8Ш% =cM>gZ4m{+\{C4ʥKv-tNiuϪk2Ru= 6iV?DXɾe=s74 iC&R֨rrXxT}۲bQMF9x8pg<7˘GySiwt< JdXbłv1X*&@X%q]`pL/ybŋ,XLOsIS+ϫs;ŋ,XQF&wXbŋ,Xԍ.3kGѩbiȢŋ,XB6tkbŋ,w*ewm'@~֞&Lֳ-aӌXbŀK۴3I >@ெO`e*m,qbZ&ibp=a UJ\st5~6ōFg|h(O:HH ͙^ E=WcWϮ8AϪiuN׿ǿDm45*[kuK}S\9ғfO'4MOelk)ۙn@X3Jԏ46PBVC ¥/ݖ{vr,`rj1C9\ʹM;ʘKRPv"ŋ,U 4ď(ӏa{ȋ,XbjeGX{OJ^}[ߐ,XbŘ2W6u3w(ŋ,XbiqZ>KNE,XbŗH7_H/>X,E,XcVW(.s\i>nv6GĒfhbŋ,ǵb^ݧuIB|0}0)SidP('k*7(R1U)rfCDzI5z>K@ ‡]_Ne%Eo@9p9]% =cM>gZ4;*70zR'X4g5sI}):hQϴ+L z@ai,dtmvQ沞ݹn4}MHѓNe)ekT9q9@}<*[p>a1wlw( &<t83e\Dߣ% qOl,Xb;]I }H8ή8Qbŋ,FTu'ԩgչ Qbŋ,Y(U}i^;Qr,Xbŋ,aFʵԱ4Qbŋ,Yy}OX:tpCuBXbŋ;ex;϶?VgkOd|I&kY0,XbL{V%w]T MW'26KvbqpHmb.|yCR&mht74G _ cQ91'S}C{wDb5ש~!546PBTVWϮ8AϪiRhZp |I4p =oR݋]]v9̤>OpC4M}`=k02o~6;(fYOEuM7rP>ɧyV>-yxDv찘;acQh: x2.moTZ]Y,X`V I>$Ev~gWX( DXbŋ#S*:o}T(bŋ,f*ѴIF,Xbŋ0#KZjXw(bŋ,Ѐ>䍬:D8!AyZ!ej,XbŋʲYAsIp>$5Dt,X`&=;H?+JK%A;\XV$6Gpr>!K64:#Nn؆ر:WbkҢEzQ_Ne%Eo@9p9]% =` \)Q0r-M'y[jTbD]s)0'S?j9X%i3OZh -% >ټS{3|SM܀f=ϩ2il,j.'('Kn^9,&.Xcsp hw1p7C.)E,X'ci$Q] 4,Xbňʎ4}2l3!,Xbŋ0em gyKNE,XbŗH7_H/>X,E,XcVW(.s\i>nv6GĒfhbŋ,ǵb^ݧuIB|0}2˜P9A;\XV$6Gpr>!K64:U: >'90zybV^ҢEzQ_Ne%Eo@9p9]%Բ=}%SIʼc|I4p =oR݋]]v9̤>OpC4M}`=k02o~6;(fYOEuM7rP>ɧyV>-yxDv찘;acQh: x2.moTZ]Y,X`V I>$Ev~gWX( DXbŋ#S*:o}T(bŋ,f*ѴIF,Xbŋ0#KZjXw(bŋ,Ѐ>䍬:D8!AyZ!ej,XbŋʲYAsIq-dz=`mLçbŋ1Xit>f@}P%7xjFSlICŋkCkw)s{3mC.Pns(#_%n﨟lm*) W~!546PBTVWK(|AS`=[>dv>ēI>@-ص:k>cLI3Dڎ} Z`Lֿ Ic&Clco5^7Tw ,sjGw(!K+Zˉc RۇNgn ;cF0`95.b&LE )(Kebŋ `IbGWiuu0E,Xb52f='@~L[>ob,XbFbH:j;abŋ,XcR4weâ,Xbŋ/14 #kN,t{-K&\EiFÜXbŋ;ex;϶?Vj_i0j:q,XՉ{vCi$S}*b&>cbM<8,X\DX9KvTɛh Gv3sAz=?+t/}D`mQHn"K٨ɧi.YCJ>$^[>$O8yԩnŮ .YMsR`JN~!&s>Jg螵ZK7?c}ynf`({SR?dӼA YZ\NP+`O <s;vXL]0ɨ4 <s67*b-.nIB\S,,XN+W_$Hk?䢻N?3i",Xbŋc7i>*ezng{~CXbŋ`3_hAפʁn ,XbŋkJulb,XbM~HӤOKg;ZQ,XbŎY^,shո)Z5i$ #bŋ,ǵb^ݧuIB GiؓO<>0('k*7(R1U)rfC]#kkz6PFO,J Q>"0('k*7(R1U)rfC]#kkz6PFO,J Q>"`Kv-tNiuϪk2Ru= 6iV?Do--x mvQ沞ݹn4}MHѓNe)ekT9q9@}<*!@JCج?;acQh: x2.moT{ 5\L=%bŋ `IbGWiaк߫Suwf,XbjeGX{OJ3FYzDQbŋ,Y(U}i^5)ཫ,Xbŋ0#Kzu ŋ,XB6tRNVl9ŋ,XcVW(.s\i>n V?EIçbŋ1Xit>f@}P%7¦.-mc6$Ï!ό ŊM!;=a UJ\{`Hިs79͔{BO6ޕ+Կ횊v(!*+zˁ b+~> 0-2NUCIX\O |J-r!6tCK}S\9ғfO''d[0M._% :vQ沞ݹn4}MHѓNe)ekT9q9@}<*Y4LiF0`95.b&G?3]@^~ȱbŋbUuM$#J+]oթWq;3QE,Xb52f='@~D^,Su(bŋ,f*ѴIe^Ջ,XbŋX`=:ƌQbŋ,Yy}OX:t_qz+J6ŋ,Xܫ+Ŕ9.}m+PM$UaӌXbŀK۴3I >@S61iǐqbZ&\*.L@o=$mmoT9[{'[oJCq_vE~M;Mv?RzTi}O'*ݏ$y{Ϭ.'>`E>ϥo:pݔғfO''d[0GզA:wUf`({SR?dӼA YZ\NP+`O }0~`}@"[{Ep`4# 0s@qxn1sm~HNI ly~ dXbłv1X*&@X%Xt.d`"ŋ,XQ3|?R ƯQ^Xbŋ`3_hAפn2x/jŋ,XbŌ?H,0BhkF(bŋ,Ѐ>䍬:D/Ը{Sqbŋ,XU >O[Q}@0,XbL{V%w]T M𩋋htv4svbqpHmb.|yCR&mht76seaĭн-ͷE!/;f&JހrsXJe=*{Kt>̓yni<=0zRWg}v@\I~aTn3Dڎ} Z`Lֿ-#Zρl{b5!׹0zAC&R֨rrXxTh;6W_+Xcsp hwBpwIg{K"ŋ,U 4ď(áuV%]F,Xbňʎ4}f5zMŋ,XQF&kqS{V,Xbŋ,aFaC_1E,Xe&?$m`'~dzڝ(s,XbrP\x}@4 WN1bŋcڱ/nӺ|$JoL\[DۣlICŋkCkw)s{3mC.Pns(#_%n﨟lm*) W~!546PBTVWK(|AS`=[>dv>ēI>@?!zAzt?65qØ|pLLWUzN2*5y jSP'LVAgpD_E|y"{̶' SP'LVAgpD_E,l|y{jeiM@e1Z>U8k |A/i~Q䱱piy3:j ?U^+Gʠ p8"Y/"ܖ6>< =5]O2ٝYap*՛jSP'LVAgpD_E,l|y{je: G?3Ca#`:3bL[*M@e1Z>U8k |A/i~Q䱱piy3 -~e:3S|8&JSP'LVAgpD_E,l|y{je: G?3Ca#xNu|"-ccˢcyi~R_ SPpCY,nKgxlά08yaH^;<-=5]_+y~䱱I0>`G3ZR_ SPpCY,nKgxlά08yaH^;<-=5]_+y~䱱PqA(N_)Wj)8!\,Ny{K%3O WS̼6gVyahhu<0s/ў_rX 9(k |"fi)S5*M@e1Z>U8k |A/i~Q䱱piy3 -~e:3UnK?'4C\hN9w ))i pjJSP'LVAgpD_E,l|y{je: G?3Ca#xNu|k}鴯rXK!C†(sZ3i)S5*M@e1Z>U8k |A/i~Q䱱piy3 -~e:2-0؞pqi+&D[ϊ LNLlC Gp0h2 L֯5qhTx'K<4P?4x' ?֌))i pjJSP'LVAgpD_E,l|y{jf>]:]9 Xah8NV_R9>Qs%c^;&ŧcc"ܛKnK>(%18 19(k |58k vB%3ZR_ SPpCY,nKV`q} =5]Iђʼ6gVKG90q<s| )VJgʼv'FMSÃO#Oo WWE6o/"ܖ6>|PJbpcd(rxP<kFq48Jf|^+GZh8!\,Nxb=?-ccEUԝ+ *ٝY-( G9ju:a0sY+*؝4]O =-=5]_ _rXA)|xiC\hN9SXS)tU8bcf?>4x'KJ@AgpDE7m/"ܖ6><4]_-= =5]Iђ Ւa0sf_+C)( G9ՒѓEUnM[%dž 5Ə>`Gќe5;M!N_8Jk wBe1Z?ʁlNL(c gpDE7m/"ܖ6><4]_-= =5]Iђ Ւa0sf_+C)( G9ՒѓEUnM[%dž 5Ə>`Gќe5;M!N_?!.mVxVٶ '6@UO2 2m|<+<8ee0m|<+<8ee0|ٯgW킁|<+<8ee0|ٯ|6@UO2 2gi>lM|l,`_* 'gǙg4ş6kic tx?VxVxq<<6<<a,_3O5gˣSOl YY,,vy|>tv.GGžO0VxVxq<<6<<a,_3O5gˣQQ[@^(ʳ³ÉYY 1g͚|鯘>]* !_ '|)

      @^(ʳ³ÉYY 1g͚|鯘>%E ?<7? |+|8XO0P' yxlyx;V_351;`6xYQhsx ·É%Sy{`_* 'gDž^Qg,oi1|4Z|| O0gGs 3_ '*SL 킁|<+<8txQY0bu3_ >V_351;`6xYQhsx ·É%Sy{`_xVxq? <6<yx;"6F|O`tN3 yx<7<,8<5Ib>@O l%Oc GEȳ Q,_35iu3X3>S gE ?<7? |+|8XO0P'*[l Y |+<8Dž՞ <<f|LYfkff:|l << TxnVq?R `O   $@  H $H$HI H$HA II! A $A   A @ II$ I$  I  H%X$$A $A  $A  AA$A$@@ @?@ H$AAH$A$A$H$@A$ H$H$  H AԐ  H IH$H$ HH$  A@ $I: J I I! A I  A    B@T@I AR@$ @A $ !2 Hd  H$@$AA@J $H HA(H$a$A$&@$IA$$@b HH   Q$@ IH%  $H$I0H$HA DI!@ A* $A  A A I& CI$  @ H%D$u$A $0A   $A ` AA$ @ @?H$AH$BdA$H$A A$ H; H$`  H AԐ P H IHLH$ H!H$t d T@GH$I: J I I a I0 A $* B@T@I AR@$ @A $ !2 L$  $EUQ@ @@J $H HA(H$a$A$&@$IA$ɴ@:?(  Q$@ IH%  $H$I0H$H@v@UD!@ A* $A  A A I&C"I   H%D$uA X$0&A 0 $Q d^ _AUU@ @? H$A$BFA$J$A $ H; B@@ @ H AԄ QH HHH$ DH!x$t~ dQUT@$ -I<: J"  I  a(I2// * @DbT@ AR$ DBA d !# L% E$!EUQ@ @`*$H BA(H$`LA$$`$IA$ȼ@:( ?p/7x;\q=־5(=3js rͧˡtn0Zp=hUB7e&+Dˢj.8[vm 0!ʎRI(QE{=z,M*YX>Ѐ +捬²b P@ ]U^ t4)1kn:Kkq Dh#a8k(+]x7KL]|PGj𵑄salW["N חWR]i,+i.q8Su^_.фԮzq^>br7 hd_#h CsJaVhsj  ֚(SՋKg({|̧ z#尛>M/w0C"dN@^ypk^}H7JE,6 YdZ!^--Ҡ:kF p5ݴ7mq;7Bn44<(2Wj\Oh@0||V1!Ps=ͦ#L6BLFwP1P/:çIw \^QD֠(K#uP 5^_,LL{D Wqpxa+_Z^,8jb{8_JumV~XiJP`pr3#BL(`vYd(xPl\biP2L& LoNV.5K9J+KSOFMd .O Jw<9k%2pTh7Uo 3ABvF0N θ@H8Vrz wt^wϥv YG6Fxź\R$ѭyzu *ޭv219GA#u;U2}KJ7'.p֎KU?h<1hO8t|Ohy_恪?fx/hi҅8>G}XrANY*z0W}>[ # z1QB)D ވ.UhԃtNRo[a=Ck 5EљRb*hֿdoa-0 XCvoY#p*CJS‰C/Uz0? a #iK 3kPr4Imi/Dlu"#:pD|UeMj(Ar=Xx5؝S%}`{S} QyAIS0vȵQK"_Cl'-9oX;ũ^nv{}*jQշX{ fay+JY#qsQ hUB7e&+Dˢj.8[vm 0!ʎRH3Tq"[ՂDl&iӭ֛p|XÚ6S' q%@yuVlq{L-#;hh!+(Gd`eeye5{qj-p?' ask` J5HW?0l47tIZ @=U˽Z7em=Z%cr<8Gwe0zoS+N]flx1mbПApZ3S* UՏA^>"AY] p|| l`UaRR||Gɢ%bSL\վ. k/PHߖôzA~k,QD?3X ¥8źTB=ѭ~W[aY>;2'x@FT 憔^Z [` F# *g֠if_x*EGXt.!+=P)b{j:+倿=h^t*.] 05kQkŀ[<-LRwgkSRc6 ;_jU&Y#[R \0;BUC(6.o4Z&]Qqv&Z۷+mTrERASخ#d< %z[txۂT*D|9k%2pTh7Uo 3BvFf$2 CH8ܮmv^],1wCF+m@6%ޥwÊYkG[% [@b'F:V' ʴv<@uc3PhPVniB#_[9C ,ke=TԾ-dh~GcqS"toD*os˃Z AT'R)d7孰h_"Qmo1nЏx4k_70VONh ,䑸xuy)DVVxBⴀ% m59eٴ"b6{8"KJ*2b&D X<@lN z`/jbc W/~} - yZZ`/VwSp;ZTԣoͫNWڕmGi.<Ы,oP M*VD\q]z@`CTfp'5TD4+I^E-6 hhL+/ Z4 [0C@ᡢ58t̂A4| VFipk(+]x7KL]|PGj𵑘zf?}Q f5QstrVMg[OVv#6y_}\X)e0|njG(-ѤZGߩ52+5]X-5P/P);ZOF*/Ga7}!Y<"_\`*(E=ȝ[ʽ[ּ=Bn ԊY kl;Gmd?ȵC35*[[[@t# | %1khn w 9$n@qhiJxQ(eUոЀ,!`8 b M:$h<\-e5 zy>:j>ڮ-df"#_hu ٍT\\ծ~YVբ]0# D2c."`Y֮L819uuZA(p/Js3jeZ;dWa-qlYlq-5P/P);ZOF*/Ga7}!Y<"_\`*(E=ȝ[ʽ[ּ=Bn ԊY kl;Gmd?ȵC35*[[[@t# | %1khn w 9$n@qhiJxQ(eUոЀ,!`8 b M:$h<\-e5 zy>:j>ڮ-df"#_hu ٍT\\ծ~YVբ]0# D2c."`Y֮L819uuZALf-Y~ hy_+hPhPVniB#K @saRR||Gɢ%bSLpX9xz *vP4ej(tfkxTJG5K` +'c'vݴArH< <ҔP^AqsÌ<XCqZ@xB62[la 1=@Cȿ%%szGZ E,\q @6'Tx=|11+Η?E_pO~}j-xëo;ũ^nv{}*jQշX{ fay+JY#qsQ hUB7e&+Dˢj.8[vm 0!ʎRH3Tq"[ՂDlP"npJPh4mdNJ-[FwHCVPĚC]:X}A >tI+#Fx45g[ͮk&.}(t}#\WZ=3oE`F(Ax w]D `GNe y\D ,]zq^>br7 hd_#ZA;3S* W>֠x/hi҅8>G}XAo5@N{fSхJKMHVO&;!|RJ@3(Wds˃Z AT'R)d7孰h_"Q3\t"{, ^(za-0 XCvoY#p*CJS‰C/Uz0? a #iK 3kPr4Imi/Dlu"#:pD|UeMj(Ar=Xx5؝SX_Ǵ@:_K}?.[L_)ywGVa1W冝䯵* g,S-)G\.xVY *7ؚT .セ-mӕ*9K RNjĈilWV @-ѵ8V_A*h˪canCE!YB;#3jq tahA&@׍QnW6/An ИQs_k#0ͿDjm*ޭv219Gm:&$q0εwMaxˬ5|^c1jǾLGl4 _SGZ@=|EuJ6c C;ﱙOF*/Ga7}!Y<"_\dBk.+T ]. k/PHߖôzA~k,QDQSۮ"M %1khn w 9$n@qhiJxQ(eUոTKgw]CX.Z@xB62[la 1=@Cȿ%%szGZ E,\qP 5^_,LL{D Wqpxa+_Z^,8jb{8_JumV~XiJR0r1m"yqe As}@2蚋8+2ݽ9[oH r* .檜Hu`!i+"ۣŦT-#Y)e8 FA}@68h44R#31&NyH&`4 ў . xsk` J5HW?3LXJ:lƪ.v]i,+i.yӢaB@^o0 ,WtަWZ:-We3N{g ʴv<@4}πu4 Z(+7ZkN`_V0[d>aRR||Gɢ%H`&{һ%NJ:ּ=Bn ԊY kl;Gmd?ȵCZVZ+4\0 EΛxK` +'c'vݴArH< <Ҕ6 +7XՀ&F,^ HXX9ZZKmL!}&#gyaӂ$bS("lWDqq`#o]C(Z:+倿=h^t*.] 05kPHjeXMwSp;ZTԣoͫNWڕmGi.<Ы,oP M*VD\q]z@`CTfp'5TD4+I^E-6 hhL+/ Z4 [0C@ᡢ58t̂A4| VFipk(+]x7KL]|PGj𵑘zf?}Q f5QstrVMg[OVv#6}YgZ0|njG/}1ewC?fUA|A^>"AY] p|k!̧ z#尛>M/u2CD5 ޕ*tdQ֮ԃtNRo[a=Ck 5EҲԧ1XAml΢.t[aY>;2'x@FT FEeӴkZمkiK 3kPr4Imi/Dlu"#1lka՚oW(;ۈ|2 @'Tx=|11+Η?E_pOa  -v1H֜6s`<_)ywGVa1W冝䯵* g,S-)G\.xVY *7ؚT .セ-mӕ*9K RNjĈilWV @-ѵ8V_A*h˪canCE!YB;#3jq tahA&@׍QnW6/An ИQs_k#0ͿDjm*ޭv219Gm:&$q0εwMaxˬ5|^c1jǾLGl4 _SGZ@=|EuJ6c C;ﱙOF*/Ga7}!Y<"_\dBk.+T ]. k/PHߖôzA~k,QD95eObOhuٝD\鷁²|&0 bwm @dN=g$# 9(˧io"`6 #c}n-8ׂ# *g֠if_xiq*`IF8A\"Xn!-SX_Ǵ@:_K}XAZ {=gkN9ipwSp;ZTԣoͫNWڕmGi.<Ы,oP M*VD\q]z@`CTfp'5TD4+I^E-6 hhL+/ Z4 [0C@ᡢ58t̂A4| VFipk(+]x7KL]|PGj𵑘zf?}Q f5QstrVMg[OVv#6}YgZ0|njG/}1ewC?fUA|A^>"AY] p|k!̧ z#尛>M/u2CD5 ޕ*tdQ֮ԃtNRo[a=Ck 5EҲԧ1XAml΢.t[aY>;2'x@FT FEeӴkZمkiK 3kPr4Imi/@mauRᏤɨ< R{(mW(;ۈ|2 @'Tx=|1,۱ٻ4} \-{Ҽpr8ly¿<-LRwgkSRc6 ;_jU&Y#[R \0;BUC(6.o4Z&]Qqv&Z۷+mTrERASخ#d< %z[txۂT*D|9k%2pTh7Uo 3BvFf$2 LY38ܮmv^],1wCFa+5G\2 E=U˽Z7em=Z%cr< tL#(H 2&aejÊYkG[% b՗ ߏ} aVh{xEfMv)?l  ywc2*U_xoBy4D#1ָ \/zWdѐ GZ#\ׇ_R ҡ:K!-mh GYrkJWRaѶ:o ld8L`ň o7;g*# 9(˧io"`6 #c}n-8ׂ# *g&I.Òg.bZdV|1x]5_JOue-6 zgvq@h/EAq k#>zWNY3 4W;ũ^nv{}*jQշX{ fay+JY#qsQ hUB7e&+Dˢj.8[vm 0!ʎRH3Tq"[ՂDlP"npJPh4mdNJ-[FwHCVPĚC]:X}A >tI+#Fx45g[ͮk&.}(t}#\WZ=3oE`F(Ax w]D `GNe y\D ,]zq^>br7 hd_#ZA;3S* W>֠x/hi҅8>G}XAo5@N{fSхJKMHVO&:!"P J:2(Wds˃Z AT'R)d7孰h_"QMiYjS 6p6gQ:ma-0Am TH@FT FEeӴkZمk&zQ:GaRyER--bPR\Lφ> &IF8A\"Xn!-SXΘ3b:-5P/h-H ߏ}z0W}>[ # Z$0JXp]F@`%j%TXqhyagض3h_"QMiYjS 6p6gQ:m࡮54y.[a&@ 9$n@qpiDhV];K LYqiƼ@j$f /ERyER--bPR\Lφ> &IF8A\"Xn!-SXΘ3b:ßM.Mjk(SՌ4YǾ9ݕNY`O(p0VGcq% ^S 0vD; MണOhYb%P4ej(&u) Vin`36yp=0낉N z7Bn84p4b+.XՀ&F,^ R Z5Yz~)a<"V햱NF()j&EgIٓPxAUVQ#a wQvwkd N WgLSiqmd = -{S[x #;Zp̀KxZk'Ҧ[U m_wԫlL5=LGH8Ap`vYd(xPl\biP2L& LoNV.5K9!]X/FxJ/HiU FsFJdY~1Ѡo.P /ig 8eI5ӥd D 4gK^6qE\X/Bb;҇MG;U6Vkd1{zo8zKyAFPeL:7'.p֎KU?h<{ū/|V[/ 'T4 _SGZ;a"e% p|k!jK (wtט-XdZyH`&{һ%NJ:$ 7ҍ=fip=Ck 5EҲԧ1XAml΢.t9Fpkpi\î $M8rH< <ӑˆшv b+V`067Ӎx%HhIf^M4Z[Z9ָ }'fMAWғYG o@p4EޱEݮC(Z:+]1Lfy嵐0s0<9ObnxsޕGig6.8jb{8_JumV~XiJR0r1m"yqe As}@2蚋8+2ݽ9[oH r* .檜Hu`!i+"ۣŦT-#Y)e8 FA}@68h44R#31&NyH&`4 ў . xsk` J5HW?3LXJ:lƪ.v:(@w5uߖqha?J6c C;ﱔ4ԖQ910[ɂ,?k(M`vJu!pHgT:o{E/zA~k,QD95eObOhuٝD\鷆s,Ӆ\Hq,䑸xuy#Yt-V026adloŧJѨ͘+(K iJlr1AKWq2+>O.̚ 'ށipb] PuM`W:b͈Kk `,anxsڟ@+',Aӆl\+p/7x;\q=־5(=3jӼ[bab8E( ]iv b6#{4\ f+Dˢj.8[vm 0!ʎRH3Tq"[ՂDlP"npJPh4l,C'Ktf_yuVlq{L-#;hh!+(GdfbMN!,> M:$h<\3R _hjuQ[ez7c\WZ=3oE`F(AyK:5)]`Eqt0yAFPeL:;}Hޢ|^c1jǾ|KG|{W>֧}0漢wS줡N`_V0[d>CMIaenk +X#1ָ \/zWdѐ GZ"Vu@sZQ\1nGmd?ȵCZVZ+4\0 EΛxg<ێ n 8^KuD=~`{}I!P7\Gr8Q1NEjl#fFZq-,قbiFTKvX#z"Ꮴɨ< R{(mW(;ۈ|2 @'Tx+)؏4ܶy= \-{Ҽpr8ly¿<uðwGVa1W冝䯵* g,S-)G\.x YAg߄?)PU\.セ-mӕ*9K RNjĈilWV @-fNZqkŸeV"WVYpی 3BvFf$2 LY380 u 9 @5. +t t,nj𵑘zf?}Q f5Qs3 ujR"-C `@?A֥vg_+hSw҉;RP/h-H ߏ}wAy5LAg\dBk.+T ]@:9x-(.Vf }6 YdZ!ɭ+-]J{Fۮ"M3Adm/%p :Dӈ0=g$# 9(˧io"`6 #c}n-8ׂTDl^EߊXO#HUeS ZkY}vdU})=ՔpGH+]]>klG\n[YgyBmR:,CnKeU[g`d!NbC^ %yCs|P6eJ.I{NQUKMc&tMn)cy?졷%w 2302~L1!k膒 <〡~>`(`~K%$=ʳthk̸z}q>` N0P~f>Sr_( *޸>=' ti,|=8 +G鴻/rQrO̫8G<>ϸ2~a  71`(`~K%$=ʳthk.n+Aw>=ʳt?Yho˵L^R(奺ÏNqky)cy?졷%w 2302~L1!k膒 <〡~>`(`~K%$=ʳthk.n+Aw>=ʳt?Yho%lU( % :_s'<]݃Wk}7p{g~>wJ=+vQsO9S1Zby"ŠƉp`e[M4P yN)cy?졷%w 2302~L1!k膒 <〡~>`(`~K%$=ʳthk.n+Aw>=ʳt?Yho%lU(~-g1q<\j`?f?XQXUCAA8tК yN)cy?졷%w 2302~L1!k膒 <〡~>`(`~K%$=ʳthk.n+Aw>=ʳt?Yho%lU(~-g1q?ʂ:/1}dT|ߣae[M4Q5ֱBuM΃3<As_o) }<>6NPA&UUq{}{O$5wXa {p1W=/ iv^䟧Vq3 w2y}q>e{?.vGcwVp3 pydʢe4Oc k9#Qy֞g3'*go02Ă S83<1z'Q/L3?C/456R:,CnKeU[g`d!NbC^ %yCs|P6eJ.I{g3>s'<]݃Wk}7p{g~>wJ=+vQsOŮt|lC?ʞsG/:16s:~@%Lf/~? 0~L i\gyabN)^f~_Bh.km8tYܗ$ʪ#;/|ϳ|B0ĆK,$c" m.ܔ\*!f}O0xO1̯gߘ.n*f} pp8C%lU(sa@=9S1Zbx WFp? r~{?EL?f?XQXUCAA.io3<1z'Q/L3?C/456R:,CnKeU[g`d!NbC^ %yCs|P6eJ.I{g3>s'<]݃W jה<] f} eM*܂)oG*ݔ\vE8a(p{rcCt1$y:~@%Lf/~? 0~L i\gyabN)^f~_Bh.km8tYܗ$ʪ#;/|ϳ|B0ĆK,$c" m.ܔ\*!f}O0xO1FaqAw[.nz?Vp3 pK*ogyVVL z?YTV柣( CC<=% :_%{Di '*gO1}dT|ߣae[M4΂f?CuM΃3<As_o) }<>6NPA&UUq{}{O$5wXa {p1W=/ iv^䟧JM6Rpx<]k}7p{{C}?r=ʫ8C%7+rG鿐J=+vQsOsa!~_ʞsG/XĒ4a3'*go02Ă AsOyы:zgAy} ѷ~f>Sr_( *޸>=' ti,|=8 +ʏ'_;w87G鴻/rQrOc&ʫ8G#;}voה<]݃w+Aw ?^PvGcwǴ7.|t?YhoYSx;ʲ `~ʢe4G=N/J B~-g1q<]I+o#Nf9?IS=~ً"{ (,H*o!t47X}ntК yN)cy?졷%w@ZLz<#? ) Hk!kuxHY^>?=8 +eoit^  0z?M{~w,'8C!f}Hx<]i}7`+yJ];=v?Oה<]1 0˳*gT>"=A+`~E?GoQSyG*{8KYAt8AcJӮOT|bȩG 4 h(?>~F/D2gy&FU_AEx}O(m~IA5owUx=@(`~K%$==XNqUCC]̑>x.nW wd{~(x_1casg>UY:ϴ7,}Y[E0z?MVeQ[~ %!cT?Lp8q~.$7\3?OS=~هi$m7P: },>^e7 : M~E>ݢ/qH?`Ce /ӿ("KV5*8b-^4@Lz<#? ) Hk!E\ux`-c c@?8(b z<_$}{0z?]P6eJ.I{{C]ܰ=ʫ8G#;}voה<]݃w+Aw ?^PvGcwǴ7.|t?YhoYSx;ʲ `~ʢe4G=N/J B~-g1q<]I+o#Nf9?IS=~ً"{ (,H*o!t47X}ntК z}L},:{'Ex}O(m~IAZѮX=*gG1}T|ϳ|B0ĆKUW1?O?$c" YrG]C iv^䟧Ǵ5 #|thk3ayC}q>Rpx<]k}7p{{C}?r=ʫ8C%7+rG鿐J=+vQsOsa!~_ʞsG/XĒ4a3'*go02Ă AsOyы:zgAy} ѷ?f՟,56hkT5Dž eiт>^005H5Dž1 eJ)mZb9a--sk cD#XRO2^bƴhk/\x_c ߖYĬ2yƪ|ạ̃PH5Dž1 eJ)mJ|j:1|ϓ*.m. F \x%ḁf~5T>glh]n`dbQ㖐--sk cD#XRO2Stc'!yuyt˲K% F \x%ḁf~5T>glj]n]*505yt6FsH5Dž1 eJ)mJ|j:1|ϓz<Ժglj]n]*505y<'3+A"ǗH5Dž1 eJ)mJ|j:1|ϓz<ԺaюIF#6 U[R_"KM HX:EUm.12qΈ`KSmq| q|ah~Ydk[iR_טSF>'xDzSІ*1pTR_)i _5x3N2u#x9jx ^04AiWYĬ2J|VkSU8iW:1|>O+4< Un>c%㔩ȥFRH)`k[eKgGdGsX-3B+\y~+Hj3C\x_c ߍ4u#XRO)[J|rp0GF:|!JdI@PIc4; LL#ϢIϷ>P $1;LLLL I<0221223<>@ I<ɉ|9a $zA0~A Gǟ8q}9G)EȠO$ I;OX 4$@0*lHX@ 5,LJ `S30X$T?B3YVU~NI~u۩=.BASׅ4$*txQ^Âך5!!NE I) G"4_J %e)j:-Dd5¤h>Hǹc;?wa4_k+_A؇,$__h;j\[VAC\ MM c!8b8u-iBXJDl7)9'-IejW#*[bw6љe9@PRnԄpYF$T?"GUڎD$$h;DB^Xǯ,iIzޯ}eYU88???fϬ,5]7Z{[s3ck[/~I5ptcn.qh_Kj]>⿹uB֪urAA5EPkEn65s'ߒ\=go;-Hl`iXT>OQ?ptq-ѥG~aBZr9IY0(:)^7SE_8 +s.yQ@0!ԯ))<032>7JthiLs vJ녋(Ny GE({|qo +8_<8߶^E6$6J [34]%ζ;خI|(mݷcG=5hcX, l<ƜlH0⌐L5.vB|W_t$I-*uqATA;Lc: +Ǔ'Z]J?ȱbŋca7rIsW.oj4,Xbň #<\vtGw:x;>wŋ,X0V^qWa{7˔R,Xbŋ,Pq7'._gG٩beȢŋ,X߉.S qHYZ,XbrgyOvhrI2:ŋ,X j84= n^n~}/qbYl,]J0&Z9NSDzI4ōFcu2cO"dHOgA/tĔADAR=9y9{uu5˩Vx9eq>l!# ~S|3؝JuvE5?!?!   H $@$A  @A H$   A  $ IH $HI  H@H A I@ @$I?9+ԯv{|D`3&ųk y=4@ a2|K3ïv8Xh2 P7z[f^F-sx(xB<xw5$b.llNxCPxC Tr)P*t)x`p;ZG6,:G )җ T0oŢ\/nUB5e*1tLONA̤,3~RJ+i$ʠ`̄B$GS7V|6S'b P \վ`& t2μ42Rakn N[Ԇ:}1 Zp2( v"ܮl^^`ܬ0ι1# BŹ\r$ѝx»\x~݅\^&y[Ovv`C;$pSs^/. wx(q[syL7^>8ͶtwZAًh C B}9Jۗ8 OY!\μ}7*E,#6O7ȵC3/Kk\7r{:wZ .p a-0V'akhnny :$mU<ʔDփ6m #opzp ⴀ% Si382[l`yP1P/;çIwLQ"gPp Rpj;t i6 _ W/~A?~C -}Z`/vaeB-5X6Y+.e̠Wv(cz̹ jL=B3Z%$C}fHg˚Fp5Պ2O=C e:?G%;҆??site_pro/skin/circle.skin/buffer.png0000644075506000000310000001241511560130170015754 0ustar namedPNG  IHDRhhgAMAOX2tEXtSoftwareAdobe ImageReadyqe<IDATx}lシT7A]c ,c1"?He&DM|X%!q%ihA%,&ЪBt3 Jf Bޝo9Ͻs{{s>w~K;Uꭹ,FJNk9^O&ൌ=uwG@?rv[hQW{ȔQFCѣG߀^)(~ Νu^Gߍ @{co3fL5`:v9xk,CpR!Й3gRgϞyEߋAowZIIcЗDmYYl; JW*Xd!uuue{7Ve#  H2Xw\r%qPR 5{!Xu鞎B Xa ` wW?> $-BI @KԩS@}5AaǮ,IWP⮿/Rf,". ?7C6:3m߾s}rτ R^zi %F}hSOQLP*Zuvvfa굚! *y0'NJ Ybqe.GukfUQy, fA >m۶:y` % ՙ* u[t ) ]7"\&ſOCRd@mg/4o(y@mmmARY&Mʪ4IM5]*V&N$-VI5hMk5Rɓ' H .|$A] )y@4PC7lՇLv.qԍ~~!n)g^&_p[DUs:H [$!iD):qau~Q2ZZZnJ{R|)5,( YJJ`;;w}7uֹ&n#5.%R,(ރT!Qps>t@onM,2eJv*-4 oNR0@зJ@ZI`1@,Z@ ũ Ǐ:Km&"SjS2J oMY8]\;}ɢw9 MGKkzQ ׊{}.: `~*8F̷~x3M?T 4HU9$7;ߐ;n> Q]{k5i>1i$H[SäapbaǠ/( HU3g~oeٕƧ81Xup:Sìa?IZ/;Q9-8+pkW Gܕy[- 4K Hgq$jjvpӰr[a0mqˋHUy=׭C]}㟆[q`.B-\p+ =G^7fƸ  鷦8\nߤmxX_lˇB_gNt'芜YHݱ6NiWCmomxh1̍Q`0e+Mw\+=Qlԭ:PٕȪ% _)Jёv7C杝! bNN CcC|ØmCi L)BM@u;\*>%.E_0|EHdoOC=o#ilbf&CN\`rk.2ս1&a ew~k5D-'(5GeV)=˘PIi՛vId s4?ϳn6L1d>aȚgAld!HAC_v &p-vSD0/|Z;LMm܀y <2$"; bdvs eEC&YUhrg)W>8IaQa`uV0-E{5QQ2ׄ4*lK1xLk(AӭBG< qрgYOT+S guJ1=dPSXHN$C\QzTl /;`$C\t&:Jc1r4!W O&[;i%C!.򧑘VIa|2x$6..S']]JH!cMJƷqO&ǣ3Rmr/Bdt]0̎PGiȁ*Oh@ʘuR1;& +!.rd*B;7>$0#{Mdt؇cA (j2!. s$~0Ր|L qрD ڕ4t k<~c2dֶm6cy]\V0pĬc'xJrJZmiIPH9aa}hawSi'Cݷ0C޻6;gɒ%]'K(nX4pZZZXaA(8!½V*䐚SU}8,#cQ;@{-՗"hQ2E e 3޻{ٮ@LFP(IQ-&Þv=F啳֛s+O=CɀHEW0;n25"ZjGh/[XyHjNa gvds3`/SaPh葖 fBl&6>9IA2 QRTs_ȩ2dn@w3uq!8TbxRIz ^T25TC!Hٙy *헀srEy{K*"9*Usr̸D@2twkmmڽ6 ^_bA=W,9:Uժt7,≠_NuLVfw](YP^|:\LQmجP2T_z{3*3rd8dC%LKdBV677׌t8mmmK!5+U},5:.I3"N(KQ*a_T踎!\-YY# (LWtDksGy.Pn/aPR$5.t5 Β$g ժJ⮤'a+F3gloo??ׯ~Rwa9Wee6@RwT9] gS4 6 d%1nX3Y5dYk߷2\5k6 O_X}܊0fdgoGhq W[9eX ϫp1mkbN(CJ3uP۾:VZyD{@ k#>__- &aVXg S؞-IirOf⡲V+~=*m Uw>P@lMMMBe:):oԫ|ۄĤ+̎[@% ܮtĕ贒‚ V4R  P^V5fbfeQg3xnQ5"~q6eЭ]J Rغmڀ Xs$z:x8y:󒻙i | 8Nрܜtnhnd)ۓ ݐԞ$J"̎KdIf*`iN[sQ|Ȕ&:{xA9g]_Z OH(|)Ki$ޯ̷O29wyJ/Po ȕph᚟+ 0@lWe1\I(T" _)U&m7뒞kbb"I? (I8M̀rvȼxU.>! i%7I{\+GC e.BӔ~OĢ!,ERy!UOP ؠM)'kIPn߼P[[bgz @O(u,+cm#75vIt qP|uf4?[j3y^CCs [9OϹ]i/buBY9tU e|VЍ0ʂzK $msJ넲%UK)dPi~B -LS_p鋙銥(YXM,yXuJ(z߄<<  c6Ե$Uv=R(( Pvkڻ5|ߢ3' ֆ% *͚m, S Tȿ풪\f{IƔg{#+=5ӥ̏eXyōX? Jv1){%&s6O1>dž fKbE7bd`.]xq#v( Fa45vRj顐U@Xh ЉٙTxe x1w0k1 ӫ0D0AlbIENDB`site_pro/skin/circle.skin/controls.jpg0000644075506000000310000000700611560130166016347 0ustar namedJFIFddDuckyP&Adobed        dd012345 @!AC  1!As rtQq"2BRҳ#0a3$DT0@!1Pp"!1Q0Aaq @ aY @VUEY1nA8{e{Kq[-22ǰiFG<9,"f->2K-2!K <_ymK`7&`1G p @ c VgI SLoNBN{9 2 4K;^ੳa79@d[xT2g&ܖk;PW;%[Ѡfk>7ux]Φ7\NyxnV{S<(+ĝmFu4x:M@(<*RcoB_ 29VH$p ՑnFS`X,԰X, ,?_AOG 72FXXu5..'P5V {^{8CJ:N$xɩ mtwx#rZU2O^In{9]BFk1d4p9S$ݒ44m2*q*ܻ(7F](ϣE6-X~r?!X\&nkvyXc l *Om*Th1bŗb̖7`pJc\n/ ۬Gŏ+Wl6{,&SO[t/᳊Q{W/N>zGChbG:~:îǵCZ]A4AqbN$Sfh-<s APUH>o숕BYqe`VzE/?BIţ ŋ.?cm'u?8kj"ҽeD9CYg?U`IjIX!86QքT2JELweͼ9/b}ÄyQcXP /RGQE.'<DxŅlLcQxK*DXhKf7 pFBÂaVJ7c=q?!d:(^pCY̙22gw |R2"C9eNdz7!.υlO&oh8>dɛ9'}ϙ w x@$AI`$G$ A ? Ќ48)^V@B&i 4[/>:\f}LK9`.Kjeh ǀ,GSg@S4`Q`5YƠdj @9:Ep&a9'قl# \֪u0,7J('ױX90Rٜk<3Kѕo4f#O)weUMŴ*'Me \yNn nc3R=br!X@t ձNg+DggkWY`#*/U?ڡ*{1Һȗ;sn" $!G1$6I ?>hXۣ8E᧢(PgE?31IyzO,]<եJ%QT" iq|w:./_+$/:j"Hu:1#!n? 9bp~o=y,CI t`?'n#B'($wetF)s({֫}f]DkSk;ڤƊD "x!Δ@[-q5Xi3Nj!lN"tgKe $袹iSJ^1Qi:f(hh0.]ZSߺ!WlMv"Hu $HҠLxf9UVS٘V 72G9&zgN0^Ae$/3$X4;S0{> [Hn{vӐQI*Ṇa@PgZ d&,!ȢE3=3AM/К}HN@σwlE_ \Uϐ4hȡnU|OsMDCoP\z]KE)jHi~CCL^d„ ߍ8)+ 4R(Ʒpb:mmu\O>tܣvLAߨh'Q(ꙟupc[.J:h" CC_HtKasꀿ iH$ ̏nYi"JӰMz;@Nҷi rh<7&ΑVȾM|{r,"u4מ %3Ox oJ>$9Jsf@b"inT/"ִH&8܁$"4S]nq]-BT+ 9D9`bZ7JNʧ,5Ӽ#֣;0#`d_,(A[ vdHXۄ`DY̮nwh&IxWN~ݑY`"!a LA+O[8c3a ^ܳ0L@mi-)T#fX` vnپI%!9g`,w] zѻ_1$ݙ$Gy0vPcخ < :uN6l `};j/z Wnj&+C$9ƇEq*m '\sL0|HSґDQ4x1#`̀0ir:0+&586'Il}N.R k#9˘>16XvXS`+xBֈ..6>eo-^:g#ekݽ1d`lfK`*H |4 7(0|Ja9asI `lfJf'XeBԭ4*rL ˒r>2yo[jvEX<(F ;`,D0fOCOƶ4*DpLP>lK3}&?~ mo(' )aF(g ehGg`Jj7_9'|؆_>Y/E)#}0I=88 A(dG4pq>χRnA-d6 m8ϙqn?,>mE4Y]K{ہ K:kB[kGW[mk"lFU*1XS` 5cUE%  s}Xh37$J+/zF/1`2ٌN9Po)@ P[MSuRAZ!X _+`\)Q$%o.ĝm^Seq[ip2(*(ʊ2fB[` FyA EۡTYܟÅ:9@4JCBڱ*Z; 3愩IeǨne% *&w-cfP+2\T|p.),C^J_0֦_wK Tk|/*>g"p)dc4H nvsm5ME]A_;`XiŬkn3 Ht5wUJOfp0G`M:~n\(xH3 fr s5 fPCېV AJ}l3HόE"{SFܸZ.ߊ~Wk|I]3WA#TRF~^d&+yYITx ]"((xZXh(!mePN跔9eOW 7.` }_~յ b] ob4!&1,u\8P*A}*/\Zx:Ş#[C va֪\$ǰR rA}x1[&)Z'W 'lRR뒅*ktYj]+YW=ZdKkN^z((tYvs9A0ah?K̍?hTgE3W8f1:*^y FU-. 2I ꌅ q!:}ǁYxЪl_2En˗=)TamO bΠ_EX1c@8^k/T/څ%(/^zXtIi* ?D;c;qg298X3.)xTvXӽWp*^؏ x-X&FR MG2+s_r!g"z*5'w+am#ox S/Ķ |_ ]#4s>3Vl} ! " ƌb_/\'3:/䏀 crn yiÚGbzvC=kxRu X9 Е"a&y[V,Wf\^%a'$cf ) ڬyƢtN~ϨC['`":zD͉\ʹy!0_tɺ8XQ #LF/1"LRtzNa Xtσvو2k\8bɲt0_[ %du)A-pasG7Ѫx 1lkC+y-kj}y>dñxāIXӨ؊"n/gÔ^?' ڻO7dm$1>{@` PSj̈́]@`4>Bs&8J Bbw?uTgfRρ sZ WŠ*/0Rì? t D'.d7ݻElk)JmPF& e+JoH̍?(Dmȑ;ʻ&]ccdYTW CC]'V&0"AM,Y[s}4'z{6~gvI^Br9Cv L^!0qPq;l"˜&inS Pajꐭ;}CޭcI;I 03^r]Wul s7tz< olj ]Е^J9[ɼ5^Jmr&4/$.\#]7S6xZv]op{)Q&*&?`l߿V|u` HC*liNV+d;.^/[[&v ^M'!m::M‘vest6$07Zc`] Z֩m`Ch|(Vpf{TxdnHv@c(&ICρ7&V&JEQ8E>n/Y2P*ޑҪCsER-K<P} B;TJg+p6H҄ .0…O((ޙ!O}ɳW)-|r[dV^ rjZ up_ӻо <ІnuC.zlBE"fuM3 u]4Q(.ݺ, Yj!<ہƪQZR5D״qJ#;kYdw^s|1#QoR޾-Ŀy$<a+{v;0Vk\-G R\hyڿ/#2FT tWw7Jn2=O-P.?GQ!2ۑ!9ק9/@yΘwys=cNNO((IR cS }7HǙi 4RIOj<(gmkP V_HM̕cl 5\/1G(=I"n8~ғv(%\lnj[;,9"c\M-azbRe yj%'LMg3/4 7*X // ?SH:[EJ;zj"& eުq{Bdț.Y?B' [ې>mIO³=my*u?A:LuEYٞxSn)A!;j7-<%FSbcY\I{KJz:Hz?.BuO(KVn9ך!hY'?-{狿UdbD͡,\ըIݨxT"!ի^V'ԴkMĚ*b ѹ9S+ƺҎsV.)2Ao ^(%z[Z`N YW}IENDB`site_pro/skin/pink.flag/0000755075506000000310000000000011734665220013453 5ustar namedsite_pro/skin/pink.flag/jplayer.pink.flag.seeking.gif0000644075506000000310000000632411535306222021102 0ustar namedGIF89a0 Պߨۜq҄}kew~ٖ! NETSCAPE2.0! ,0PIaͻA!dil)kq|+ plJ cպf[_K`| tzz|w ¨! ,0tpFX{'ZE㲠cy–t%痍;^'"(L* 3J>z1wÉבֿp'a|~Ju}G|> 3! ,0t1!8k6 V@hJRา[™2ӗk龋B̩ ,*M՗mw80h^69ɑy^!s dHxE> ,! ,0qI&D89 V@hJRา[˜$癍;^ %ND* ה J+{B=J1Zi^34u޽I"s ~|MG '! ,0q)D89 V@hJRา[˜$癍;'"Jܚ# mP+/YB=J1Zi^34u޽I"s ~|ME !! ,0q)4k= U@hJRา[”$癍;'"Jd$GrUޭl\=J1Zi^ 37u޽I"s ~|ME ! ,0I 4<:T@h2KZX.p<)xmKn 1bQr\N˦Jum@2 tv %3#z|~6x}ff| yS|NSK;! ,0tI=\( b[”$畍;'Ģ(L*sݧ׀0v{Ov^ùw;]=}xkOati ;>sݧ׀0v{Ov^ùw;]=}xkOati ;>f;36㶖j2AJ,Ӡ#m5Mn'%lltO%BTVԋm"20{p nۀm674Hܗ6Kq"a!LV"̈(^n[n]m%6 h2 !nۀm60*LW q`XkA .DlU#h)QI2֒2);ij-}Y71r+U&KxЯ9ia D~k#21qRtӺ`"yh,ie} v!)'ehli-o]v.'uPh/jEqmrwl-=Nrvٲ^̿?V_=g(U$RV՟Nh%yL̉z,]KgQ5$4a] '_ N0 N0 N0 N0:g\RKhS:ma""-&f1ݼMG-OҗA%Eh=+G)FQil) jf;fkqkpKqUYKI+,"""(o9؛-6s?G<1:% N0 N0 N0%HA[ˈ(p5 F F F FiإIQ 3UyVFPI"KQ7HF ZfkZtHۊarYLIhZY(DwLH Z˦ɉɕvU}Iʹm$ U n]|k3&nmM bf#X#X#X#X?kn2=^W(@/+| > rGy\Q^W(@/+| > rGy\Q^W(@/+| > rGy\Q^=vیjp nۀm6p n'􀩿6p nۀm`UQ-@"(y2VWUNKm%cӫBk4)2-Ӿ)25svVYQ)7Zvy &vEG;RJ mH%d_-b5 F F F F FtNNksZM:$a"4ښ 4:lˎoHM5eݺk_LUW٭~Q3OTȤDWm'} ?ҲR *'SP.4\[RDkQiδZx츥fa忳^Imۆ1?c#X#X#X Ii[Å9@N1T|`|`|`|`>]QdD%4$wBI?)#[`r\K&Fi&jD-&JkTqwM'i_eVni17u N0 N0 N0 N0 N0 NS3([q%ZnQAȇG&#Wd/.~\|sѩd,z%r{6I\hќVqĭKQ'~7Ûm,k2sr3NJ.u2'_'_'_ ^ ie`8Xnq#X#X#X#X y I-IB̈~(,Y"Q&%ңKIZFA 5X|bCRfҢ3##-#,Z""* &;ؒlץEc[W3*kkkkm·u&\@5"@rGy\Q^W(@/+| > rGy\Q^W(@/+| > rGy\Q^W(@/+| > Ǿ`<qSnۀm6p nۀm67nۀm6p *%`dX1b5b5b5b5<aԟf=0BԖkHqD*Q3f^ Pe%ҵ%)Jhd} S$AT!!fCQ6I @k`````'N ;)7jceŐ둣B4-R~C$1O<3-Dgj,˻uDs>"z&O˷ _3o$RhG)qhuo*Zl|1y֋+O6wqJֿ*}Z<#I9]մŊ*qR FyC$4a] '_ N0 N0 N0 N0=hg)Lǟ*2!)"IymQX1ݼmE7ej; }J&FfHv$} %[^6ިd5|bC[􅶄̥BYi(΋Cʦ#W^ӌyC%h=-?mt}DWl]{>̷t]uy~ݣ9n(iJSl5y8tbˎm؋~<|`|`|`,Jz4uP`k````2UYJa8EiXvRBūLJxEn2==d(9&ffj33ff$Se-ôla2ydjQ؋wL|&ffk)k3YRMbt2ԩn>r2a()tȷ-?)K5#X```<8VˈHy\Q^W(@/+| > rGy\Q^W(@/+| > rGy\Q^W(@/+| > rGxn1m6p nۀm6p ۀm6p nT~eD_a :#X F F F\WL5)< e";/>OAZH̄H忪e܋_AAvMEu [61.aAf {dDm?IXJ"aDOL|Ja_=؍bCSt1sY1֒ʑ>Ì%؅ ԣmd[fga:_,Q7;bw=Ȯ'DY9QAqmUSoteq+UmvɈWAYٷefFؒRIDZ<n8ݹvfGͥƖb5G0kkk=`+wXpt2Hq*C>?)S{b.9WcYNri5i=Ž pB1YY68u$BdVF|mhQZ{2]ѥ5kuRZI-+2MvmVD '_bubububububu`|`!LW̕KX=emQ۴|ǫl2u}֧/O.b, DlBB4Fph"A8Z1,FeԊR7:"؍oɐhЭ(3uR_ӶԲ_ӨhRlˈx?|폯=*1)0b4lƊ)wڥiQ&31fjN)N0TbTѤ, #Xkkk) )wf88Q)&iYN"=$2<.Cqgiټ[[(.!ȱa!AA7#dMKy"+wO""؍bCS5YQȇynMI%}DDH b DȀ*#ĭL$B̍Dۥ1;Hb&"vKRRvFfff~S1S ԙqԉ+| > rGy\Q^W(@/+| > rGy\Q^W(@/+| > rGy\Q^W(@/m5Mnۀm6p nۀ@Tp nۀm60*LW q`XkAUR,&dFZ\Q%%L̟VT{Hm7Ru7gp qWNS),Sup="R⴩"+L5hBMkkYMU~k%iBR"7&&[,`````'N ;)'[B]Rlk I?/>F/~mlcM݇.ٙj(yj\3ith[sjZf)tO۫8"nOI^.RNCTъ>BT҂23О|͔f#dp+liΚaf#Xc&#X#X#X Ii[Å9@N1T|`|`|`#نO̬6eqWW)vZfТ;<"bWuZ}堦f6AoszӺ(T t9Gm&nAi$߲AA~8md&z z?kD\1:1:1:1:1:1:N N0> WhLuVdOy\#~i,G~oa2Vmҏ?8_Q<ꭼ dBhqv$l1^N]τ^a9Zlsu'fs;-~lw-6ZRGꨴv+Q̛&SQuWW]?Lxg N0 N0 N0%HA[ˈ(p5 F F F F)&[##GFܐᤍ iBRRJR$%)""" G5$m"JR7$%kRfMQ EF F F F F F F F F F-4!&䠚xfh%I(̊H# Ҝ bk}8*EȄR#Hu֌+"ZԪ=$vhŷ]nv|؍b111xq[pI HGy\Q^W(@/+| > rGy\Q^W(@/+| > rGy\Q^W(@/+| > r <1FFH˃271`$Zi3ptNt(R2R#6YTFFF"WhCZP~nր.T;1_ WhCZP~nր.T;1_ WhCZP~nր.T;1_ WhCZP~nր.T;1_ WhCZP~nր.T;1_ WhCZP~nրeB"\u=i+#qJIyLTfUKBۦSq& + Ddd{Ap|8=Gֆxxq{w}2nQ杻xq{w}2nQ杻xq{w}2nQ杻xq{w}K8vʹz1a4{w 0 P=ֻ(] ”`aJz}0=kaRL0|)@Z`>{w 0 P=ֻ(] ”`aJz}0=kaRL0|)@Z`>{w 0 P=ֻ(] ”`aJz}0/Yiތ{_}SgxsNaD埘9M?0=;чr=ǖ~`{w=6z',4FazlOYiތ>Ð<ӽ}!Ð<ӽ}!Ð<ӽ}!F=#w4}Ow:7[zGFhto3 =ߤo6gA{Iѿl|:7sG~5ٞtn揩'Fk=_SN#f{ѻ>F=#w4}Ow:7[zGFhto3 =ߤo6gA{Iѿl|:7sG~5ٞtn揩'Fk=_SN#f{ѻ>F=#w4}Ow:7[zGFhto3 =ߤo6gA{Iѿl|:7sG~5ٞtn揩'Fk=_SN&3mb0XnCdJ"Qa+t9՟u:Ox/y(>ξI` Y=ྫྷ :'Ճg_cwb,t_V P|} A{}X;1Au:Ox/y(>ξI` Y=ྫྷ :'Ճg_cwb,t_V P|} A{}X;1Au:Ox/y(>ξI` Y=ྫྷ :'Ճg_cwb,t_V P|} A͖yȔm?x,JJQ0ȓ"PbEsgeܶ۷J -hedF_QbǍQ85y lvV1I$>e]}wvb̹ϠҐl\5wR 2>;JAs\wiH6.|˚)ϙsW{@ݥ ع.js>e]}wvb̹ϠҐl\5wR 2>;JAs\wiH6.|˚)ϙsW{@ݥ ع.js>e]}wvb̹ϠҐl\5wR 2>;JAs\wiH6.|˚)ϙsW{@ݥ!u[4׳$iD"kiv\Fį$n" C|,Ho0̡YzI6im2Fow4L;>[^gf@̉ճ.ck+׫5dL\!0yu!yBM̔I35'Iػ.gOa3fsQts"ˢ'eqRbT=aQrYS5ڌ:|{^͆$hRĤ3=flnn&.ܼ-t|"QA䏧u?sʃ;F1n"ivͷ-fv`=H46jhPqo 2(FFm6)wVJkf=.6iT[%VH˄ffi%I?"¶-o޹B*@pWPuڂmiZhȍ;ֺ^K,Hn61ZWkwAMLDWo8"x4h#&̵YY33L]^9:m9bi)VJ']C{WP_C;'.w~+<cQVm.w__ceԎ JlrՂIuxq: &..*\%(٤yea^y\3;xy'i5#o$rӏZᖾxf9~s"%캔)7jfQ21rjY?KʎeeL,h%ȌM%$T]YV9i+[cJZ_>daiie+J9ʱ0_Z\NDiJ]KRd-*QVfVF}uѺfg\Vlf_|ny6153.P;Rwvx,JcU7/h(ن|)VВ'QȞf-:YaS5֩SX"6˖iTA-dJiMyFW~S31whU7NakCEq%jIEn#Q~EجN.7Kv鉻lRti6—JVitNMY73eGffv32"-&d@ٴZ>$)`K1 C*Ԓ5VDejȉTQAɲK1"08,(B3Rga&foZf鈈IXLڝ(ډk2Tw|[3ډ7Ey6oYOc7G7Fș4RiwLaj>D'.5aDQ ILpi#3YbL0Ñ~ҥӝNr<)hAbI3Q u-^=¯HBGTyPBd(nKJI:KoI"ݧ Q~[HԚn~{^z enͤGMs<8~N<Ɨk[iJnDu-6֦ͅtE;wv|3M2f-6n\|&ZaUh༐dyqZ]!w6ZF@yέݚwjI[D[ 6RoTj]S][7Yfvj5(vkU̺3P>=?W*|}G"_Q:{W~ b*|}G"_Q:{W~ b*|}G"_Q:{W~ b*|:{W~ b*|:{W~ b*|}G"_Q:{W~ b*|}G"_QļQbɓ-sce5YmT Y ωb@1  H yUHX\Z[BmRf#z'b>ȦϏP`:w ̄D"jĉIĀb@1  H %)s-Nz 0W!f{MimiUk $J$Ā©HN[/109(@#Q'X'X'X'X>%sLVJC(wm.-ۻ5ݷP1DU(WMCyD[;ouIbu`'N buʔ~z1};C&kA,˜ˢY2dٖtG<M*ZQLдL=,"?Z]N/˶"?RT)ҖfWߑX&J-_Ż=:Yqo|&+Mr1H5W2Ern.HQ H$e>aqLS%%$%J$) 2%Zz-#+6 Xe)KהڏS#.$е2v՚LVX6xd H$Āb@H$Ԇa:K?)&ۦ٬o56ʞHfigV.P2,w/z9їKn#OYVdXtͨ1 W$fjRgigfߝ||eZNdfMn10 H$ߵ} .!"8$eb<y1p Gy1p Gy1p G\GLGy1p Gy1pSN0u|L2 5QKAٸZ@[{y6㌭ݷd$ȕvniV )Q-1TTf$d";,-i4fŔKQ! 5GbRDUqꙒˑARhQVzHLͳlZqmtzUv˶j=IfUZHS6d5,ȔGej4VQQO}D`m{BGH UCqմmII.J2t'OJTX1_Cm*;RȌ)$"3H+3HUT#uӋ4h#5LLM&ҚvJ)\f,HJhEI+$XViJ1LVm8ټR^$NIJ 'N+&eD%(sCJٵA=i%X[ KeTs V3y!-nfɶK֙{o^+CC30LZVaXHo*,$.m\"[Ȭ3wf迣;ܱ)g#r.rԲu&ڎ%V)iIX)2u4:ܻ.,Z1?e<\Wr4~7$!Y^qzu"QʹQw 37e<v~ i|˯ɞ/'gk).-ő--ړRl2Z˦˱G|.8&'9Pwԗ;+tEKT&IQ4k2j1QLcnk|;WNcfڟXnd [l(m +u%Hv[~_u?gٞi~Gqu0G8~"+Hu/lZ4i%Zn-Z/OqEHQ$6xH'* .!3%$~BSjJtH-g82*6tn"Yip$kEQ"MBQƒRu ?MaCm.wInVi@MT>MuŭԍOشGi q>]j" =[f-.72tW[f-~~PWi^p2zUTO!a,d'`I/)EEhgi,̋,&|/.Ey5ӻ9e/V2ET5CM\m\+P.jCȤ<̫F7?"lO "mR eub.~—V1̇E4󩧩Ԕan%hm%v 6 a+*BYH W0gCj&JIlڙש*Uf"&ƽMFfe,Nuh;#ZS B*31VKTZճ#; xA&̹̺_/*w7'˙~iLP*%3c["I Z͢$DdRzt.loؘ id˵򌫲mikdi ˏȳj4:aNTԪK,%.*>L* MF4uuo+no:o->-fŖc&[KdJRjA q xx%yTIb1TiSD y> # KbFi?;@(5ћr"2C:#?5.l3hԪGz]VTi5jHqLRrlBQyf@Dg<Ѳy;,3SC̎}6 l;kJJuVܙ:bnuM.V.؛lSmpVg|Vmvr +SyB SQM54QHDo؏>#mٶD|k&XʽI'.PJe.V~B:3jM]'݆̊kKbr)β+6k;8#=iR58p&">;2T`kUÑUy3ie-Zq5-)|m83; - jٚGn:Z2K~di3uk+`ǝRr"Wq7gciv5h?)o!3 fJhr!;嶋ZmI[?f9fYgCd&9g *eJ5Y2&B; Ñ٫mKwk;%^Պ.lSl*˕|_IkMOvȧ$Vd4ŧQ̌PȐK=#&,22;%GUZ;juKHS%fd${FbmnDVW˯[F(\y Q}!It%mФ%pSOvC=y*aMcqXw52aʳ3 LKADBa¯'E*5䔸Z dfedtnxi.V]S9q+HᎆH3WQ]rMyZ7Ma YK|0҆}3+濴v;WvEMH۶wpG⦧sٗ6DY5H۶nE96k;9χ@ΝYR RӜz.}nWeZzRdR)*RcLxIK,Q;i3dmA"y0gXqb3*}:;d4ݵgjg"D8ә*)#/bPԇT%-&gmŸbfͶtżP?Tc͢J9MR֨+}]SIQX#&;,3ej[wqpnlh|7ItMXե*,\ՙ1M)i%Hy 6l- JPRDDZ7bͻ6_QQ||e8n!6/8Zwl+J?&;%f_)QUb(K)U^&&[K+I։ ;7fZEl]e݊ʭrUfP͒%֣\U~N݂kKdm?deAkoS3^5̾st]t2];!̮LruUYe&O[7[Gtx(J;Ff6˝ H3Q5 B.@ $pd!s#~<<+"x M0B\t8K@zB@F&S`cbP-`'{[! eDh;VEX0fK9-0IWfH  0Q){`##xFW<+*x<$9E[-qWW.(I+6aa@.y24x6_-"bbϫp@t~,/;m%h^ uf@Wp~<5j>{-]cK'Xto(hw?G%fIq^D$.Tʳ?D*A, `6B$BB dr`)B(Ͱ*`/@4Qhp.U=pa( Aa!ڈbX#!H$ ɈQ"K5H1RT UH=r9\F;2G1Q= C7F dt1r=6Ыhڏ>C03l0.B8, c˱" VcϱwE 6wB aAHXLXNH $4 7 Q'"K&b21XH,#/{C7$C2'ITFnR#,4H#dk9, +ȅ3![ b@qS(RjJ4e2AURݨT5ZBRQ4u9̓IKhhitݕNWGw Ljg(gwLӋT071oUX**| J&*/Tު UUT^S}FU3S ԖUPSSg;goT?~YYLOCQ_ cx,!k u5&|v*=9C3J3WRf?qtN (~))4L1e\kXHQG6EYAJ'\'GgSSݧ M=:.kDwn^Loy}/TmG X $ <5qo</QC]@Caaᄑ.ȽJtq]zۯ6iܟ4)Y3sCQ? 0k߬~OCOg#/c/Wװwa>>r><72Y_7ȷOo_C#dz%gA[z|!?:eAAA!h쐭!ΑiP~aa~ 'W?pX15wCsDDDޛg1O9-J5*>.j<74?.fYXXIlK9.*6nl {/]py.,:@LN8A*%w% yg"/6шC\*NH*Mz쑼5y$3,幄'L Lݛ:v m2=:1qB!Mggfvˬen/kY- BTZ(*geWf͉9+̳ې7ᒶKW-X潬j9(xoʿܔĹdff-[n ڴ VE/(ۻCɾUUMfeI?m]Nmq#׹=TR+Gw- 6 U#pDy  :v{vg/jBFS[b[O>zG499?rCd&ˮ/~јѡ򗓿m|x31^VwwO| (hSЧc3- cHRMz%u0`:o_F:GIDATxkTչ6sKUuFAEHs ӊšVw'o{G~$hP#3Pt42TPn/Zin]}y~0gzuU_9Uյ֪^]k"ǥ;)px\ġ !@ EB P\>0 :4DUS $xׁ|  @? 5bxY*10EQ&=EDR1M@s6 18yd5n2$缀ssea>}pBDb*bqk„ },[/7$L~'OZZZ \-dr%X(̚PD PD@MBEE5n8Rr3𩧞"6lP )b1 s`a,d !O2L^,F mH'HX7xk׮G> |;!;v(,8bX !a9#d_LD&":h 6:e81cӦM @yO?/r,J_9/RI Bdz]D@D#>; K1 !EQ2[%%%V2`V/C]jJmmm%bJi cs^,@+$" hA !G4cقƘ[#G,XZ\!A?~۩:PBHE*@8|1pcHQѭy^,KQŲ,رcVeey 4<_VTlqQy9iJ81H \'{To$86"jA 圫œZb8"f881M}'N8`WTTvN`)&Mº:4MUQ%1BT.LiRR/7Q( VWWwNg2p:@Ҍ$⇠sΥLPJMaz5ι9|DZ6ɓVMMl2l566oF_Ym!cd2( }PJ cLx<3`رzo[VVVs=#_{;vt>0qD4aVMD"r !4AĄK'Nd3G[[[ /*ž\"cJ|huyWϞ=7lYzunHcUKs 3_B1R}2MSuG[ZZ{ZOЃˇǎDy R0b lBbW,XPaÆ׷544xs.>9q!:<& tB-rKClB 靖a566jmmm?Oƾ{[nE๚WC` 0 @aFG9gpu<䓓.]:r͚5oF01&C9R-Ec1*hL#A nя~:W d`MӐ1A c 8Y ReHS3f(~gK,i_zu|+E1UT9bsR PuX1EQt-UU50bG5lVO8a-Z_ti. 'CLbo'[|Lh>dɒQ7tS[_}զÇ;sN9SADEqTX &z1Jy^LQ۶mԆM?~uAkԩ,d>V#f_"@0}&cLPl3 \}̛7dƍUUUmmm^Ȭ,a DCQR}GQq<رcT*۷ouA M"`92_4" A fz\O<ĵ%UUU[nMeT,rD"e6}1cT)$1m;9c>}:nWWW[sSQQsH޳AI#@ c,6HJLQȼyJg͚Udɒ5k4}GBLDzfU괄1-x3tq,B ZSSNL&cX\LjD<GM}p](x:f0tLuM7͕-bB !:iY̚Ԑ[eYii'T*ٵュK sU&* VoQJ1l:!C)b=Z~0tÆ ͛7oHR41KHTNW)3T뺚 5cLƬ7'MdaӦM9^A 3@UUQ2O< c Ҕ^0)8eʔO>XhQieeeӻ{:"\`DԄjKqBS]DN&68NI5k]^^Fj.TDD>Q(`,h##@|( d޼y#N;׭[R]]mc%HY.)EH@ 4&;RSED1rUsnxo3Kk߾}VYY/jObBE  $Zc8%`b[o-޺ukڵk[[[[=D4ƘU~PV\t'hi4͘aFGGzA^pJ;dRLy(R Ba(c׿^qϞ=a0QD<@5GsBLDTEO6L&S__oݻ*//~ᠯ~qXPPM#d))4i6/ M>?y'|jٳgO'\B\G%^̘Tp@v 1sn!u]-Nqiz)⠊x̗KF~!~رci8q"|[߂^pqt: dƏ&L,p‘eee;wlכ\iVc(UE8U""VsAo",ke4***IiB`/*`4Dȑ#?4455i#i9u]>;vL.y^ ,ye?gĈڃ>8fΜ9oF˖-[D 9q!%G s3pl Sya Ȏ;hKKK^{RmSO=5"6gmm-utt$J᭷ނT*%} N:'OX,֥8gΜٳg'm?:d\ GSKcqϟ?8xA@EQ l$*Xz`P۶s2V _|E6X̋2P`g֤mʊ~%M6۷/Ty鸬n8S80}9GqX*G]84-u?D4iR=r”)S9_va|.R5r>|?+[ŋ_sMO~2~ر(@)EUUQUUBKR%X%P 1AeYݻ\n p rR\H)EJ)~0'?>~ Baa!|[߂QFuرc׿‘o;v,pΡjkku.?r x`ܹsK֭[o @D1A\,K J %s1 T*e:tȪqB۠IiaiH$1Fc$B)D !(%䂪<̓L&G*!t]p=ܹs\S]] 7o0P]]@9ƍ'79rƍ-;w<sB1 %2fqO\PJcij_iӦybI" 9RJ$ҎF,yNy444t D(h"[̚5 <σ?]lmms8k֬S.^cڵ-_~%@s &s=J EQTMMSNp.r沧3ZQTUu]' Ȉ"J)jFEwLJ~| X .4iRt: A@<Gp7iӦ?hnneN˯9sf{׾nݺ_y  c^""m۲6*Rxqe*D#F***,\pDUUUӶmNY!u]&zRUUi(jcc#3f ?.):ʚ0ЏiDӴ~1жm80Ʋ"]j0u.b@Oe3&c];y5k}$ɁWaҥ-ZT" TRJUDTģ&TιNǏ+s?y Jfr"`EF=UU?R"(]f4ۨed?@춊#B@~")!D*:Gj6,+J~~;ȑ#+_ |0s1 ߲eK/~X9B pB^DW<2`;ۥ<߹sg /аuT2Nm!F=a}555ĺu `|8{ Sd SD34Ìhll}ن?JXfD[N133^^]{N~ǙRe嘆62FDC([9A?Î˗O:Ճ8f|J然 'tWFKWs0kjj+V_vm{GGG.si@Cl7; 3b'%|GٖL&W^N>|~׸bŊ涶|~ΊLj0H+ % > |0nfs7on^bESuuCZJ,I>pǎ=C^ϵm;صkW/*擿FsVP=^ViĽ }W^yڵktC qFČ5 @MӲmr@EE< RN8aYʕ+O<+-sݾH.Y?vؑm׾ ,SYYK/t?DY>Dnojʐ0 ƥw98={WZ؃e1s-<Ҋ(/|bt^믿xs)ٖaf{][6mj~9䑿\,?wEd~u{Q W+y"g{>S+Vhشi)˲Uqu.u8_|oPYYٞZ+_\iAT"`~n(30'^[[[7555v+Yy/;2PBn`9^i۶mk]r۷w E5H+_s@bjB3;{}駩_UUUmsjA&G2#7XwU<|!Gε~C\':tȨl\jUK?\4-pr.5T˺o#`dhx]g䮊gzH@3҂}2g (Kzu)w+/m%xc`hl/ #F\.kȧC5" _/S ;n@:9h{YbJD2AeavDKÿt/. 0@aI#&ԇ /IaZs=F`ns%nH#!͓ȇKPrP "R%$ 6)px 8<px 8<.Y1f 2` 6Zh F:Dº]v?avT;ٱcGeYA3ƊxPH,,P9Ehd_Lsj!"Ziyz̘1iӂG~2s}O/KRžp΋,$@R)}!^@@WhgA t !&!$(JFuJ&vt2Q͞=[-v]1VL)-as΋hDBM6!DBDdYHWg &fcF7n9Z`jժs 3EJ (~iloo84 b"&9EPɐqZsٹFDMQDTQAD]ojj2oߞ;o_lYU( ϗ}nGs4 C4Mqu"ssH10ט4iii(A1U,@N%ϟ_o|HQ6wޝd2t I AKjbo}qNokkOo?TgT__O PĉS9*!Da)(_sEGᄏ䗿'N,Hޖ-[_{O?Ԍjs 1B-`%~$ckuJ9qcAXsͲ,I߲eKرcG}4mJ(6l@~ӟ&RUm_#cpJq$<)ޭޚ\rWsfܸqc󫯾R__5sCAιEIB RK<ڜsRjSJMD44M d2iΝ;י>}:@'qWeهq2(RJ $!Jp\?>_dɒW>~v4Y@& BY5[MFsqu0L&۵kua.//g~{.0n yh&AEQRJc ;vl7.+++zg 瞑Zӎ;:] @Uո`0lPS bBҋ'2#Gح^EEEH8Kb_?RJs8]| ]wyٳK|͖իW7}V1&+J(Q80!$3)1-4Uqjڻw5@ =(~|1pر(N4 #&&)..Ve%6lh^~}[CC' >!DDzNudAP}_ED0 QkkkZ555r-_ռPPPrm#J)pQΰr#;u'|rҥKGY7H8s^ Un0^X11B`8pGAslLfQ4 c2ƀse)Y&45cƌgy&dɒիW7}RSE#9(/O UG,ASE}RUU3 #}Qömĉ֢EK_~2h sJKK-ix>&4\dɨndjÇ9'眈 "8KDB,WrCD=@1&Md`6Hj{W͛Wq檪6/dVAb"TE!٨ _(8y~رcz*۷:x}]wӦMc9tV A fz\O<ĵ%UUU[nMeT,rD"e6}1cT)$1m;9c>}:nWWW[sSQQsH޳AI#@ c,6HJLQȼyJg͚Udɒ5k4}GBLDzfU괄1-x3tq,B ZSSNL&cX\LjD<GM}p](x:f0tLuM7͕-bB !:iY̚Ԑ[eYii'T*ٵュK sU&* VoQJ1l:!C)b=Z~0tÆ ͛7oHR41KHTNW)3T뺚 5cLƬ7'MdaӦM9^A 3@UUQ2O< c Ҕ^0)8eʔO>XhQieeeӻ{:"\`DԄjKqBS]DN&68NI5k]^^Fj.TDD>Q(`,h##@|( d޼y#N;׭[R]]mc%HY.)EH@ 4&;RSED1rUsnxo3Kk߾}VYY/jObBEA\uD !~XD[nںvVO0 81&AtyՅ]F !htZ7M3fѡԁ.b>y TbB P cرoܳgOaL@a@T;4(/EQ;Uj&[{~8_tDYJ2M͋iB{ӧO/^'Z9Q 3&]*cL[Dkkjt:NӧOSN?U̎(gd^20" ==bBpc{j$z/KL=H&YYn…# w7չҬ2P諊 pB.rED6\ @}DDYHyiTTTH҄b_8Th#R>۟SΙXڇNssA}/ɓAa֬Y0sLP3iĈڃ>8fΜ9oF˖-[D 9q!%G s3pl Sya Ȏ;hKKK^{RmSO=5"6gmm-utt$#TL_WH]LÈt> 0nܸ.cs)={vҶm㮬sJaI6O|U )8P}t9e 뺄1ammmY4T Fe; |v: =z-|A0M_%kReeeE?ϒwqGMZۗ EDLGt\Ve7)[Lc>ᜣ8,J{#Ս.lیhɺF@0 :@MW裏رc]f_Y__{W"/瞛dرc5EQR#b1!KK 9%A!b2˲ݻwk@v夸RRo0Zh{Ǡ>DG&aBAtWF'N 8'N9ZaҤIG3wܒu5ۧ:;; 9cAi&R¬aB !${177Jهjjj6hRZii& d PJ/CBJɭ?N~\{Ǡ0XwR[[ 4-l!`…PVVœC].6/r7.O\o~sƍy1}… c,A1Kd>㞸<ΡL(ӦM`$D"At]'!s.e)"?Hs*)x---]#9s`|WU}ٓsTYNZx⎵k׶|嗖}ׂ Gʚ9(.dEQ5MS4MSO:BŖPC}( qEQdEd  5M#H:2(=-XH2LԩS~I:::fΜY{ﵯ[×@zG H0ƘG#ȩ#f۶`2)I<G'a UH 4:L_](,L1@Qu= D<X,S `FsUFUTTYpሪm۶,B("SM\4MQ5uF2f~> 썕]SJQu"5a EAMӈib` @\έAU.,RGPcy5a3fLv5k4y(*a!ZeYѣG1c(3dSY},JPUU"ͭH EgF$)Օ|ԩS`Fv[UU硯ҥKG-ZD( GMtǩs}-NkǏW~0@ D5:{b43eB'R tF:nWXX8 'eee1H ! T9R۶eYQ;ywɭ/ ߨ@.):D^3f(Xx}9Lgih D~U*) P%m۶A&ns5mݖF;::}8t{m_>`F筷:--6S!fx}Z#<\rPmæM?qF&M9s ~ vIZ݇7$g}~C=D>{[=g~\5jۿL8us=wlڵ 'O. H 7?=`^a卩T*څ&tB9|E믿z!ػw/x0j(:u*L2_0 ߲eK/~X9B pB^DW<2`;w.|ys|Νm/B֭[S9sC;EiMhDuԤ֭k7 Eo 0#08g}% (O3gV/+]I2Gs/ɏ?8\WԎN. C !׿l8;/_^?T~N.lF̧Nh0x^JJJJ4ޡk„ `MMMzŊk׮me.HvmQf|a&4;C5tѭϰ#rH"͛7i0n8fgihnn9?ϔ 1sPor0$x4ҭհ LiBIIId۷Zq۶m9̥ 8€!03vNo}^N ݮNH3%4K_L}wގ~֭)qx?gɄDhG" Wg0G;}hs T{?6~5X-"1" 0Ҋ~wvwY8˺b777ۛ7on^bESuuCZJ,I>pYe#@۶]v Bk>+ `Y?gՃeF<:ilɵk׶ #㌈ 3,jBss1`]W?3 eI'ĉ5kN\ɓ;I L/~. ݁]0J.+?7 e\BHi}H~H$K \H`x 2| s)/IENDB`site_pro/social_media.html0000644075506000000310000013053311734731420014136 0ustar named Social and Media Sharing

      Social and Media Sharing

      Twitter

      Description

      To make carousel work jquery.tweet.js file is used.

      You can add Twitter-widget and configure it quite easily:

      1. Insert a div with twitter class and twitter id to a desired location on the page:
      2. <div class="tweet"> </div>
      3. Next you need to configure twitter-widget to use your twitter-account. In order to do this you should change the user name in the initiasization script: username: "..."
      4. Then choose the number of tweets to display: count: 3

      Facebook Likebox

      You can customize LikeBox Plugin from the official website at Facebook.

      Flickr

      You can place images from your Flickr account using Flickr Badge

      Youtube

      Description

      You can add Youtube Video easily:

      1. Open desired video on Youtube
      2. Click the Share button under the video
      3. In the appeared window click Embed
      4. After making your selection, copy and paste the embed code to your website.

      Vimeo

      Description

      You can add Vimeo Video easily:

      1. Open desired video on Vimeo
      2. Click Embed in the top right corner of the video
      3. In the appeared window you can see the embed code. You can copy it or customize according to your needs. Click "Customize embed options" to see video embed options.
      4. After making your selection, copy and paste the embed code to your website.

      Video Player

      Audio Player

      Description

      This player supports such media formats as: mp3, mp4 (AAC/H.264), ogg (Vorbis/Theora), webm (Vorbis/VP8), wav, mp3, mp4 (AAC/H.264), flv

      Two files are required for the player's correct work: jquery.jplayer.min.js and Jplayer.swf

      HTML entry, with an example id for jPlayer:

      <div id="jpId"></div>

      Code Example:

      $(document).ready(function() {
        $("#jpId").jPlayer( {
          ready: function () {
            $(this).jPlayer("setMedia", {
              mp3: "/mp3/elvis.mp3" // Defines the mp3 url
            });
          }
        });
      });

      You can see more information on working with JPlayer on the official website at JPlayer

      Social Icons

      Description

      Social Icons

      To add social icons to your website you can use the icon sets that are included into the purchased template package. Icon sets are located in the "images" directory.

      Twitter Button

      You can learn more about adding Twitter Button to your website here

      Google Plus Button

      You can learn more about adding Google Plus Button to your website here

      Like Button

      You can learn more about adding Like Button to your website here

      Font Icons

      1. You can easily change the size
      2. You can easily change the color
      3. You can easily shadow their shape
      Description

      Choose icon color, size and shadow. All these parameters should be added to the style.css for ".icon" or ".icon_social" classes. Then add attribute data-icon="" to the icon you like (hover the icon to get it's class and data-icon attribute).

      For example:
      <a href="" class="icon" data-icon="a"> </a>
      <a href="" class="icon_social" data-icon="l"> </a>

      Font IcoMoon is used for the social icons.

      site_pro/something.txt0000644000006000000600000023243012121266751014655 0ustar apacheapachemy gilfriend is the best SFR Avalanche AppMIX for SFR /auto/ios-fw-devtest/avalanche/sfr_folder /auto/ios-fw-devtest/avalanche/content/voice_300_sec.wav ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 Inf0 false true Sessions 100 120 660 120 Sessions Flat Seconds 72 60 60 Flat Seconds 72 0 660 Flat Seconds 0 60 60 Sessions Flat Seconds 39 60 60 Flat Seconds 39 0 660 Flat Seconds 0 60 60 Sessions Flat Seconds 73 60 60 Flat Seconds 73 0 660 Flat Seconds 0 60 60 Sessions Flat Seconds 17 60 60 Flat Seconds 17 0 660 Flat Seconds 0 60 60 Sessions Flat Seconds 12 60 60 Flat Seconds 12 0 660 Flat Seconds 0 60 60 Sessions Flat Seconds 31 60 60 Flat Seconds 31 0 660 Flat Seconds 0 60 60 Sessions Flat Seconds 4 60 60 Flat Seconds 4 0 660 Flat Seconds 0 60 60 Sessions Flat Seconds 4 60 60 Flat Seconds 4 0 660 Flat Seconds 0 60 60 Sessions Flat Seconds 4 60 60 Flat Seconds 4 0 660 Flat Seconds 0 60 60 Sessions Flat Seconds 12 60 60 Flat Seconds 12 0 660 Flat Seconds 0 60 60 Sessions Flat Seconds 13 60 60 Flat Seconds 13 0 660 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 660 Flat Seconds 0 60 60 Sessions Flat Seconds 14 60 60 Flat Seconds 14 0 660 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 $Subnet1_1_ip(0) 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 $Subnet1_2_ip(0) 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 $Subnet1_3_ip(0) 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 $Subnet1_11_ip(0) 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 $Subnet1_0_ip(0) 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 8 100000 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE THINK sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE THINK SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE THINK SAPEE://user/Oracle/oracle ASSIGN VARIABLE THINK SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE THINK SAPEE://user/Exchange/Exchange ASSIGN VARIABLE THINK 1 get http://$Subnet1_4_ip(0)/http_10k_60k 1 POST http://$Subnet1_4_ip(0)/ ASSIGN VARIABLE THINK ASSIGN VARIABLE 1 get http://$Subnet1_6_ip(0)/ ASSIGN VARIABLE THINK 1 rtsp://$Subnet1_5_ip(0)/cawsample_160k_60s_va.mov ASSIGN VARIABLE THINK 1 rtsp://$Subnet1_5_ip(0)/cawsample_250k_60s_va.mov ASSIGN VARIABLE THINK pop3://$Subnet1_7_ip(0) USER=user1 PASSWORD=user1 CHECK RETR pop3://$Subnet1_7_ip(0) USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE THINK pop3://$Subnet1_7_ip(0) USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE THINK smtp://$Subnet1_8_ip(0) FROM= TO= DATA= smtp://$Subnet1_8_ip(0) FROM= TO= DATA= ASSIGN VARIABLE THINK smtp://$Subnet1_8_ip(0) FROM= TO= DATA= ASSIGN VARIABLE THINK DNS A $Subnet1_9_ip(0) www.cisco.com DNS A $Subnet1_9_ip(0) www.cisco.com DNS A $Subnet1_9_ip(0) www.cisco.com DNS A $Subnet1_9_ip(0) www.cisco.com DNS A $Subnet1_9_ip(0) www.cisco.com DNS A $Subnet1_9_ip(0) www.cisco.com DNS A $Subnet1_9_ip(0) www.cisco.com DNS A $Subnet1_9_ip(0) www.cisco.com DNS A $Subnet1_9_ip(0) www.cisco.com DNS A $Subnet1_9_ip(0) www.cisco.com ASSIGN VARIABLE THINK 1 get https://$Subnet1_10_ip(0)/http_10k_60k 1 POST https://$Subnet1_10_ip(0)/ on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 /auto/ios-fw-devtest/avalanche/content/voice_300_sec.wav ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 Inf0 false Net1 10 0 ./CITRIX Citrix 31 stream_2 $Subnet1_1_ip(0) 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 $Subnet1_2_ip(0) 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 $Subnet1_3_ip(0) 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 $Subnet1_11_ip(0) 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 This is the Subnet1 subnet 24 VOICE 1 CITRIX 1 ORACLE 1 EXCHANGE 1 HTTP_10K_60K 1 RTSP 1 HTTP_BROWSING 1 POP 1 SMTP 1 DNS 1 HTTPS 1 VIDEO_CALLS 1 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 /auto/ios-fw-devtest/avalanche/content/pop3messages/890_config.pop3 user2 0 1 /auto/ios-fw-devtest/avalanche/content/pop3messages/table-1-16K.pop3 user3 0 1 /auto/ios-fw-devtest/avalanche/content/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 /auto/ios-fw-devtest/avalanche/content/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      ! ! START OF PERF_MON ! ! flow record type performance-monitor fr1 match ipv4 protocol match ipv4 source address match ipv4 destination address match transport destination-port collect datalink mac source address input collect datalink mac source address output collect ipv4 dscp collect interface input collect interface output collect counter bytes long collect counter packets long ! ! flow exporter fe1 destination 22.0.0.21 transport udp 2055 export-protocol ipfix ! ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 120 cache entries 32768 ! class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 ! ! WAN Interface interface [lindex [split $uut_out_name .] 0] service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 ! ! ! END OF MACE CONFIG ! interface [lindex [split $uut_in_name .] 0] load-interval 30 interface [lindex [split $uut_out_name .] 0] load-interval 30 interface [lindex [split $uut_out_name .] 0] ! ! interface [lindex [split $uut_in_name .] 0] no load-interval 30 interface [lindex [split $uut_out_name .] 0] no load-interval 30 show memory statistics | i Processor Processor +[0-9A-Z]+ +[0-9]+ +[0-9]+ +([0-9]+) +[0-9]+ pre_free_mem 1 5 stop_netflow_udp show memory statistics | i Processor Processor +[0-9A-Z]+ +[0-9]+ +[0-9]+ +([0-9]+) +[0-9]+ post_free_mem 1 5 interface [lindex [split $peer_in_name .] 0] load-interval 30 interface [lindex [split $peer_out_name .] 0] load-interval 30 interface [lindex [split $peer_in_name .] 0] no load-interval 30 interface $peer_in_name no service-policy input counting no service-policy output counting interface [lindex [split $peer_out_name .] 0] no load-interval 30 ! no policy-map counting no class-map match_voice no class-map match_citrix no class-map match_oracle no class-map match_exchange no class-map match_http10k_60k no class-map match_httpbrowsing no class-map match_rtsp no class-map match_pop no class-map match_smtp no class-map match_dns no class-map match_https no access-list 2000 no access-list 2001 no access-list 2002 no access-list 2003 no access-list 2004 no access-list 2005 no access-list 2006 no access-list 2007 no access-list 2008 no access-list 2009 no access-list 2010 ! clear counter clear counter ! Voice access-list 2000 permit ip any host $Subnet1_0_ip(0) access-list 2000 permit ip host $Subnet1_0_ip(0) any ! Citrix access-list 2001 permit ip any host $Subnet1_1_ip(0) access-list 2001 permit ip host $Subnet1_1_ip(0) any ! Oracle access-list 2002 permit ip any host $Subnet1_2_ip(0) access-list 2002 permit ip host $Subnet1_2_ip(0) any ! Exchange access-list 2003 permit ip any host $Subnet1_3_ip(0) access-list 2003 permit ip host $Subnet1_3_ip(0) any ! ! HTTP_10K_60K access-list 2004 permit ip any host $Subnet1_4_ip(0) access-list 2004 permit ip host $Subnet1_4_ip(0) any ! ! HTTP_Browsing access-list 2005 permit ip any host $Subnet1_5_ip(0) access-list 2005 permit ip host $Subnet1_5_ip(0) any ! RTSP access-list 2006 permit ip any host $Subnet1_6_ip(0) access-list 2006 permit ip host $Subnet1_6_ip(0) any ! POP access-list 2007 permit ip any host $Subnet1_7_ip(0) access-list 2007 permit ip host $Subnet1_7_ip(0) any ! SMTP access-list 2008 permit ip any host $Subnet1_8_ip(0) access-list 2008 permit ip host $Subnet1_8_ip(0) any ! DNS access-list 2009 permit ip any host $Subnet1_9_ip(0) access-list 2009 permit ip host $Subnet1_9_ip(0) any ! HTTPS access-list 2010 permit ip any host $Subnet1_10_ip(0) access-list 2010 permit ip host $Subnet1_10_ip(0) any ! class-map match_voice match access-group 2000 class-map match_citrix match access-group 2001 class-map match_oracle match access-group 2002 class-map match_exchange match access-group 2003 class-map match_http10k_60k match access-group 2004 class-map match_rtsp match access-group 2005 class-map match_httpbrowsing match access-group 2006 class-map match_pop match access-group 2007 class-map match_smtp match access-group 2008 class-map match_dns match access-group 2009 class-map match_https match access-group 2010 ! policy-map counting class match_voice class match_citrix class match_oracle class match_exchange class match_http10k_60k class match_httpbrowsing class match_rtsp class match_pop class match_smtp class match_dns class match_https ! interface $peer_in_name service-policy input counting service-policy output counting show policy-map interface $peer_in_name clear counter interface [lindex [split $cloud_in_name .] 0] load-interval 30 interface [lindex [split $cloud_out_name .] 0] load-interval 30 interface [lindex [split $cloud_in_name .] 0] no load-interval 30 interface [lindex [split $cloud_out_name .] 0] no load-interval 30 clear counter clear counter clear counter CLIENT_REALTIME Cumulative Unsuccessful Transactions CLIENT_REALTIME Cumulative Attempted Transactions 0.005 LE CLIENT_REALTIME Cumulative Successful Transactions 20 GE CLIENT_SUMMARY RST CLIENT_SUMMARY Attempted Connections 0.005 LE post_free_mem pre_free_mem 0.80 GE true 20 0.1 720 1 75 600 15 120 180 Desired load AVALANCHE loadspec,desiredLoadSpecCount loadDesiredCnt Current load AVALANCHE loadspec,currentLoadSpecCount loadCurrentCnt HTTP Successful Transactions AVALANCHE http,successfulTxns http_successful_txns HTTP Unsuccessful Transactions AVALANCHE http,unsuccessfulTxns HTTP Successful Transactions Rate AVALANCHE http,successfulTxnsPerSec http_successful_txns_persec HTTP Unsuccessful Transactions Rate AVALANCHE http,unsuccessfulTxnsPerSec Sappe active Playlists AVALANCHE sapee,activePlaylists sapee_activePlaylists Sapee attempted per second AVALANCHE sapee,attemptedPlaylistsPerSec sapee_attemptedPlaylistsPerSec Sapee successful per second AVALANCHE sapee,successfulPlaylistsPerSec sapee_successfulPlaylistsPerSec Sapee unsuccessful per second AVALANCHE sapee,unsuccessfulPlaylistsPerSec sapee_unsuccessfulPlaylistsPerSec Sapee Upload Kb/s AVALANCHE sapee,throughputTx sapee_throughputTx Sapee Download Kb/s AVALANCHE sapee,throughputRx sapee_throughputRx SIP ActiveSessions AVALANCHE sipng,activeSessions sipng_activeSessions SIP Attempted Sessions/s AVALANCHE sipng,attemptedSessionsPerSec sipng_attemptedSessionsPerSec SIP Successful Sessions/s AVALANCHE sipng,successfulSessionsPerSec sipng_successfulSessionsPerSec SIP UnSuccessful Sessions/s AVALANCHE sipng,unsuccessfulSessionsPerSec sipng_unsuccessfulSessionsPerSec SIP Aborted Sessions/s AVALANCHE sipng,abortedSessionsPerSec sipng_abortedSessionsPerSec SIP Sent RTP Messages/s AVALANCHE sipng,sendRTPMessagesPerSec sipng_sendRTPMessagesPerSec SIP Received RTP Messages/s AVALANCHE sipng,receivedRTPMessagesPerSec sipng_receivedRTPMessagesPerSec SIP Sent Bytes/s AVALANCHE sipng,sendRTPBytesPerSec sipng_sendRTPBytesPerSec SIP Received Bytes/s AVALANCHE sipng,receivedRTPBytesPerSec sipng_receivedRTPBytesPerSec SMTP Successful Sessions Rate AVALANCHE smtp,successfulSessionsPerSec smtp_successful_sessions_persec SMTP Unsuccessful Sessions Rate AVALANCHE smtp,unsuccessfulSessionsPerSec POP3 Successful Sessions Rate AVALANCHE pop3,successfulSessionsPerSec pop3_successful_sessions_persec POP3 Unsuccessful Sessions Rate AVALANCHE pop3,unsuccessfulSessionsPerSec Active Streams AVALANCHE streaming,currentActiveStreams streaming_currentActiveStreams Streaming packet loss 0% AVALANCHE streaming,packetLossRate_0pct streaming_packetLossRate_0pct Streaming packet loss 0-0.1% AVALANCHE streaming,packetLossRate_0_P1pct streaming_packetLossRate_0_P1pct Streaming packet loss 0.1-0.5% AVALANCHE streaming,packetLossRate_P1_P5pct streaming_packetLossRate_P1_P5ct Streaming packet loss 0.5%-2% AVALANCHE streaming,packetLossRate_P5_2pct streaming_packetLossRate_P5_2pct Streaming packet loss 2%-5% AVALANCHE streaming,packetLossRate_2_5pct streaming_packetLossRate_2_5pct Streaming packet loss 5%-100% AVALANCHE streaming,packetLossRate_GT5pct streaming_packetLossRate_GT5pct Total Attempted Transaction AVALANCHE http,attemptedTxns total_transactionAttempt Total Successful Transaction AVALANCHE http,successfulTxns total_transactionSuccessful TCP Attempted Connection Rate AVALANCHE tcp,attemptedConnRate tcp_attempted_conn_rate TCP Established Connection Rate AVALANCHE tcp,establishedConnRate tcp_established_conn_rate TCP Established Connection AVALANCHE tcp,currentEstablishedConns tcp_established_conn TCP First Byte Response Time AVALANCHE tcp,averageTimeToFirstByte tcp_time_to_first_byte TCP SYNACK Response Time AVALANCHE tcp,averageTimeToSynAck tcp_synack_time Client Receive Bandwidth AVALANCHE driver,rxBandwidth 1000 driver_rxBandwidth Client Transmit Bandwidth AVALANCHE driver,txBandwidth 1000 driver_txBandwidth Client Total Bandwidth ComplexOper expr ($driver_rxBandwidth + $driver_txBandwidth)/1000.00 driver_total_bandwidth Client Receive Packet Rate AVALANCHE driver,rxPacketRate Client Transmit Packet Rate AVALANCHE driver,txPacketRate Client Total Packet Rate ComplexOper expr $driver_rxPacketRate + $driver_txPacketRate driver_total_packet_rate Living Simusers AVALANCHE simusers,simUsersAnimating living_simusers WAN Uplink BPS RouterOper cloud show interface $cloud_out_name | inc output rate 30 second output rate (\d+) wan_uplink_bps WAN Downlink BPS RouterOper cloud show interface $cloud_in_name | inc output rate 30 second output rate (\d+) wan_downlink_bps Free Mem RouterOper uut show memory statistics | i Processor Processor +[0-9A-Z]+ +[0-9]+ +[0-9]+ +([0-9]+) +[0-9]+ uut_free_mem
      site_pro/stress.php0000644075506000000310000002624012220247006012663 0ustar named Performance

      Performance Tests

      scriptFolder = $KoolControlsFolder."../KoolControls/KoolAjax"; // require $KoolControlsFolder."../../KoolCalendar/koolcalendar.php"; require $KoolControlsFolder."../KoolControls/KoolGrid/koolgrid.php"; $db_con = mysql_connect("localhost","root","devtest-"); mysql_select_db("880"); $ds = new MySQLDataSource($db_con);//This $db_con link has been created inside KoolPHPSuite/Resources/runexample.php $ds->SelectCommand = "select ID,TOPOLOGY,MODEL,XML_FILE,TIME_ADDED,NOTES,TRAFFIC,CONFIG from tests WHERE CLASS='STRESS' order by XML_FILE asc"; $ds->UpdateCommand = "update Testsconfig set Name='@Name', Notes='@Notes', Platform='@Platform', File='@File', Class='@Class', ExecServer='@ExecServer',Testbed='@Testbed', Date='@Date', Priority='@Priority',Time='@Time',tree='@tree' WHERE ID=@ID"; $ds->DeleteCommand = "delete from Testsconfig where ID=@ID"; $ds->InsertCommand = "insert into Testsconfig (Name,File,Class,Notes,Platform,ExecServer,Testbed,Date,Priority,Project,Time,tree) values ('@Name','@File','@Class','@Notes','@Platform','@ExecServer','@Testbed','@Date','@Priority','$project','@Time','@tree')"; $grid = new KoolGrid("grid"); $grid->scriptFolder = $KoolControlsFolder."../../KoolControls/KoolGrid"; $grid->AjaxEnabled = true; $grid->styleFolder="default"; $grid->DataSource = $ds; $grid->AjaxEnabled = true; $grid->AllowFiltering = true; $grid->AllowDeleting = true; //$grid->AllowResizing = true; $grid->ColumnWrap = true; $grid->Width = 100; $grid->Height = "400px"; $grid->PageSize = 400; $grid->RowAlternative = true; $grid->AllowScrolling = true; $grid->AllowSelecting = true; $grid->AllowInserting = true; $grid->ColumnWrap = true; // $grid->MasterTable->ColumnWidth = "200px"; // $col = new GridBoundColumn();//GridBoundColumn is inherited from GridColumn // $col->Width = "50px"; // $grid->MasterTable->AddColumn($col); #$grid->AutoGenerateColumns = true; $column = new GridBoundColumn(); $column->HeaderText = "XML_FILE"; $column->DataField = "XML_FILE"; $column->Width = "280px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TOPOLOGY"; $column->DataField = "TOPOLOGY"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "MODEL"; $column->DataField = "MODEL"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "TRAFFIC"; $column->DataField = "TRAFFIC"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "CONFIG"; $column->DataField = "CONFIG"; $column->Width = "90px"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridBoundColumn(); $column->HeaderText = "NOTES"; $column->DataField = "NOTES"; $column->Align = "left"; $grid->MasterTable->AddColumn($column); $column = new GridCommandColumn(); $column->CommandText = "Use as template"; $column->OnClick = "myPopup2(\"{XML_FILE}\")"; $column->CssClass = "button_css"; $column->Width = "100px"; $column->Align = "center"; $grid->MasterTable->AddColumn($column); $grid->MasterTable->EditSettings->Mode = "Inline";//"Inline" is default value; $grid->MasterTable->ShowFunctionPanel = true; $grid->MasterTable->Pager = new GridPrevNextAndNumericPager(); $grid->Process(); ?>
      Render();?> Render();?>

      Edit Area


      XML File Name
      <>,|= +¬-]/', $filename) || $filename == ".xml") { echo ''; } else { $filename = "XML/$filename"; if (file_exists($filename)) { echo ''; } else { echo ''; $file_open = fopen($filename,"w+"); //fopen("something.txt","a+"); to add the contents to file fwrite($file_open, $_POST['code']); fclose($file_open); sleep(15); echo ''; /* $xml = new XMLReader(); $valid = $xml->open("$filename"); if ($valid == TRUE) { echo "Saved to $filename, please wait 1 minute for tables to create test"; $xml->close("$filename"); } else { unlink($filename); echo "This XML is not well formed, not saving it"; } */ } } } ?>
      site_pro/typography.html0000644075506000000310000012630011734731420013730 0ustar named Typography

      Typography Page

      Headings

      Heading 1

      Heading 2

      Heading 3

      Heading 4

      Heading 5

      Heading 6

      Other elements styling

      • This is abbreviation <abbr> </abbr>
      • This is strong <strong> </strong>
      • This is emphasis <em> </em>
      • This is bold text <b> </b>
      • This is italic text <i> </i>
      • This is cite <cite> </cite>
      • This is small text <small> </small>
      • This is deleted text <del> </del>
      • This is inserted text <ins> </ins>
      • This is defining instance <dfn> </dfn>
      • This is user input <kbd> </kbd>
      • This is sample output <samp> </samp>
      • This is “inline quotation” <q> </q>
      • This is superscript <sup> </sup>
      • This is subscript <sub> </sub>
      • This is a variable <var> </var>

      Buttons

      Add desired class to the <a> tag (<a href="" class=""> Button Text </a>)

      Smallclass="btn small"
      Mediumclass="btn medium"
      Largeclass="btn large"
      class="btn prev"
      class="btn next"
      Default<a class="btn"> </a>
      Successclass="btn success"
      Warningclass="btn warning"
      Dangerclass="btn danger"
      Infoclass="btn inf"
      <ul class="pages">
      	<li><a href="" class="btn prev"><span></span></a></li>
      	<li class="current"><a href="" class="btn page">1</a></li>
      	...
      	<li><a href="" class="btn next"><span></span></a></li>
      </ul>

      Add desired class to the <a> tag with <span> tag inside (<a href="" class=""><span></span> Button Text </a>)

      class="btn sign-in"
      Sign Outclass="btn sign-out"
      Site Mapclass="btn site-map"
      Commentclass="btn comment"
      Refreshclass="btn refresh"
      Printclass="btn print2"
      Commentclass="btn comment2 inf"
      Calendarclass="btn calend warning"
      Printclass="btn print success"
      Bookmarkclass="btn bookmark danger"
      Downloadclass="btn dwload inf"
      Settingsclass="btn settings success"

      Breadcrumbs

      Description

      Breadcrumbs Style 1

      <ul id="breadcrumbs-one">
      	<li><a href=""> 1 </a></li>
      	<li><a href=""> 2 </a></li>
      	...
      	<li><a href="" class="current"> You are here </a></li>
      </ul>

      Breadcrumbs Style 2

      <ul id="breadcrumbs-two">
      	<li><a href=""> 1 </a></li>
      	<li><a href=""> 2 </a></li>
      	...
      	<li><a href="" class="current"> You are here </a></li>
      </ul>

      Breadcrumbs Style 3

      <ul id="breadcrumbs-four">
      	<li><a href=""> 1 </a></li>
      	<li><a href=""> 2 </a></li>
      	...
      	<li><a href="" class="current"> You are here </a></li>
      </ul>

      Lists

      Description

      Ordered List

      <ol>
      	<li> <a href=""> ... </a> </li>
      	<li> ... </li>
      	...
      </ol>

      Ordered List 2

      <ol class="list3">
      	<li> <a href=""> ... </a> </li>
      	<li> ... </li>
      	...
      </ol>

      Unordered List 1

      <ul class="list1">
      	<li> <a href=""> ... </a> </li>
      	<li> ... </li>
      	...
      </ul>

      Unordered List 2

      <ul class="list2">
      	<li> <a href=""> ... </a> </li>
      	<li> ... </li>
      	...
      </ul>

      Mixed List

      <ol>
      	<li> <a href=""> ... </a> </li>
      	<li>
      		<ul class="list1">
      			<li> ... </li>
      		</ul>
      	</li>
      	...
      </ol>

      Definition List

      <dl>
      	<dt> <a href=""> ... </a> </dt>
      	<dd> ... </dd>
      	<dt> <a href=""> ... </a> </dt>
      	<dd> ... </dd>
      	...
      </dl>

      Tables

      Default table

      Header1 Header2 Header3 Header4 Header5 Header6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Description
      <table class="table">
      	<thead>
      		<tr>
      			<th> ... </th>
      			...
      		</tr>
      	</thead>
      	<tbody>
      		<tr>
      			<td> ...</td>
      			...
      		</tr>
      	</tbody>
      </table>

      Striped table

      Header1 Header2 Header3 Header4 Header5 Header6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Description
      <table class="table table-striped">
      	<thead>
      		<tr>
      			<th> ... </th>
      			...
      		</tr>
      	</thead>
      	<tbody>
      		<tr>
      			<td> ...</td>
      			...
      		</tr>
      	</tbody>
      </table>

      Bordered table

      Header1 Header2 Header3 Header4 Header5 Header6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Description
      <table class="table table-bordered">
      	<thead>
      		<tr>
      			<th> ... </th>
      			...
      		</tr>
      	</thead>
      	<tbody>
      		<tr>
      			<td> ...</td>
      			...
      		</tr>
      	</tbody>
      </table>

      Combined table

      Header1 Header2 Header3 Header4 Header5 Header6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Division 1 Division 2 Division 3 Division 4 Division 5 Division 6
      Description
      <table class="table table-bordered table-striped2">
      	<thead>
      		<tr>
      			<th> ... </th>
      			...
      		</tr>
      	</thead>
      	<tbody>
      		<tr>
      			<td> ...</td>
      			...
      		</tr>
      	</tbody>
      </table>

      Forms

      Simple Form

      Male
      Female

      Sign me up for your newsletter

      Advanced Form

      Male
      Female
      Sign me up for your newsletter

      Contacts Form

      Contact form submitted! We will be in touch soon.
      Description

      Simple Form

      To add new text field to the form duplicate the following code:

      <label><span class="text-form">First Name:</span><input type="text"></label>

      To create select box use the following code:

      <label>
      	<span class="text-form">Country:</span>
      	<select>
      		<option>United States</option>
      		<option>United States</option>
      	</select>
      </label>

      To add new options to the select box use the tag "option": <option>Your Text</option>

      To create multiple radio buttons use:

      <div class="wrapper"><input type="radio" name="group1"><div class="text-form2 fleft">Yout Text</div></div>

      Please note that all "input" tags with attribute type="radio" should have same name name="NameOfRadioGroup"

      Checkbox can be created using the following code:

      <div class="wrapper"><input type="checkbox"><div class="text-form3 fleft">Sign me up for your newsletter</div></div>

      Any input tag can be displayed as checkbox. To do this type "checkbox" for the input tag type attribute (<input type="checkbox">)

      This is an example of plain form, without any styles. Such elements as "select", "radio", "checkbox" will change appearance depending on your operating system.

      <form id="form1">
      	<label><span class="text-form">First Name:</span><input type="text"></label>
      	...
      	<label>
      		<span class="text-form fleft">Country:</span>
      		<select>
      			<option>United States</option>
      			<option>United States</option>
      		</select>
      	</label>
      	<label>
      		<div class="text-form">Message:</div>
      		<textarea></textarea>
      	</label>
      	<div class="wrapper"><input type="radio" name="group1"><div class="text-form2 fleft">Male</div></div>
      	<div class="wrapper"><input type="radio" name="group1"><div class="text-form2 fleft">Female</div></div>
      	<div class="wrapper"><input type="checkbox"><div class="text-form3 fleft">Sign me up for your newsletter</div></div>
      	<a class="btn">Send</a>
      </form>

      Advanced Form

      This form is styled using the jqTransform plugin. All form elements will be displayed identically in all browsers and operating systems. Adding new elements can be done the same way as for the simple form but note that form ID should be "form2"

      <form id="form2">
      	<label><span class="text-form">First Name:</span><input type="text"></label>
      	...
      	<label>
      		<span class="text-form fleft">Country:</span>
      		<select>
      			<option>United States</option>
      			<option>United States</option>
      		</select>
      	</label>
      	<label>
      		<div class="text-form">Message:</div>
      		<textarea></textarea>
      	</label>
      	<div class="wrapper"><input type="radio" name="group1"><div class="text-form2 fleft">Male</div></div>
      	<div class="wrapper"><input type="radio" name="group1"><div class="text-form2 fleft">Female</div></div>
      	<div class="wrapper"><input type="checkbox"><div class="text-form3 fleft">Sign me up for your newsletter</div></div>
      	<a class="btn">Send</a>
      </form>

      Contacts Form

      You can learn more about working with Contact Form in the Contact Form manual after the template purchase. Manual is located in the "documentation" folder of the template package.

      Search Form

      Subscribe Form

      Subscribe

      Log In Form

      Log In
      Description

      Search Form

      <form id="search">
      	<input type="text">
      	<a class="btn">Search</a>
      </form>

      Subscribe Form

      <form id="subscribe">
      	<input type="text">
      	<a class="btn">Subscribe</a>
      </form>

      Log In Form

      <form id="log_in">
      	<input type="text">
      	<input type="password">
      	<a class="btn">Log In</a>
      </form>

      Blockquotes

      Donec eget tellus non erat
      Ut tellus dolor, dapibus eget, elemenm. Quis que nulla. Vestibulum libero nisl, porta velce lerisque eget, males uada at, neque. Vivmus eget nibh. Etiam cursue vel metus.
      Jessica Priston
      Description
      <blockquote>
      	<!-- insert text here -->
      </blockquote>
      “Lorem ipsum dolor amet consectetu adipiscing elit. Praesent vestibulum molestie lacus. Aenean nonummy hendrerit mauris...”
      Description
      <div class="quotes_2">
      	<blockquote>
      	<!-- insert text here -->
      	</blockquote>
      	<span></span>
      </div>
      <div class="quotes-links">
      	<a href="">Link Text</a>
      </div>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi feugiat pharetra turpis, sed posuere nisi porta a. Ut tellus dolor, dapibus eget, elemenm. Quis que nulla. Vestibulum libero nisl, porta velce lerisque eget, males uada at, neque. Vivmus eget nibh. Etiam cursue vel metus.
      Jessica Priston
      Description
      <blockquote class="quotes_3">
      	<!-- insert text here -->
      	<img src="images/quote-br.gif" alt=""><br>
      	<a href="">Link Text</a>
      </blockquote>

      Information blocks

      Default
      <span class="info"> insert text here </span>
      Success
      <span class="info info_success"> insert text here </span>
      Warning
      <span class="info info_warning"> insert text here </span>
      Important
      <span class="info info_important"> insert text here </span>
      Info
      <span class="info info_info"> insert text here </span>

      Address

      8901 Marmora Road, Glasgow, D04 89GR.
      Telephone: +1 959 603 6035
      FAX: +1 504 889 9898
      E-mail: mail@demolink.org
      <address> insert text here </address>
      site_pro/under_construction.html0000644075506000000310000001141011733216346015450 0ustar named Under construction

      Our Website is

      Under Construction

      We'll be here soon with a new website. Estimated time remaining:

      Days
      Hours
      Minutes
      Seconds
      site_pro/usage.php0000644075506000000310000002117012220247006012441 0ustar named SandBox
      site_pro/usage.php~0000644075506000000310000002117012214470115012641 0ustar named SandBox
      site_pro/XML/0000777075506000000310000000000012307325755011305 5ustar namedsite_pro/XML/anurag_xray_profile_3945.xml0000777000006000000600000021315212236214560020032 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-sjc-users5/anuragb/c3900-universalk9-mz.SSA.3900_current;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! CENT CONFIG ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 no shutdown ! cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.2 source-interface Loopback0 ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.2 0.0.0.0 network 21.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! cent master hub source-interface Loopback0 border 10.0.0.1 cent-interface $uut_data(uut2,WAN1) external green class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 10.0.0.1 source-interface Loopback0 ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.1 0.0.0.0 network 22.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENB BASIC BORDER CONNECTION CHECK [simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [simple_uut_regex -router_name uut2 -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 600] [simple_uut_performance_exec uut "xray start now"] [sleep 30] [simple_uut_performance_exec uut "xray stop"] [simple_uut_performance_exec uut "xray copy tftp://223.255.254.245/tftpboot/anuragb/xray.dat"] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show cent master cent-tech"] [simple_uut_performance_exec uut "show cent border cent-tech"] [simple_uut_performance_exec uut2 "show cent master cent-tech"] [simple_uut_performance_exec uut2 "show cent border cent-tech"] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR892FSP_B2B_REAL1G_NBAR.xml0000777000006000000600000020042612236030531016773 0ustar apacheapache PERFORMANCE Back_to_back ISR892FSP REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/cmukhopa/c800-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "892FSP-K9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/asd.xml0000644000006000000600000040361612242070307014050 0ustar apacheapache PERFORMANCE Back_to_back ASR1001 REALISTIC AVC_A PERFORMANCE TEST AVC_A UUT.uut.IMAGE=/auto/tftp-joaofer/cmukhopa/asr1001-universalk9.BLD_V154_1_S_XE311_THROTTLE_LATEST_20131102_005924-std_2.bin; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 8 20.0.0.0 true Routing1 20.0.0.2-20.0.4.0 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 8 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! AVC CHECKS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER2)"] ! CHECK ON THE LAN POLICY CLIENT 1 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE LAN POLICY CLIENT 2 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 1 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 2 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section class-default" -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR4451_PERF_B2B_Real1G_AVC3_9.xml0000777000006000000600000022102212227075703017660 0ustar apacheapache SANDBOX Back_to_back ISR4451 REALISTIC Plain Routing ROUTING1 UUT.uut.IMAGE="" Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "isr4451/k9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload flow exporter my-exporter description 3.9 flow exporter destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 300 option interface-table timeout 300 option vrf-table timeout 300 option sampler-table timeout 300 option application-table timeout 300 option application-attributes timeout 300 ! flow record type performance-monitor conversation-record-w-art match services waas segment account-on-resolution match connection client ipv4 address match connection server ipv4 address match connection server transport port match ipv4 protocol match application name account-on-resolution collect interface input collect interface output collect connection server counter bytes long collect connection client counter bytes long collect connection server counter packets long collect connection client counter packets long collect connection delay response to-server sum collect connection delay response to-server max collect connection delay application sum collect connection delay response client-to-server sum collect connection delay network client-to-server sum collect connection delay network to-client sum collect connection delay network to-server sum collect connection transaction duration sum collect connection transaction counter complete collect connection sum-duration collect connection new-connections collect connection client counter packets retransmitted collect connection server counter responses collect policy qos class hierarchy collect policy qos queue index collect services pfr mc-id collect services pfr class-tag-id ! flow monitor type performance-monitor conversation-monitor-w-art exporter my-exporter record conversation-record-w-art history size 0 cache type synchronized cache timeout synchronized 60 cache entries 150000 ! flow record type performance-monitor conversation-record-wo-art match services waas segment account-on-resolution match connection client ipv4 address match connection server ipv4 address match connection server transport port match ipv4 protocol match application name account-on-resolution collect interface input collect interface output collect connection server counter bytes long collect connection client counter bytes long collect connection server counter packets long collect connection client counter packets long collect connection transaction counter complete collect connection sum-duration collect connection new-connections collect connection client counter packets retransmitted collect connection server counter responses collect policy qos class hierarchy collect policy qos queue index collect services pfr mc-id collect services pfr class-tag-id ! flow monitor type performance-monitor conversation-monitor-wo-art exporter my-exporter record conversation-record-wo-art history size 0 cache type synchronized cache timeout synchronized 60 cache entries 200000 ! flow record type performance-monitor q-drops-record match policy qos queue index collect policy qos queue drops flow monitor type performance-monitor q-drops-monitor exporter my-exporter record q-drops-record history size 0 cache type synchronized cache timeout synchronized 60 cache entries 1000 ! flow record type performance-monitor url-record match connection id collect application name collect connection client ipv4 address collect routing vrf input collect application http url collect application http host ! flow monitor type performance-monitor url-monitor exporter my-exporter record url-record history size 0 cache type normal cache timeout event transaction-end cache entries 2000 ! ip access-list extended acl_ip_tcp_udp permit tcp any any permit udp any any ! ip access-list extended acl_ip_tcp_intranet permit tcp any any permit tcp any any ! class-map match-all ip_tcp_udp match protocol ip match access-group name acl_ip_tcp_udp ! class-map match-all ip_tcp_intranet match protocol ip ! ip access-list extended acl_ip_tcp permit tcp any any ! class-map match-all ip_tcp_http match protocol ip match protocol http match access-group name acl_ip_tcp ! class-map match-all ip_tcp_http_intranet match protocol http match protocol ip match access-group name acl_ip_tcp_intranet ! ip access-list extended acl_ip_udp permit udp any any permit udp any any ! class-map match-all ip_udp_rtp match protocol ip match protocol rtp match access-group name acl_ip_udp ! policy-map type performance-monitor my-policy parameter default account-on-resolution class ip_tcp_http_intranet flow monitor url-monitor flow monitor conversation-monitor-w-art flow monitor q-drops-monitor class ip_tcp_http flow monitor url-monitor flow monitor conversation-monitor-wo-art flow monitor q-drops-monitor class ip_tcp_intranet flow monitor conversation-monitor-w-art flow monitor q-drops-monitor class ip_udp_rtp flow monitor conversation-monitor-wo-art flow monitor q-drops-monitor class ip_tcp_udp flow monitor conversation-monitor-wo-art flow monitor q-drops-monitor ! Platform qos performance-monitor ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input my-policy service-policy type performance-monitor output my-policy no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 service-policy type performance-monitor input my-policy service-policy type performance-monitor output my-policy no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 1000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 0 CLIENT2 40 0 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performnace_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performnace_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR2911_PERF_B2B_Real500M_MACE.xml0000777000006000000600000017723512226110337017622 0ustar apacheapache SANDBOX Back_to_back ISR2911 REALISTIC MACE enabled MACE UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "2911" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! START OF MACE CONFIG ! ! flow record type mace allrecord collect waas all collect art all ! flow record type mace testrecord collect application name ! flow record type mace macerecord collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect waas all collect counter client bytes collect counter client packets collect art all ! flow exporter EXPORT destination 22.0.0.3 transport udp 2055 ! flow monitor type mace monitorMace record macerecord exporter EXPORT cache timeout update 5 ! access-list 100 permit ip any any ! class-map match-all mace-class-map-all match access-group 100 ! policy-map type mace mace_global class mace-class-map-all flow monitor monitorMace ! ! ! END OF MACE CONFIG ! interface $uut_data(uut,CLIENT1) ip nbar protocol-discovery ip address 21.0.0.1 255.255.255.0 no shutdown interface $uut_data(uut,SERVER1) mace enable ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base 21.0.0.0 22.0.0.0 24 21.0.0.0 22.0.0.0 24 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 90 80 50 0.1 1200 500 30 30 500 LAN 144 1 CLIENT1 LAN 24 2 CLIENT1 LAN 34 3 CLIENT1 LAN 146 4 CLIENT1 LAN 80 5 CLIENT1 LAN 62 6 CLIENT1 LAN 8 7 CLIENT1 LAN 8 8 CLIENT1 LAN 8 9 CLIENT1 LAN 26 10 CLIENT1 LAN 8 11 CLIENT1 LAN 24 12 CLIENT1 LAN 24 13 CLIENT1
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [#simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP20_PERF_2R_Real5G_CRYPTO.xml0000777000006000000600000023005012226110337020675 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP20 REALISTIC Plain Routing ROUTING1 UUT.uut.IMAGE=;UUT.uut2.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R3_R2" uut(device,console) "telnet 172.27.41.161 2013" uut(device,mgt_ip) "1.18.3.2" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP20" uut(device,esp_a) "ESP20" uut(device,esp_b) "ESP20" uut(device,chassis_type) "asr1006" uut2(device,hostname) "R15_R1" uut2(device,console) "telnet 172.27.63.13 2005" uut2(device,mgt_ip) "1.18.15.1" uut2(device,mgt_intf) "GigabitEthernet0" uut2(device,rp) "RP2" uut2(device,esp) "ESP160" uut2(device,esp_a) "ESP160" uut2(device,esp_b) "ESP160" uut2(device,chassis_type) "asr1013" uut(Avalanche.ethernet.1,intf) Te0/3/0 uut(Avalanche.ethernet.1,speed) ether10000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) Te0/1/0 uut(uut2.ethernet.1,speed) ether10000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) Te1/1/0 uut2(uut.ethernet.1,speed) ether10000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) Te1/0/0 uut2(Avalanche.ethernet.1,speed) ether10000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether10000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) 14 Avalanche(uut2.ethernet.1,speed) ether10000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 3100B 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut2 1 WAN1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN uut 1 WAN1 FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! CONFIGURE CRYPTO PEER crypto isakmp policy 1 lifetime 86400 encr aes 256 authentication pre-share crypto ipsec security-association replay disable crypto isakmp key cisco address 192.168.0.0 255.255.0.0 crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 crypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac ! crypto ipsec profile vti-1 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! interface loopback 1 ip address 192.168.1.1 255.255.255.255 load-interval 30 no keepalive no shutdown ! ! interface tunnel 1 ip unnumbered $uut_data(uut,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.3.3 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-1 load-interval 30 ip virtual-reassembly ip mtu 9000 no keepalive no shutdown ip tcp adjust-mss 1340 ! ! ip route 22.0.0.0 255.0.0.0 tunnel 1 ! ip route 192.168.3.3 255.255.255.255 $uut_data(uut,WAN1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.1 255.255.255.0 no shutdown ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! ! CONFIGURE CRYPTO PEER crypto isakmp policy 1 lifetime 86400 encr aes 256 authentication pre-share crypto ipsec security-association replay disable crypto isakmp key cisco address 192.168.0.0 255.255.0.0 crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 crypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac ! crypto ipsec profile vti-1 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! ! interface loopback 1 ip address 192.168.3.3 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface tunnel 1 ip unnumbered $uut_data(uut2,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.1.1 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-1 ip tcp adjust-mss 1340 load-interval 30 ip virtual-reassembly ip mtu 9000 no keepalive no shutdown ! ip route 21.0.0.0 255.0.0.0 tunnel 1 ! ip route 192.168.1.1 255.255.255.255 $uut_data(uut2,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 no shutdown ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show plat hard qfp act feature ipsec data drop"] [simple_uut_performance_exec uut "show plat hard qfp act statistics drop "] [simple_uut_performance_exec uut2 "show plat hard qfp act feature ipsec data drop"] [simple_uut_performance_exec uut2 "show plat hard qfp act statistics drop "] [simple_uut_performance_exec uut "show crypto isa sa"] [simple_uut_performance_exec uut "show crypto engine connections active"] [simple_uut_performance_exec uut "show crypto engine accelerator stat"] [simple_uut_performance_exec uut "show logging"] [simple_uut_performance_exec uut2 "show logging"] [simple_uut_regex -router_name uut -name "crypto encrypt check" -regex {(encaps:\s\d....*?encrypt:\s\d....*?digest:\s\d....*){1}} -show_command "show crypto ipsec sa | inc encrypt" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "crypto decrypt check" -regex {(decaps:\s\d....*?decrypt:\s\d....*?verify:\s\d....*){1}} -show_command "show crypto ipsec sa | inc decrypt" -sleep 5 -retry 2] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_310_C.xml0000777000006000000600000021174712227370664020170 0ustar apacheapache SANDBOX Back_to_back ASR1001 REALISTIC AVC 3.10 Config C AVC310_C UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-response-time ipv4 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor media ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_3R_Real1G_CENT_CENTA_FAILOVER.xml0000777000006000000600000031043612226110337021614 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-joaofer/c3900-universalk9-mz.SSA.LATEST;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.uut3.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "cisco3945-chassis" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut3 1 WAN2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN uut3 1 INTER FROM_TITAN FROM_TITAN FROM_TITAN uut3 lab FROM_TITAN uut2 1 INTER FROM_TITAN uut 1 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) mtu 9216 ip address 25.0.0.2 255.255.255.0 shut no shutdown ! router eigrp 100 network 21.0.0.0 network 1.0.0.0 no auto-summary ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.0.1 key letmein ! crypto ipsec security-association replay disable crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.0.1 255.255.255.255 keyring DMVPN match identity address 25.0.0.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(uut,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 24.0.0.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 24.0.0.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(uut,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.1 remote-as 6000 neighbor 25.0.0.1 update-source loopback 0 neighbor 25.0.0.1 activate neighbor 24.0.0.1 remote-as 6000 neighbor 24.0.0.1 update-source loopback 0 neighbor 24.0.0.1 activate !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface Loopback1 ip address 1.1.1.12 255.255.255.255 no shutdown ! cent master branch source-interface Loopback1 hub 1.1.1.10 ! cent border master 1.1.1.12 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % sh cent border pmi 60 yes sh cent master channels 60 yes sh cent border site-pre 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT3 ! interface $uut_data(uut2,INTER) ip address 26.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 22.0.0.0 network 26.0.0.0 no auto-summary ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 24.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 24.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 24.0.0.2 ip nhrp map 1.0.1.2 24.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.1.2 ip virtual-reassembly no keepalive tunnel source $uut_data(uut2,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 24.0.0.2 remote-as 6001 neighbor 24.0.0.2 update-source loopback 0 neighbor 24.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.10 255.255.255.255 no shutdown cent master hub source-interface Loopback1 border 1.1.1.10 cent-interface tunnel0 external green border 1.1.1.12 cent-interface tunnel0 external blue class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 1.1.1.10 source-interface Loopback1 ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! RATE LIMIT POLICY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! policy-map test class class-default shape average 1000000000 ! interface $uut_data(uut2,WAN1) service-policy output test ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut3] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut3,INTER) default interface $uut_data(uut3,WAN2) ! INTERFACES THAT CONNECT TO AVALANCHE ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut3,WAN2) ip address 25.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut3,INTER) ip address 26.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 1.0.0.2 remote-as 6001 neighbor 1.0.0.2 update-source loopback 0 neighbor 1.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 25.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.0.2 ip nhrp map 1.0.0.2 25.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(uut3,WAN2) no keepalive tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.2 remote-as 6001 neighbor 25.0.0.2 update-source loopback 0 neighbor 25.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.11 255.255.255.255 no shutdown ! cent border master 1.1.1.10 source-interface Loopback1 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! RATE LIMIT POLICY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! policy-map test class class-default shape average 1000000000 ! interface $uut_data(uut3,WAN2) service-policy output test ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 300 20 0.0001 85 75 50 0.1 1600 500 30 30 40 CLIENT1 24 1 CLIENT1 24 2 CLIENT1 146 3 CLIENT1 62 4 CLIENT1 80 5 CLIENT1 26 6 CLIENT1 34 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 144 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [simple_uut_performance_init uut3] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [simple_uut_performance_exec uut3 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name uut3 -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3 p4] [simple_uut_license -router_name uut -license "appxk9"] [simple_uut_license -router_name uut -license "securityk9"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [simple_uut_performance_config uut3] [simple_uut_performance_exec uut3 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut3 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut3 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [simple_uut_performance_exec uut3 "show ip route"] [simple_uut_performance_exec uut "ping 1.0.0.2"] [simple_uut_performance_exec uut2 "ping 1.0.1.1"] [simple_uut_performance_exec uut3 "ping 1.0.0.1"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [simple_uut_performance_monitor_enable uut3] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 900] [simple_uut_performance_add_complex_config -router_name uut2 -config "interface tunnel 0 \n shutdown" -flag "BR1 to tunnel shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "interface tunnel 0 \n no shutdown" -flag "BR1 to tunnel no shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n shutdown" -flag "BR1 to tunnel shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n no shutdown" -flag "BR1 to tunnel no shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "policy-map test \n class class-default \n shape average 1000000" -flag "BR1 to 1000kbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "policy-map test \n class class-default \n shape average 40000000" -flag "BR1 to 40mbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "policy-map test \n class class-default \n shape average 1000000" -flag "BR2 to 1000kbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "policy-map test \n class class-default \n shape average 40000000" -flag "BR2 to 40mbps"] [sleep 600] [Avalanche4_2_stop_traffic traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_64k_60_load_1300.xml0000777000006000000600000020466612232330710025007 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 service internal flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 65535 history size 1 timeout 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 100 30 0.001 101 101 0.1 30 30 1300 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_64k_145_120_log_his1_time1.xml0000777000006000000600000020436312226110337026675 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 120 cache entries 65535 history size 1 timeout 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 100 30 0.005 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_CENT_CORE_HARDCODE.xml0000777000006000000600000021103112227542434021502 0ustar apacheapache SANDBOX Back_to_back ASR1001 REALISTIC AVC 3.10 Config A CENT_MMA UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload !!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.10 255.255.255.255 no shutdown cent master hub source-interface Loopback1 border 1.1.1.10 cent-interface $uut_data(uut,CLIENT1) external green cent-interface $uut_data(uut,CLIENT2) external orange class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 1.1.1.10 source-interface Loopback1 ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 7 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER2)"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_base.xml0000777000006000000600000021016412226110337020141 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_add_configuut "no performance monitor context my-visibility profile application-experience"] [simple_uut_performance_add_config uut "no policy-map POLICY_WAN"] [simple_uut_performance_add_config uut "no policy-map QOS_WAN"] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_murthy_310_b_base.xml0000777000006000000600000020362212231571317022443 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload service internal ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor conversation-traffic-stats ipv4 cache-size 32000 class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % sh policy-map interface 120 yes sh flow exporter statistics 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_2R_Real1G_CENT_AVC_B2.xml0000777000006000000600000021222312226721666020436 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-sjc-users5/anuragb/c3900-universalk9-mz.SSA.3900_current;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 ! ! class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN ! !! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown ! router eigrp 100 network 10.0.0.2 0.0.0.0 network 21.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.1 0.0.0.0 network 22.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR4451_PERF_B2B_Real2G_AVC_310_B_NAT.xml0000777000006000000600000021265512227370665020715 0ustar apacheapache SANDBOX Back_to_back ISR4451 REALISTIC AVC 3.10 Config B AVC310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "isr4451/k9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ip nat translation max-entries 300000 access-list 1 permit 21.0.0.0 0.255.255.255 access-list 2 permit 20.0.0.0 0.255.255.255 ip nat inside source list 1 interface $uut_data(uut,SERVER1) overload ip nat inside source list 2 interface $uut_data(uut,SERVER2) overload ip nat translation timeout 120 ip nat translation dns-timeout 1 ip nat translation finrst-timeout 1 ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN ip nat inside no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN ip nat outside no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN ip nat inside no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN ip nat outside no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_2R_Real1G_CENT_AVC_B.xml0000777000006000000600000021411112227105105020333 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-sjc-users5/anuragb/c3900-universalk9-mz.SSA.3900_current;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,WAN1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 ! ! class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN ! !! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown ! router eigrp 100 network 10.0.0.2 0.0.0.0 network 21.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! cent master hub source-interface Loopback0 border 10.0.0.1 cent-interface $uut_data(uut2,WAN1) external green class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 10.0.0.1 source-interface Loopback0 ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.1 0.0.0.0 network 22.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_2R_Real2G_CENT.xml0000777000006000000600000021740412227370664017375 0ustar apacheapache SANDBOX 2Routers ASR1001 REALISTIC CEF CEF UUT.uut.IMAGE=;UUT.uut2.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether1000 uut(Avalanche.ethernet.2,conn) p2p uut(Avalanche.ethernet.2,conn_id) 2 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut(uut2.ethernet.2,intf) uut(uut2.ethernet.2,speed) ether1000 uut(uut2.ethernet.2,conn) p2p uut(uut2.ethernet.2,conn_id) 2 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut.ethernet.2,intf) uut2(uut.ethernet.2,speed) ether1000 uut2(uut.ethernet.2,conn) p2p uut2(uut.ethernet.2,conn_id) 2 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.2,intf) uut2(Avalanche.ethernet.2,speed) ether1000 uut2(Avalanche.ethernet.2,conn) p2p uut2(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn) p2p Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.2,intf) Avalanche(uut2.ethernet.2,speed) ether1000 Avalanche(uut2.ethernet.2,conn) p2p Avalanche(uut2.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut2 2 SERVER2 FROM_TITAN uut 1 CLIENT1 FROM_TITAN uut 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN uut2 2 WAN2 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 SERVER2 FROM_TITAN uut 1 WAN1 FROM_TITAN uut 2 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown ! default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) ip address 25.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 21.0.0.0 network 20.0.0.0 network 24.0.0.0 network 25.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut2,SERVER1) interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! default interface $uut_data(uut2,SERVER2) interface $uut_data(uut2,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! default interface $uut_data(uut2,WAN1) interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! default interface $uut_data(uut2,WAN2) interface $uut_data(uut2,WAN2) ip address 25.0.0.2 255.255.255.0 no shutdown ! default router eigrp 100 router eigrp 100 network 22.0.0.0 network 23.0.0.0 network 24.0.0.0 network 25.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_310_A.xml0000777000006000000600000022351712227370664020164 0ustar apacheapache SANDBOX Back_to_back ASR1001 REALISTIC AVC 3.10 Config A AVC310_A UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER2)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr892_b2b_real1g_cent_mma.xml0000777000006000000600000020002212226110337020155 0ustar apacheapache SANDBOX Back_to_back ISR892 REAL AVC_310_B MMA with CENT metrics UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c800-universalk9-mz.SSA.154-0.12.T; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R17" uut(device,console) "" uut(device,chassis_type) "892" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! START OF PERF_MON ! ! flow record type performance-monitor ingress match ipv4 source prefix match ipv4 source mask match ipv4 destination prefix match ipv4 destination mask match ipv4 dscp match interface input collect transport packets lost rate collect transport bytes lost rate collect transport rtp jitter mean collect transport round-trip-time samples collect transport round-trip-time sum collect counter bytes long collect counter packets long collect timestamp absolute monitoring-interval start ! flow record type performance-monitor egress match ipv4 source prefix match ipv4 source mask match ipv4 destination prefix match ipv4 destination mask match ipv4 dscp match interface output collect counter bytes long collect counter packets long collect timestamp absolute monitoring-interval start ! ! flow exporter fe1 destination 22.0.0.21 transport udp 2055 export-protocol ipfix ! ! flow monitor type performance-monitor fm1 record ingress exporter fe1 cache timeout synchronized 120 cache entries 32768 ! flow monitor type performance-monitor fm2 record egress exporter fe1 cache timeout synchronized 120 cache entries 32768 ! class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 ! policy-map type performance-monitor p2 class c1 flow monitor fm2 ! ! WAN Interface interface $uut_data(uut,SERVER1) service-policy type performance-monitor input p1 service-policy type performance-monitor output p2 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1002X_PERF_B2B_Real2G_NBAR.xml0000777000006000000600000021151612236026702017566 0ustar apacheapache PERFORMANCE Back_to_back ASR1002X REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/asr1002x-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1002-x" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_145_60_log.xml0000777000006000000600000020433712226110337024112 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 32768 history size 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/.isr3945e_perf_b2b_mohassan_200m_real_avc_210_b.xml.swp0000644073142600000310000026000012236355554023106 0ustar namedb0VIM 7.3hyRkmohassanjoao-lnx/var/www/html/site_pro/XML/isr3945e_perf_b2b_mohassan_200m_real_avc_210_b.xml3210#"! UtpbncU |& | | w tc`IHR|o_lj:t-FFadb/@, n I "  @ + c C ! t R / ^ 9 8 7 & dD'd@%xa>nW4pVV9  class-map match-any ORACLE traffic-monitor conversation-traffic-stats traffic-monitor application-response-time traffic-monitor url exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 performance monitor context my-visibility profile application-experience service internal ! AVC 310 B Filled by Controller after reload FROM_RUN_PARAMETERS [simple_uut_performance_callback uut] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp FROM_TITAN CLIENT1 2 Avalanche FROM_TITAN SERVER1 1 Avalanche FROM_TITAN lab uut FROM_TITAN FROM_TITAN FROM_TITAN CLIENT1 2 uut FROM_TITAN SERVER1 1 uut 0 2900 FROM_TITAN traffic_gen1 4 Avalanche(uut.ethernet.2,conn_id) 2Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.1,conn_id) 1Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,intf) uut(Avalanche.ethernet.2,conn_id) 2uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.1,conn_id) 1uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,intf) uut(device,chassis_type) "3945"uut(device,console) "telnet "uut(device,hostname) "R1_R13"Avalanche(device,mgt_ip) "" UUT.uut.IMAGE=; AVC_310_B AVC_310_B Murthy ISR3945e Back_to_back SANDBOX xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> xmlns:equipment="test.cisco.com"ad znd+  [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ]adF-Z V q B  S - r  ` 0 0JB7/@~,6 < [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_avg -monitor TRUE -probe uut:PMEM -store_variable PMEM_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [simple_uut_performance_exec uut "show memory processor statistics"] [simple_uut_performance_exec uut "show memory processor statistics history"] [simple_uut_performance_exec uut "show performance monitor internal"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [880_Monitor_disable] [sleep 10] 880_while [Avalanche4_2_done traffic_gen1] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 60] [Avalanche4_2_start traffic_gen1] [Avalanche4_2_init] [simple_uut_performance_exec uut "show memory processor statistics"] [simple_uut_performance_exec uut "show memory processor statistics history"] [simple_uut_performance_monitor_enable uut] [880_Monitor_enabled] [simple_uut_performance_config uut] [simple_uut_license -router_name uut -license appxk9] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_init uut]ad=!tl_5}hS( c ?   o K V l T 8 "  c L 0 zZC'tT>"pP:sS= pP9 #yQ!  [880_Monitor_disable] 30 13 24 CLIENT1 12 24 CLIENT1 11 8 CLIENT1 10 26 CLIENT1 9 8 CLIENT1 8 8 CLIENT1 7 8 CLIENT1 6 62 CLIENT1 5 80 CLIENT1 4 146 CLIENT1 3 34 CLIENT1 2 24 CLIENT1 1 144 CLIENT1 200 2086 30 30 500 1200 0.1 50 75 85 0.01 20 60 0.1 % Total_Bandwitdh % packet_loss unit driver,rcvQueueLength Server unit memory,rcvQueueLength Client ad+GGA [simple_uut_performance_exec uut "write"] [simple_uut_performance_add_config uut "memory-size iomem 25"]adn{O1y@<& t ` S < 8  y e Q M 7 )   t X H 9  k T 9   z P . K s^Q2||? dR /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp 1048576 Mb Processor +[0-9A-Z]+ +[0-9]+ +[0-9]+ +([0-9]+) +[0-9]+ show memory statistics | inc Processor % one minute: ([0-9]+)% show proc cpu | inc util % five seconds: [0-9]+%/([0-9]+)% show proc cpu | inc util % five seconds: ([0-9]+)% show proc cpu | inc util no shutdown service-policy output POLICY_WAN performance monitor context my-visibility ip address 22.0.0.1 255.255.255.0 interface $uut_data(uut,SERVER1) default interface $uut_data(uut,SERVER1) no shutdown service-policy input QOS_LAN ip address 21.0.0.1 255.0.0.0 interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,CLIENT1) service-policy QOS_WAN shape average 100000000 class class-default policy-map POLICY_WAN fair-queue random-detect dscp-based bandwidth remaining percent 3 class class-default fair-queue random-detect dscp-based bandwidth remaining percent 7 class DATA3 fair-queue random-detect dscp-based bandwidth remaining percent 3 class DATA2 fair-queue random-detect dscp-based bandwidth remaining percent 59 class DATA1 police rate percent 28 priority class VOIX policy-map QOS_WAN match dscp af31 match dscp af21 class-map match-any DATA3 match dscp af11 class-map match-any DATA2 match dscp cs2 match dscp cs4 class-map match-any DATA1 match dscp ef class-map match-any VOIX set ip dscp default class DNS set ip dscp af31 class EMAIL set ip dscp af21 class CITRIX set dscp af11 class ORACLE set dscp cs2 class HTTPS set dscp cs4 class HTTP set ip dscp ef class VOICE policy-map QOS_LAN match protocol attribute sub-category naming-services class-map match-any DNS match protocol rtp class-map match-any VOICE match protocol ssl match protocol secure-http class-map match-any HTTPS match protocol citrix class-map match-any CITRIX match protocol attribute category email class-map match-any EMAIL match protocol http class-map match-any HTTP match protocol ncube-lm match protocol ora-srvadU~   a O A 4 M  X ~ D  N1P"_:fI*~bC{\6|F8 60 78 Seconds Flat Sessions 60 60 0 Seconds Flat 6000 0 144 Seconds Flat 60 60 144 Seconds Flat Sessions 120 6000 120 100 Sessions true false CLIENT1_InterfaceDisplayString CLIENT1 Inf0 avalanche_mgt_IP 5 Net1 Default SFR Main Traffic Profile SFR ./files/content/sapee/pcap/user/H264/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/reservedIndexFile ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/voice_300_sec.wav /auto/td-devtest/avalanche/realistic_base [avalanche_call_back traffic_gen1] ad|zT9nT5 t [ >  s W 8  p Q +  w A 3  ~ [ L 3  teL1r^8x]> wY4% sPA2vW1qK0 0 62 Seconds Flat 60 60 62 Seconds Flat Sessions 60 60 0 Seconds Flat 6000 0 24 Seconds Flat 60 60 24 Seconds Flat Sessions 60 60 0 Seconds Flat 6000 0 34 Seconds Flat 60 60 34 Seconds Flat Sessions 60 60 0 Seconds Flat 6000 0 146 Seconds Flat 60 60 146 Seconds Flat Sessions 60 60 0 Seconds Flat 6000 0 78 Seconds Flat 60ad|yS9bS: | m T 8  n S 4   \ &  c @ 1   Z K 2  vgXC_E&z`B{\9*hI#c="}W= 60 0 Seconds Flat 6000 0 24 Seconds Flat 60 60 24 Seconds Flat Sessions 60 60 0 Seconds Flat 6000 0 8 Seconds Flat 60 60 8 Seconds Flat Sessions 60 60 0 Seconds Flat 6000 0 8 Seconds Flat 60 60 8 Seconds Flat Sessions 60 60 0 Seconds Flat 6000 0 8 Seconds Flat 60 60 8 Seconds Flat Sessions 60 60 0 Seconds Flat 6000ad|O@' hY@$ r Y >   j H   n O ,   k F 7   b S D /  kE* _D&y_@m7# }lP%rQ>+fK: oracle ./Oracle 5000 PRESERVE 2 24 1494 22.0.0.12 stream_2 31 Citrix ./CITRIX 0 10 Net1 60 60 0 Seconds Flat 6000 0 28 Seconds Flat 60 60 28 Seconds Flat Sessions 60 60 0 Seconds Flat 6000 0 0 Seconds Flat 60 60 0 Seconds Flat Sessions 60 60 0 Seconds Flat 6000 0 26 Seconds Flat 60 60 26 Seconds Flat Sessions 60adwaG$jC j N 2  k Z B  l M 6  ~ n P 5 $ u J oP2bR7&y[?$pW@ Y) v[<q" ./H264 10.34.210.72_16476-172.19.151.160_60282-UDP 0 stream_1.pcap TCP 0 5003 10.40.50.228 1693 10.40.60.44 ./Exchange Exchange_Mapi 1 stream_1.pcap SFIN TCP 0 1521 10.1.3.81 2811 10.1.1.38 ./Oracle Oracle 23 stream_1.pcap SFIN TCP 24 1494 10.0.53.200 1088 10.150.155.60 ./CITRIX Citrix 31 stream_2.pcap CFIN 500 PRESERVE 0 0 16476 22.0.0.11 stream_1 0 H264_30s_312kbps ./H264 500 PRESERVE 0 0 5003 22.0.0.3 stream_1 1 Exchange ./Exchange 5000 PRESERVE 0 0 1521 22.0.0.2 stream_1 23ad thI-xY. e F - } W 4   ^ N 7  k \ =  j M )  a=( mI4}YD%gR2{V5s[L)xeD. SSLv2 SSLv3 TLSv1 RC4-MD5 1 true false 100 013video_calls 100 012dns 100 011smtp 100 010https 100 009rtsp_250k 100 008rtsp_160k 100 007pop 100 006http_browsing 100 005http_10k_60k 100 004exchange 100 003oracle 100 002citrix 100 001voice 21.0.0.2-21.1.134.100 Routing0 true 21.0.0.0 8 true 0.0.0.0 0 21.0.0.1 Realworld Inf0 22 Phoneboot_0001 UDP 5060 voice300 1 22.0.0.13 30000 30000 caller@spirent.com callee@spirent.com UDP 0 16476 10.34.210.72 60282 172.19.151.160 adct\B ueL y T . ~ P =  u =  M ; &  v D  hT0 lK5f,lFhU3Q(`N9& SSLv2 SSLv3 TLSv1 RC4-MD5 1 true false 31000 true true 65535 load_exchange exchange SSLv2 SSLv3 TLSv1 RC4-MD5 1 true false 31000 true true 65535 load_oracle oracle SSLv2 SSLv3 TLSv1 RC4-MD5 1 true false 31000 true true 65535 load_video_calls video_calls SSLv2 SSLv3 TLSv1 RC4-MD5 1 true false 31000 true true 65535 load_citrix citrix SSLv2 SSLv3 TLSv1 RC4-MD5 1 true false 31000 true true Content G.729AB voice300 voice300 voice_300_sec.wav 65535 load_voice voicead `f,gA c P ) z B   m B  c  Z #  cQ<)j)~?-oDY{hK![4 false 1 false false 31000 65535 load_dns dns SSLv2 SSLv3 TLSv1 RC4-MD5 1 false false 31000 65535 load_smtp smtp SSLv2 SSLv3 TLSv1 RC4-MD5 1 false false 31000 65535 load_pop pop SSLv2 SSLv3 TLSv1 RC4-MD5 1 false false RTP_UDP -- None -- 554 load_rtsp rtsp_250k 6000 RTP_UDP -- None -- 554 load_rtsp rtsp_160k 6000 31000 true true 65535 load_http_browsing http_browsing SSLv2 SSLv3 TLSv1 RC4-MD5 1 true false 31000 true true 65535 load_http_10k_60k http_10k_60kad<I}^2VB& c S 6 y h K } [ f  q " B1 @xEzGOV#T!< smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 5000> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 5000> pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 5000> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 5000> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 5000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <url UNIFORM 1 1000> THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 5000> 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> 1 get http://22.0.0.4/http_10k_60k THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 5000> SAPEE://user/Exchange/Exchange THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 5000> SAPEE://user/H264/H264_30s_312kbps THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 5000> SAPEE://user/Oracle/oracle THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 5000> SAPEE://user/CITRIX/Citrix THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 5000> sipng://phonebook=Phonebook_0001 THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 5000> 31000 true true 65535 load_https https TLSv1 AES128-SHA ad^R~ _" k . w 9 M  j N "  i 5 |o*C9S9yXwQ>sF+|^ 1494 22.0.0.12 stream_2 31 Citrix ./CITRIX 0 10 Net1 false SERVER1_InterfaceDisplayString SERVER1 Inf0 avalanche_mgt_IP 5 Net1 SFR Main Traffic Profile SFR ./files/content/sapee/pcap/user/H264/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/reservedIndexFile ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/voice_300_sec.wav user5@from.com,user5@to.com,this is from user5,32000 user4@from.com,user4@to.com,this is from user4,16000user3@from.com,user3@to.com,this is from user3,8000user2@from.com,user2@to.com,this is from user2,4000user1@from.com,user1@to.com,this is from user1,2000From,To,Subject,Size off on on 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> 1 get https://22.0.0.10/http_10k_60k THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 5000> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 2000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> THINK <rand> ASSIGN VARIABLE <rand UNIFORM 1000 5000>ad|{kM1 nC$  q ^ K ;   e T 8  f F 4 "  V 1  j R 0  zdDj= uW6W.tY?!uK#pR5 10.40.50.228 1693 10.40.60.44 ./Exchange Exchange_Mapi 1 stream_1.pcap SFIN TCP 0 1521 10.1.3.81 2811 10.1.1.38 ./Oracle Oracle 23 stream_1.pcap SFIN TCP 24 1494 10.0.53.200 1088 10.150.155.60 ./CITRIX Citrix 31 stream_2.pcap CFIN 500 PRESERVE 0 0 16476 22.0.0.11 stream_1 0 H264_30s_312kbps ./H264 500 PRESERVE 0 0 5003 22.0.0.3 stream_1 1 Exchange ./Exchange 5000 PRESERVE 0 0 1521 22.0.0.2 stream_1 23 oracle ./Oracle 5000 PRESERVE 2 24 adozU+mM2 h R ;  t B  a =  ~ n M 3  | e D ) r[:fO. ZC" W@yG0 lJ2]?! Content G.729AB voice300 true voice300 voice_300_sec.wav SIPNG_Endpoint 5060 zone1 DNS 53 22.0.0.11 VIDEO_CALLS 22.0.0.10 HTTPS 22.0.0.9 DNS 22.0.0.8 SMTP 22.0.0.7 POP 22.0.0.6 HTTP_BROWSING 22.0.0.5 RTSP 22.0.0.4 HTTP_10K_60K 22.0.0.3 EXCHANGE 22.0.0.2 ORACLE 22.0.0.12 CITRIX 22.0.0.13 VOICE Routing1 true true 22.0.0.0 24 This is the Subnet1 subnet 0.0.0.0 0 22.0.0.1 Subnet1 Inf0 UDP 0 16476 10.34.210.72 60282 172.19.151.160 ./H264 10.34.210.72_16476-172.19.151.160_60282-UDP 0 stream_1.pcap TCP 0 5003ad$liR?(mO=' j L : $ a C 1  S 5 # X 4  q G 1 tN$kY0]A&w[@tY4 cM rE7! 443 true 0 0 0 SMTP 25 ./files/pop3messages/digitalsales.pop3 1 0 user3 ./files/pop3messages/table-1-16K.pop3 1 0 user2 ./files/pop3messages/890_config.pop3 1 0 user1 3 POP3 110 true Streaming 554 0 32k 100 false 2 Microsoft-IIS/6.0 HTTP 80 0 http_10k_60k 100 false 1 Microsoft-IIS/6.0 HTTP 80 0 user/H264/H264_30s_312kbps SapeeUDP 80 0 user/Exchange/Exchange SapeeTCP 5003 0 user/Oracle/oracle SapeeTCP 1521 2 user/CITRIX/Citrix SapeeTCP 80 0 UDP off ad je? jT2  H 5  k N S " S w 5  tJ<, uR8}bU+tC(l_E+oB,waT&  ms url,averageRespTimePerPage Client ms url,averageRespTimePerUrl Client 1000 ms tcp,averageTimeToSynAck Client 1000 mb/s driver,txBandwidth Client 1000 mb/s driver,rxBandwidth Client clients http,unsuccessfulTxnsPerSec Client clients http,successfulTxnsPerSec Client clients http,unsuccessfulTxns Client clients http,successfulTxns Client clients loadspec,desiredLoadSpecCount Client
      100.100.100.100
      0 1 1 www.cisco.com true 1 10 true true 3 20000 2 32000 32K true 1 25000 35000 0 10k_60K false false ./files/certs/certificate_from_wae.pem 1000 TLSv1 AES128-SHA cisco
      0 http_10k_60k 100 false Microsoft-IIS/6.0 HTTPSsite_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_C.xml0000777000006000000600000040445612236115426017577 0ustar apacheapache PERFORMANCE Back_to_back ASR1001 REALISTIC AVC_C PERFORMANCE TEST AVC_C UUT.uut.IMAGE=/auto/tftp-joaofer/cmukhopa/asr1001-universalk9.BLD_V154_1_S_XE311_THROTTLE_LATEST_20131102_005924-std_2.bin; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC C performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-response-time ipv4 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor media ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 8 20.0.0.0 true Routing1 20.0.0.2-20.0.4.0 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 8 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! AVC CHECKS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER2)"] ! CHECK ON THE LAN POLICY CLIENT 1 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE LAN POLICY CLIENT 2 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 1 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 2 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section class-default" -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR4451_PERF_B2B_Real1G_AVC3_8.xml0000777000006000000600000022156012226110337017656 0ustar apacheapache SANDBOX Back_to_back ISR4451 REALISTIC AVC3_8 as PRIME AVC3_8 UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "isr4451/k9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload flow exporter my-exporter description 3.9 flow exporter destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 300 option interface-table timeout 300 option vrf-table timeout 300 option sampler-table timeout 300 option application-table timeout 300 option application-attributes timeout 300 ! flow record type performance-monitor conversation-record-w-art match services waas segment account-on-resolution match connection client ipv4 address match connection server ipv4 address match connection server transport port match ipv4 protocol match application name account-on-resolution collect interface input collect interface output collect connection server counter bytes long collect connection client counter bytes long collect connection server counter packets long collect connection client counter packets long collect connection delay response to-server sum collect connection delay response to-server max collect connection delay application sum collect connection delay response client-to-server sum collect connection delay network client-to-server sum collect connection delay network to-client sum collect connection delay network to-server sum collect connection transaction duration sum collect connection transaction counter complete collect connection sum-duration collect connection new-connections collect connection client counter packets retransmitted collect connection server counter responses collect policy qos class hierarchy collect policy qos queue index collect services pfr mc-id collect services pfr class-tag-id ! flow monitor type performance-monitor conversation-monitor-w-art exporter my-exporter record conversation-record-w-art history size 0 cache type synchronized cache timeout synchronized 60 cache entries 150000 ! flow record type performance-monitor conversation-record-wo-art match services waas segment account-on-resolution match connection client ipv4 address match connection server ipv4 address match connection server transport port match ipv4 protocol match application name account-on-resolution collect interface input collect interface output collect connection server counter bytes long collect connection client counter bytes long collect connection server counter packets long collect connection client counter packets long collect connection transaction counter complete collect connection sum-duration collect connection new-connections collect connection client counter packets retransmitted collect connection server counter responses collect policy qos class hierarchy collect policy qos queue index collect services pfr mc-id collect services pfr class-tag-id ! flow monitor type performance-monitor conversation-monitor-wo-art exporter my-exporter record conversation-record-wo-art history size 0 cache type synchronized cache timeout synchronized 60 cache entries 200000 ! flow record type performance-monitor q-drops-record match policy qos queue index collect policy qos queue drops flow monitor type performance-monitor q-drops-monitor exporter my-exporter record q-drops-record history size 0 cache type synchronized cache timeout synchronized 60 cache entries 1000 ! flow record type performance-monitor url-record match connection id collect application name collect connection client ipv4 address collect routing vrf input collect application http url collect application http host ! flow monitor type performance-monitor url-monitor exporter my-exporter record url-record history size 0 cache type normal cache timeout event transaction-end cache entries 2000 ! ip access-list extended acl_ip_tcp_udp permit tcp any any permit udp any any ! ip access-list extended acl_ip_tcp_intranet permit tcp any any permit tcp any any ! class-map match-all ip_tcp_udp match protocol ip match access-group name acl_ip_tcp_udp ! class-map match-all ip_tcp_intranet match protocol ip ! ip access-list extended acl_ip_tcp permit tcp any any ! class-map match-all ip_tcp_http match protocol ip match protocol http match access-group name acl_ip_tcp ! class-map match-all ip_tcp_http_intranet match protocol http match protocol ip match access-group name acl_ip_tcp_intranet ! ip access-list extended acl_ip_udp permit udp any any permit udp any any ! class-map match-all ip_udp_rtp match protocol ip match protocol rtp match access-group name acl_ip_udp ! policy-map type performance-monitor my-policy parameter default account-on-resolution class ip_tcp_http_intranet flow monitor url-monitor flow monitor conversation-monitor-w-art flow monitor q-drops-monitor class ip_tcp_http flow monitor url-monitor flow monitor conversation-monitor-wo-art flow monitor q-drops-monitor class ip_tcp_intranet flow monitor conversation-monitor-w-art flow monitor q-drops-monitor class ip_udp_rtp flow monitor conversation-monitor-wo-art flow monitor q-drops-monitor class ip_tcp_udp flow monitor conversation-monitor-wo-art flow monitor q-drops-monitor ! Platform qos performance-monitor ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input my-policy service-policy type performance-monitor output my-policy no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 service-policy type performance-monitor input my-policy service-policy type performance-monitor output my-policy no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 1000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 7 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [#simple_uut_performance_monitor_enable uut] [#Avalanche4_2_init] [#Avalanche4_2_start traffic_gen1] [wait 60] [#Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [#880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP20_PERF_3R_CENT5G_CENTA_FAILOVER.xml0000777000006000000600000032216312233374063021662 0ustar apacheapache SANDBOX 2Routers ASR_RP2_ESP20 CENT CEF DMVPN UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.uut3.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,esp) "ESP160" uut(device,chassis_type) "" uut2(device,esp) "ESP20" uut2(device,hostname) "" uut2(device,console) "" uut2(device,rp) "RP2" uut2(device,mgt_ip) "" uut2(device,chassis_type) "" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether10000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether10000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether10000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether10000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) 14 Avalanche(uut2.ethernet.1,speed) ether10000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether10000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 3100B 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut3 1 WAN2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN uut3 1 INTER FROM_TITAN FROM_TITAN FROM_TITAN uut3 lab FROM_TITAN uut2 1 INTER FROM_TITAN uut 1 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) mtu 9216 ip address 25.0.0.2 255.255.255.0 shut no shutdown ! router eigrp 100 network 21.0.0.0 network 1.0.0.0 no auto-summary ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.0.1 key letmein ! crypto ipsec security-association replay disable crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.0.1 255.255.255.255 keyring DMVPN match identity address 25.0.0.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(uut,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 24.0.0.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 24.0.0.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(uut,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.1 remote-as 6000 neighbor 25.0.0.1 update-source loopback 0 neighbor 25.0.0.1 activate neighbor 24.0.0.1 remote-as 6000 neighbor 24.0.0.1 update-source loopback 0 neighbor 24.0.0.1 activate !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface Loopback1 ip address 1.1.1.12 255.255.255.255 no shutdown ! cent master branch source-interface Loopback1 hub 1.1.1.10 ! cent border master 1.1.1.12 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh cent border pmi 300 yes sh cent master channels 120 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes show logging 300 yes sh ip route 300 yes show cent master traffic-class 60 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT3 ! interface $uut_data(uut2,INTER) ip address 26.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 22.0.0.0 network 26.0.0.0 no auto-summary ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 24.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 24.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 24.0.0.2 ip nhrp map 1.0.1.2 24.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.1.2 ip virtual-reassembly no keepalive tunnel source $uut_data(uut2,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 24.0.0.2 remote-as 6001 neighbor 24.0.0.2 update-source loopback 0 neighbor 24.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.11 255.255.255.255 no shutdown ! cent border master 1.1.1.10 source-interface Loopback1 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! RATE LIMIT POLICY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! policy-map test class class-default shape average 1000000000 ! interface $uut_data(uut2,WAN1) service-policy output test ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % sh cent border pmi 300 yes sh cent master channels 300 yes sh cent border site-pre 300 yes sh cent border status 300 yes sh cent master status 300 yes show logging 300 yes sh ip route 300 yes show cent master traffic-class 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut3] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut3,INTER) default interface $uut_data(uut3,WAN2) ! INTERFACES THAT CONNECT TO AVALANCHE ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut3,WAN2) ip address 25.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut3,INTER) ip address 26.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 1.0.0.2 remote-as 6001 neighbor 1.0.0.2 update-source loopback 0 neighbor 1.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 25.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.0.2 ip nhrp map 1.0.0.2 25.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(uut3,WAN2) no keepalive tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.2 remote-as 6001 neighbor 25.0.0.2 update-source loopback 0 neighbor 25.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.10 255.255.255.255 no shutdown cent master hub source-interface Loopback1 border 1.1.1.10 cent-interface tunnel0 external green border 1.1.1.11 cent-interface tunnel0 external blue class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 1.1.1.10 source-interface Loopback1 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! RATE LIMIT POLICY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! policy-map test class class-default shape average 1000000000 ! interface $uut_data(uut3,WAN2) service-policy output test ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show logging 300 yes sh ip route 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 60 85 75 60 85 75 60 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 240 1 CLIENT1 240 2 CLIENT1 1460 3 CLIENT1 620 4 CLIENT1 800 5 CLIENT1 260 6 CLIENT1 340 7 CLIENT1 80 8 CLIENT1 80 9 CLIENT1 80 10 CLIENT1 80 11 CLIENT1 240 12 CLIENT1 1440 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [simple_uut_performance_init uut3] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [simple_uut_performance_exec uut3 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name uut3 -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3 p4] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [simple_uut_performance_config uut3] [simple_uut_performance_exec uut3 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut3 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut3 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [simple_uut_performance_exec uut3 "show ip route"] [simple_uut_performance_exec uut "ping 1.0.0.2"] [simple_uut_performance_exec uut2 "ping 1.0.1.1"] [simple_uut_performance_exec uut3 "ping 1.0.0.1"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [simple_uut_performance_monitor_enable uut3] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 900] [simple_uut_performance_add_complex_config -router_name uut2 -config "interface tunnel 0 \n shutdown" -flag "BR1 to tunnel shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "interface tunnel 0 \n no shutdown" -flag "BR1 to tunnel no shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n shutdown" -flag "BR2 to tunnel shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n no shutdown" -flag "BR2 to tunnel no shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "policy-map test \n class class-default \n shape average 50000000" -flag "BR1 to 50mbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "policy-map test \n class class-default \n shape average 300000000" -flag "BR1 to 300mbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "policy-map test \n class class-default \n shape average 50000000" -flag "BR2 to 50mbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "policy-map test \n class class-default \n shape average 300000000" -flag "BR2 to 300mbps"] [sleep 600] [Avalanche4_2_stop_traffic traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945e_perf_b2b_real500m_avc_310_b_bairav.xml0000777000006000000600000021043512226110337023001 0ustar apacheapache SANDBOX Back_to_back ISR3945e REALISTIC AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R13" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) RJ45 uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) RJ45 uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show proc cpu history ([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base 21.0.0.0 22.0.0.0 24 21.0.0.0 22.0.0.0 24 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 90 80 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show proc cpu history"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_b2b_real1g_nbar_prot1.xml0000777000006000000600000021062212234246150020534 0ustar apacheapache SANDBOX Back_to_back ISR3945 REALISTIC this is a test NBAR UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 8 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_64k_145_60_log_his0.xml0000777000006000000600000020434512226110337025520 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 65535 history size 0 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/anurag_profile_3945.xml0000777000006000000600000021337012231513730016765 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-sjc-users5/anuragb/c3900-universalk9-mz.SSA.3900_current;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! CENT CONFIG ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 no shutdown ! cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.2 source-interface Loopback0 ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.2 0.0.0.0 network 21.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! cent master hub source-interface Loopback0 border 10.0.0.1 cent-interface $uut_data(uut2,WAN1) external green class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 10.0.0.1 source-interface Loopback0 ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.1 0.0.0.0 network 22.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENB BASIC BORDER CONNECTION CHECK [simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [simple_uut_regex -router_name uut2 -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 600] [simple_uut_performance_exec uut "profile task interrupt"] [simple_uut_performance_exec uut "profile 4000000 06073f00 4"] [simple_uut_performance_exec uut "profile start"] [sleep 30] [simple_uut_performance_exec uut "profile stop"] [simple_uut_performance_exec uut "show profile terse"] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show cent master cent-tech"] [simple_uut_performance_exec uut "show cent border cent-tech"] [simple_uut_performance_exec uut2 "show cent master cent-tech"] [simple_uut_performance_exec uut2 "show cent border cent-tech"] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_CENT_BRANCH_HARDCODE.xml0000777000006000000600000021103112227542443021707 0ustar apacheapache SANDBOX Back_to_back ASR1001 REALISTIC AVC 3.10 Config A CENT_MMA UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload !!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.10 255.255.255.255 no shutdown cent master hub source-interface Loopback1 border 1.1.1.10 cent-interface $uut_data(uut,SERVER1) external green cent-interface $uut_data(uut,SERVER2) external orange class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 1.1.1.10 source-interface Loopback1 ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 7 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER2)"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_b2b_real1g_nbarallen2.xml0000777000006000000600000020266412234560377020526 0ustar apacheapache SANDBOX Back_to_back ISR3945 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.153-2.25.M0.11;UUT.uut.proto_pack=/auto/tftpboot/allenche/pp-adv-isrg2-153_3.M-7.1.0.pack Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R11" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown ! ip nbar protocol-pack flash:proto_pack show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.00 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_exec uut "copy tftp://223.255.254.245/$uut_data(uut,proto_pack) flash:proto_pack"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_CENT2G_CENT_MMA.xml0000777000006000000600000021220412227370664020010 0ustar apacheapache SANDBOX Back_to_back ASR1001 CENT AVC 3.10 Config A CENT_MMA UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! START OF PERF_MON ! ! flow record type performance-monitor ingress match ipv4 source prefix match ipv4 source mask match ipv4 destination prefix match ipv4 destination mask match ipv4 dscp match interface input collect transport packets lost rate collect transport bytes lost rate collect pfr one-way-delay samples collect pfr one-way-delay sum collect network delay sample collect network delay sum collect transport rtp jitter mean collect counter bytes long collect counter packets long collect timestamp absolute monitoring-interval start ! flow record type performance-monitor egress match ipv4 source prefix match ipv4 source mask match ipv4 destination prefix match ipv4 destination mask match ipv4 dscp match interface output collect counter bytes long collect counter packets long collect timestamp absolute monitoring-interval start ! ! flow exporter fe1 destination 22.0.0.21 transport udp 2055 export-protocol ipfix ! ! flow monitor type performance-monitor fm1 record ingress exporter fe1 cache timeout synchronized 120 cache entries 32768 ! flow monitor type performance-monitor fm2 record egress exporter fe1 cache timeout synchronized 120 cache entries 32768 ! class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 ! policy-map type performance-monitor p2 class c1 flow monitor fm2 ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p2 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p2 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 http httpbrowsing https dns snmp pop rtsp Inf1 citrix exchange oracle video voice 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER2)"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_2R_Real2G_CENT_MC_BR.xml0000777000006000000600000023647012233774305020340 0ustar apacheapache SANDBOX 2Routers ASR1001 REALISTIC CEF CEF UUT.uut.IMAGE=;UUT.uut2.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether1000 uut(Avalanche.ethernet.2,conn) p2p uut(Avalanche.ethernet.2,conn_id) 2 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut(uut2.ethernet.2,intf) uut(uut2.ethernet.2,speed) ether1000 uut(uut2.ethernet.2,conn) p2p uut(uut2.ethernet.2,conn_id) 2 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut.ethernet.2,intf) uut2(uut.ethernet.2,speed) ether1000 uut2(uut.ethernet.2,conn) p2p uut2(uut.ethernet.2,conn_id) 2 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.2,intf) uut2(Avalanche.ethernet.2,speed) ether1000 uut2(Avalanche.ethernet.2,conn) p2p uut2(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn) p2p Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.2,intf) Avalanche(uut2.ethernet.2,speed) ether1000 Avalanche(uut2.ethernet.2,conn) p2p Avalanche(uut2.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut2 2 SERVER2 FROM_TITAN uut 1 CLIENT1 FROM_TITAN uut 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN uut2 2 WAN2 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 SERVER2 FROM_TITAN uut 1 WAN1 FROM_TITAN uut 2 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,CLIENT2) default interface $uut_data(uut,WAN1) default interface $uut_data(uut,WAN2) ! CENT CONFIG ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 no shutdown ! ! cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.2 source-interface Loopback0 ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown ! default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) ip address 25.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.2 0.0.0.0 network 21.0.0.0 network 20.0.0.0 network 24.0.0.0 network 25.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh pl h q a infr cft status b 120 yes sh cen bo traf 300 yes sh cen bo si 300 yes show platform hardware qfp active statistics drop clear | exclude _0_ 300 yes show platform hardware qfp active infrastructure punt statistics type global-drop clear | exclude _0_ 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,SERVER2) default interface $uut_data(uut2,WAN1) default interface $uut_data(uut2,WAN2) ! ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! ! cent master hub source-interface Loopback0 border 10.0.0.1 cent-interface $uut_data(uut2,WAN1) external green cent-interface $uut_data(uut2,WAN2) external blue class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! cent border master 10.0.0.1 source-interface Loopback0 ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(uut2,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(uut2,WAN2) ip address 25.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.1 0.0.0.0 network 22.0.0.0 network 23.0.0.0 network 24.0.0.0 network 25.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh pl h q a infr cft status b 120 yes sh cen bo traf 300 yes sh cen bo si 300 yes sh pl h q a infr cft status b 120 yes sh cen bo traf 300 yes sh cen bo si 300 yes show platform hardware qfp active statistics drop clear | exclude _0_ 300 yes show platform hardware qfp active infrastructure punt statistics type global-drop clear | exclude _0_ 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENB BASIC BORDER CONNECTION CHECK [simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [simple_uut_regex -router_name uut2 -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show cent border status \n show cent border channels \n show cent border traffic-classes \n show cent border site-prefix"] [simple_uut_performance_exec uut2 "show cent border status \n show cent border channels \n show cent border traffic-classes \n show cent border site-prefix"] ! CENT BASIC CHECK Prefix Check [#simple_uut_regex -router_name uut -name "UUT BR PREFIX LOOPBACK CHECK" -regex {10.0.0.1\s+10.0.0.1} -show_command {show cent border site-prefix | i 10.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Client Prefix 21 network check" -regex {10.0.0.1\s+21.0.0.0} -show_command {show cent border site-prefix | i 21.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Client Prefix 22 network check" -regex {10.0.0.1\s+20.0.0.0} -show_command {show cent border site-prefix | i 20.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer PREFIX LOOPBACK CHECK" -regex {10.0.0.2\s+10.0.0.2} -show_command {show cent border site-prefix | i 10.0.0.2} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer Prefix 21 network check" -regex {10.0.0.2\s+22.0.0.0} -show_command {show cent border site-prefix | i 22.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer Prefix 22 network check" -regex {10.0.0.2\s+23.0.0.0} -show_command {show cent border site-prefix | i 23.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT BR PREFIX LOOPBACK CHECK" -regex {10.0.0.1\s+10.0.0.1} -show_command {show cent border site-prefix | i 10.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Client Prefix 21 network check" -regex {10.0.0.1\s+21.0.0.0} -show_command {show cent border site-prefix | i 21.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Client Prefix 22 network check" -regex {10.0.0.1\s+20.0.0.0} -show_command {show cent border site-prefix | i 20.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer PREFIX LOOPBACK CHECK" -regex {10.0.0.2\s+10.0.0.2} -show_command {show cent border site-prefix | i 10.0.0.2} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer Prefix 21 network check" -regex {10.0.0.2\s+22.0.0.0} -show_command {show cent border site-prefix | i 22.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer Prefix 22 network check" -regex {10.0.0.2\s+23.0.0.0} -show_command {show cent border site-prefix | i 23.0.0.1} -sleep 5 -retry 2] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_2R_Real1G_CENT_AVC_B_MCBR.xml0000777000006000000600000022463012226110337021147 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-sjc-users5/anuragb/c3900-universalk9-mz.SSA.3900_current;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! CENT CONFIG ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 no shutdown ! cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.2 source-interface Loopback0 ! AVC B CONFIG ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,WAN1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 ! ! class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN ! !! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown ! router eigrp 100 network 10.0.0.2 0.0.0.0 network 21.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! cent master hub source-interface Loopback0 border 10.0.0.1 cent-interface $uut_data(uut2,WAN1) external green class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 10.0.0.1 source-interface Loopback0 ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.1 0.0.0.0 network 22.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENB BASIC BORDER CONNECTION CHECK [simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [simple_uut_regex -router_name uut2 -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show cent master cent-tech"] [simple_uut_performance_exec uut "show cent border cent-tech"] [simple_uut_performance_exec uut2 "show cent master cent-tech"] [simple_uut_performance_exec uut2 "show cent border cent-tech"] ! CENT BASIC AVC RECORD CHECK [#simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {{PV4 DESTINATION PREFIX: 22.0.0.0[ \n\r\tA-Z0-9:/]+APPLICATION NAME: +layer7 exchange[A-Z0-9a-z:/ \n\r\t\.]+counter packets long aor: +\d{2}}} -show_command {show performance monitor cache detail format record} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {{PV4 DESTINATION PREFIX: 22.0.0.0[ \n\r\tA-Z0-9:/]+APPLICATION NAME: +port http[A-Z0-9a-z:/ \n\r\t\.]+counter packets long aor: +\d{2}}} -show_command {show performance monitor cache detail format record} -sleep 5 -retry 2] ! CENT BASIC CHECK Prefix Check [#simple_uut_regex -router_name uut -name "UUT BR PREFIX LOOPBACK CHECK" -regex {10.0.0.1\s+10.0.0.1} -show_command {show cent border site-prefix | i 10.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Client Prefix 21 network check" -regex {10.0.0.1\s+21.0.0.1/24} -show_command {show cent border site-prefix | i 21.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Client Prefix 22 network check" -regex {10.0.0.1\s+20.0.0.1/25} -show_command {show cent border site-prefix | i 20.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer PREFIX LOOPBACK CHECK" -regex {10.0.0.2\s+10.0.0.2} -show_command {show cent border site-prefix | i 10.0.0.2} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer Prefix 21 network check" -regex {10.0.0.2\s+22.0.0.1/24} -show_command {show cent border site-prefix | i 22.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer Prefix 22 network check" -regex {10.0.0.2\s+23.0.0.1/25} -show_command {show cent border site-prefix | i 23.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT BR PREFIX LOOPBACK CHECK" -regex {10.0.0.1\s+10.0.0.1} -show_command {show cent border site-prefix | i 10.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Client Prefix 21 network check" -regex {10.0.0.1\s+21.0.0.1/24} -show_command {show cent border site-prefix | i 21.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Client Prefix 22 network check" -regex {10.0.0.1\s+20.0.0.1/25} -show_command {show cent border site-prefix | i 20.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer PREFIX LOOPBACK CHECK" -regex {10.0.0.2\s+10.0.0.2} -show_command {show cent border site-prefix | i 10.0.0.2} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer Prefix 21 network check" -regex {10.0.0.2\s+22.0.0.1/24} -show_command {show cent border site-prefix | i 22.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer Prefix 22 network check" -regex {10.0.0.2\s+23.0.0.1/25} -show_command {show cent border site-prefix | i 23.0.0.1} -sleep 5 -retry 2] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR2911_B2B_REAL1G_NBAR.xml0000777000006000000600000020042412236030322016470 0ustar apacheapache PERFORMANCE Back_to_back ISR2911 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c2900-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "2911" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_A.xml0000777000006000000600000040361412236115432017565 0ustar apacheapache PERFORMANCE Back_to_back ASR1001 REALISTIC AVC_A PERFORMANCE TEST AVC_A UUT.uut.IMAGE=/auto/tftp-joaofer/cmukhopa/asr1001-universalk9.BLD_V154_1_S_XE311_THROTTLE_LATEST_20131102_005924-std_2.bin; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 8 20.0.0.0 true Routing1 20.0.0.2-20.0.4.0 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 8 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! AVC CHECKS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER2)"] ! CHECK ON THE LAN POLICY CLIENT 1 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE LAN POLICY CLIENT 2 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 1 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 2 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section class-default" -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945e_B2B_REAL1G_NBAR_PROTO.xml0000777000006000000600000020266512233605515017652 0ustar apacheapache SANDBOX Back_to_back ISR3945E REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900e-universalk9-mz.SPA.153-2.25.M0.11;UUT.uut.proto_pack=/auto/tftpboot/allenche/pp-adv-isrg2-153_3.M-7.1.0.pack Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE250/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE250/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown ! ip nbar protocol-pack flash:proto_pack show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_exec uut "copy tftp://223.255.254.245/$uut_data(uut,proto_pack) flash:proto_pack"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1002X_NARRA_SANITY_CENT.xml0000777000006000000600000025632412226110336017214 0ustar apacheapache SANDBOX CENT ASR1002X REALISTIC CEF CENT UUT.BR1.IMAGE=/auto/tftp-joaofer/asr1002x-universalk9.LATEST;UUT.BR2.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.MC.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.MC_BR.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,mgt_intf) "" uut2(device,rp) "RP2" uut2(device,chassis_type) "" uut3(device,hostname) "" uut3(device,console) "telnet " uut3(device,mgt_ip) "" uut3(device,mgt_intf) "GigabitEthernet0" uut3(device,chassis_type) "asr1002-x" uut4(device,hostname) "" uut4(device,console) "" uut4(device,mgt_ip) "" uut4(device,mgt_intf) "GigabitEthernet0" uut4(device,rp) "RP2" uut4(device,chassis_type) "" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut4.ethernet.1,intf) uut2(uut4.ethernet.1,speed) ether1000 uut2(uut4.ethernet.1,conn_type) p2p uut2(uut4.ethernet.1,conn_id) 1 uut3(Avalanche.ethernet.1,intf) GigabitEthernet0/0/0 uut3(Avalanche.ethernet.1,speed) ether1000 uut3(Avalanche.ethernet.1,conn_type) p2p uut3(Avalanche.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) GigabitEthernet0/0/1 uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) GigabitEthernet0/0/2 uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut4.ethernet.1,intf) GigabitEthernet0/0/3 uut3(uut4.ethernet.1,speed) ether1000 uut3(uut4.ethernet.1,conn_type) p2p uut3(uut4.ethernet.1,conn_id) 1 uut4(uut2.ethernet.1,intf) uut4(uut2.ethernet.1,speed) ether1000 uut4(uut2.ethernet.1,conn_type) p2p uut4(uut2.ethernet.1,conn_id) 1 uut4(uut3.ethernet.1,intf) uut4(uut3.ethernet.1,speed) ether1000 uut4(uut3.ethernet.1,conn_type) p2p uut4(uut3.ethernet.1,conn_id) 1 uut4(Avalanche.ethernet.1,intf) uut4(Avalanche.ethernet.1,speed) ether1000 uut4(Avalanche.ethernet.1,conn_type) p2p uut4(Avalanche.ethernet.1,conn_id) 1 uut4(Avalanche.ethernet.2,intf) uut4(Avalanche.ethernet.2,speed) ether1000 uut4(Avalanche.ethernet.2,conn_type) p2p uut4(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut3.ethernet.1,intf) Avalanche(uut3.ethernet.1,speed) ether1000 Avalanche(uut3.ethernet.1,conn_type) p2p Avalanche(uut3.ethernet.1,conn_id) 1 Avalanche(uut4.ethernet.1,intf) Avalanche(uut4.ethernet.1,speed) ether1000 Avalanche(uut4.ethernet.1,conn_type) p2p Avalanche(uut4.ethernet.1,conn_id) 1 Avalanche(uut4.ethernet.2,intf) Avalanche(uut4.ethernet.2,speed) ether1000 Avalanche(uut4.ethernet.2,conn_type) p2p Avalanche(uut4.ethernet.2,conn_id) 2 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut4 1 CLIENT1 FROM_TITAN uut4 2 CLIENT2 FROM_TITAN uut3 1 SERVER1 FROM_TITAN uut2 1 SERVER2 FROM_TITAN FROM_TITAN FROM_TITAN lab MC FROM_TITAN uut2 1 HUB_MC2 FROM_TITAN uut3 1 HUB_MC1 FROM_TITAN FROM_TITAN FROM_TITAN lab BR2 FROM_TITAN Avalanche 1 SERVER2 FROM_TITAN uut 1 HUB_MC2 FROM_TITAN uut4 1 WAN1 FROM_TITAN uut3 1 INTERBR FROM_TITAN FROM_TITAN FROM_TITAN lab BR1 FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 HUB_MC1 FROM_TITAN uut4 1 WAN2 FROM_TITAN uut2 1 INTERBR FROM_TITAN FROM_TITAN FROM_TITAN lab MC_BR uut2 1 WAN1 FROM_TITAN uut3 1 WAN2 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(MC,HUB_MC1) default interface $uut_data(MC,HUB_MC2) interface $uut_data(MC,HUB_MC2) ip address 24.0.1.1 255.255.255.0 no shutdown ! interface $uut_data(MC,HUB_MC1) ip address 24.0.2.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 24.0.1.1 0.0.0.0 network 24.0.2.1 0.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback BR1] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(BR1,WAN2) default interface $uut_data(BR1,INTERBR) default interface $uut_data(BR1,HUB_MC1) default interface $uut_data(BR1,SERVER1) interface $uut_data(BR1,WAN2) ip address 25.0.2.1 255.255.255.0 no shutdown ! interface $uut_data(BR1,INTERBR) ip address 24.0.3.1 255.255.255.0 no shutdown ! interface $uut_data(BR1,HUB_MC1) ip address 24.0.2.2 255.255.255.0 no shutdown ! interface $uut_data(BR1,SERVER1) ip address 22.0.0.1 255.0.0.0 no shutdown ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! EIGRP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! router eigrp 100 no auto-summary network 24.0.0.0 network 22.0.0.0 network 1.0.0.0 !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.2.2 remote-as 6001 neighbor 25.0.2.2 update-source $uut_data(BR1,WAN2) neighbor 25.0.2.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.2.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.2.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.2.2 ip nhrp map 1.0.0.2 25.0.2.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(BR1,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show interfaces tunnel0 | i 30 second 30 second output rate ([0-9]+) % 1000000 show interfaces tunnel0 | i 30 second 30 second input rate ([0-9]+) % 1000000 /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback BR2] use the one in router Filled by Controller after reload default interface $uut_data(BR2,HUB_MC2) default interface $uut_data(BR2,SERVER2) default interface $uut_data(BR2,INTERBR) default interface $uut_data(BR2,WAN1) interface $uut_data(BR2,HUB_MC2) ip address 24.0.1.2 255.255.255.0 no shutdown ! interface $uut_data(BR2,SERVER2) ip address 23.0.0.1 255.0.0.0 no shutdown ! interface $uut_data(BR2,INTERBR) ip address 24.0.3.2 255.255.255.0 no shutdown ! interface $uut_data(BR2,WAN1) ip address 25.0.1.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 24.0.0.0 network 23.0.0.0 network 1.0.0.0 ! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.1.2 remote-as 6001 neighbor 25.0.1.2 update-source $uut_data(BR2,WAN1) neighbor 25.0.1.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.1.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.1.2 255.255.255.255 keyring DMVPN match identity address 25.0.1.2 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.1.2 ip nhrp map 1.0.1.2 25.0.1.2 ip nhrp network-id 124 ip nhrp nhs 1.0.1.2 tunnel source $uut_data(BR1,WAN2) tunnel mode gre multipoint tunnel key 124 ip virtual-reassembly tunnel protection ipsec profile DMVPN shut no shut ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show interfaces tunnel0 | i 30 second 30 second output rate ([0-9]+) % 1000000 show interfaces tunnel0 | i 30 second 30 second input rate ([0-9]+) % 1000000 /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC_BR] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(MC_BR,WAN1) default interface $uut_data(MC_BR,WAN2) default interface $uut_data(MC_BR,CLIENT1) default interface $uut_data(MC_BR,CLIENT2) interface $uut_data(MC_BR,WAN1) ip address 25.0.1.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,WAN2) ip address 25.0.2.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,CLIENT1) ip address 21.0.0.1 255.0.0.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(MC_BR,CLIENT2) ip address 20.0.0.1 255.0.0.0 ip tcp adjust-mss 1340 no shutdown ! router eigrp 100 no auto-summary network 21.0.0.0 network 20.0.0.0 network 1.0.0.0 ! ! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.2.1 remote-as 6000 neighbor 25.0.2.1 update-source $uut_data(MC_BR,WAN2) neighbor 25.0.2.1 activate neighbor 25.0.1.1 remote-as 6000 neighbor 25.0.1.1 update-source $uut_data(MC_BR,WAN1) neighbor 25.0.1.1 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.2.1 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.2.1 255.255.255.255 keyring DMVPN match identity address 25.0.2.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(MC_BR,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 25.0.1.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 25.0.1.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(MC_BR,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 shut no shut ! ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 8 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 8 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 8 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75
      85 75 85 75
      85 75 85 75 85 75 85 75
      50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 7 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init BR1] [simple_uut_performance_init MC_BR] [simple_uut_performance_init BR2] [simple_uut_performance_init MC] [Avalanche4_2_init] [#::async::async p1 {simple_uut_reload_with_tftpdnld -router_name BR1 -tftp_server 223.255.254.245}] [#::async::async p2 {simple_uut_reload_with_tftpdnld -router_name MC -tftp_server 223.255.254.245}] [#::async::async p3 {simple_uut_reload_with_tftpdnld -router_name BR2 -tftp_server 223.255.254.245}] [#::async::async p4 {simple_uut_reload_with_tftpdnld -router_name MC_BR -tftp_server 223.255.254.245}] [#::async::wait p1 p2 p3 p4] [simple_uut_performance_add_config MC "no router eigrp 100"] [simple_uut_performance_add_config BR1 "no router eigrp 100"] [simple_uut_performance_add_config BR2 "no router eigrp 100"] [simple_uut_performance_add_config MC_BR "no router eigrp 100"] [simple_uut_performance_config MC] [simple_uut_performance_exec MC "show run"] [simple_uut_performance_config BR1] [simple_uut_performance_exec BR1 "show run"] [simple_uut_performance_config BR2] [simple_uut_performance_exec BR2 "show run"] [simple_uut_performance_config MC_BR] [simple_uut_performance_exec MC_BR "show run"] [simple_uut_performance_exec MC "show ip eigrp neighbors"] [simple_uut_performance_exec MC_BR "show ip eigrp neighbors"] [simple_uut_performance_exec BR1 "show ip eigrp neighbors"] [simple_uut_performance_exec BR2 "show ip eigrp neighbors"] [simple_uut_performance_exec BR1 "show ip bgp"] [simple_uut_performance_exec BR2 "show ip bgp"] [simple_uut_performance_exec MC_BR "show ip route"] [sleep 5] [simple_uut_performance_add_config BR2 "interface tunnel 0 \n shutdown \n"] [simple_uut_performance_add_config BR1 "interface tunnel 0 \n shutdown \n"] [simple_uut_performance_add_config BR2 "interface tunnel 0 \n no shutdown \n"] [simple_uut_performance_add_config BR1 "interface tunnel 0 \n no shutdown \n"] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable MC] [simple_uut_performance_monitor_enable BR2] [simple_uut_performance_monitor_enable BR1] [simple_uut_performance_monitor_enable MC_BR] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe BR:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe BR:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe BR:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT BR1 -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP20_PERF_B2B_Real10G_CEF.xml0000777000006000000600000020752412226110337020422 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP20 REALISTIC Plain Routing ROUTING1 UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.192" Avalanche(device,mgt_intf) "GigabitEthenet0" Avalanche2(device,mgt_ip) "172.27.63.191" Avalanche2(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R3_R2" uut(device,console) "telnet 172.27.41.161 2013" uut(device,mgt_ip) "1.18.3.2" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP20" uut(device,esp_a) "ESP20" uut(device,esp_b) "ESP20" uut(device,chassis_type) "asr1006" uut(Avalanche2.ethernet.1,intf) Te0/3/0 uut(Avalanche2.ethernet.1,speed) 10gigabit uut(Avalanche2.ethernet.1,conn_type) p2p uut(Avalanche2.ethernet.1,media) 10gbase-sr/sw uut(Avalanche2.ethernet.1,eth_mode) lan uut(Avalanche2.ethernet.1,spa) 1X10GE uut(Avalanche2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) Te0/1/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche2(uut.ethernet.1,intf) 12 Avalanche2(uut.ethernet.1,speed) ether1000 Avalanche2(uut.ethernet.1,conn_type) p2p Avalanche2(uut.ethernet.1,conn_id) 1 4 client1 FROM_TITAN CEE-3100-2X10G/1 0 uut 1 CLIENT1 FROM_TITAN server1 FROM_TITAN CEE-3100-4X10G/1 0 uut 1 SERVER1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche2 1 CLIENT1 FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,SERVER1) default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_max.exp [avalanche_call_back client1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 CLIENT1_avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.200 005http_10k_60k 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 7 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6 /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_max.exp [avalanche_call_back server1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 SERVER1_avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      30 [880_Monitor_disable] [#simple_uut_performance_init uut] [#simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [#simple_uut_performance_config uut] [#simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_duo_start client1 server1] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [sleep 30] [Avalanche4_2_trottle_enable client1] 880_while [Avalanche4_2_done client1] [sleep 10] [880_Monitor_disable] [exit] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP20_PERF_B2B_Real5G_AVC_310_A_NAT.xml0000777000006000000600000021223012226110337021675 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP20 REALISTIC Plain Routing ROUTING1 UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R3_R2" uut(device,console) "telnet 172.27.41.161 2013" uut(device,mgt_ip) "1.18.3.2" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP20" uut(device,esp_a) "ESP20" uut(device,esp_b) "ESP20" uut(device,chassis_type) "asr1006" uut(Avalanche.ethernet.1,intf) Te0/3/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te0/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ip nat translation max-entries 300000 access-list 1 permit 21.0.0.0 0.255.255.255 ip nat inside source list 1 interface $uut_data(uut,SERVER1) overload ip nat translation timeout 120 ip nat translation dns-timeout 1 ip nat translation finrst-timeout 1 ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 10000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN ip nat inside no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN ip nat outside no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [exit] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_3R_Real1G_CENT_CENTA.xml0000777000006000000600000031705012230324326020271 0ustar apacheapache SANDBOX 2Routers ASR1001 CENT CEF DMVPN_CENT UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.uut3.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "" uut(device,rp) "RP2" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut3 1 WAN2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN uut3 1 INTER FROM_TITAN FROM_TITAN FROM_TITAN uut3 lab FROM_TITAN uut2 1 INTER FROM_TITAN uut 1 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) mtu 9216 ip address 25.0.0.2 255.255.255.0 shut no shutdown ! router eigrp 100 network 21.0.0.0 network 1.0.0.0 no auto-summary ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.0.1 key letmein ! crypto ipsec security-association replay disable crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.0.1 255.255.255.255 keyring DMVPN match identity address 25.0.0.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(uut,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 24.0.0.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 24.0.0.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(uut,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.1 remote-as 6000 neighbor 25.0.0.1 update-source loopback 0 neighbor 25.0.0.1 activate neighbor 24.0.0.1 remote-as 6000 neighbor 24.0.0.1 update-source loopback 0 neighbor 24.0.0.1 activate !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface Loopback1 ip address 1.1.1.12 255.255.255.255 no shutdown ! cent master branch source-interface Loopback1 hub 1.1.1.10 ! cent border master 1.1.1.12 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh cent border pmi 300 yes sh cent master channels 120 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes show logging 300 yes sh ip route 300 yes show cent master traffic-class 60 yes sh pl h q a infr cft status b 120 yes sh cen bo traf 300 yes sh cen bo si 300 yes show platform hardware qfp active statistics drop clear | exclude _0_ 300 yes show platform hardware qfp active infrastructure punt statistics type global-drop clear | exclude _0_ 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT3 ! interface $uut_data(uut2,INTER) ip address 26.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 22.0.0.0 network 26.0.0.0 no auto-summary ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 24.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 24.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 24.0.0.2 ip nhrp map 1.0.1.2 24.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.1.2 ip virtual-reassembly no keepalive tunnel source $uut_data(uut2,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 24.0.0.2 remote-as 6001 neighbor 24.0.0.2 update-source loopback 0 neighbor 24.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.11 255.255.255.255 no shutdown ! cent border master 1.1.1.10 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % sh cent border pmi 300 yes sh cent master channels 300 yes sh cent border site-pre 300 yes sh cent border status 300 yes sh cent master status 300 yes show logging 300 yes sh ip route 300 yes show cent master traffic-class 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut3] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut3,INTER) default interface $uut_data(uut3,WAN2) ! INTERFACES THAT CONNECT TO AVALANCHE ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut3,WAN2) ip address 25.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut3,INTER) ip address 26.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 1.0.0.2 remote-as 6001 neighbor 1.0.0.2 update-source loopback 0 neighbor 1.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 25.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.0.2 ip nhrp map 1.0.0.2 25.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(uut3,WAN2) no keepalive tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.2 remote-as 6001 neighbor 25.0.0.2 update-source loopback 0 neighbor 25.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.10 255.255.255.255 no shutdown cent master hub source-interface Loopback1 border 1.1.1.10 cent-interface tunnel0 external green border 1.1.1.11 cent-interface tunnel0 external blue class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 1.1.1.10 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show logging 300 yes sh ip route 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 120 20 0.01 60 85 75 60 85 75 60 85 75 50 0.1 1600 500 30 30 1500 CLIENT1 24 1 CLIENT1 24 2 CLIENT1 146 3 CLIENT1 62 4 CLIENT1 80 5 CLIENT1 26 6 CLIENT1 34 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 144 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [simple_uut_performance_init uut3] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [simple_uut_performance_exec uut3 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name uut3 -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3 p4] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [simple_uut_performance_config uut3] [simple_uut_performance_exec uut3 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut3 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut3 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [simple_uut_performance_exec uut3 "show ip route"] [simple_uut_performance_exec uut "ping 1.0.0.2"] [simple_uut_performance_exec uut2 "ping 1.0.1.1"] [simple_uut_performance_exec uut3 "ping 1.0.0.1"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [simple_uut_performance_monitor_enable uut3] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n shutdown" -flag "BR2 to tunnel shutdown"] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP20_PERF_B2B_Real5G_AVC_310_A.xml0000777000006000000600000021153512226110337021202 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP20 REALISTIC Plain Routing ROUTING1 UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R3_R2" uut(device,console) "telnet 172.27.41.161 2013" uut(device,mgt_ip) "1.18.3.2" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP20" uut(device,esp_a) "ESP20" uut(device,esp_b) "ESP20" uut(device,chassis_type) "asr1006" uut(Avalanche.ethernet.1,intf) Te0/3/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te0/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 10000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [exit] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_b2b_real1g_nbarallen_pdmqc.xml0000777000006000000600000020402412236037655021620 0ustar apacheapache SANDBOX Back_to_back ISR3945 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.153-2.25.M0.11;UUT.uut.proto_pack=/auto/tftpboot/allenche/pp-adv-isrg2-153_3.M-7.1.0.pack Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R11" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS FROM_RUN_PARAMETERS Filled by Controller after reload class-map match-any emix match protocol rtp match protocol ssl match protocol exchange match protocol pop3 match protocol dns match protocol skype match protocol sip match protocol http url "*" match protocol smtp match protocol rtcp match protocol rtsp match protocol rtp payload-type "8" match protocol oracle-sqlnet match protocol mgcp match protocol irc match protocol citrix ica-tag "0" policy-map emix class emix default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown service-policy input emix default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown service-policy output emix ! !ip nbar protocol-pack flash:proto_pack show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.00 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_exec uut "copy tftp://223.255.254.245/$uut_data(uut,proto_pack) flash:proto_pack"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {ncube-lm\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_B2B_REAL1G_NBAR.xml0000777000006000000600000020061712236030033016503 0ustar apacheapache PERFORMANCE Back_to_back ISR3945 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP20_PERF_3R_CENT5G_BASELINE.xml0000777000006000000600000030641612226110337020720 0ustar apacheapache SANDBOX 2Routers ASR_RP2_ESP20 CENT CEF DMVPN UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.uut3.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,chassis_type) "Avalanche" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,esp) "ESP40" uut(device,chassis_type) "mcp" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,esp) "ESP20" uut2(device,chassis_type) "mcp" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,chassis_type) "asr1001" uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether10000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether10000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether10000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether10000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) 14 Avalanche(uut2.ethernet.1,speed) ether10000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether10000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 3100B 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut3 1 WAN2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN uut3 1 INTER FROM_TITAN FROM_TITAN FROM_TITAN uut3 lab FROM_TITAN uut2 1 INTER FROM_TITAN uut 1 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) mtu 9216 ip address 25.0.0.2 255.255.255.0 shut no shutdown ! router eigrp 100 network 21.0.0.0 network 1.0.0.0 no auto-summary ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.0.1 key letmein ! crypto ipsec security-association replay disable crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.0.1 255.255.255.255 keyring DMVPN match identity address 25.0.0.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(uut,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 24.0.0.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 24.0.0.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(uut,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.1 remote-as 6000 neighbor 25.0.0.1 update-source loopback 0 neighbor 25.0.0.1 activate neighbor 24.0.0.1 remote-as 6000 neighbor 24.0.0.1 update-source loopback 0 neighbor 24.0.0.1 activate show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh cent border pmi 300 yes sh cent master channels 120 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes show logging 300 yes sh ip route 300 yes show cent master traffic-class 60 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT3 ! interface $uut_data(uut2,INTER) ip address 26.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 22.0.0.0 network 26.0.0.0 no auto-summary ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 24.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 24.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 24.0.0.2 ip nhrp map 1.0.1.2 24.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.1.2 ip virtual-reassembly no keepalive tunnel source $uut_data(uut2,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 24.0.0.2 remote-as 6001 neighbor 24.0.0.2 update-source loopback 0 neighbor 24.0.0.2 activate ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut3] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut3,INTER) default interface $uut_data(uut3,WAN2) ! INTERFACES THAT CONNECT TO AVALANCHE ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut3,WAN2) ip address 25.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut3,INTER) ip address 26.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 1.0.0.2 remote-as 6001 neighbor 1.0.0.2 update-source loopback 0 neighbor 1.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 25.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.0.2 ip nhrp map 1.0.0.2 25.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(uut3,WAN2) no keepalive tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.2 remote-as 6001 neighbor 25.0.0.2 update-source loopback 0 neighbor 25.0.0.2 activate ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show logging 300 yes sh ip route 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 60 85 75 60 85 75 60 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 240 1 CLIENT1 240 2 CLIENT1 1460 3 CLIENT1 620 4 CLIENT1 800 5 CLIENT1 260 6 CLIENT1 340 7 CLIENT1 80 8 CLIENT1 80 9 CLIENT1 80 10 CLIENT1 80 11 CLIENT1 240 12 CLIENT1 1440 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [simple_uut_performance_init uut3] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [simple_uut_performance_exec uut3 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name uut3 -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3 p4] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [simple_uut_performance_config uut3] [simple_uut_performance_exec uut3 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut3 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut3 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [simple_uut_performance_exec uut3 "show ip route"] [simple_uut_performance_exec uut "ping 1.0.0.2"] [simple_uut_performance_exec uut2 "ping 1.0.1.1"] [simple_uut_performance_exec uut3 "ping 1.0.0.1"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [simple_uut_performance_monitor_enable uut3] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n shutdown" -flag "BR2 to tunnel shutdown"] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr892_b2b_real1g_cef.xml0000777000006000000600000017446012226110337017147 0ustar apacheapache SANDBOX Back_to_back ISR892 REAL AVC_310_B MMA with CENT metrics UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c800-universalk9-mz.SSA.154-0.12.T; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R17" uut(device,console) "" uut(device,chassis_type) "892" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR4451_PERF_B2B_Real2G_NBAR.xml0000777000006000000600000021062012227370665017466 0ustar apacheapache SANDBOX Back_to_back ISR4451 REALISTIC this is a test NBAR UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "isr4451/k9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 8 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_B2B_CENT1G_CEF.xml0000777000006000000600000024503212232514351017206 0ustar apacheapache SANDBOX Back_to_back ISR3945 CENT Plain Routing CEF UUT.uut.IMAGE=/auto/tftp-joaofer/c3900-universalk9-mz.SSA.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "cisco3945-chassis" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! Voice access-list 2000 permit ip any host 22.0.1.2 access-list 2000 permit ip host 22.0.1.2 any ! Citrix access-list 2001 permit ip any host 22.0.7.2 access-list 2001 permit ip host 22.0.7.2 any ! Oracle access-list 2002 permit ip any host 22.0.8.2 access-list 2002 permit ip host 22.0.8.2 any ! Exchange access-list 2003 permit ip any host 22.0.6.2 access-list 2003 permit ip host 22.0.6.2 any ! ! HTTP_10K_60K access-list 2004 permit ip any host 22.0.11.2 access-list 2004 permit ip host 22.0.11.2 any ! ! HTTP_Browsing access-list 2005 permit ip any host 22.0.12.2 access-list 2005 permit ip host 22.0.12.2 any ! RTSP access-list 2006 permit ip any host 22.0.3.2 access-list 2006 permit ip host 22.0.3.2 any ! POP access-list 2007 permit ip any host 22.0.9.2 access-list 2007 permit ip host 22.0.9.2 any ! SMTP access-list 2008 permit ip any host 22.0.10.2 access-list 2008 permit ip host 22.0.10.2 any ! DNS access-list 2009 permit ip any host 22.0.4.2 access-list 2009 permit ip host 22.0.4.2 any ! HTTPS access-list 2010 permit ip any host 22.0.5.2 access-list 2010 permit ip host 22.0.5.2 any ! class-map match_any match any class-map match_voice match access-group 2000 class-map match_citrix match access-group 2001 class-map match_oracle match access-group 2002 class-map match_exchange match access-group 2003 class-map match_http10k_60k match access-group 2004 class-map match_rtsp match access-group 2005 class-map match_httpbrowsing match access-group 2006 class-map match_pop match access-group 2007 class-map match_smtp match access-group 2008 class-map match_dns match access-group 2009 class-map match_https match access-group 2010 ! policy-map counting class match_any class match_voice class match_citrix class match_oracle class match_exchange class match_http10k_60k class match_httpbrowsing class match_rtsp class match_pop class match_smtp class match_dns class match_https ! ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! interface $uut_data(uut,SERVER1) no ip address no shutdown ! interface ${uut_data(uut,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 service-policy input counting service-policy output counting ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1600 500 30 30 500 CLIENT1 24 1 CLIENT1 24 2 CLIENT1 146 3 CLIENT1 62 4 CLIENT1 80 5 CLIENT1 26 6 CLIENT1 34 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 144 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [#simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface input"] [simple_uut_performance_exec uut "show policy-map interface output"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr892_b2b_real1g_nbar_proto.xml0000777000006000000600000020316612233561005020553 0ustar apacheapache SANDBOX Back_to_back ISR892 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-sjc-users2/allenche/c890-universalk9-mz.153-2.T;UUT.uut.proto_pack=/auto/tftpboot/allenche/pp-adv-isrg2-153_2.T-7.1.0_none_mtp_2.pack; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "892" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown ! ip nbar protocol-pack flash:proto_pack show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_exec uut "copy tftp://223.255.254.245/$uut_data(uut,proto_pack) flash:proto_pack"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_310_c_base.xml0000777000006000000600000021042312226110337021024 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 C performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-response-time ipv4 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor media ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_add_configuut "no performance monitor context my-visibility profile application-experience"] [simple_uut_performance_add_config uut "no policy-map POLICY_WAN"] [simple_uut_performance_add_config uut "no policy-map QOS_WAN"] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_CENT_Real2G_CENT_A.xml0000777000006000000600000024503412227370664020103 0ustar apacheapache SANDBOX CENT ASR1001 REALISTIC CEF CENT UUT.BR.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.MC_BR.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.MC.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,mgt_intf) "" uut2(device,chassis_type) "asr1001" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,mgt_intf) "" uut3(device,chassis_type) "asr1001" uut4(device,hostname) "" uut4(device,console) "" uut4(device,mgt_ip) "" uut4(device,chassis_type) "" uut3(uut4.ethernet.1,intf) GigabitEthernet0/0/0 uut3(uut4.ethernet.1,speed) gigabit uut3(uut4.ethernet.1,conn_type) p2p uut3(uut4.ethernet.1,media) uut3(uut4.ethernet.1,eth_mode) lan uut3(uut4.ethernet.1,conn_id) 1 uut3(Avalanche.ethernet.1,intf) GigabitEthernet0/0/1 uut3(Avalanche.ethernet.1,speed) gigabit uut3(Avalanche.ethernet.1,conn_type) p2p uut3(Avalanche.ethernet.1,media) uut3(Avalanche.ethernet.1,eth_mode) lan uut3(Avalanche.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) GigabitEthernet0/0/2 uut3(uut.ethernet.1,speed) gigabit uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,media) uut3(uut.ethernet.1,eth_mode) lan uut3(uut.ethernet.1,conn_id) 1 uut3(uut4.ethernet.2,intf) GigabitEthernet0/0/3 uut3(uut4.ethernet.2,speed) gigabit uut3(uut4.ethernet.2,conn_type) p2p uut3(uut4.ethernet.2,media) uut3(uut4.ethernet.2,eth_mode) lan uut3(uut4.ethernet.2,conn_id) 2 uut2(uut4.ethernet.1,intf) GigabitEthernet0/0/0 uut2(uut4.ethernet.1,speed) gigabit uut2(uut4.ethernet.1,conn_type) p2p uut2(uut4.ethernet.1,media) uut2(uut4.ethernet.1,eth_mode) lan uut2(uut4.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) GigabitEthernet0/0/1 uut2(Avalanche.ethernet.1,speed) gigabit uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,media) uut2(Avalanche.ethernet.1,eth_mode) lan uut2(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.2,intf) GigabitEthernet0/0/2 uut2(Avalanche.ethernet.2,speed) gigabit uut2(Avalanche.ethernet.2,conn_type) p2p uut2(Avalanche.ethernet.2,media) uut2(Avalanche.ethernet.2,eth_mode) lan uut2(Avalanche.ethernet.2,conn_id) 2 uut2(uut4.ethernet.2,intf) GigabitEthernet0/0/3 uut2(uut4.ethernet.2,speed) gigabit uut2(uut4.ethernet.2,conn_type) p2p uut2(uut4.ethernet.2,media) uut2(uut4.ethernet.2,eth_mode) lan uut2(uut4.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.1,intf) GigabitEthernet0/0/0 uut(Avalanche.ethernet.1,speed) gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) GigabitEthernet0/0/1 uut(uut3.ethernet.1,speed) gigabit uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,media) uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut4(uut2.ethernet.1,intf) uut4(uut2.ethernet.1,speed) ether1000 uut4(uut2.ethernet.1,conn_type) p2p uut4(uut2.ethernet.1,conn_id) 1 uut4(uut3.ethernet.1,intf) uut4(uut3.ethernet.1,speed) ether1000 uut4(uut3.ethernet.1,conn_type) p2p uut4(uut3.ethernet.1,conn_id) 1 uut4(uut3.ethernet.2,intf) uut4(uut3.ethernet.2,speed) ether1000 uut4(uut3.ethernet.2,conn_type) p2p uut4(uut3.ethernet.2,conn_id) 2 uut4(uut2.ethernet.2,intf) uut4(uut2.ethernet.2,speed) ether1000 uut4(uut2.ethernet.2,conn_type) p2p uut4(uut2.ethernet.2,conn_id) 2 Avalanche(uut3.ethernet.1,intf) 0 Avalanche(uut3.ethernet.1,speed) ether1000 Avalanche(uut3.ethernet.1,conn_type) p2p Avalanche(uut3.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) 1 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) 2 Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.2,intf) 3 Avalanche(uut2.ethernet.2,speed) ether1000 Avalanche(uut2.ethernet.2,conn_type) p2p Avalanche(uut2.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut3 1 CLIENT1 FROM_TITAN uut 1 CLIENT2 FROM_TITAN uut2 1 SERVER1 FROM_TITAN uut2 2 SERVER2 FROM_TITAN FROM_TITAN FROM_TITAN lab MC FROM_TITAN Avalanche 1 CLIENT2 FROM_TITAN uut3 1 LAN1 FROM_TITAN FROM_TITAN FROM_TITAN lab MC_BR FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 SERVER2 FROM_TITAN uut4 1 WAN_S1 FROM_TITAN uut4 2 WAN_S2 FROM_TITAN FROM_TITAN FROM_TITAN lab BR FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut 1 LAN1 FROM_TITAN uut4 1 WAN_C1 FROM_TITAN uut4 2 WAN_C2 FROM_TITAN FROM_TITAN FROM_TITAN lab ISP uut3 1 WAN_C1 FROM_TITAN uut3 2 WAN_C2 FROM_TITAN uut2 1 WAN_S1 FROM_TITAN uut2 2 WAN_S2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC] FROM_RUN_PARAMETERS Filled by Controller after reload cent master hub source-interface Loopback0 border 10.0.0.2 cent-interface $uut_data(BR,WAN_C1) external green cent-interface $uut_data(BR,WAN_C2) external blue class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! interface loopback 0 ip address 10.0.0.1 255.255.255.255 no shut default interface $uut_data(MC,CLIENT2) default interface $uut_data(MC,LAN1) interface $uut_data(MC,LAN1) ip address 19.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(MC,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 20.0.0.0 network 19.0.0.0 network 10.0.0.1 0.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback BR] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(BR,CLIENT1) default interface $uut_data(BR,LAN1) default interface $uut_data(BR,WAN_C1) default interface $uut_data(BR,WAN_C2) ! ! CENT CONFIG BR ! cent border source-interface Loopback0 master 10.0.0.1 ! ! interface loopback 0 ip address 10.0.0.2 255.255.255.255 no shut ! interface $uut_data(BR,LAN1) ip address 19.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(BR,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(BR,WAN_C1) ip address 50.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(BR,WAN_C2) ip address 60.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 21.0.0.0 network 19.0.0.0 network 60.0.0.0 network 50.0.0.0 network 10.0.0.2 0.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback ISP] use the one in router Filled by Controller after reload default interface $uut_data(ISP,WAN_S1) default interface $uut_data(ISP,WAN_S2) default interface $uut_data(ISP,WAN_C1) default interface $uut_data(ISP,WAN_C2) interface $uut_data(ISP,WAN_S1) ip address 70.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(ISP,WAN_S2) ip address 80.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(ISP,WAN_C1) ip address 50.0.0.2 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(ISP,WAN_C2) ip address 60.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 70.0.0.0 network 80.0.0.0 network 60.0.0.0 network 50.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC_BR] FROM_RUN_PARAMETERS Filled by Controller after reload cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.3 source-interface Loopback0 ! interface Loopback0 ip address 10.0.0.3 255.255.255.255 no shutdown ! default interface $uut_data(MC_BR,WAN_S1) default interface $uut_data(MC_BR,WAN_S2) default interface $uut_data(MC_BR,SERVER1) default interface $uut_data(MC_BR,SERVER2) interface $uut_data(MC_BR,WAN_S1) ip address 70.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,WAN_S2) ip address 80.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,SERVER1) ip address 22.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(MC_BR,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 70.0.0.0 network 80.0.0.0 network 22.0.0.0 network 23.0.0.0 network 10.0.0.3 0.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75
      85 75 85 75
      85 75 85 75 85 75 85 75
      50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init MC] [simple_uut_performance_init MC_BR] [simple_uut_performance_init BR] [simple_uut_performance_init ISP] [Avalanche4_2_init] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name MC -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name BR -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name MC_BR -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3] [simple_uut_performance_add_config MC "no router eigrp 100"] [simple_uut_performance_add_config BR "no router eigrp 100"] [simple_uut_performance_add_config ISP "no router eigrp 100"] [simple_uut_performance_add_config MC_BR "no router eigrp 100"] [simple_uut_performance_config MC] [simple_uut_performance_exec MC "show run"] [simple_uut_performance_config BR] [simple_uut_performance_exec BR "show run"] [simple_uut_performance_config ISP] [simple_uut_performance_exec ISP "show run"] [simple_uut_performance_config MC_BR] [simple_uut_performance_exec MC_BR "show run"] [simple_uut_performance_exec MC "show ip eigrp neighbors"] [simple_uut_performance_exec MC_BR "show ip eigrp neighbors"] [simple_uut_performance_exec BR "show ip eigrp neighbors"] [simple_uut_performance_exec ISP "show ip eigrp neighbors"] [simple_uut_performance_exec MC "show cent master cent-tech"] [simple_uut_performance_exec MC_BR "show cent border cent-tech"] [simple_uut_performance_exec MC_BR "show cent master cent-tech"] [simple_uut_performance_exec BR "show cent border cent-tech"] [sleep 5] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable MC] [simple_uut_performance_monitor_enable MC_BR] [simple_uut_performance_monitor_enable BR] [simple_uut_performance_monitor_enable ISP] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe BR:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe BR:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe BR:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT BR -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_mma_ezpm_mace_default.xml0000777000006000000600000017736512226110337021021 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload service internal logg buffered 1000000 performance monitor context testing profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor url traffic-monitor application-response-time traffic-monitor conversation-traffic-stats default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context testing no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_2R_Real1G_DMVPN.xml0000777000006000000600000021407212236345462017556 0ustar apacheapache PERFORMANCE 2Routers ISR3945 Realistic DMVPN config DMVPN UUT.uut.IMAGE=/auto/tftp-joaofer/c3900-universalk9-mz.SSA.GOLDEN;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "cisco3945-chassis" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} ip address 21.0.0.1 255.0.0.0 no shut ! ! ! INTERFACES THAT CONNECT TO UUT2 ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! ! router eigrp 100 network 21.0.0.0 network 1.0.0.0 no auto-summary ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto keyring DMVPN pre-shared-key address 24.0.0.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 24.0.0.1 255.255.255.255 keyring DMVPN ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(uut,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN no keepalive ip tcp adjust-mss 1340 shut no shut ip mtu 9000 ! ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT3 ! router eigrp 100 network 1.0.0.0 network 22.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 24.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 24.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 24.0.0.2 ip nhrp map 1.0.1.2 24.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.1.2 ip virtual-reassembly no keepalive tunnel source $uut_data(uut2,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN ip mtu 9000 shut no shut ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::wait p1 p2] [simple_uut_license -router_name uut -license "appxk9"] [simple_uut_license -router_name uut -license "securityk9"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [simple_uut_performance_exec uut "ping 1.0.1.2"] [simple_uut_performance_exec uut2 "ping 1.0.1.1"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "crypto encrypt check" -regex {(encaps:\s\d....*?encrypt:\s\d....*?digest:\s\d....*){1}} -show_command "show crypto ipsec sa | inc encrypt" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "crypto decrypt check" -regex {(decaps:\s\d....*?decrypt:\s\d....*?verify:\s\d....*){1}} -show_command "show crypto ipsec sa | inc decrypt" -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_b2b_real1g_nbar_prot.xml0000777000006000000600000021062012234246001020444 0ustar apacheapache SANDBOX Back_to_back ISR3945 REALISTIC this is a test NBAR UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 8 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr892_b2b_real1g_avc_310_b.xml0000777000006000000600000020047012227051104020033 0ustar apacheapache SANDBOX Back_to_back ISR892 REAL AVC_310_B MMA with CENT metrics UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c800-universalk9-mz.SSA.154-0.12.T; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R17" uut(device,console) "" uut(device,chassis_type) "892" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP40_PERF_B2B_Real5G_NBAR.xml0000777000006000000600000021236312226110337020472 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP40 REALISTIC Nbar enabled on Interface NBAR UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R16_R3" uut(device,console) "telnet 172.27.63.13 2004" uut(device,mgt_ip) "1.18.16.3" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP40" uut(device,chassis_type) "asr1013" uut(Avalanche.ethernet.1,intf) Te5/0/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,carriercard) sip40 uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te5/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,carriercard) sip40 uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [sleep 30] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_mace_64k_60.xml0000777000006000000600000020012212226110337022146 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload flow record type mace macerecord collect datalink mac source address input collect ipv4 dscp collect ipv6 dscp collect interface input collect interface output collect application name collect counter client bytes collect counter client packets collect counter server bytes collect counter server packets collect art all collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix flow monitor type mace monitorMace record macerecord exporter fe1 cache entries 65535 cache timeout update 1 class-map match-all mace-class-map-all match any ! policy-map type mace mace_global class mace-class-map-all flow monitor monitorMace default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 mace enable no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/CSR1000V_VM_PERF_B2b_Real500M_CEF.xml0000777000006000000600000017610312226110337020251 0ustar apacheapache SANDBOX Back_to_back CSR1000v REALISTIC MACE enabled MACE UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "csr1000v" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 CLIENT1 FROM_TITAN uut 2 SERVER1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 SERVER1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] /auto/tftp-joaofer/csr1000v-adventerprisek9.LATEST.bin Filled by Controller after reload interface $uut_data(uut,CLIENT1) switchport mode access switchport access vlan 100 interface $uut_data(uut,SERVER1) mace enable ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base 21.0.0.0 22.0.0.0 24 21.0.0.0 22.0.0.0 24 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 90 80 50 0.1 1200 500 30 30 500 LAN 144 1 CLIENT1 LAN 24 2 CLIENT1 LAN 34 3 CLIENT1 LAN 146 4 CLIENT1 LAN 80 5 CLIENT1 LAN 62 6 CLIENT1 LAN 8 7 CLIENT1 LAN 8 8 CLIENT1 LAN 8 9 CLIENT1 LAN 26 10 CLIENT1 LAN 8 11 CLIENT1 LAN 24 12 CLIENT1 LAN 24 13 CLIENT1
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP40_PERF_B2B_Real5G_TRAFFIC_VALIDATION.xml0000777000006000000600000021221212234551021022527 0ustar apacheapache PERFORMANCE Back_to_back ASR_RP2_ESP40 REALISTIC TRAFFIC_VALIDATION TRAFFIC_VALIDATION UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,rp) "RP2" uut(device,esp) "" uut(device,chassis_type) "" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether10000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether10000 uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether10000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether10000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload !Voice access-list 2000 permit ip any host 22.0.0.13 access-list 2000 permit ip host 22.0.0.13 any ! Citrix access-list 2001 permit ip any host 22.0.0.12 access-list 2001 permit ip host 22.0.0.12 any ! Oracle access-list 2002 permit ip any host 22.0.0.2 access-list 2002 permit ip host 22.0.0.2 any ! Exchange access-list 2003 permit ip any host 22.0.0.3 access-list 2003 permit ip host 22.0.0.3 any ! ! HTTP_10K_60K access-list 2004 permit ip any host 22.0.0.4 access-list 2004 permit ip host 22.0.0.4 any ! ! HTTP_Browsing access-list 2005 permit ip any host 22.0.0.6 access-list 2005 permit ip host 22.0.0.6 any ! RTSP access-list 2006 permit ip any host 22.0.0.5 access-list 2006 permit ip host 22.0.0.5 any ! POP access-list 2007 permit ip any host 22.0.0.7 access-list 2007 permit ip host 22.0.0.7 any ! SMTP access-list 2008 permit ip any host 22.0.0.8 access-list 2008 permit ip host 22.0.0.8 any ! DNS access-list 2009 permit ip any host 22.0.0.9 access-list 2009 permit ip host 22.0.0.9 any ! HTTPS access-list 2010 permit ip any host 22.0.0.10 access-list 2010 permit ip host 22.0.0.10 any ! Video Calls access-list 2011 permit ip any host 22.0.0.11 access-list 2011 permit ip host 22.0.0.11 any class-map match_voice match access-group 2000 class-map match_citrix match access-group 2001 class-map match_oracle match access-group 2002 class-map match_exchange match access-group 2003 class-map match_http10k_60k match access-group 2004 class-map match_rtsp match access-group 2005 class-map match_httpbrowsing match access-group 2006 class-map match_pop match access-group 2007 class-map match_smtp match access-group 2008 class-map match_dns match access-group 2009 class-map match_https match access-group 2010 class-map match_video_calls match access-group 2011 policy-map counting class match_voice class match_citrix class match_oracle class match_exchange class match_http10k_60k class match_httpbrowsing class match_rtsp class match_pop class match_smtp class match_dns class match_https class match_video_calls ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy input counting service-policy output counting no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.10.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 Subnet12 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 CITRIX 22.0.0.12 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 1494 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [sleep 30] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "sh policy-map int $uut_data(uut,SERVER1)"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP40_PERF_B2B_Real5G_NBAR_CHK.xml0000777000006000000600000021407412230051622021154 0ustar apacheapache PERFORMANCE Back_to_back ASR_RP2_ESP40 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,rp) "RP2" uut(device,esp) "ESP40" uut(device,chassis_type) "" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether10000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether10000 uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether10000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether10000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 Subnet12 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 CITRIX 22.0.0.12 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [sleep 30] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_32k_145_60_his1_time1.xml0000777000006000000600000020437112226110337025751 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 32768 history size 1 timeout 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_B2B_REAL1G_AVC_C.xml0000777000006000000600000021424512236313341016644 0ustar apacheapache PERFORMANCE Back_to_back ISR3945 REALISTIC AVC_310_C PERFORMANCE TEST AVC_C UUT.uut.IMAGE=/auto/tftp-joaofer/c3900-universalk9-mz.SSA.GOLDEN; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 C performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-response-time ipv4 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor media ipv4 traffic-monitor application-traffic-stats ! class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services ! policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default ! class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 ! policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue ! policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show memory statistics | i Processor Processor +[0-9A-Z]+ +[0-9]+ +[0-9]+ +([0-9]+) +[0-9]+ kb 1000 /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! SHOW COMMANDS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] ! CHECK ON THE LAN POLICY CLIENT 1 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 1 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] ! CHECK FLOW EXPORTER [simple_uut_performance_exec uut "show flow exporter statistics"] [simple_uut_regex -router_name uut -name "Flow exporter sent" -regex {Successfully sent: +[1-9]\d{3,}} -show_command "show flow exporter statistics | i Successfully" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "MMA-EXP-1" -regex {Client: MMA EXPORTER GROUP MMA-EXP-1[\s\n\r\t]+Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "application-attributes" -regex {Client: Option options application-attributes[\s\n\r\t]+Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "application-name" -regex {Client: Option options application-name[\s\n\r\t]+Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "MMA-EXP-2" -regex {Client: MMA EXPORTER GROUP MMA-EXP-2[\s\n\r\t]+Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "MMA-EXP-3" -regex {Client: MMA EXPORTER GROUP MMA-EXP-3[\s\n\r\t]+Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "MMA-EXP-4" -regex {Client: MMA EXPORTER GROUP MMA-EXP-4[\s\n\r\t]+Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "MMA-EXP-5" -regex {Client: MMA EXPORTER GROUP MMA-EXP-5[\s\n\r\t]+Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] ! ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945e_perf_b2b_mohassan_500m_avc_310_b.xml0000777000006000000600000021160712235530014022502 0ustar apacheapache SANDBOX Back_to_back ISR3945e Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R13" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B service internal performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor url traffic-monitor application-response-time traffic-monitor conversation-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_exec uut "show memory processor statistics history"] [simple_uut_performance_exec uut "show memory processor statistics"] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] [simple_uut_performance_exec uut "show memory processor statistics history"] [simple_uut_performance_exec uut "show memory processor statistics"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1002_PERF_CENT_Real2G_CENT_A.xml0000777000006000000600000024420412227370665020103 0ustar apacheapache SANDBOX CENT ASR1001 REALISTIC CEF CENT UUT.BR.IMAGE=/auto/tftp-joaofer/asr1000rp1-adventerprisek9.LATEST;UUT.MC_BR.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.MC.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,mgt_intf) "" uut2(device,chassis_type) "asr1001" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,mgt_intf) "" uut3(device,chassis_type) "asr1002" uut4(device,hostname) "" uut4(device,console) "" uut4(device,mgt_ip) "" uut4(device,chassis_type) "" uut3(uut4.ethernet.1,intf) GigabitEthernet0/0/0 uut3(uut4.ethernet.1,speed) gigabit uut3(uut4.ethernet.1,conn_type) p2p uut3(uut4.ethernet.1,media) uut3(uut4.ethernet.1,eth_mode) lan uut3(uut4.ethernet.1,conn_id) 1 uut3(Avalanche.ethernet.1,intf) GigabitEthernet0/0/1 uut3(Avalanche.ethernet.1,speed) gigabit uut3(Avalanche.ethernet.1,conn_type) p2p uut3(Avalanche.ethernet.1,media) uut3(Avalanche.ethernet.1,eth_mode) lan uut3(Avalanche.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) GigabitEthernet0/0/2 uut3(uut.ethernet.1,speed) gigabit uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,media) uut3(uut.ethernet.1,eth_mode) lan uut3(uut.ethernet.1,conn_id) 1 uut3(uut4.ethernet.2,intf) GigabitEthernet0/0/3 uut3(uut4.ethernet.2,speed) gigabit uut3(uut4.ethernet.2,conn_type) p2p uut3(uut4.ethernet.2,media) uut3(uut4.ethernet.2,eth_mode) lan uut3(uut4.ethernet.2,conn_id) 2 uut2(uut4.ethernet.1,intf) GigabitEthernet0/0/0 uut2(uut4.ethernet.1,speed) gigabit uut2(uut4.ethernet.1,conn_type) p2p uut2(uut4.ethernet.1,media) uut2(uut4.ethernet.1,eth_mode) lan uut2(uut4.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) GigabitEthernet0/0/1 uut2(Avalanche.ethernet.1,speed) gigabit uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,media) uut2(Avalanche.ethernet.1,eth_mode) lan uut2(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.2,intf) GigabitEthernet0/0/2 uut2(Avalanche.ethernet.2,speed) gigabit uut2(Avalanche.ethernet.2,conn_type) p2p uut2(Avalanche.ethernet.2,media) uut2(Avalanche.ethernet.2,eth_mode) lan uut2(Avalanche.ethernet.2,conn_id) 2 uut2(uut4.ethernet.2,intf) GigabitEthernet0/0/3 uut2(uut4.ethernet.2,speed) gigabit uut2(uut4.ethernet.2,conn_type) p2p uut2(uut4.ethernet.2,media) uut2(uut4.ethernet.2,eth_mode) lan uut2(uut4.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.1,intf) GigabitEthernet0/0/0 uut(Avalanche.ethernet.1,speed) gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) GigabitEthernet0/0/1 uut(uut3.ethernet.1,speed) gigabit uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,media) uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut4(uut2.ethernet.1,intf) uut4(uut2.ethernet.1,speed) ether1000 uut4(uut2.ethernet.1,conn_type) p2p uut4(uut2.ethernet.1,conn_id) 1 uut4(uut3.ethernet.1,intf) uut4(uut3.ethernet.1,speed) ether1000 uut4(uut3.ethernet.1,conn_type) p2p uut4(uut3.ethernet.1,conn_id) 1 uut4(uut3.ethernet.2,intf) uut4(uut3.ethernet.2,speed) ether1000 uut4(uut3.ethernet.2,conn_type) p2p uut4(uut3.ethernet.2,conn_id) 2 uut4(uut2.ethernet.2,intf) uut4(uut2.ethernet.2,speed) ether1000 uut4(uut2.ethernet.2,conn_type) p2p uut4(uut2.ethernet.2,conn_id) 2 Avalanche(uut3.ethernet.1,intf) 0 Avalanche(uut3.ethernet.1,speed) ether1000 Avalanche(uut3.ethernet.1,conn_type) p2p Avalanche(uut3.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) 1 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) 2 Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.2,intf) 3 Avalanche(uut2.ethernet.2,speed) ether1000 Avalanche(uut2.ethernet.2,conn_type) p2p Avalanche(uut2.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut3 1 CLIENT1 FROM_TITAN uut 1 CLIENT2 FROM_TITAN uut2 1 SERVER1 FROM_TITAN uut2 2 SERVER2 FROM_TITAN FROM_TITAN FROM_TITAN lab MC FROM_TITAN Avalanche 1 CLIENT2 FROM_TITAN uut3 1 LAN1 FROM_TITAN FROM_TITAN FROM_TITAN lab MC_BR FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 SERVER2 FROM_TITAN uut4 1 WAN_S1 FROM_TITAN uut4 2 WAN_S2 FROM_TITAN FROM_TITAN FROM_TITAN lab BR FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut 1 LAN1 FROM_TITAN uut4 1 WAN_C1 FROM_TITAN uut4 2 WAN_C2 FROM_TITAN FROM_TITAN FROM_TITAN lab ISP uut3 1 WAN_C1 FROM_TITAN uut3 2 WAN_C2 FROM_TITAN uut2 1 WAN_S1 FROM_TITAN uut2 2 WAN_S2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC] FROM_RUN_PARAMETERS Filled by Controller after reload cent master hub source-interface Loopback0 border 10.0.0.2 cent-interface $uut_data(BR,WAN_C1) external green cent-interface $uut_data(BR,WAN_C2) external blue cent-policy default sequence 10 apply-to application rtp policy voice cent-policy http sequence 20 apply-to application http policy low-latency-data cent-policy https sequence 30 apply-to application https policy low-latency-data ! interface loopback 0 ip address 10.0.0.1 255.255.255.255 no shut default interface $uut_data(MC,CLIENT2) default interface $uut_data(MC,LAN1) interface $uut_data(MC,LAN1) ip address 19.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(MC,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 20.0.0.0 network 19.0.0.0 network 10.0.0.1 0.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback BR] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(BR,CLIENT1) default interface $uut_data(BR,LAN1) default interface $uut_data(BR,WAN_C1) default interface $uut_data(BR,WAN_C2) ! ! CENT CONFIG BR ! cent border source-interface Loopback0 master 10.0.0.1 ! ! interface loopback 0 ip address 10.0.0.2 255.255.255.255 no shut ! interface $uut_data(BR,LAN1) ip address 19.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(BR,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(BR,WAN_C1) ip address 50.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(BR,WAN_C2) ip address 60.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 21.0.0.0 network 19.0.0.0 network 60.0.0.0 network 50.0.0.0 network 10.0.0.2 0.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback ISP] use the one in router Filled by Controller after reload default interface $uut_data(ISP,WAN_S1) default interface $uut_data(ISP,WAN_S2) default interface $uut_data(ISP,WAN_C1) default interface $uut_data(ISP,WAN_C2) interface $uut_data(ISP,WAN_S1) ip address 70.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(ISP,WAN_S2) ip address 80.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(ISP,WAN_C1) ip address 50.0.0.2 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(ISP,WAN_C2) ip address 60.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 70.0.0.0 network 80.0.0.0 network 60.0.0.0 network 50.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC_BR] FROM_RUN_PARAMETERS Filled by Controller after reload cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.3 source-interface Loopback0 ! interface Loopback0 ip address 10.0.0.3 255.255.255.255 no shutdown ! default interface $uut_data(MC_BR,WAN_S1) default interface $uut_data(MC_BR,WAN_S2) default interface $uut_data(MC_BR,SERVER1) default interface $uut_data(MC_BR,SERVER2) interface $uut_data(MC_BR,WAN_S1) ip address 70.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,WAN_S2) ip address 80.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,SERVER1) ip address 22.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(MC_BR,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 70.0.0.0 network 80.0.0.0 network 22.0.0.0 network 23.0.0.0 network 10.0.0.3 0.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75
      85 75 85 75
      85 75 85 75 85 75 85 75
      50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init MC] [simple_uut_performance_init MC_BR] [simple_uut_performance_init BR] [simple_uut_performance_init ISP] [Avalanche4_2_init] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name MC -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name BR -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name MC_BR -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3] [simple_uut_performance_add_config MC "no router eigrp 100"] [simple_uut_performance_add_config BR "no router eigrp 100"] [simple_uut_performance_add_config ISP "no router eigrp 100"] [simple_uut_performance_add_config MC_BR "no router eigrp 100"] [simple_uut_performance_config MC] [simple_uut_performance_exec MC "show run"] [simple_uut_performance_config BR] [simple_uut_performance_exec BR "show run"] [simple_uut_performance_config ISP] [simple_uut_performance_exec ISP "show run"] [simple_uut_performance_config MC_BR] [simple_uut_performance_exec MC_BR "show run"] [simple_uut_performance_exec MC "show ip eigrp neighbors"] [simple_uut_performance_exec MC_BR "show ip eigrp neighbors"] [simple_uut_performance_exec BR "show ip eigrp neighbors"] [simple_uut_performance_exec ISP "show ip eigrp neighbors"] [simple_uut_performance_exec MC "show cent master cent-tech"] [simple_uut_performance_exec MC_BR "show cent border cent-tech"] [simple_uut_performance_exec MC_BR "show cent master cent-tech"] [simple_uut_performance_exec BR "show cent border cent-tech"] [sleep 5] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable MC] [simple_uut_performance_monitor_enable MC_BR] [simple_uut_performance_monitor_enable BR] [simple_uut_performance_monitor_enable ISP] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe BR:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe BR:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe BR:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT BR -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_32k_145_60_log_his1_time1.xml0000777000006000000600000020436712226110337026617 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 32768 history size 1 timeout 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP20_PERF_B2B_Real5G_CEF.xml0000777000006000000600000020627512226110337020350 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP20 REALISTIC Plain Routing ROUTING1 UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R3_R2" uut(device,console) "telnet 172.27.41.161 2013" uut(device,mgt_ip) "1.18.3.2" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP20" uut(device,esp_a) "ESP20" uut(device,esp_b) "ESP20" uut(device,chassis_type) "asr1006" uut(Avalanche.ethernet.1,intf) Te0/3/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te0/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [exit] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/anurag_3945_mc_br.xml0000777000006000000600000022100012226110337016374 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-sjc-users5/anuragb/c3900-universalk9-mz.SSA.3900_current;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! CENT CONFIG ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 no shutdown ! cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.2 source-interface Loopback0 ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.2 0.0.0.0 network 21.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! cent master hub source-interface Loopback0 border 10.0.0.1 cent-interface $uut_data(uut2,WAN1) external green class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 10.0.0.1 source-interface Loopback0 ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.1 0.0.0.0 network 22.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENB BASIC BORDER CONNECTION CHECK [simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [simple_uut_regex -router_name uut2 -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show cent master cent-tech"] [simple_uut_performance_exec uut "show cent border cent-tech"] [simple_uut_performance_exec uut2 "show cent master cent-tech"] [simple_uut_performance_exec uut2 "show cent border cent-tech"] ! CENT BASIC AVC RECORD CHECK [#simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {{PV4 DESTINATION PREFIX: 22.0.0.0[ \n\r\tA-Z0-9:/]+APPLICATION NAME: +layer7 exchange[A-Z0-9a-z:/ \n\r\t\.]+counter packets long aor: +\d{2}}} -show_command {show performance monitor cache detail format record} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {{PV4 DESTINATION PREFIX: 22.0.0.0[ \n\r\tA-Z0-9:/]+APPLICATION NAME: +port http[A-Z0-9a-z:/ \n\r\t\.]+counter packets long aor: +\d{2}}} -show_command {show performance monitor cache detail format record} -sleep 5 -retry 2] ! CENT BASIC CHECK Prefix Check [#simple_uut_regex -router_name uut -name "UUT BR PREFIX LOOPBACK CHECK" -regex {10.0.0.1\s+10.0.0.1} -show_command {show cent border site-prefix | i 10.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Client Prefix 21 network check" -regex {10.0.0.1\s+21.0.0.1/24} -show_command {show cent border site-prefix | i 21.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Client Prefix 22 network check" -regex {10.0.0.1\s+20.0.0.1/25} -show_command {show cent border site-prefix | i 20.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer PREFIX LOOPBACK CHECK" -regex {10.0.0.2\s+10.0.0.2} -show_command {show cent border site-prefix | i 10.0.0.2} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer Prefix 21 network check" -regex {10.0.0.2\s+22.0.0.1/24} -show_command {show cent border site-prefix | i 22.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer Prefix 22 network check" -regex {10.0.0.2\s+23.0.0.1/25} -show_command {show cent border site-prefix | i 23.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT BR PREFIX LOOPBACK CHECK" -regex {10.0.0.1\s+10.0.0.1} -show_command {show cent border site-prefix | i 10.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Client Prefix 21 network check" -regex {10.0.0.1\s+21.0.0.1/24} -show_command {show cent border site-prefix | i 21.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Client Prefix 22 network check" -regex {10.0.0.1\s+20.0.0.1/25} -show_command {show cent border site-prefix | i 20.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer PREFIX LOOPBACK CHECK" -regex {10.0.0.2\s+10.0.0.2} -show_command {show cent border site-prefix | i 10.0.0.2} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer Prefix 21 network check" -regex {10.0.0.2\s+22.0.0.1/24} -show_command {show cent border site-prefix | i 22.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer Prefix 22 network check" -regex {10.0.0.2\s+23.0.0.1/25} -show_command {show cent border site-prefix | i 23.0.0.1} -sleep 5 -retry 2] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_32k_145_120_log_his1_time1.xml0000777000006000000600000020456412226110337026673 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 service internal flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 120 cache entries 32768 history size 1 timeout 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_64k_60.xml0000777000006000000600000020452412226110337023342 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload service internal logg buffered 1000000 flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 64000 history size 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945e_PERF_B2B_Real500M_NBAR.xml0000777000006000000600000020071612226110337020003 0ustar apacheapache SANDBOX Back_to_back ISR3945e REALISTIC NBAR enabled NBAR UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R13" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload interface $uut_data(uut,CLIENT1) ip nbar protocol-discovery ip address 21.0.0.1 255.255.255.0 no shutdown interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base 21.0.0.0 22.0.0.0 24 21.0.0.0 22.0.0.0 24 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 90 80 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP20_PERF_2R_Real5G_CEF.xml0000777000006000000600000022000212226110337020246 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP20 REALISTIC Plain Routing CEF UUT.uut.IMAGE=;UUT.uut2.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R3_R2" uut(device,console) "telnet 172.27.41.161 2013" uut(device,mgt_ip) "1.18.3.2" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP20" uut(device,esp_a) "ESP20" uut(device,esp_b) "ESP20" uut(device,chassis_type) "asr1006" uut2(device,hostname) "R15_R1" uut2(device,console) "telnet 172.27.63.13 2005" uut2(device,mgt_ip) "1.18.15.1" uut2(device,mgt_intf) "GigabitEthernet0" uut2(device,rp) "RP2" uut2(device,esp) "ESP160" uut2(device,esp_a) "ESP160" uut2(device,esp_b) "ESP160" uut2(device,chassis_type) "asr1013" uut(Avalanche.ethernet.1,intf) Te0/3/0 uut(Avalanche.ethernet.1,speed) ether10000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) Te0/1/0 uut(uut2.ethernet.1,speed) ether10000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) Te1/1/0 uut2(uut.ethernet.1,speed) ether10000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) Te1/0/0 uut2(Avalanche.ethernet.1,speed) ether10000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether10000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) 14 Avalanche(uut2.ethernet.1,speed) ether10000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 3100B 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut2 1 WAN1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN uut 1 WAN1 FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ip route 22.0.0.0 255.0.0.0 24.0.0.2 ! interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown ! ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! ip route 21.0.0.0 255.0.0.0 24.0.0.1 ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show plat hard qfp act feature ipsec data drop"] [simple_uut_performance_exec uut "show plat hard qfp act statistics drop "] [simple_uut_performance_exec uut2 "show plat hard qfp act feature ipsec data drop"] [simple_uut_performance_exec uut2 "show plat hard qfp act statistics drop "] [simple_uut_performance_exec uut "show logging"] [simple_uut_performance_exec uut2 "show logging"] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/0000777000006000000600000000000012236314303014312 5ustar apacheapachesite_pro/XML/_gsdata_/2013-1104-144519-CMUKHOPA-WS-xml.log0000644331000000000310000000622012236021602017555 0ustar named2013-11-04 14:45:20: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-04 14:45:20: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-04 14:45:20: L: Files: 210 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.4 GB, Total: 167 GB 2013-11-04 14:45:20: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-04 14:45:20: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-04 14:45:20: R: Files: 212 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-04 14:45:20: /ASR1001_PERF_B2B_Real2G_AVC_B.xml: Conflict: File Modified on Both Sides 2013-11-04 14:45:20: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-04 14:45:20: Changes: 7, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-04 14:45:20: Left to Right: Copy File: 5 2013-11-04 14:45:20: -- Analysis Completed. Time 00:00:01, Speed: 211 files/s 2013-11-04 14:45:20: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-04 14:45:20: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-04 14:45:21: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-04 14:45:21: Copy Over 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_AVC_A.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_A.xml' 2013-11-04 14:45:21: Copy Over 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_AVC_B.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_B.xml' 2013-11-04 14:45:21: Copy Over 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_AVC_C.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_C.xml' 2013-11-04 14:45:22: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_A.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_A.xml' 2013-11-04 14:45:22: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_B.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_B.xml' 2013-11-04 14:45:22: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-04 14:45:22: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-04 14:45:22: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-04 14:45:22: Items Synced OK: 5, Errors: 2 2013-11-04 14:45:22: == Sync Completed. Time: 00:00:02, Speed: 292 KB/s (14.7 KB/s) 2013-11-04 14:45:22: site_pro/XML/_gsdata_/2013-1101-174610-CMUKHOPA-WS-xml.log0000644331000000000310000000421012235045530017547 0ustar named2013-11-01 17:46:12: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-01 17:46:12: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 17:46:12: L: Files: 202 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.6 GB, Total: 167 GB 2013-11-01 17:46:15: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 17:46:15: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 17:46:15: R: Files: 204 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-01 17:46:15: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-01 17:46:15: Changes: 2, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-01 17:46:15: -- Analysis Completed. Time 00:00:05, Speed: 40 files/s 2013-11-01 17:46:15: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-01 17:46:15: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 17:46:15: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 17:46:15: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 17:46:16: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-01 17:46:16: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-01 17:46:16: Items Synced OK: 0, Errors: 2 2013-11-01 17:46:16: == Sync Completed. Time: 00:00:01, Speed: 5.03 KB/s (15.9 KB/s) 2013-11-01 17:46:16: site_pro/XML/_gsdata_/2013-1101-124625-CMUKHOPA-WS-xml.log0000644331000000000310000000624712235002432017556 0ustar named2013-11-01 12:46:26: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-01 12:46:26: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 12:46:27: L: Files: 202 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.6 GB, Total: 167 GB 2013-11-01 12:46:28: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 12:46:28: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 12:46:28: R: Files: 204 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-01 12:46:28: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-01 12:46:28: Changes: 8, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-01 12:46:28: Left to Right: Copy File: 6 2013-11-01 12:46:28: -- Analysis Completed. Time 00:00:03, Speed: 67 files/s 2013-11-01 12:46:28: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-01 12:46:28: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 12:46:28: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 12:46:29: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR1941_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR1941_B2B_REAL1G_NBAR.xml' 2013-11-01 12:46:30: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR2951_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR2951_B2B_REAL1G_NBAR.xml' 2013-11-01 12:46:31: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3925_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3925_B2B_REAL1G_NBAR.xml' 2013-11-01 12:46:31: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_NBAR.xml' 2013-11-01 12:46:31: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 12:46:32: Copy Over 'C:\Users\cmukhopa\Documents\XML\isr892_b2b_real1g.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/isr892_b2b_real1g.xml' 2013-11-01 12:46:33: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR892FSP_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR892FSP_B2B_REAL1G_NBAR.xml' 2013-11-01 12:46:34: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-01 12:46:34: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-01 12:46:34: Items Synced OK: 6, Errors: 2 2013-11-01 12:46:34: == Sync Completed. Time: 00:00:06, Speed: 143 KB/s (161 KB/s) 2013-11-01 12:46:34: site_pro/XML/_gsdata_/2013-1105-110550-CMUKHOPA-WS-xml.log0000644331000000000310000000650512236240622017555 0ustar named2013-11-05 11:05:52: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-05 11:05:52: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-05 11:05:52: L: Files: 213 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.4 GB, Total: 167 GB 2013-11-05 11:05:52: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-05 11:05:52: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-05 11:05:52: Two items on Right side are named the same after normalization and lower-casing: '/isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml' vs '/isr3945e_perf_b2b_real1g_mohassan_200m_avc_310_b.xml' 2013-11-05 11:05:52: R: Files: 215 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-05 11:05:52: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-05 11:05:52: Changes: 7, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 3 2013-11-05 11:05:52: Right to Left: Copy File: 3 Delete File: 1 2013-11-05 11:05:52: -- Analysis Completed. Time 00:00:02, Speed: 107 files/s 2013-11-05 11:05:52: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-05 11:05:52: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-05 11:05:52: Delete File 'C:\Users\cmukhopa\Documents\XML\isr3945_perf_b2b_lcac_mohassan_310_b_with_art.xml' 2013-11-05 11:05:53: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/anurag_xray_profile_3945.xml' -> 'C:\Users\cmukhopa\Documents\XML\anurag_xray_profile_3945.xml' 2013-11-05 11:05:53: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-05 11:05:53: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_B.xml' -> 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_AVC_B.xml' 2013-11-05 11:05:53: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_C.xml' -> 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_C.xml' 2013-11-05 11:05:53: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-05 11:05:53: /isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml' vs '/isr3945e_perf_b2b_real1g_mohassan_200m_avc_310_b.xml' 2013-11-05 11:05:53: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-05 11:05:53: Sync finished with 3 errors. Click Errors button to see sync errors 2013-11-05 11:05:53: Items Synced OK: 4, Errors: 3 2013-11-05 11:05:53: == Sync Completed. Time: 00:00:01, Speed: 222 KB/s (16.4 KB/s) 2013-11-05 11:05:53: site_pro/XML/_gsdata_/2013-1031-162414-CMUKHOPA-WS-xml.log0000644331000000000310000000770512234563242017570 0ustar named2013-10-31 16:24:15: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-10-31 16:24:15: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-10-31 16:24:15: L: Files: 200 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 100 GB, Total: 167 GB 2013-10-31 16:24:15: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-10-31 16:24:15: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-10-31 16:24:15: R: Files: 204 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-10-31 16:24:15: Analyze has finished with Errors. Click Errors button to see all error items 2013-10-31 16:24:15: Changes: 12, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-10-31 16:24:15: Left to Right: Copy File: 7 2013-10-31 16:24:15: Right to Left: Copy File: 3 2013-10-31 16:24:15: -- Analysis Completed. Time 00:00:01, Speed: 203 files/s 2013-10-31 16:24:15: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-10-31 16:24:15: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-10-31 16:24:15: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-10-31 16:24:16: Copy Over 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_CEF.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_CEF.xml' 2013-10-31 16:24:16: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR1941_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR1941_B2B_REAL1G_NBAR.xml' 2013-10-31 16:24:16: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR2911_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR2911_B2B_REAL1G_NBAR.xml' 2013-10-31 16:24:16: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR2951_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR2951_B2B_REAL1G_NBAR.xml' 2013-10-31 16:24:17: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/isr3945_b2b_real1g_nbar_proto.xml' -> 'C:\Users\cmukhopa\Documents\XML\isr3945_b2b_real1g_nbar_proto.xml' 2013-10-31 16:24:17: Copy New 'sftp://joao-lnx/var/www/html/site_pro/XML/isr3945_b2b_real1g_nbarallen.xml' -> 'C:\Users\cmukhopa\Documents\XML\isr3945_b2b_real1g_nbarallen.xml' 2013-10-31 16:24:17: Copy New 'sftp://joao-lnx/var/www/html/site_pro/XML/isr3945_b2b_real1g_nbarallen2.xml' -> 'C:\Users\cmukhopa\Documents\XML\isr3945_b2b_real1g_nbarallen2.xml' 2013-10-31 16:24:17: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-10-31 16:24:17: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3945e_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945e_B2B_REAL1G_NBAR.xml' 2013-10-31 16:24:18: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3945e_B2B_REAL1G_TRAFFIC_VALIDATION.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945e_B2B_REAL1G_TRAFFIC_VALIDATION.xml' 2013-10-31 16:24:18: Copy Over 'C:\Users\cmukhopa\Documents\XML\isr892_b2b_real1g.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/isr892_b2b_real1g.xml' 2013-10-31 16:24:18: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-10-31 16:24:18: Sync finished with 2 errors. Click Errors button to see sync errors 2013-10-31 16:24:18: Items Synced OK: 10, Errors: 2 2013-10-31 16:24:18: == Sync Completed. Time: 00:00:03, Speed: 271 KB/s (2.60 MB/s) 2013-10-31 16:24:18: site_pro/XML/_gsdata_/2013-1101-114621-CMUKHOPA-WS-xml.log0000644331000000000310000000421112234773400017547 0ustar named2013-11-01 11:46:22: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-01 11:46:22: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 11:46:22: L: Files: 202 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.7 GB, Total: 167 GB 2013-11-01 11:46:23: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 11:46:23: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 11:46:23: R: Files: 204 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-01 11:46:23: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-01 11:46:23: Changes: 2, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-01 11:46:23: -- Analysis Completed. Time 00:00:02, Speed: 101 files/s 2013-11-01 11:46:23: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-01 11:46:23: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 11:46:24: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 11:46:24: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 11:46:24: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-01 11:46:24: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-01 11:46:24: Items Synced OK: 0, Errors: 2 2013-11-01 11:46:24: == Sync Completed. Time: 00:00:01, Speed: 5.02 KB/s (48.7 KB/s) 2013-11-01 11:46:24: site_pro/XML/_gsdata_/_recycled_db._gs0000644331000000000310000000023612234554215016105 0ustar named .2 241w2rru1tsr ҫͩ)5406202501w  0w 01p rhNM1hwa CTF-63;-8H"*K?a#͚|lXsite_pro/XML/_gsdata_/2013-1104-154523-CMUKHOPA-WS-xml.log0000644331000000000310000001033412236030627017561 0ustar named2013-11-04 15:45:24: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-04 15:45:24: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-04 15:45:24: L: Files: 210 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.4 GB, Total: 167 GB 2013-11-04 15:45:24: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-04 15:45:24: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-04 15:45:24: R: Files: 212 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-04 15:45:24: /ASR1001_PERF_B2B_Real2G_TRAFFIC_VALIDATION.xml: Conflict: File Modified on Both Sides 2013-11-04 15:45:24: /ISR3945_B2B_REAL1G_AVC_A.xml: Conflict: File Modified on Both Sides 2013-11-04 15:45:24: /ISR3945_B2B_REAL1G_AVC_B.xml: Conflict: File Modified on Both Sides 2013-11-04 15:45:24: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-04 15:45:24: Changes: 12, Conflicts: 0, CopyTime: 0, CopyState: 0/5, Errors: 2 2013-11-04 15:45:24: Left to Right: Copy File: 9 2013-11-04 15:45:24: Right to Left: Copy File: 1 2013-11-04 15:45:24: -- Analysis Completed. Time 00:00:01, Speed: 211 files/s 2013-11-04 15:45:24: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-04 15:45:24: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-04 15:45:24: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-04 15:45:24: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_TRAFFIC_VALIDATION.xml' -> 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_TRAFFIC_VALIDATION.xml' 2013-11-04 15:45:25: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR1941_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR1941_B2B_REAL1G_NBAR.xml' 2013-11-04 15:45:25: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR2911_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR2911_B2B_REAL1G_NBAR.xml' 2013-11-04 15:45:25: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR2951_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR2951_B2B_REAL1G_NBAR.xml' 2013-11-04 15:45:26: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3925_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3925_B2B_REAL1G_NBAR.xml' 2013-11-04 15:45:26: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_A.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_A.xml' 2013-11-04 15:45:26: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_B.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_B.xml' 2013-11-04 15:45:26: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_NBAR.xml' 2013-11-04 15:45:26: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-04 15:45:27: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3945e_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945e_B2B_REAL1G_NBAR.xml' 2013-11-04 15:45:27: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR892FSP_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR892FSP_B2B_REAL1G_NBAR.xml' 2013-11-04 15:45:27: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-04 15:45:27: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-04 15:45:27: Items Synced OK: 15, Errors: 2 2013-11-04 15:45:27: == Sync Completed. Time: 00:00:03, Speed: 219 KB/s (271 KB/s) 2013-11-04 15:45:27: site_pro/XML/_gsdata_/2013-1104-232855-CMUKHOPA-WS-xml.log0000644331000000000310000000607412236117076017600 0ustar named2013-11-04 23:28:56: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-04 23:28:56: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-04 23:28:57: L: Files: 210 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.4 GB, Total: 167 GB 2013-11-04 23:28:58: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-04 23:28:58: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-04 23:28:58: R: Files: 215 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-04 23:28:58: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-04 23:28:58: Changes: 7, Conflicts: 0, CopyTime: 0, CopyState: 0/3, Errors: 2 2013-11-04 23:28:58: Right to Left: Copy File: 4 Delete File: 1 2013-11-04 23:28:58: -- Analysis Completed. Time 00:00:03, Speed: 71 files/s 2013-11-04 23:28:58: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-04 23:28:58: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-04 23:28:59: Delete File 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_310_B.xml' 2013-11-04 23:28:59: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-04 23:28:59: Copy New 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_C.xml' -> 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_C.xml' 2013-11-04 23:29:00: Copy New 'sftp://joao-lnx/var/www/html/site_pro/XML/isr3945_b2b_real1g_nbarallen_pdmqc.xml' -> 'C:\Users\cmukhopa\Documents\XML\isr3945_b2b_real1g_nbarallen_pdmqc.xml' 2013-11-04 23:29:00: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-04 23:29:01: Copy New 'sftp://joao-lnx/var/www/html/site_pro/XML/isr3945e_perf_b2b_mohassan_200m_avc_310_b.xml' -> 'C:\Users\cmukhopa\Documents\XML\isr3945e_perf_b2b_mohassan_200m_avc_310_b.xml' 2013-11-04 23:29:02: Copy New 'sftp://joao-lnx/var/www/html/site_pro/XML/isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml' -> 'C:\Users\cmukhopa\Documents\XML\isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml' 2013-11-04 23:29:02: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-04 23:29:02: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-04 23:29:02: Items Synced OK: 8, Errors: 2 2013-11-04 23:29:02: == Sync Completed. Time: 00:00:04, Speed: 92.2 KB/s (184 KB/s) 2013-11-04 23:29:02: site_pro/XML/_gsdata_/2013-1102-110310-CMUKHOPA-WS-xml.log0000644331000000000310000000421012235237143017536 0ustar named2013-11-02 11:03:13: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-02 11:03:13: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-02 11:03:13: L: Files: 202 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.7 GB, Total: 167 GB 2013-11-02 11:03:14: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-02 11:03:14: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-02 11:03:14: R: Files: 204 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-02 11:03:14: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-02 11:03:14: Changes: 2, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-02 11:03:14: -- Analysis Completed. Time 00:00:04, Speed: 50 files/s 2013-11-02 11:03:14: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-02 11:03:14: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-02 11:03:14: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-02 11:03:14: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-02 11:03:15: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-02 11:03:15: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-02 11:03:15: Items Synced OK: 0, Errors: 2 2013-11-02 11:03:15: == Sync Completed. Time: 00:00:01, Speed: 5.03 KB/s (33.3 KB/s) 2013-11-02 11:03:15: site_pro/XML/_gsdata_/2013-1101-184618-CMUKHOPA-WS-xml.log0000644331000000000310000000421012235054556017570 0ustar named2013-11-01 18:46:19: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-01 18:46:19: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 18:46:19: L: Files: 202 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.6 GB, Total: 167 GB 2013-11-01 18:46:21: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 18:46:21: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 18:46:21: R: Files: 204 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-01 18:46:21: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-01 18:46:21: Changes: 2, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-01 18:46:21: -- Analysis Completed. Time 00:00:03, Speed: 67 files/s 2013-11-01 18:46:21: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-01 18:46:21: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 18:46:21: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 18:46:21: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 18:46:21: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-01 18:46:21: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-01 18:46:22: Items Synced OK: 0, Errors: 2 2013-11-01 18:46:22: == Sync Completed. Time: 00:00:01, Speed: 5.03 KB/s (15.9 KB/s) 2013-11-01 18:46:22: site_pro/XML/_gsdata_/2013-1105-140602-CMUKHOPA-WS-xml.log0000644331000000000310000000634112236265714017565 0ustar named2013-11-05 14:06:02: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-05 14:06:02: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-05 14:06:02: L: Files: 212 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 100 GB, Total: 167 GB 2013-11-05 14:06:03: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-05 14:06:03: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-05 14:06:03: Two items on Right side are named the same after normalization and lower-casing: '/isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml' vs '/isr3945e_perf_b2b_real1g_mohassan_200m_avc_310_b.xml' 2013-11-05 14:06:03: R: Files: 215 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-05 14:06:03: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-05 14:06:03: Changes: 6, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 3 2013-11-05 14:06:03: Right to Left: Copy File: 3 2013-11-05 14:06:03: -- Analysis Completed. Time 00:00:01, Speed: 213 files/s 2013-11-05 14:06:03: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-05 14:06:03: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-05 14:06:03: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-05 14:06:03: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_B.xml' -> 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_AVC_B.xml' 2013-11-05 14:06:04: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_C.xml' -> 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_C.xml' 2013-11-05 14:06:04: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-05 14:06:04: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/isr3945e_perf_b2b_mohassan_200m_avc_310_b.xml' -> 'C:\Users\cmukhopa\Documents\XML\isr3945e_perf_b2b_mohassan_200m_avc_310_b.xml' 2013-11-05 14:06:04: /isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml' vs '/isr3945e_perf_b2b_real1g_mohassan_200m_avc_310_b.xml' 2013-11-05 14:06:04: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-05 14:06:04: Sync finished with 3 errors. Click Errors button to see sync errors 2013-11-05 14:06:04: Items Synced OK: 3, Errors: 3 2013-11-05 14:06:04: == Sync Completed. Time: 00:00:01, Speed: 217 KB/s (14.0 KB/s) 2013-11-05 14:06:04: site_pro/XML/_gsdata_/_cleanup.gss0000644331000000000310000000000012235765464015321 0ustar namedsite_pro/XML/_gsdata_/2013-1105-171750-CMUKHOPA-WS-xml.log0000644331000000000310000001227412236314303017564 0ustar named2013-11-05 17:17:52: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-05 17:17:52: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-05 17:17:52: L: Files: 212 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 100 GB, Total: 167 GB 2013-11-05 17:17:52: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-05 17:17:52: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-05 17:17:52: R: Files: 207 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-05 17:17:52: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-05 17:17:52: Changes: 22, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-05 17:17:52: Right to Left: Copy File: 8 Delete File: 12 2013-11-05 17:17:52: -- Analysis Completed. Time 00:00:02, Speed: 109 files/s 2013-11-05 17:17:52: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-05 17:17:52: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-05 17:17:53: Delete File 'C:\Users\cmukhopa\Documents\XML\isr3945_mma_ezpm_mace.xml~' 2013-11-05 17:17:53: Delete File 'C:\Users\cmukhopa\Documents\XML\isr3945_mma_ezpm_mace_145.xml~' 2013-11-05 17:17:53: Delete File 'C:\Users\cmukhopa\Documents\XML\isr3945_perf_b2b_murthy500m_mace_64k_60.xml~' 2013-11-05 17:17:53: Delete File 'C:\Users\cmukhopa\Documents\XML\isr3945_perf_b2b_murthy500m_pi23_mma_pa.xml~' 2013-11-05 17:17:53: Delete File 'C:\Users\cmukhopa\Documents\XML\isr3945_perf_b2b_murthy500m_pi23_mma_pa_2.xml~' 2013-11-05 17:17:53: Delete File 'C:\Users\cmukhopa\Documents\XML\isr3945_perf_b2b_murthy500m_pi23_mma_pa_3.xml~' 2013-11-05 17:17:53: Delete File 'C:\Users\cmukhopa\Documents\XML\isr3945_perf_b2b_murthy500m_pi23_mma_pa_32k_145_120_log_his1_time1.xml~' 2013-11-05 17:17:53: Delete File 'C:\Users\cmukhopa\Documents\XML\isr3945_perf_b2b_murthy500m_pi23_mma_pa_32k_145_60_his1_time1.xml~' 2013-11-05 17:17:53: Delete File 'C:\Users\cmukhopa\Documents\XML\isr3945_perf_b2b_murthy500m_pi23_mma_pa_32k_145_60_log_his1.xml~' 2013-11-05 17:17:53: Delete File 'C:\Users\cmukhopa\Documents\XML\isr3945_perf_b2b_murthy500m_pi23_mma_pa_64k_145_60_log_his1_exp_15xml.xml~' 2013-11-05 17:17:53: Delete File 'C:\Users\cmukhopa\Documents\XML\isr3945_perf_b2b_murthy500m_pi23_mma_pa_64k_145_60_log_his1_time1.xml~' 2013-11-05 17:17:54: Delete File 'C:\Users\cmukhopa\Documents\XML\isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml' 2013-11-05 17:17:54: Copy New 'sftp://joao-lnx/var/www/html/site_pro/XML/.isr3945e_perf_b2b_mohassan_200m_real_avc_210_b.xml.swp' -> 'C:\Users\cmukhopa\Documents\XML\.isr3945e_perf_b2b_mohassan_200m_real_avc_210_b.xml.swp' 2013-11-05 17:17:54: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-05 17:17:54: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_B.xml' -> 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_AVC_B.xml' 2013-11-05 17:17:55: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_C.xml' -> 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_C.xml' 2013-11-05 17:17:55: Copy New 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_PERF_2R_Real1G_DMVPN.xml' -> 'C:\Users\cmukhopa\Documents\XML\ISR3945_PERF_2R_Real1G_DMVPN.xml' 2013-11-05 17:17:55: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-05 17:17:55: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/isr3945e_perf_b2b_mohassan_200m_avc_310_b.xml' -> 'C:\Users\cmukhopa\Documents\XML\isr3945e_perf_b2b_mohassan_200m_avc_310_b.xml' 2013-11-05 17:17:55: Copy New 'sftp://joao-lnx/var/www/html/site_pro/XML/isr3945e_perf_b2b_mohassan_200m_avc_310_b.xml~' -> 'C:\Users\cmukhopa\Documents\XML\isr3945e_perf_b2b_mohassan_200m_avc_310_b.xml~' 2013-11-05 17:17:56: Copy New 'sftp://joao-lnx/var/www/html/site_pro/XML/isr3945e_perf_b2b_mohassan_200m_real_avc_210_b.xml' -> 'C:\Users\cmukhopa\Documents\XML\isr3945e_perf_b2b_mohassan_200m_real_avc_210_b.xml' 2013-11-05 17:17:56: Copy New 'sftp://joao-lnx/var/www/html/site_pro/XML/isr3945e_perf_b2b_mohassan_200m_real_avc_210_b.xml~' -> 'C:\Users\cmukhopa\Documents\XML\isr3945e_perf_b2b_mohassan_200m_real_avc_210_b.xml~' 2013-11-05 17:17:56: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-05 17:17:56: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-05 17:17:56: Items Synced OK: 20, Errors: 2 2013-11-05 17:17:56: == Sync Completed. Time: 00:00:04, Speed: 125 KB/s (1.95 MB/s) 2013-11-05 17:17:56: site_pro/XML/_gsdata_/2013-1105-130557-CMUKHOPA-WS-xml.log0000644331000000000310000000555312236256667017610 0ustar named2013-11-05 13:05:58: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-05 13:05:58: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-05 13:05:58: L: Files: 212 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.9 GB, Total: 167 GB 2013-11-05 13:05:58: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-05 13:05:58: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-05 13:05:58: Two items on Right side are named the same after normalization and lower-casing: '/isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml' vs '/isr3945e_perf_b2b_real1g_mohassan_200m_avc_310_b.xml' 2013-11-05 13:05:58: R: Files: 215 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-05 13:05:58: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-05 13:05:58: Changes: 4, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 3 2013-11-05 13:05:58: Right to Left: Copy File: 1 2013-11-05 13:05:58: -- Analysis Completed. Time 00:00:01, Speed: 213 files/s 2013-11-05 13:05:58: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-05 13:05:58: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-05 13:05:59: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-05 13:05:59: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_B.xml' -> 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_AVC_B.xml' 2013-11-05 13:05:59: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-05 13:05:59: /isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml' vs '/isr3945e_perf_b2b_real1g_mohassan_200m_avc_310_b.xml' 2013-11-05 13:05:59: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-05 13:05:59: Sync finished with 3 errors. Click Errors button to see sync errors 2013-11-05 13:05:59: Items Synced OK: 1, Errors: 3 2013-11-05 13:05:59: == Sync Completed. Time: 00:00:01, Speed: 81.5 KB/s (84.8 KB/s) 2013-11-05 13:05:59: site_pro/XML/_gsdata_/2013-1104-114508-CMUKHOPA-WS-xml.log0000644331000000000310000000531012235774506017570 0ustar named2013-11-04 11:45:08: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-04 11:45:08: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-04 11:45:08: L: Files: 206 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.7 GB, Total: 167 GB 2013-11-04 11:45:09: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-04 11:45:09: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-04 11:45:09: R: Files: 206 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-04 11:45:09: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-04 11:45:09: Changes: 5, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-04 11:45:09: Left to Right: Copy File: 3 2013-11-04 11:45:09: -- Analysis Completed. Time 00:00:01, Speed: 207 files/s 2013-11-04 11:45:09: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-04 11:45:09: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-04 11:45:09: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-04 11:45:09: Copy New 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_310_A.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_310_A.xml' 2013-11-04 11:45:09: Copy New 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_310_B.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_310_B.xml' 2013-11-04 11:45:10: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_NBAR.xml' 2013-11-04 11:45:10: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-04 11:45:10: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-04 11:45:10: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-04 11:45:10: Items Synced OK: 3, Errors: 2 2013-11-04 11:45:10: == Sync Completed. Time: 00:00:01, Speed: 364 KB/s (13.6 KB/s) 2013-11-04 11:45:10: site_pro/XML/_gsdata_/2013-1101-214636-CMUKHOPA-WS-xml.log0000644331000000000310000000421012235101662017551 0ustar named2013-11-01 21:46:38: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-01 21:46:38: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 21:46:38: L: Files: 202 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.6 GB, Total: 167 GB 2013-11-01 21:46:40: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 21:46:40: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 21:46:40: R: Files: 204 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-01 21:46:40: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-01 21:46:40: Changes: 2, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-01 21:46:40: -- Analysis Completed. Time 00:00:04, Speed: 50 files/s 2013-11-01 21:46:40: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-01 21:46:40: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 21:46:40: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 21:46:40: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 21:46:41: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-01 21:46:41: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-01 21:46:41: Items Synced OK: 0, Errors: 2 2013-11-01 21:46:41: == Sync Completed. Time: 00:00:01, Speed: 5.03 KB/s (24.7 KB/s) 2013-11-01 21:46:41: site_pro/XML/_gsdata_/2013-1031-152255-CMUKHOPA-WS-xml.log0000644331000000000310000001037212234554215017564 0ustar named2013-10-31 15:22:55: -- xml: ANALYSIS started by User on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-10-31 15:22:55: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML 2013-10-31 15:22:55: L: State file does not exist: C:\Users\cmukhopa\Documents\XML\_gsdata_\_file_state._gs 2013-10-31 15:22:55: L: No State File found, New State will be built 2013-10-31 15:22:55: L: Files: 200 (excluded 0). Folders: 0 (excluded 0). C: NTFS, Free: 100 GB, Total: 167 GB 2013-10-31 15:22:55: R: State file does not exist: sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state._gs 2013-10-31 15:22:55: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-10-31 15:22:55: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-10-31 15:22:55: R: No State File found, New State will be built 2013-10-31 15:22:55: R: Files: 202 (excluded 0). Folders: 0 (excluded 0). SSH-1.99-OpenSSH_4.3 2013-10-31 15:22:55: /ASR1002_PERF_B2B_Real2G_NBAR.xml: Conflict: New files that differ 2013-10-31 15:22:55: /ASR1002X_PERF_B2B_Real2G_NBAR.xml: Conflict: New files that differ 2013-10-31 15:22:55: /ASR_RP2_ESP20_PERF_B2B_Real5G_NBAR.xml: Conflict: New files that differ 2013-10-31 15:22:55: /ASR_RP2_ESP40_PERF_B2B_Real5G_NBAR_CHK.xml: Conflict: New files that differ 2013-10-31 15:22:55: /ISR1941_B2B_REAL1G_NBAR.xml: Conflict: New files that differ 2013-10-31 15:22:55: /ISR892FSP_B2B_REAL1G_NBAR.xml: Conflict: New files that differ 2013-10-31 15:22:55: Analyze has finished with Conflicts. Resolve Conflicts by selecting the correct sync direction, then click Sync 2013-10-31 15:22:55: Changes: 8, Conflicts: 6, CopyTime: 0, CopyState: 0/192, Errors: 2 2013-10-31 15:22:55: -- Analysis Completed. Time 00:00:00, Speed: Many files/s 2013-10-31 15:22:55: 2013-10-31 15:24:10: New _gsdata_ folder(s) created, so rescan all job folders for their ghosts 2013-10-31 15:24:10: == xml: SYNC started by User on 'CMUKHOPA-WS' 2013-10-31 15:24:10: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML 2013-10-31 15:24:10: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-10-31 15:24:11: Copy Over 'C:\Users\cmukhopa\Documents\XML\ASR1002_PERF_B2B_Real2G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1002_PERF_B2B_Real2G_NBAR.xml' (User Action) 2013-10-31 15:24:11: Copy Over 'C:\Users\cmukhopa\Documents\XML\ASR1002X_PERF_B2B_Real2G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1002X_PERF_B2B_Real2G_NBAR.xml' (User Action) 2013-10-31 15:24:11: Copy Over 'C:\Users\cmukhopa\Documents\XML\ASR_RP2_ESP20_PERF_B2B_Real5G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR_RP2_ESP20_PERF_B2B_Real5G_NBAR.xml' (User Action) 2013-10-31 15:24:12: Copy Over 'C:\Users\cmukhopa\Documents\XML\ASR_RP2_ESP40_PERF_B2B_Real5G_NBAR_CHK.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR_RP2_ESP40_PERF_B2B_Real5G_NBAR_CHK.xml' (User Action) 2013-10-31 15:24:12: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR1941_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR1941_B2B_REAL1G_NBAR.xml' (User Action) 2013-10-31 15:24:12: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-10-31 15:24:12: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR892FSP_B2B_REAL1G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR892FSP_B2B_REAL1G_NBAR.xml' (User Action) 2013-10-31 15:24:12: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-10-31 15:24:12: Sync finished with 2 errors. Click Errors button to see sync errors 2013-10-31 15:24:13: Items Synced OK: 198, Errors: 2 2013-10-31 15:24:13: == Sync Completed. Time: 00:00:03, Speed: 250 KB/s (0.97 MB/s) 2013-10-31 15:24:13: site_pro/XML/_gsdata_/2013-1101-204628-CMUKHOPA-WS-xml.log0000644331000000000310000000421012235072631017554 0ustar named2013-11-01 20:46:30: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-01 20:46:30: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 20:46:30: L: Files: 202 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.6 GB, Total: 167 GB 2013-11-01 20:46:32: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 20:46:32: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 20:46:32: R: Files: 204 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-01 20:46:32: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-01 20:46:32: Changes: 2, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-01 20:46:32: -- Analysis Completed. Time 00:00:04, Speed: 50 files/s 2013-11-01 20:46:32: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-01 20:46:32: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 20:46:33: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 20:46:33: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 20:46:33: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-01 20:46:33: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-01 20:46:33: Items Synced OK: 0, Errors: 2 2013-11-01 20:46:33: == Sync Completed. Time: 00:00:01, Speed: 5.03 KB/s (45.8 KB/s) 2013-11-01 20:46:33: site_pro/XML/_gsdata_/2013-1104-104503-CMUKHOPA-WS-xml.log0000644331000000000310000000501012235765464017562 0ustar named2013-11-04 10:45:06: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-04 10:45:06: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-04 10:45:06: L: Files: 202 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.7 GB, Total: 167 GB 2013-11-04 10:45:07: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-04 10:45:07: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-04 10:45:07: R: Files: 206 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-04 10:45:07: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-04 10:45:07: Changes: 4, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-04 10:45:07: Right to Left: Copy File: 2 2013-11-04 10:45:07: -- Analysis Completed. Time 00:00:04, Speed: 51 files/s 2013-11-04 10:45:07: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-04 10:45:07: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-04 10:45:07: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-04 10:45:07: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-04 10:45:07: Copy New 'sftp://joao-lnx/var/www/html/site_pro/XML/isr3945e_perf_b2b_mohassan_500m_avc_310_b.xml' -> 'C:\Users\cmukhopa\Documents\XML\isr3945e_perf_b2b_mohassan_500m_avc_310_b.xml' 2013-11-04 10:45:08: Copy New 'sftp://joao-lnx/var/www/html/site_pro/XML/nbar.xml' -> 'C:\Users\cmukhopa\Documents\XML\nbar.xml' 2013-11-04 10:45:08: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-04 10:45:08: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-04 10:45:08: Items Synced OK: 2, Errors: 2 2013-11-04 10:45:08: == Sync Completed. Time: 00:00:01, Speed: 102 KB/s (8.05 KB/s) 2013-11-04 10:45:08: site_pro/XML/_gsdata_/2013-1102-120315-CMUKHOPA-WS-xml.log0000644331000000000310000000614512235246175017562 0ustar named2013-11-02 12:03:17: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-02 12:03:17: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-02 12:03:17: L: Files: 202 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.7 GB, Total: 167 GB 2013-11-02 12:03:18: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-02 12:03:18: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-02 12:03:18: R: Files: 204 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-02 12:03:18: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-02 12:03:18: Changes: 7, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-02 12:03:18: Left to Right: Copy File: 5 2013-11-02 12:03:18: -- Analysis Completed. Time 00:00:03, Speed: 67 files/s 2013-11-02 12:03:18: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-02 12:03:18: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-02 12:03:19: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-02 12:03:20: Copy Over 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_NBAR.xml' 2013-11-02 12:03:21: Copy Over 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_NBAR_WITH_CHECKS.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_NBAR_WITH_CHECKS.xml' 2013-11-02 12:03:22: Copy Over 'C:\Users\cmukhopa\Documents\XML\ASR1002_PERF_B2B_Real2G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1002_PERF_B2B_Real2G_NBAR.xml' 2013-11-02 12:03:23: Copy Over 'C:\Users\cmukhopa\Documents\XML\ASR1002X_PERF_B2B_Real2G_NBAR.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1002X_PERF_B2B_Real2G_NBAR.xml' 2013-11-02 12:03:24: Copy Over 'C:\Users\cmukhopa\Documents\XML\ASR_RP2_ESP5_PERF_B2B_Real2G_NBAR_CHK.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR_RP2_ESP5_PERF_B2B_Real2G_NBAR_CHK.xml' 2013-11-02 12:03:24: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-02 12:03:24: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-02 12:03:24: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-02 12:03:25: Items Synced OK: 5, Errors: 2 2013-11-02 12:03:25: == Sync Completed. Time: 00:00:07, Speed: 102 KB/s (8.05 KB/s) 2013-11-02 12:03:25: site_pro/XML/_gsdata_/2013-1101-194622-CMUKHOPA-WS-xml.log0000644331000000000310000000421012235063603017555 0ustar named2013-11-01 19:46:24: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-01 19:46:24: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 19:46:24: L: Files: 202 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.6 GB, Total: 167 GB 2013-11-01 19:46:25: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 19:46:25: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 19:46:25: R: Files: 204 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-01 19:46:25: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-01 19:46:25: Changes: 2, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-01 19:46:25: -- Analysis Completed. Time 00:00:03, Speed: 67 files/s 2013-11-01 19:46:25: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-01 19:46:25: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 19:46:26: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 19:46:26: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 19:46:26: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-01 19:46:26: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-01 19:46:26: Items Synced OK: 0, Errors: 2 2013-11-01 19:46:26: == Sync Completed. Time: 00:00:01, Speed: 5.03 KB/s (45.3 KB/s) 2013-11-01 19:46:26: site_pro/XML/_gsdata_/2013-1104-134515-CMUKHOPA-WS-xml.log0000644331000000000310000000670512236012556017570 0ustar named2013-11-04 13:45:15: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-04 13:45:15: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-04 13:45:15: L: Files: 210 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.4 GB, Total: 167 GB 2013-11-04 13:45:16: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-04 13:45:16: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-04 13:45:16: R: Files: 208 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-04 13:45:16: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-04 13:45:16: Changes: 9, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-04 13:45:16: Left to Right: Copy File: 6 2013-11-04 13:45:16: Right to Left: Copy File: 1 2013-11-04 13:45:16: -- Analysis Completed. Time 00:00:01, Speed: 211 files/s 2013-11-04 13:45:16: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-04 13:45:16: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-04 13:45:16: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-04 13:45:17: Copy New 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_AVC_A.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_A.xml' 2013-11-04 13:45:17: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_B.xml' -> 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_AVC_B.xml' 2013-11-04 13:45:17: Copy New 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_AVC_C.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_C.xml' 2013-11-04 13:45:17: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_310_A.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_310_A.xml' 2013-11-04 13:45:18: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_310_B.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_310_B.xml' 2013-11-04 13:45:18: Copy New 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_A.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_A.xml' 2013-11-04 13:45:18: Copy New 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_B.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_B.xml' 2013-11-04 13:45:18: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-04 13:45:18: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-04 13:45:18: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-04 13:45:18: Items Synced OK: 7, Errors: 2 2013-11-04 13:45:18: == Sync Completed. Time: 00:00:02, Speed: 402 KB/s (16.0 KB/s) 2013-11-04 13:45:18: site_pro/XML/_gsdata_/_file_state_v4._gs0000644331000000000310000001105312236314303016367 0ustar named ͝o7eiX^ kɆ]`#e +:i/dTُi H biuh/7=>>[S9xOP0+7=GVT=.ܯ6ބ]Os?Yt:u?]ʃr]ݭT첺uV1BnZbT?z{?~'MsrP^U5bd3GҙjuICGxCuwa.*\mp1!%j<.pzmiἬToJSe!OReJ.eu_mTk ^cz8/GCnA'THeJf/^>YVoO^->;KcYONĨ]nCzBлA#FgE̮z>FU`ꋲ4Q[YS*b-(t n45AfR8 (U* MHVm({|@'>0wS6O{v tMrdiG[)Q2Zy2*e( ~<[$d0q}mM=/S=AƄfIZ+$jlZ= ţV`XEYآ!|6,Rƽ d]3, iG XZDY3l`q&[(K(w 70+H]ܾZBР =wJqDtYn|mYy6!LŨ Kam"๻(Kf ǚ|1h3+? onZ4zYw/{FYm3@R^`Yr0\v:Ž2OiTԳ0q׃KB2V"㕄-,x@A/KNm G,~di֩Vw¢,;նj4 Qk̶jҔf2S0Ybڃ!g= Uhفv$J£[2[yUamn[ּ.Rbm e1^va&F>q Q&s%xeWBNJHxF0”L8J<^ NEQsJ^5tʠl)Qs`p(sIi=~mޘ~7Y_f]UwJWTJZmo[A tCz&xpѶz<.ISw=8.,x=g3%#~1-#3 Q n3m,E.'ĖFD:ufޗVp R؄xF.2ڄ';s6>gqc+c(~D,#bF=x87xq,C CYxtgOV W^FքP7:Zhy]Ϸ6aJ)v0luiBXJxr~ovV77oIJNWEm!·}YJ}w7pT24?fQ'⩽ZڋaTO/_n634Q`rgA=,q50!m~9P4.`\`!s (3ɍ&yεTG u?^}{@t?GoYԻ[Dϣ4ɑ6b>Af0,L1ev ̹|~]wڂ "gQ 1NY^h 3IXj,XN?Oo)%(r3bm!Ĥ>ywF%}㗂vNZ-5( *DJhР s*z}Kћ1A.3CIyjĺLA|8zCUMqRYWf$R>ʻפWi Qg5W]7., 9dĈ #;U{2eΈZ•F!xW.,7dīVo5@>eA"l^m^oV|UMIzO}Q5ȌQFQc?5)@Gy2Avy Y?$Eb2gXJ ֨梧ʅeLh#]k:AfX[ʭ.ƚXOojw)N\W2kX)52`'6h:,2z=56N{IgwUB_H*Y{>|r2;B2c~xW YN[xj>Ұî N4E/ NpՄ\UOenaj ؊Mk^Iy;.F._ΓN ZhY{R ؝MMGByo'mm y򗳩8 w"(a%l,ll)jY{3V G3;@}-x!OΉ yt4"˓]ϡshQ~9'Lr:wϸ}V84D KӚ鴹3, /+2;@Q8m!Emt3rV6 i'+:] qj.p/R0kNAv@$J^On;,ũMþ~>iFY )}@cӟ.8Ln5^qeƄ٣MìGYp^gUwR3<,CA/-C= /M8y~ho|)ʮ+i$nz|z\ ao>()|-d'y(;lgnoG/΢K+6[e)z'-\,ޟK^صVϲwq5jd}g.KE}MiCzHn#w(KG!ş՚56koF%4:;;y5w.n6t8v宯/9#}R$z{1<p5wز~]`7:-4GØQo7\ù< 'dھgT%QUQ{=\]߯Z(~y2lU-aГUA(c.C;, !ݹ 0߂!ۅwuxep =' #IeMWFC>co9}ͨvi8Qv)pTs2aʍʿW LߋVpea kHA&`qg63e=C 2 4˼ =20mIDSpq7 h=Dмl66aG\TwVϲ _] 2G 'i9 VJ_0wi Md6ui;EY/<Տ{%1;JSX :PLGx/=?4V`fճy:OS`2h$xճ'Mn P=.-]gth͔~G9 AUܜ .zV{]_7-YX/8xճb=C%h]d {(r 7FʋAsite_pro/XML/_gsdata_/2013-1101-164603-CMUKHOPA-WS-xml.log0000644331000000000310000000421012235036501017546 0ustar named2013-11-01 16:46:04: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-01 16:46:04: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 16:46:04: L: Files: 202 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.6 GB, Total: 167 GB 2013-11-01 16:46:07: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 16:46:07: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 16:46:07: R: Files: 204 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-01 16:46:07: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-01 16:46:07: Changes: 2, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-01 16:46:07: -- Analysis Completed. Time 00:00:04, Speed: 50 files/s 2013-11-01 16:46:07: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-01 16:46:07: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 16:46:08: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 16:46:08: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 16:46:08: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-01 16:46:08: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-01 16:46:08: Items Synced OK: 0, Errors: 2 2013-11-01 16:46:08: == Sync Completed. Time: 00:00:01, Speed: 5.03 KB/s (38.4 KB/s) 2013-11-01 16:46:08: site_pro/XML/_gsdata_/2013-1101-104616-CMUKHOPA-WS-xml.log0000644331000000000310000000420712234764355017570 0ustar named2013-11-01 10:46:18: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-01 10:46:18: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 10:46:19: L: Files: 202 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.7 GB, Total: 167 GB 2013-11-01 10:46:20: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 10:46:20: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 10:46:20: R: Files: 204 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-01 10:46:20: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-01 10:46:20: Changes: 2, Conflicts: 0, CopyTime: 0, CopyState: 0/9, Errors: 2 2013-11-01 10:46:20: -- Analysis Completed. Time 00:00:04, Speed: 50 files/s 2013-11-01 10:46:20: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-01 10:46:20: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-01 10:46:20: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-01 10:46:20: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-01 10:46:20: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-01 10:46:20: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-01 10:46:21: Items Synced OK: 9, Errors: 2 2013-11-01 10:46:21: == Sync Completed. Time: 00:00:01, Speed: 271 KB/s (2.60 MB/s) 2013-11-01 10:46:21: site_pro/XML/_gsdata_/2013-1105-120554-CMUKHOPA-WS-xml.log0000644331000000000310000000602512236247645017573 0ustar named2013-11-05 12:05:55: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-05 12:05:55: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-05 12:05:55: L: Files: 212 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.9 GB, Total: 167 GB 2013-11-05 12:05:56: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-05 12:05:56: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-05 12:05:56: Two items on Right side are named the same after normalization and lower-casing: '/isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml' vs '/isr3945e_perf_b2b_real1g_mohassan_200m_avc_310_b.xml' 2013-11-05 12:05:56: R: Files: 215 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-05 12:05:56: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-05 12:05:56: Changes: 5, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 3 2013-11-05 12:05:56: Right to Left: Copy File: 2 2013-11-05 12:05:56: -- Analysis Completed. Time 00:00:02, Speed: 106 files/s 2013-11-05 12:05:56: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-05 12:05:56: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-05 12:05:56: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-05 12:05:56: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_B.xml' -> 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_AVC_B.xml' 2013-11-05 12:05:56: Copy Over 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_C.xml' -> 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_C.xml' 2013-11-05 12:05:56: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-05 12:05:56: /isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945e_perf_b2b_real1G_mohassan_200m_avc_310_b.xml' vs '/isr3945e_perf_b2b_real1g_mohassan_200m_avc_310_b.xml' 2013-11-05 12:05:56: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-05 12:05:56: Sync finished with 3 errors. Click Errors button to see sync errors 2013-11-05 12:05:56: Items Synced OK: 2, Errors: 3 2013-11-05 12:05:56: == Sync Completed. Time: 00:00:00, Speed: 222 KB/s (16.4 KB/s) 2013-11-05 12:05:56: site_pro/XML/_gsdata_/2013-1104-124510-CMUKHOPA-WS-xml.log0000644331000000000310000000560112236003532017546 0ustar named2013-11-04 12:45:11: -- xml: ANALYSIS started by Periodic Timer on 'CMUKHOPA-WS' (GoodSync 9.5.9.5) 2013-11-04 12:45:11: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-04 12:45:11: L: Files: 206 (excluded 0). Folders: 0 (excluded 1). C: NTFS, Free: 99.4 GB, Total: 167 GB 2013-11-04 12:45:12: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-04 12:45:12: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-04 12:45:12: R: Files: 208 (excluded 0). Folders: 0 (excluded 1). SSH-1.99-OpenSSH_4.3 2013-11-04 12:45:12: Analyze has finished with Errors. Click Errors button to see all error items 2013-11-04 12:45:12: Changes: 6, Conflicts: 0, CopyTime: 0, CopyState: 0/0, Errors: 2 2013-11-04 12:45:12: Left to Right: Copy File: 2 2013-11-04 12:45:12: Right to Left: Copy File: 1 Delete File: 1 2013-11-04 12:45:12: -- Analysis Completed. Time 00:00:02, Speed: 104 files/s 2013-11-04 12:45:12: == xml: SYNC started by Periodic Timer on 'CMUKHOPA-WS' 2013-11-04 12:45:12: ~cmukhopa\Documents\XML (C:\Users\cmukhopa\Documents\XML) <-> sftp://joao-lnx/var/www/html/site_pro/XML, ResolveConflicts=NewerFileWins 2013-11-04 12:45:12: Delete File 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_AVC_310_B.xml' 2013-11-04 12:45:12: /ASR1001_NARRA_SANITY.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/asr1001_narra_sanity.xml' vs '/ASR1001_NARRA_SANITY.xml' 2013-11-04 12:45:13: Copy New 'sftp://joao-lnx/var/www/html/site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_B.xml' -> 'C:\Users\cmukhopa\Documents\XML\ASR1001_PERF_B2B_Real2G_AVC_B.xml' 2013-11-04 12:45:13: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_310_A.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_310_A.xml' 2013-11-04 12:45:13: Copy Over 'C:\Users\cmukhopa\Documents\XML\ISR3945_B2B_REAL1G_AVC_310_B.xml' -> 'sftp://joao-lnx/var/www/html/site_pro/XML/ISR3945_B2B_REAL1G_AVC_310_B.xml' 2013-11-04 12:45:13: /ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml: Analyze error: Two items on Right side are named the same after normalization and lower-casing: '/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml' vs '/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml' 2013-11-04 12:45:13: Save State File sftp://joao-lnx/var/www/html/site_pro/XML/_gsdata_/_file_state_v4._gs 2013-11-04 12:45:13: Sync finished with 2 errors. Click Errors button to see sync errors 2013-11-04 12:45:13: Items Synced OK: 4, Errors: 2 2013-11-04 12:45:13: == Sync Completed. Time: 00:00:01, Speed: 322 KB/s (15.1 KB/s) 2013-11-04 12:45:13: site_pro/XML/_gsdata_/_saved_/0000755331000000000310000000000012236030627014412 5ustar namedsite_pro/XML/_gsdata_/_saved_/ISR892FSP_B2B_REAL1G_NBAR.xml0000644331000000000310000035673412234775773020671 0ustar named PERFORMANCE Back_to_back ISR892FSP REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/cmukhopa/c800-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "892FSP-K9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ASR1002X_PERF_B2B_Real2G_NBAR.xml0000644331000000000310000020566012234020604021414 0ustar named PERFORMANCE Back_to_back ASR1002X REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/asr1002x-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1002-x" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ASR1001_PERF_B2B_Real2G_AVC_C.xml0000644331000000000310000037014112236012066021416 0ustar named PERFORMANCE Back_to_back ASR1001 REALISTIC AVC_C PERFORMANCE TEST AVC_C UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC C performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-response-time ipv4 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor media ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 8 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! AVC CHECKS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER2)"] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ISR2911_B2B_REAL1G_NBAR.xml0000644331000000000310000035542212234565010020340 0ustar named PERFORMANCE Back_to_back ISR2911 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c2900-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "2911" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ASR1001_PERF_B2B_Real2G_AVC_A.xml0000644331000000000310000036727612236012261021430 0ustar named PERFORMANCE Back_to_back ASR1001 REALISTIC AVC_A PERFORMANCE TEST AVC_A UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 8 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! AVC CHECKS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER2)"] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ISR3945_B2B_REAL1G_NBAR.xml0000644331000000000310000035640112235774056020363 0ustar named PERFORMANCE Back_to_back ISR3945 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ASR_RP2_ESP40_PERF_B2B_Real5G_NBAR_CHK.xml0000777331000000000310000021407412227575635023042 0ustar named PERFORMANCE Back_to_back ASR_RP2_ESP40 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,rp) "RP2" uut(device,esp) "ESP40" uut(device,chassis_type) "" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether10000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether10000 uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether10000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether10000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 Subnet12 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 CITRIX 22.0.0.12 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [sleep 30] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ASR_RP2_ESP20_PERF_B2B_Real5G_NBAR.xml0000777075506000000310000020633312226110337022351 0ustar named SANDBOX Back_to_back ASR_RP2_ESP20 REALISTIC Plain Routing ROUTING1 UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R3_R2" uut(device,console) "telnet 172.27.41.161 2013" uut(device,mgt_ip) "1.18.3.2" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP20" uut(device,esp_a) "ESP20" uut(device,esp_b) "ESP20" uut(device,chassis_type) "asr1006" uut(Avalanche.ethernet.1,intf) Te0/3/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te0/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [exit] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ASR1001_PERF_B2B_Real2G_NBAR_WITH_CHECKS.xml0000770075506000000310000021217012227370664023170 0ustar named PERFORMANCE Back_to_back ASR1001 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 8 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ISR3945_B2B_REAL1G_AVC_310_A.xml0000644331000000000310000036161312236002777021071 0ustar named PERFORMANCE Back_to_back ISR3945 REALISTIC AVC_A PERFORMANCE TEST AVC_A UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ISR2951_B2B_REAL1G_NBAR.xml0000644331000000000310000035674312234775734020373 0ustar named PERFORMANCE Back_to_back ISR2951 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c2951-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "cisco2951/k9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ISR3945e_B2B_REAL1G_TRAFFIC_VALIDATION.xml0000777331000000000310000020005112233031303022545 0ustar named PERFORMANCE Back_to_back ISR3945E REALISTIC VALIDATION_OF_TRAFFIC TRAFFIC_VALIDATION UUT.uut.IMAGE=/auto/tftp-joaofer/c3900e-universalk9-mz.SSA.GOLDEN Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE250/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE250/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload !Voice access-list 2000 permit ip any host 22.0.0.13 access-list 2000 permit ip host 22.0.0.13 any ! Citrix access-list 2001 permit ip any host 22.0.0.12 access-list 2001 permit ip host 22.0.0.12 any ! Oracle access-list 2002 permit ip any host 22.0.0.2 access-list 2002 permit ip host 22.0.0.2 any ! Exchange access-list 2003 permit ip any host 22.0.0.3 access-list 2003 permit ip host 22.0.0.3 any ! ! HTTP_10K_60K access-list 2004 permit ip any host 22.0.0.4 access-list 2004 permit ip host 22.0.0.4 any ! ! HTTP_Browsing access-list 2005 permit ip any host 22.0.0.6 access-list 2005 permit ip host 22.0.0.6 any ! RTSP access-list 2006 permit ip any host 22.0.0.5 access-list 2006 permit ip host 22.0.0.5 any ! POP access-list 2007 permit ip any host 22.0.0.7 access-list 2007 permit ip host 22.0.0.7 any ! SMTP access-list 2008 permit ip any host 22.0.0.8 access-list 2008 permit ip host 22.0.0.8 any ! DNS access-list 2009 permit ip any host 22.0.0.9 access-list 2009 permit ip host 22.0.0.9 any ! HTTPS access-list 2010 permit ip any host 22.0.0.10 access-list 2010 permit ip host 22.0.0.10 any ! Video Calls access-list 2011 permit ip any host 22.0.0.11 access-list 2011 permit ip host 22.0.0.11 any class-map match_voice match access-group 2000 class-map match_citrix match access-group 2001 class-map match_oracle match access-group 2002 class-map match_exchange match access-group 2003 class-map match_http10k_60k match access-group 2004 class-map match_rtsp match access-group 2005 class-map match_httpbrowsing match access-group 2006 class-map match_pop match access-group 2007 class-map match_smtp match access-group 2008 class-map match_dns match access-group 2009 class-map match_https match access-group 2010 class-map match_video_calls match access-group 2011 policy-map counting class match_voice class match_citrix class match_oracle class match_exchange class match_http10k_60k class match_httpbrowsing class match_rtsp class match_pop class match_smtp class match_dns class match_https class match_video_calls ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy input counting service-policy output counting no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "sh policy-map int $uut_data(uut,SERVER1)"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 900 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ASR1001_PERF_B2B_Real2G_CEF.xml0000777075506000000310000020566012227370664021205 0ustar named SANDBOX Back_to_back ASR1001 REALISTIC Plain Routing CEF UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [simple_uut_performance_exec uut "show policy-map counting"] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ISR3945_B2B_REAL1G_AVC_310_B.xml0000644331000000000310000036237412236002766021075 0ustar named PERFORMANCE Back_to_back ISR3945 REALISTIC AVC_B PERFORMANCE TEST AVC_B UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ASR1002_PERF_B2B_Real2G_NBAR.xml0000644331000000000310000020565712234020426021274 0ustar named PERFORMANCE Back_to_back ASR1002 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1002" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ASR1001_PERF_B2B_Real2G_AVC_B.xml0000644075506000000310000023003612236015402021430 0ustar named PERFORMANCE Back_to_back ASR1001 REALISTIC AVC 310 Config B AVC_B UUT.uut.IMAGE=auto/tftp-joaofer/asr1001-universalk9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 ! ! class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue ! policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! SHOW COMMANDS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER2)"] ! CHECK ON THE LAN POLICY CLIENT 1 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE LAN POLICY CLIENT 2 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 1 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 2 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section class-default" -sleep 5 -retry 2] ! CHECK FLOW EXPORTER [simple_uut_performance_exec uut "show flow exporter statistics"] [simple_uut_regex -router_name uut -name "Flow exporter sent" -regex {Successfully sent: +[1-9]\d{3,}} -show_command "show flow exporter statistics | i Successfully" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "MMA-EXP-1" -regex {Client: MMA EXPORTER GROUP MMA-EXP-1\n +Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "application-attributes" -regex {Client: Option options application-attributes\n +Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "application-name" -regex {Client: Option options application-name\n +Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "MMA-EXP-2" -regex {Client: MMA EXPORTER GROUP MMA-EXP-2\n +Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ISR3925_B2B_REAL1G_NBAR.xml0000644331000000000310000035710512234775760020365 0ustar named PERFORMANCE Back_to_back ISR3925 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3925" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE100/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE100/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ISR1941_B2B_REAL1G_NBAR.xml0000644331000000000310000035672612234775745020374 0ustar named PERFORMANCE Back_to_back ISR1941 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/cmukhopa/c1900-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "1941" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ASR1001_PERF_B2B_Real2G_NBAR.xml0000777075506000000310000021061512227370664021326 0ustar named SANDBOX Back_to_back ASR1001 REALISTIC this is a test NBAR UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 8 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ISR3945_B2B_REAL1G_AVC_A.xml0000644331000000000310000036423412236023164020501 0ustar named PERFORMANCE Back_to_back ISR3945 REALISTIC AVC_A PERFORMANCE TEST AVC_A UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.154-0.26.T0.7 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! AVC CHECKS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER1)"] ! CHECK ON THE LAN POLICY CLIENT 1 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 1 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ISR3945_B2B_REAL1G_AVC_B.xml0000777331000000000310000036502012236023161020500 0ustar named PERFORMANCE Back_to_back ISR3945 REALISTIC AVC_B PERFORMANCE TEST AVC_B UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.154-0.26.T0.7 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! AVC CHECKS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER1)"] ! CHECK ON THE LAN POLICY CLIENT 1 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 1 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ASR_RP2_ESP5_PERF_B2B_Real2G_NBAR_CHK.xml0000777331000000000310000021343412231332460022735 0ustar named PERFORMANCE Back_to_back ASR_RP2_ESP5 REALISTIC NBAR PERFORMANCE NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,rp) "RP2" uut(device,esp) "ESP5" uut(device,chassis_type) "" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,eth_mode) uut(Avalanche.ethernet.1,spa) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether1000 uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,eth_mode) uut(Avalanche.ethernet.2,spa) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [exit] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/isr892_b2b_real1g.xml0000644331000000000310000020026712234556711020170 0ustar named PERFORMANCE Back_to_back ISR892 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c890-universalk9-mz.153-2.25.M0.11; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "892" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/_gsdata_/_saved_/ISR3945e_B2B_REAL1G_NBAR.xml0000644331000000000310000035561312234565300020521 0ustar named SANDBOX Back_to_back ISR3945E REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-users-sj/cmukhopa/c3900e-universalk9-mz.SPA.153-2.25.M0.11;UUT.uut.proto_pack= Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE250/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE250/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_310_B_NAT.xml0000777000006000000600000021265212227370664020665 0ustar apacheapache SANDBOX Back_to_back ASR1001 REALISTIC AVC 3.10 Config B AVC310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ip nat translation max-entries 300000 access-list 1 permit 21.0.0.0 0.255.255.255 access-list 2 permit 20.0.0.0 0.255.255.255 ip nat inside source list 1 interface $uut_data(uut,SERVER1) overload ip nat inside source list 2 interface $uut_data(uut,SERVER2) overload ip nat translation timeout 120 ip nat translation dns-timeout 1 ip nat translation finrst-timeout 1 ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN ip nat inside no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN ip nat outside no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN ip nat inside no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN ip nat outside no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR4451_PERF_B2B_Real2G_AVC_310_A.xml0000777000006000000600000022614112227370665020205 0ustar apacheapache SANDBOX Back_to_back ISR4451 REALISTIC AVC 3.10 Config A AVC310_A UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "isr4451/k9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! SHOW COMMANDS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER2)"] ! CHECK ON THE LAN POLICY CLIENT 1 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE LAN POLICY CLIENT 2 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 1 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 2 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_2R_Real2G_CEF.xml0000777000006000000600000021740412227370664017241 0ustar apacheapache SANDBOX 2Routers ASR1001 REALISTIC CEF CEF UUT.uut.IMAGE=;UUT.uut2.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether1000 uut(Avalanche.ethernet.2,conn) p2p uut(Avalanche.ethernet.2,conn_id) 2 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut(uut2.ethernet.2,intf) uut(uut2.ethernet.2,speed) ether1000 uut(uut2.ethernet.2,conn) p2p uut(uut2.ethernet.2,conn_id) 2 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut.ethernet.2,intf) uut2(uut.ethernet.2,speed) ether1000 uut2(uut.ethernet.2,conn) p2p uut2(uut.ethernet.2,conn_id) 2 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.2,intf) uut2(Avalanche.ethernet.2,speed) ether1000 uut2(Avalanche.ethernet.2,conn) p2p uut2(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn) p2p Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.2,intf) Avalanche(uut2.ethernet.2,speed) ether1000 Avalanche(uut2.ethernet.2,conn) p2p Avalanche(uut2.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut2 2 SERVER2 FROM_TITAN uut 1 CLIENT1 FROM_TITAN uut 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN uut2 2 WAN2 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 SERVER2 FROM_TITAN uut 1 WAN1 FROM_TITAN uut 2 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown ! default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) ip address 25.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 21.0.0.0 network 20.0.0.0 network 24.0.0.0 network 25.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut2,SERVER1) interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! default interface $uut_data(uut2,SERVER2) interface $uut_data(uut2,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! default interface $uut_data(uut2,WAN1) interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! default interface $uut_data(uut2,WAN2) interface $uut_data(uut2,WAN2) ip address 25.0.0.2 255.255.255.0 no shutdown ! default router eigrp 100 router eigrp 100 network 22.0.0.0 network 23.0.0.0 network 24.0.0.0 network 25.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_2R_CENT1G_CORE_CENT.xml0000777000006000000600000026566712234267252020117 0ustar apacheapache SANDBOX 2Routers ISR3945 CENT CEF DMVPN_CENT UUT.uut.IMAGE=/auto/tftp-joaofer/isr3945;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.192" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "" uut(device,rp) "RP2" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! ! router eigrp 100 network 21.0.0.0 network 24.0.0.0 network 10.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG ! CENT CONFIG ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 no shutdown ! ! cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.2 source-interface Loopback0 ! INTERFACES THAT CONNECT TO AVALANCHE ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh cent border pmi 300 yes sh cent master channels 120 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes show logging 300 yes sh ip route 300 yes show cent master traffic-class 60 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! router eigrp 100 network 22.0.0.0 network 24.0.0.0 network 10.0.0.0 no auto-summary ! ! ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! ! cent master hub source-interface Loopback0 border 10.0.0.1 cent-interface $uut_data(uut2,WAN1) external green class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! cent border master 10.0.0.1 source-interface Loopback0 ! ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % sh cent border pmi 300 yes sh cent master channels 300 yes sh cent border site-pre 300 yes sh cent border status 300 yes sh cent master status 300 yes show logging 300 yes sh ip route 300 yes show cent master traffic-class 300 yes sh pl h q a infr cft status b 120 yes sh cen bo traf 300 yes sh cen bo si 300 yes sh pl h q a infr cft status b 120 yes sh cen bo traf 300 yes sh cen bo si 300 yes show platform hardware qfp active statistics drop clear | exclude _0_ 300 yes show platform hardware qfp active infrastructure punt statistics type global-drop clear | exclude _0_ 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 120 20 0.01 90 75 60 85 75 50 0.1 1600 500 30 30 1500 CLIENT1 24 1 CLIENT1 24 2 CLIENT1 146 3 CLIENT1 62 4 CLIENT1 80 5 CLIENT1 26 6 CLIENT1 34 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 144 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::wait p1 p2] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 120] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_b2b_real1g_nbar_allen.xml0000777000006000000600000020317612234242367020576 0ustar apacheapache SANDBOX Back_to_back ISR892 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-sjc-users2/allenche/c3900-universalk9-mz.SPA.153-2.T;UUT.uut.proto_pack=/auto/tftpboot/allenche/pp-adv-isrg2-153_2.T-7.1.0_none_mtp_2.pack; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown ! ip nbar protocol-pack flash:proto_pack show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_exec uut "copy tftp://223.255.254.245/$uut_data(uut,proto_pack) flash:proto_pack"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR2911_PERF_B2B_Real500M_NBAR.xml0000777000006000000600000020144212226110337017623 0ustar apacheapache SANDBOX Back_to_back ISR2911 REALISTIC NBAR enabled NBAR UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "2911" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload interface $uut_data(uut,CLIENT1) ip nbar protocol-discovery ip address 21.0.0.1 255.255.255.0 no shutdown interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base 21.0.0.0 22.0.0.0 24 21.0.0.0 22.0.0.0 24 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 90 80 50 0.1 1200 500 30 30 500 LAN 144 1 CLIENT1 LAN 24 2 CLIENT1 LAN 34 3 CLIENT1 LAN 146 4 CLIENT1 LAN 80 5 CLIENT1 LAN 62 6 CLIENT1 LAN 8 7 CLIENT1 LAN 8 8 CLIENT1 LAN 8 9 CLIENT1 LAN 26 10 CLIENT1 LAN 8 11 CLIENT1 LAN 24 12 CLIENT1 LAN 24 13 CLIENT1
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP20_PERF_B2B_Real5G_NBAR.xml0000777000006000000600000021440512227432611020472 0ustar apacheapache PERFORMANCE Back_to_back ASR_RP2_ESP20 REALISTIC NBAR PERFORMANCE NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.GOLDEN;; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R3_R2" uut(device,console) "telnet 172.27.41.161 2013" uut(device,mgt_ip) "1.18.3.2" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP20" uut(device,esp_a) "ESP20" uut(device,esp_b) "ESP20" uut(device,chassis_type) "asr1006" uut(Avalanche.ethernet.1,intf) Te0/3/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te0/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [exit] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr892_b2b_real1g_avc_310_a.xml0000777000006000000600000020012412227051152020031 0ustar apacheapache SANDBOX Back_to_back ISR892 REAL AVC_310_B MMA with CENT metrics UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c800-universalk9-mz.SSA.154-0.12.T; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R17" uut(device,console) "" uut(device,chassis_type) "892" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_murthy_310_c_base.xml0000777000006000000600000020355412226122740022444 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 C performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-response-time ipv4 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor media ipv4 traffic-monitor application-traffic-stats traffic-monitor conversation-traffic-stats ipv4 cache-size 32000 class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % sh policy-map interface 120 yes sh flow exporter statistics 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_32k_145_60_log_his1.xml0000777000006000000600000020436712226110337025520 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 32768 history size 1 timeout 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_mma_ezpm_mace_32k.xml0000777000006000000600000017745012226110337017767 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload service internal logg buffered 1000000 performance monitor context testing profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor url cache-size 32000 traffic-monitor application-response-time cache-size 32000 traffic-monitor conversation-traffic-stats cache-size 32000 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context testing no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_3R_Real1G_CENT_BASELINE.xml0000777000006000000600000030637112226110336020624 0ustar apacheapache SANDBOX 2Routers ASR1001 CENT CEF DMVPN UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.uut3.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "" uut(device,rp) "RP2" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut3 1 WAN2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN uut3 1 INTER FROM_TITAN FROM_TITAN FROM_TITAN uut3 lab FROM_TITAN uut2 1 INTER FROM_TITAN uut 1 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) mtu 9216 ip address 25.0.0.2 255.255.255.0 shut no shutdown ! router eigrp 100 network 21.0.0.0 network 1.0.0.0 no auto-summary ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.0.1 key letmein ! crypto ipsec security-association replay disable crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.0.1 255.255.255.255 keyring DMVPN match identity address 25.0.0.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(uut,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 24.0.0.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 24.0.0.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(uut,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.1 remote-as 6000 neighbor 25.0.0.1 update-source loopback 0 neighbor 25.0.0.1 activate neighbor 24.0.0.1 remote-as 6000 neighbor 24.0.0.1 update-source loopback 0 neighbor 24.0.0.1 activate show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh cent border pmi 300 yes sh cent master channels 120 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes show logging 300 yes sh ip route 300 yes show cent master traffic-class 60 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT3 ! interface $uut_data(uut2,INTER) ip address 26.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 22.0.0.0 network 26.0.0.0 no auto-summary ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 24.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 24.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 24.0.0.2 ip nhrp map 1.0.1.2 24.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.1.2 ip virtual-reassembly no keepalive tunnel source $uut_data(uut2,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 24.0.0.2 remote-as 6001 neighbor 24.0.0.2 update-source loopback 0 neighbor 24.0.0.2 activate ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut3] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut3,INTER) default interface $uut_data(uut3,WAN2) ! INTERFACES THAT CONNECT TO AVALANCHE ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut3,WAN2) ip address 25.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut3,INTER) ip address 26.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 1.0.0.2 remote-as 6001 neighbor 1.0.0.2 update-source loopback 0 neighbor 1.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 25.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.0.2 ip nhrp map 1.0.0.2 25.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(uut3,WAN2) no keepalive tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.2 remote-as 6001 neighbor 25.0.0.2 update-source loopback 0 neighbor 25.0.0.2 activate ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show logging 300 yes sh ip route 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 60 85 75 60 85 75 60 85 75 50 0.1 1600 500 30 30 1500 CLIENT1 24 1 CLIENT1 24 2 CLIENT1 146 3 CLIENT1 62 4 CLIENT1 80 5 CLIENT1 26 6 CLIENT1 34 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 144 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [simple_uut_performance_init uut3] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [simple_uut_performance_exec uut3 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name uut3 -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3 p4] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [simple_uut_performance_config uut3] [simple_uut_performance_exec uut3 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut3 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut3 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [simple_uut_performance_exec uut3 "show ip route"] [simple_uut_performance_exec uut "ping 1.0.0.2"] [simple_uut_performance_exec uut2 "ping 1.0.1.1"] [simple_uut_performance_exec uut3 "ping 1.0.0.1"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [simple_uut_performance_monitor_enable uut3] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n shutdown" -flag "BR2 to tunnel shutdown"] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_64k_145_60_log_his1_time1.xml0000777000006000000600000020461012231626425026621 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 service internal flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 65535 history size 1 timeout 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 100 30 0.005 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_3R_Real1G_CENT_TESTA.xml0000777000006000000600000031132112227105630020346 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-joaofer/c3900-universalk9-mz.SSA.LATEST;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.uut3.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "cisco3945-chassis" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut3 1 WAN2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN uut3 1 INTER FROM_TITAN FROM_TITAN FROM_TITAN uut3 lab FROM_TITAN uut2 1 INTER FROM_TITAN uut 1 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) mtu 9216 ip address 25.0.0.2 255.255.255.0 shut no shutdown ! router eigrp 100 network 21.0.0.0 network 25.0.0.0 network 24.0.0.0 no auto-summary ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.0.1 key letmein ! crypto ipsec security-association replay disable crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.0.1 255.255.255.255 keyring DMVPN match identity address 25.0.0.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(uut,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 24.0.0.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 24.0.0.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(uut,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.1 remote-as 6000 neighbor 25.0.0.1 update-source loopback 0 neighbor 25.0.0.1 activate neighbor 24.0.0.1 remote-as 6000 neighbor 24.0.0.1 update-source loopback 0 neighbor 24.0.0.1 activate !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface Loopback1 ip address 1.1.1.12 255.255.255.255 no shutdown ! cent master branch source-interface Loopback1 hub 1.1.1.10 ! cent border master 1.1.1.12 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % sh cent border pmi 300 yes sh cent master channels 60 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes show logging 180 yes sh monitor event-trace ssm latest 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT3 ! interface $uut_data(uut2,INTER) ip address 26.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 25.0.0.0 network 24.0.0.0 network 22.0.0.0 network 26.0.0.0 no auto-summary ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 24.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 24.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 24.0.0.2 ip nhrp map 1.0.1.2 24.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.1.2 ip virtual-reassembly no keepalive tunnel source $uut_data(uut2,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 24.0.0.2 remote-as 6001 neighbor 24.0.0.2 update-source loopback 0 neighbor 24.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.10 255.255.255.255 no shutdown cent master hub source-interface Loopback1 border 1.1.1.10 cent-interface tunnel0 external green border 1.1.1.11 cent-interface tunnel0 external blue class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 1.1.1.10 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh cent border pmi 60 yes sh cent master channels 60 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut3] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut3,INTER) default interface $uut_data(uut3,WAN2) ! INTERFACES THAT CONNECT TO AVALANCHE ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut3,WAN2) ip address 25.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut3,INTER) ip address 26.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 25.0.0.0 network 24.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 1.0.0.2 remote-as 6001 neighbor 1.0.0.2 update-source loopback 0 neighbor 1.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 25.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.0.2 ip nhrp map 1.0.0.2 25.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(uut3,WAN2) no keepalive tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.2 remote-as 6001 neighbor 25.0.0.2 update-source loopback 0 neighbor 25.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.11 255.255.255.255 no shutdown ! cent border master 1.1.1.10 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh cent border pmi 60 yes sh cent master channels 60 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1600 500 30 30 500 CLIENT1 24 0 CLIENT1 24 1 CLIENT1 146 2 CLIENT1 62 3 CLIENT1 80 4 CLIENT1 26 5 CLIENT1 34 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 24 11 CLIENT1 144 12
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [simple_uut_performance_init uut3] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [simple_uut_performance_exec uut3 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name uut3 -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3 p4] [simple_uut_license -router_name uut -license "appxk9"] [simple_uut_license -router_name uut -license "securityk9"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [simple_uut_performance_config uut3] [simple_uut_performance_exec uut3 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut3 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut3 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [simple_uut_performance_exec uut3 "show ip route"] [simple_uut_performance_exec uut "ping 1.0.0.2"] [simple_uut_performance_exec uut2 "ping 1.0.1.1"] [simple_uut_performance_exec uut3 "ping 1.0.0.1"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [simple_uut_performance_monitor_enable uut3] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_310_c.xml0000777000006000000600000021161312226110337020034 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 C performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-response-time ipv4 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor media ipv4 traffic-monitor application-traffic-stats metadata flow class-map match-all admitted match metadata cac status admitted class-map match-all unadmitted match metadata cac status un-admitted policy-map child class admitted set dscp af41 class unadmitted set dscp af42 class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 queue-limit 100 ms queue-limit dscp af41 150 ms admit cac local flow rate fixed 100 service-policy child class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % sh policy-map interface 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_add_configuut "no performance monitor context my-visibility profile application-experience"] [simple_uut_performance_add_config uut "no policy-map POLICY_WAN"] [simple_uut_performance_add_config uut "no policy-map QOS_WAN"] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_mma_ezpm_mace_145.xml0000777000006000000600000017747612226110337017711 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload service internal logg buffered 1000000 performance monitor context testing profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor url cache-size 64000 traffic-monitor application-response-time cache-size 64000 traffic-monitor conversation-traffic-stats cache-size 64000 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context testing no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 100 30 0.005 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_mma_ezpm_mace_145_default.xml0000777000006000000600000017741512226110337021406 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload service internal logg buffered 1000000 performance monitor context testing profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor url traffic-monitor application-response-time traffic-monitor conversation-traffic-stats default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context testing no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 100 30 0.005 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_NARRA_SANITY.xml0000777000006000000600000020635712226110337016435 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP20 REALISTIC Plain Routing SANITY UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R3_R2" uut(device,console) "telnet 172.27.41.161 2013" uut(device,mgt_ip) "1.18.3.2" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP20" uut(device,esp_a) "ESP20" uut(device,esp_b) "ESP20" uut(device,chassis_type) "asr1006" uut(Avalanche.ethernet.1,intf) Te0/3/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te0/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [exit] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_3R_Real1G_CENT_BASELINE_FAILOVER.xml0000777000006000000600000031064712226110336022114 0ustar apacheapache SANDBOX 2Routers ASR1001 CENT CEF DMVPN UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.uut3.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "" uut(device,rp) "RP2" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut3 1 WAN2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN uut3 1 INTER FROM_TITAN FROM_TITAN FROM_TITAN uut3 lab FROM_TITAN uut2 1 INTER FROM_TITAN uut 1 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) mtu 9216 ip address 25.0.0.2 255.255.255.0 shut no shutdown ! router eigrp 100 network 21.0.0.0 network 1.0.0.0 no auto-summary ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.0.1 key letmein ! crypto ipsec security-association replay disable crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.0.1 255.255.255.255 keyring DMVPN match identity address 25.0.0.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(uut,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 24.0.0.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 24.0.0.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(uut,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.1 remote-as 6000 neighbor 25.0.0.1 update-source loopback 0 neighbor 25.0.0.1 activate neighbor 24.0.0.1 remote-as 6000 neighbor 24.0.0.1 update-source loopback 0 neighbor 24.0.0.1 activate show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show logging 300 yes sh ip route 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT3 ! interface $uut_data(uut2,INTER) ip address 26.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 22.0.0.0 network 26.0.0.0 no auto-summary ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 24.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 24.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 24.0.0.2 ip nhrp map 1.0.1.2 24.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.1.2 ip virtual-reassembly no keepalive tunnel source $uut_data(uut2,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 24.0.0.2 remote-as 6001 neighbor 24.0.0.2 update-source loopback 0 neighbor 24.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.10 255.255.255.255 no shutdown cent master hub source-interface Loopback1 border 1.1.1.10 cent-interface tunnel0 external green border 1.1.1.11 cent-interface tunnel0 external blue class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! RATE LIMIT POLICY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! policy-map test class class-default shape average 1000000000 ! interface $uut_data(uut2,WAN1) service-policy output test ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut3] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut3,INTER) default interface $uut_data(uut3,WAN2) ! INTERFACES THAT CONNECT TO AVALANCHE ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut3,WAN2) ip address 25.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut3,INTER) ip address 26.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 1.0.0.2 remote-as 6001 neighbor 1.0.0.2 update-source loopback 0 neighbor 1.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 25.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.0.2 ip nhrp map 1.0.0.2 25.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(uut3,WAN2) no keepalive tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.2 remote-as 6001 neighbor 25.0.0.2 update-source loopback 0 neighbor 25.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! RATE LIMIT POLICY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! policy-map test class class-default shape average 1000000000 ! interface $uut_data(uut3,WAN2) service-policy output test ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show logging 180 yes sh ip route 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 300 20 0.0001 85 75 50 0.1 1600 500 30 30 500 CLIENT1 24 1 CLIENT1 24 2 CLIENT1 146 3 CLIENT1 62 4 CLIENT1 80 5 CLIENT1 26 6 CLIENT1 34 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 144 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [simple_uut_performance_init uut3] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [simple_uut_performance_exec uut3 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name uut3 -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3 p4] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [simple_uut_performance_config uut3] [simple_uut_performance_exec uut3 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut3 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut3 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [simple_uut_performance_exec uut3 "show ip route"] [simple_uut_performance_exec uut "ping 1.0.0.2"] [simple_uut_performance_exec uut2 "ping 1.0.1.1"] [simple_uut_performance_exec uut3 "ping 1.0.0.1"] [880_Monitor_enabled] [Avalanche4_2_start traffic_gen1] [sleep 30] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [simple_uut_performance_monitor_enable uut3] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 900] [simple_uut_performance_add_complex_config -router_name uut2 -config "interface tunnel 0 \n shutdown" -flag "BR1 to tunnel shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "interface tunnel 0 \n no shutdown" -flag "BR1 to tunnel no shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n shutdown" -flag "BR2 to tunnel shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n no shutdown" -flag "BR2 to tunnel no shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "policy-map test \n class class-default \n shape average 50000000" -flag "BR1 to 50mbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "policy-map test \n class class-default \n shape average 300000000" -flag "BR1 to 300mbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "policy-map test \n class class-default \n shape average 50000000" -flag "BR2 to 50mbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "policy-map test \n class class-default \n shape average 300000000" -flag "BR2 to 300mbps"] [sleep 600] [Avalanche4_2_stop_traffic traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1002_PERF_CENT2_Real2G_CENT_A.xml0000777000006000000600000025702012227370665020165 0ustar apacheapache SANDBOX CENT ASR1002 REALISTIC CEF CENT UUT.BR1.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.BR2.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.MC.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.MC_BR.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,mgt_intf) "" uut2(device,rp) "RP2" uut2(device,rp_a) "RP2" uut2(device,rp_b) "RP2" uut2(device,esp) "ESP20" uut2(device,esp_a) "ESP20" uut2(device,esp_b) "ESP20" uut2(device,chassis_type) "asr1006" uut3(device,hostname) "R7_R7" uut3(device,console) "telnet 172.27.41.164 2009" uut3(device,mgt_ip) "1.18.7.7" uut3(device,mgt_intf) "GigabitEthernet0" uut3(device,rp) "RP1" uut3(device,esp) "ESP10" uut3(device,chassis_type) "asr1002" uut4(device,hostname) "" uut4(device,console) "" uut4(device,mgt_ip) "" uut4(device,mgt_intf) "GigabitEthernet0" uut4(device,rp) "RP2" uut4(device,esp) "ESP20" uut4(device,esp_a) "ESP20" uut4(device,esp_b) "ESP20" uut4(device,chassis_type) "asr1013" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut4.ethernet.1,intf) uut2(uut4.ethernet.1,speed) ether1000 uut2(uut4.ethernet.1,conn_type) p2p uut2(uut4.ethernet.1,conn_id) 1 uut3(Avalanche.ethernet.1,intf) GigabitEthernet0/0/0 uut3(Avalanche.ethernet.1,speed) ether1000 uut3(Avalanche.ethernet.1,conn_type) p2p uut3(Avalanche.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) GigabitEthernet0/0/1 uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) GigabitEthernet0/0/2 uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut4.ethernet.1,intf) GigabitEthernet0/0/3 uut3(uut4.ethernet.1,speed) ether1000 uut3(uut4.ethernet.1,conn_type) p2p uut3(uut4.ethernet.1,conn_id) 1 uut4(uut2.ethernet.1,intf) uut4(uut2.ethernet.1,speed) ether1000 uut4(uut2.ethernet.1,conn_type) p2p uut4(uut2.ethernet.1,conn_id) 1 uut4(uut3.ethernet.1,intf) uut4(uut3.ethernet.1,speed) ether1000 uut4(uut3.ethernet.1,conn_type) p2p uut4(uut3.ethernet.1,conn_id) 1 uut4(Avalanche.ethernet.1,intf) uut4(Avalanche.ethernet.1,speed) ether1000 uut4(Avalanche.ethernet.1,conn_type) p2p uut4(Avalanche.ethernet.1,conn_id) 1 uut4(Avalanche.ethernet.2,intf) uut4(Avalanche.ethernet.2,speed) ether1000 uut4(Avalanche.ethernet.2,conn_type) p2p uut4(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut3.ethernet.1,intf) Avalanche(uut3.ethernet.1,speed) ether1000 Avalanche(uut3.ethernet.1,conn_type) p2p Avalanche(uut3.ethernet.1,conn_id) 1 Avalanche(uut4.ethernet.1,intf) Avalanche(uut4.ethernet.1,speed) ether1000 Avalanche(uut4.ethernet.1,conn_type) p2p Avalanche(uut4.ethernet.1,conn_id) 1 Avalanche(uut4.ethernet.2,intf) Avalanche(uut4.ethernet.2,speed) ether1000 Avalanche(uut4.ethernet.2,conn_type) p2p Avalanche(uut4.ethernet.2,conn_id) 2 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut4 1 CLIENT1 FROM_TITAN uut4 2 CLIENT2 FROM_TITAN uut3 1 SERVER1 FROM_TITAN uut2 1 SERVER2 FROM_TITAN FROM_TITAN FROM_TITAN lab MC FROM_TITAN uut2 1 HUB_MC2 FROM_TITAN uut3 1 HUB_MC1 FROM_TITAN FROM_TITAN FROM_TITAN lab BR2 FROM_TITAN Avalanche 1 SERVER2 FROM_TITAN uut 1 HUB_MC2 FROM_TITAN uut4 1 WAN1 FROM_TITAN uut3 1 INTERBR FROM_TITAN FROM_TITAN FROM_TITAN lab BR1 FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 HUB_MC1 FROM_TITAN uut4 1 WAN2 FROM_TITAN uut2 1 INTERBR FROM_TITAN FROM_TITAN FROM_TITAN lab MC_BR uut2 1 WAN1 FROM_TITAN uut3 1 WAN2 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(MC,HUB_MC1) default interface $uut_data(MC,HUB_MC2) interface $uut_data(MC,HUB_MC2) ip address 24.0.1.1 255.255.255.0 no shutdown ! interface $uut_data(MC,HUB_MC1) ip address 24.0.2.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 24.0.1.1 0.0.0.0 network 24.0.2.1 0.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback BR1] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(BR1,WAN2) default interface $uut_data(BR1,INTERBR) default interface $uut_data(BR1,HUB_MC1) default interface $uut_data(BR1,SERVER1) interface $uut_data(BR1,WAN2) ip address 25.0.2.1 255.255.255.0 no shutdown ! interface $uut_data(BR1,INTERBR) ip address 24.0.3.1 255.255.255.0 no shutdown ! interface $uut_data(BR1,HUB_MC1) ip address 24.0.2.2 255.255.255.0 no shutdown ! interface $uut_data(BR1,SERVER1) ip address 22.0.0.1 255.0.0.0 no shutdown ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! EIGRP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! router eigrp 100 no auto-summary network 24.0.0.0 network 22.0.0.0 network 1.0.0.0 !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.2.2 remote-as 6001 neighbor 25.0.2.2 update-source $uut_data(BR1,WAN2) neighbor 25.0.2.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.2.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.2.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.2.2 ip nhrp map 1.0.0.2 25.0.2.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(BR1,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show interfaces tunnel0 | i 30 second 30 second output rate ([0-9]+) % 1000000 show interfaces tunnel0 | i 30 second 30 second input rate ([0-9]+) % 1000000 /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback BR2] use the one in router Filled by Controller after reload default interface $uut_data(BR2,HUB_MC2) default interface $uut_data(BR2,SERVER2) default interface $uut_data(BR2,INTERBR) default interface $uut_data(BR2,WAN1) interface $uut_data(BR2,HUB_MC2) ip address 24.0.1.2 255.255.255.0 no shutdown ! interface $uut_data(BR2,SERVER2) ip address 23.0.0.1 255.0.0.0 no shutdown ! interface $uut_data(BR2,INTERBR) ip address 24.0.3.2 255.255.255.0 no shutdown ! interface $uut_data(BR2,WAN1) ip address 25.0.1.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 24.0.0.0 network 23.0.0.0 network 1.0.0.0 ! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.1.2 remote-as 6001 neighbor 25.0.1.2 update-source $uut_data(BR2,WAN1) neighbor 25.0.1.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.1.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.1.2 255.255.255.255 keyring DMVPN match identity address 25.0.1.2 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.1.2 ip nhrp map 1.0.1.2 25.0.1.2 ip nhrp network-id 124 ip nhrp nhs 1.0.1.2 tunnel source $uut_data(BR1,WAN2) tunnel mode gre multipoint tunnel key 124 ip virtual-reassembly tunnel protection ipsec profile DMVPN shut no shut ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show interfaces tunnel0 | i 30 second 30 second output rate ([0-9]+) % 1000000 show interfaces tunnel0 | i 30 second 30 second input rate ([0-9]+) % 1000000 /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC_BR] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(MC_BR,WAN1) default interface $uut_data(MC_BR,WAN2) default interface $uut_data(MC_BR,CLIENT1) default interface $uut_data(MC_BR,CLIENT2) interface $uut_data(MC_BR,WAN1) ip address 25.0.1.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,WAN2) ip address 25.0.2.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,CLIENT1) ip address 21.0.0.1 255.0.0.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(MC_BR,CLIENT2) ip address 20.0.0.1 255.0.0.0 ip tcp adjust-mss 1340 no shutdown ! router eigrp 100 no auto-summary network 21.0.0.0 network 20.0.0.0 network 1.0.0.0 ! ! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.2.1 remote-as 6000 neighbor 25.0.2.1 update-source $uut_data(MC_BR,WAN2) neighbor 25.0.2.1 activate neighbor 25.0.1.1 remote-as 6000 neighbor 25.0.1.1 update-source $uut_data(MC_BR,WAN1) neighbor 25.0.1.1 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.2.1 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.2.1 255.255.255.255 keyring DMVPN match identity address 25.0.2.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(MC_BR,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 25.0.1.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 25.0.1.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(MC_BR,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 shut no shut ! ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 900 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 900 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 8 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 8 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 8 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75
      85 75 85 75
      85 75 85 75 85 75 85 75
      50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init BR1] [simple_uut_performance_init MC_BR] [simple_uut_performance_init BR2] [simple_uut_performance_init MC] [Avalanche4_2_init] [#::async::async p1 {simple_uut_reload_with_tftpdnld -router_name BR1 -tftp_server 223.255.254.245}] [#::async::async p2 {simple_uut_reload_with_tftpdnld -router_name MC -tftp_server 223.255.254.245}] [#::async::async p3 {simple_uut_reload_with_tftpdnld -router_name BR2 -tftp_server 223.255.254.245}] [#::async::async p4 {simple_uut_reload_with_tftpdnld -router_name MC_BR -tftp_server 223.255.254.245}] [#::async::wait p1 p2 p3 p4] [simple_uut_performance_add_config MC "no router eigrp 100"] [simple_uut_performance_add_config BR1 "no router eigrp 100"] [simple_uut_performance_add_config BR2 "no router eigrp 100"] [simple_uut_performance_add_config MC_BR "no router eigrp 100"] [simple_uut_performance_config MC] [simple_uut_performance_exec MC "show run"] [simple_uut_performance_config BR1] [simple_uut_performance_exec BR1 "show run"] [simple_uut_performance_config BR2] [simple_uut_performance_exec BR2 "show run"] [simple_uut_performance_config MC_BR] [simple_uut_performance_exec MC_BR "show run"] [simple_uut_performance_exec MC "show ip eigrp neighbors"] [simple_uut_performance_exec MC_BR "show ip eigrp neighbors"] [simple_uut_performance_exec BR1 "show ip eigrp neighbors"] [simple_uut_performance_exec BR2 "show ip eigrp neighbors"] [simple_uut_performance_exec BR1 "show ip bgp"] [simple_uut_performance_exec BR2 "show ip bgp"] [simple_uut_performance_exec MC_BR "show ip route"] [sleep 5] [simple_uut_performance_add_config BR2 "interface tunnel 0 \n shutdown \n"] [simple_uut_performance_add_config BR1 "interface tunnel 0 \n shutdown \n"] [simple_uut_performance_add_config BR2 "interface tunnel 0 \n no shutdown \n"] [simple_uut_performance_add_config BR1 "interface tunnel 0 \n no shutdown \n"] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable MC] [simple_uut_performance_monitor_enable BR2] [simple_uut_performance_monitor_enable BR1] [simple_uut_performance_monitor_enable MC_BR] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe BR:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe BR:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe BR:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT BR1 -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_NBAR_WITH_CHECKS.xml0000777000006000000600000021147312236026274021316 0ustar apacheapache PERFORMANCE Back_to_back ASR1001 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 8 20.0.0.0 true Routing1 20.0.0.2-20.0.4.0 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945e_B2B_CENT1G_TRAFFIC_VALIDATION.xml0000777000006000000600000024565312233564162020751 0ustar apacheapache PERFORMANCE Back_to_back ISR3945E CENT VALIDATION_OF_TRAFFIC TRAFFIC_VALIDATION UUT.uut.IMAGE=/auto/tftp-joaofer/c3900e-universalk9-mz.SSA.GOLDEN Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "R2_R12" uut(device,console) "" uut(device,chassis_type) "cisco3945-chassis" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE250/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE250/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! Voice access-list 2000 permit ip any host 22.0.1.2 access-list 2000 permit ip host 22.0.1.2 any ! Citrix access-list 2001 permit ip any host 22.0.7.2 access-list 2001 permit ip host 22.0.7.2 any ! Oracle access-list 2002 permit ip any host 22.0.8.2 access-list 2002 permit ip host 22.0.8.2 any ! Exchange access-list 2003 permit ip any host 22.0.6.2 access-list 2003 permit ip host 22.0.6.2 any ! ! HTTP_10K_60K access-list 2004 permit ip any host 22.0.11.2 access-list 2004 permit ip host 22.0.11.2 any ! ! HTTP_Browsing access-list 2005 permit ip any host 22.0.12.2 access-list 2005 permit ip host 22.0.12.2 any ! RTSP access-list 2006 permit ip any host 22.0.3.2 access-list 2006 permit ip host 22.0.3.2 any ! POP access-list 2007 permit ip any host 22.0.9.2 access-list 2007 permit ip host 22.0.9.2 any ! SMTP access-list 2008 permit ip any host 22.0.10.2 access-list 2008 permit ip host 22.0.10.2 any ! DNS access-list 2009 permit ip any host 22.0.4.2 access-list 2009 permit ip host 22.0.4.2 any ! HTTPS access-list 2010 permit ip any host 22.0.5.2 access-list 2010 permit ip host 22.0.5.2 any ! class-map match_voice match access-group 2000 class-map match_citrix match access-group 2001 class-map match_oracle match access-group 2002 class-map match_exchange match access-group 2003 class-map match_http10k_60k match access-group 2004 class-map match_rtsp match access-group 2005 class-map match_httpbrowsing match access-group 2006 class-map match_pop match access-group 2007 class-map match_smtp match access-group 2008 class-map match_dns match access-group 2009 class-map match_https match access-group 2010 ! policy-map counting class match_voice class match_citrix class match_oracle class match_exchange class match_http10k_60k class match_httpbrowsing class match_rtsp class match_pop class match_smtp class match_dns class match_https ! ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! interface $uut_data(uut,SERVER1) no ip address no shutdown ! interface ${uut_data(uut,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 service-policy input counting service-policy output counting ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1600 500 30 30 1000 CLIENT1 24 1 CLIENT1 24 2 CLIENT1 146 3 CLIENT1 62 4 CLIENT1 80 5 CLIENT1 26 6 CLIENT1 34 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 144 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [#simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface input"] [simple_uut_performance_exec uut "show policy-map interface output"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_NARRA_SANITY.xml0000777000006000000600000017462212226110337016306 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B SANITY UUT.uut.IMAGE=/auto/tftp-joaofer/c3900-universalk9-mz.SSA.GOLDEN; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_B2B_REAL1G_AVC_310_A.xml0000777000006000000600000035631112236010466017230 0ustar apacheapache PERFORMANCE Back_to_back ISR3945 REALISTIC AVC_A PERFORMANCE TEST AVC_A UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! AVC CHECKS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER1)"] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945e_perf_b2b_mohassan_200m_avc_310_b.xml0000777000006000000600000020420712236270621022503 0ustar apacheapache SANDBOX Back_to_back ISR3945e Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R13" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B service internal performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor url traffic-monitor application-response-time traffic-monitor conversation-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show memory statistics | inc Processor Processor +[0-9A-Z]+ +[0-9]+ +[0-9]+ +([0-9]+) +[0-9]+ Mb 1048576 /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1200 500 30 30 2086 200 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_exec uut "show memory processor statistics history"] [simple_uut_performance_exec uut "show memory processor statistics"] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] [simple_uut_performance_exec uut "show memory processor statistics history"] [simple_uut_performance_exec uut "show memory processor statistics"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:PMEM -store_variable PMEM_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_B2B_MURTHY500M_PI23_FNF_ATS_DUAL.xml0000777000006000000600000020156312226110337021744 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload flow record Application-Traffic-Stats-Output match ipv4 protocol match application name match ipv4 version match flow direction match routing vrf input match interface output collect interface input collect ipv4 dscp collect counter packets collect counter bytes long collect connection new-connections collect connection sum-duration collect timestamp sys-uptime first collect timestamp sys-uptime last flow record Application-Traffic-Stats-Input match ipv4 protocol match application name match ipv4 version match flow direction match routing vrf input match interface input collect interface output collect ipv4 dscp collect counter packets collect counter bytes long collect timestamp sys-uptime first collect timestamp sys-uptime last flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor ATS_Input record Application-Traffic-Stats-Input exporter fe1 cache timeout synchronized 60 cache entries 64000 flow monitor ATS_Output record Application-Traffic-Stats-Output exporter fe1 cache timeout synchronized 60 cache entries 64000 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 ip flow monitor ATS_Input in ip flow monitor ATS_Output out no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_2R_Real2G_CENT_CORE_MC_BR.xml0000777000006000000600000023445212232656534021150 0ustar apacheapache SANDBOX 2Routers ASR1001 REALISTIC CEF CEF UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,esp) "ESP40" uut(device,chassis_type) "mcp" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether1000 uut(Avalanche.ethernet.2,conn) p2p uut(Avalanche.ethernet.2,conn_id) 2 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut(uut2.ethernet.2,intf) uut(uut2.ethernet.2,speed) ether1000 uut(uut2.ethernet.2,conn) p2p uut(uut2.ethernet.2,conn_id) 2 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut.ethernet.2,intf) uut2(uut.ethernet.2,speed) ether1000 uut2(uut.ethernet.2,conn) p2p uut2(uut.ethernet.2,conn_id) 2 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.2,intf) uut2(Avalanche.ethernet.2,speed) ether1000 uut2(Avalanche.ethernet.2,conn) p2p uut2(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn) p2p Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.2,intf) Avalanche(uut2.ethernet.2,speed) ether1000 Avalanche(uut2.ethernet.2,conn) p2p Avalanche(uut2.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut2 2 SERVER2 FROM_TITAN uut 1 CLIENT1 FROM_TITAN uut 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN uut2 2 WAN2 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 SERVER2 FROM_TITAN uut 1 WAN1 FROM_TITAN uut 2 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,CLIENT2) default interface $uut_data(uut,WAN1) default interface $uut_data(uut,WAN2) ! CENT CONFIG ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 no shutdown ! ! cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.2 source-interface Loopback0 ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown ! default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) ip address 25.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.2 0.0.0.0 network 21.0.0.0 network 20.0.0.0 network 24.0.0.0 network 25.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,SERVER2) default interface $uut_data(uut2,WAN1) default interface $uut_data(uut2,WAN2) ! ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! ! cent master hub source-interface Loopback0 border 10.0.0.1 cent-interface $uut_data(uut2,WAN1) external green cent-interface $uut_data(uut2,WAN2) external blue class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! cent border master 10.0.0.1 source-interface Loopback0 ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(uut2,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(uut2,WAN2) ip address 25.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.1 0.0.0.0 network 22.0.0.0 network 23.0.0.0 network 24.0.0.0 network 25.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh cent border pmi 300 yes sh cent master channels 300 yes sh cent border site-pre 300 yes sh cent border status 300 yes sh cent master status 300 yes show logging 600 yes sh ip route 300 yes show cent master traffic-class 300 yes sh pl h q a infr cft status b 120 yes sh cen bo traf 300 yes sh cen bo si 300 yes show platform hardware qfp active statistics drop clear | exclude _0_ 300 yes show platform hardware qfp active infrastructure punt statistics type global-drop clear | exclude _0_ 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENB BASIC BORDER CONNECTION CHECK [simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [simple_uut_regex -router_name uut2 -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show cent border status \n show cent border channels \n show cent border traffic-classes \n show cent border site-prefix"] [simple_uut_performance_exec uut2 "show cent border status \n show cent border channels \n show cent border traffic-classes \n show cent border site-prefix"] ! CENT BASIC CHECK Prefix Check [#simple_uut_regex -router_name uut -name "UUT BR PREFIX LOOPBACK CHECK" -regex {10.0.0.1\s+10.0.0.1} -show_command {show cent border site-prefix | i 10.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Client Prefix 21 network check" -regex {10.0.0.1\s+21.0.0.0} -show_command {show cent border site-prefix | i 21.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Client Prefix 22 network check" -regex {10.0.0.1\s+20.0.0.0} -show_command {show cent border site-prefix | i 20.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer PREFIX LOOPBACK CHECK" -regex {10.0.0.2\s+10.0.0.2} -show_command {show cent border site-prefix | i 10.0.0.2} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer Prefix 21 network check" -regex {10.0.0.2\s+22.0.0.0} -show_command {show cent border site-prefix | i 22.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer Prefix 22 network check" -regex {10.0.0.2\s+23.0.0.0} -show_command {show cent border site-prefix | i 23.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT BR PREFIX LOOPBACK CHECK" -regex {10.0.0.1\s+10.0.0.1} -show_command {show cent border site-prefix | i 10.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Client Prefix 21 network check" -regex {10.0.0.1\s+21.0.0.0} -show_command {show cent border site-prefix | i 21.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Client Prefix 22 network check" -regex {10.0.0.1\s+20.0.0.0} -show_command {show cent border site-prefix | i 20.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer PREFIX LOOPBACK CHECK" -regex {10.0.0.2\s+10.0.0.2} -show_command {show cent border site-prefix | i 10.0.0.2} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer Prefix 21 network check" -regex {10.0.0.2\s+22.0.0.0} -show_command {show cent border site-prefix | i 22.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer Prefix 22 network check" -regex {10.0.0.2\s+23.0.0.0} -show_command {show cent border site-prefix | i 23.0.0.1} -sleep 5 -retry 2] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_NAT.xml0000777000006000000600000021050112227370664017337 0ustar apacheapache SANDBOX Back_to_back ASR1001 REALISTIC AVC 3.10 Config A with NAT NAT UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ip nat translation max-entries 300000 access-list 1 permit 21.0.0.0 0.255.255.255 access-list 2 permit 20.0.0.0 0.255.255.255 ip nat inside source list 1 interface $uut_data(uut,SERVER1) overload ip nat inside source list 2 interface $uut_data(uut,SERVER2) overload ip nat translation timeout 120 ip nat translation dns-timeout 1 ip nat translation finrst-timeout 1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 ip nat outside no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 ip nat outside no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 ip nat inside no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 ip nat inside no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show ip nat translation"] [simple_uut_performance_exec uut "show access-lists 1"] [simple_uut_performance_exec uut "show access-lists 2"] [simple_uut_performance_exec uut "show ip nat statistics"] [simple_uut_regex -router_name uut -name "ACCESS LIST Check 1" -regex {255\s\(\d....*\smatches} -show_command "show access-lists 1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "ACCESS LIST Check 1" -regex {255\s\(\d....*\smatches} -show_command "show access-lists 2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "TRANSLATIONS" -regex {translations:\s\d....*\,\soccurred} -show_command "show ip nat statistics | inc Peak" -sleep 5 -retry 2] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/test.txt0000777000006000000600000000036512224070054014277 0ustar apacheapacheimport re serial = " "CAT/MainBuild/abcd/1234/*/*" matchObj = re.match( r'CAT(*)', serial, re.M|re.I) if matchObj: print "matchObj.group() : ", matchObj.group() print "matchObj.group(1) : ", matchObj.group(1) else: print "No match!!"site_pro/XML/anuragb_cent_oct6.xml0000777000006000000600000021433712226110337016673 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-sjc-users5/anuragb/c3900-universalk9-mz.SSA.3900_current;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! CENT CONFIG ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 no shutdown ! cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.2 source-interface Loopback0 ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.2 0.0.0.0 network 21.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! cent master hub source-interface Loopback0 border 10.0.0.1 cent-interface $uut_data(uut2,WAN1) external green class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 10.0.0.1 source-interface Loopback0 ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.1 0.0.0.0 network 22.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENB BASIC BORDER CONNECTION CHECK [simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [simple_uut_regex -router_name uut2 -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 600] [simple_uut_performance_exec uut "profile task interrupt"] [simple_uut_performance_exec uut "profile 4000000 0415270c 4"] [simple_uut_performance_exec uut "profile start"] [sleep 30] [simple_uut_performance_exec uut "profile stop"] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show profile terse"] [simple_uut_performance_exec uut "show cent master cent-tech"] [simple_uut_performance_exec uut "show cent border cent-tech"] [simple_uut_performance_exec uut2 "show cent master cent-tech"] [simple_uut_performance_exec uut2 "show cent border cent-tech"] [simple_uut_performance_exec uut2 "show cent master statistics"] [simple_uut_performance_exec uut2 "show cent border statistics"] [simple_uut_performance_exec uut2 "show cent border channels"] [simple_uut_performance_exec uut2 "show waas status"] [simple_uut_performance_exec uut2 "show policy-map type waas waas_global"] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_3R_Real1G_CENT_CENTA_FAILOVER0000777000006000000600000030703112216672107021021 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-joaofer/c3900-universalk9-mz.SSA.LATEST;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.uut3.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "cisco3945-chassis" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut3 1 WAN2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN uut3 1 INTER FROM_TITAN FROM_TITAN FROM_TITAN uut3 lab FROM_TITAN uut2 1 INTER FROM_TITAN uut 1 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) mtu 9216 ip address 25.0.0.2 255.255.255.0 shut no shutdown ! router eigrp 100 network 21.0.0.0 network 1.0.0.0 no auto-summary ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.0.1 key letmein ! crypto ipsec security-association replay disable crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.0.1 255.255.255.255 keyring DMVPN match identity address 25.0.0.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(uut,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 24.0.0.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 24.0.0.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(uut,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.1 remote-as 6000 neighbor 25.0.0.1 update-source loopback 0 neighbor 25.0.0.1 activate neighbor 24.0.0.1 remote-as 6000 neighbor 24.0.0.1 update-source loopback 0 neighbor 24.0.0.1 activate !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface Loopback1 ip address 1.1.1.12 255.255.255.255 no shutdown ! cent master branch source-interface Loopback1 hub 1.1.1.10 ! cent border master 1.1.1.12 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT3 ! interface $uut_data(uut2,INTER) ip address 26.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 22.0.0.0 network 26.0.0.0 no auto-summary ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 24.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 24.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 24.0.0.2 ip nhrp map 1.0.1.2 24.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.1.2 ip virtual-reassembly no keepalive tunnel source $uut_data(uut2,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 24.0.0.2 remote-as 6001 neighbor 24.0.0.2 update-source loopback 0 neighbor 24.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.10 255.255.255.255 no shutdown cent master hub source-interface Loopback1 border 1.1.1.10 cent-interface tunnel0 external green border 1.1.1.11 cent-interface tunnel0 external blue class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 1.1.1.10 source-interface Loopback1 ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! RATE LIMIT POLICY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! policy-map test class class-default shape average 1000000000 ! interface $uut_data(uut2,WAN1) service-policy output test ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut3] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut3,INTER) default interface $uut_data(uut3,WAN2) ! INTERFACES THAT CONNECT TO AVALANCHE ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut3,WAN2) ip address 25.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut3,INTER) ip address 26.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 1.0.0.2 remote-as 6001 neighbor 1.0.0.2 update-source loopback 0 neighbor 1.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 25.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.0.2 ip nhrp map 1.0.0.2 25.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(uut3,WAN2) no keepalive tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.2 remote-as 6001 neighbor 25.0.0.2 update-source loopback 0 neighbor 25.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.11 255.255.255.255 no shutdown ! cent border master 1.1.1.10 source-interface Loopback1 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! RATE LIMIT POLICY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! policy-map test class class-default shape average 1000000000 ! interface $uut_data(uut3,WAN2) service-policy output test ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 300 20 0.0001 85 75 50 0.1 1600 500 30 30 40 CLIENT1 24 0 CLIENT1 24 1 CLIENT1 146 2 CLIENT1 62 3 CLIENT1 80 4 CLIENT1 26 5 CLIENT1 34 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 24 11 CLIENT1 144 12
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [simple_uut_performance_init uut3] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [simple_uut_performance_exec uut3 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name uut3 -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3 p4] [simple_uut_license -router_name uut -license "appxk9"] [simple_uut_license -router_name uut -license "securityk9"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [simple_uut_performance_config uut3] [simple_uut_performance_exec uut3 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut3 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut3 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [simple_uut_performance_exec uut3 "show ip route"] [simple_uut_performance_exec uut "ping 1.0.0.2"] [simple_uut_performance_exec uut2 "ping 1.0.1.1"] [simple_uut_performance_exec uut3 "ping 1.0.0.1"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [simple_uut_performance_monitor_enable uut3] [Avalanche4_2_start traffic_gen1] [sleep 120] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 900] [simple_uut_performance_add_complex_config -router_name uut2 -config "interface tunnel 0 \n shutdown" -flag "BR1 to tunnel shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "interface tunnel 0 \n no shutdown" -flag "BR1 to tunnel no shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n shutdown" -flag "BR1 to tunnel shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n no shutdown" -flag "BR1 to tunnel no shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "policy-map test \n class class-default \n shape average 1000000" -flag "BR1 to 1000kbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "policy-map test \n class class-default \n shape average 40000000" -flag "BR1 to 40mbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "policy-map test \n class class-default \n shape average 1000000" -flag "BR2 to 1000kbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "policy-map test \n class class-default \n shape average 40000000" -flag "BR2 to 40mbps"] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_mma_ezpm_all.xml0000777000006000000600000017757512226110337017163 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload service internal logg buffered 1000000 performance monitor context testing profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-traffic-stats traffic-monitor url cache-size 64000 traffic-monitor application-response-time cache-size 64000 traffic-monitor conversation-traffic-stats cache-size 64000 traffic-monitor media cache-size 64000 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context testing no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945e_perf_b2b_mohassan_200m_avc_310_b.xml~0000777000006000000600000020423612236270175022707 0ustar apacheapache SANDBOX Back_to_back ISR3945e Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R13" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B service internal performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor url traffic-monitor application-response-time traffic-monitor conversation-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show memory statistics | inc Processor Processor +[0-9A-Z]+ +[0-9]+ +[0-9]+ +([0-9]+) +[0-9]+ Mb 1048576 /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1200 500 30 30 2086 200 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_exec uut "show memory processor statistics history"] [simple_uut_performance_exec uut "show memory processor statistics"] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] [simple_uut_performance_exec uut "show memory processor statistics history"] [simple_uut_performance_exec uut "show memory processor statistics"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:PMEM -store_variable PMEM_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_CENT_Real2G_CEF.xml0000777000006000000600000023723412227370664017512 0ustar apacheapache SANDBOX CENT ASR1001 REALISTIC CEF CENT UUT.BR.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN;UUT.MC_BR.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN;UUT.MC.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,mgt_intf) "" uut2(device,chassis_type) "asr1001" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,mgt_intf) "" uut3(device,chassis_type) "asr1001" uut4(device,hostname) "" uut4(device,console) "" uut4(device,mgt_ip) "" uut4(device,chassis_type) "" uut3(uut4.ethernet.1,intf) GigabitEthernet0/0/0 uut3(uut4.ethernet.1,speed) gigabit uut3(uut4.ethernet.1,conn_type) p2p uut3(uut4.ethernet.1,media) uut3(uut4.ethernet.1,eth_mode) lan uut3(uut4.ethernet.1,conn_id) 1 uut3(Avalanche.ethernet.1,intf) GigabitEthernet0/0/1 uut3(Avalanche.ethernet.1,speed) gigabit uut3(Avalanche.ethernet.1,conn_type) p2p uut3(Avalanche.ethernet.1,media) uut3(Avalanche.ethernet.1,eth_mode) lan uut3(Avalanche.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) GigabitEthernet0/0/2 uut3(uut.ethernet.1,speed) gigabit uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,media) uut3(uut.ethernet.1,eth_mode) lan uut3(uut.ethernet.1,conn_id) 1 uut3(uut4.ethernet.2,intf) GigabitEthernet0/0/3 uut3(uut4.ethernet.2,speed) gigabit uut3(uut4.ethernet.2,conn_type) p2p uut3(uut4.ethernet.2,media) uut3(uut4.ethernet.2,eth_mode) lan uut3(uut4.ethernet.2,conn_id) 2 uut2(uut4.ethernet.1,intf) GigabitEthernet0/0/0 uut2(uut4.ethernet.1,speed) gigabit uut2(uut4.ethernet.1,conn_type) p2p uut2(uut4.ethernet.1,media) uut2(uut4.ethernet.1,eth_mode) lan uut2(uut4.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) GigabitEthernet0/0/1 uut2(Avalanche.ethernet.1,speed) gigabit uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,media) uut2(Avalanche.ethernet.1,eth_mode) lan uut2(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.2,intf) GigabitEthernet0/0/2 uut2(Avalanche.ethernet.2,speed) gigabit uut2(Avalanche.ethernet.2,conn_type) p2p uut2(Avalanche.ethernet.2,media) uut2(Avalanche.ethernet.2,eth_mode) lan uut2(Avalanche.ethernet.2,conn_id) 2 uut2(uut4.ethernet.2,intf) GigabitEthernet0/0/3 uut2(uut4.ethernet.2,speed) gigabit uut2(uut4.ethernet.2,conn_type) p2p uut2(uut4.ethernet.2,media) uut2(uut4.ethernet.2,eth_mode) lan uut2(uut4.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.1,intf) GigabitEthernet0/0/0 uut(Avalanche.ethernet.1,speed) gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) GigabitEthernet0/0/1 uut(uut3.ethernet.1,speed) gigabit uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,media) uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut4(uut2.ethernet.1,intf) uut4(uut2.ethernet.1,speed) ether1000 uut4(uut2.ethernet.1,conn_type) p2p uut4(uut2.ethernet.1,conn_id) 1 uut4(uut3.ethernet.1,intf) uut4(uut3.ethernet.1,speed) ether1000 uut4(uut3.ethernet.1,conn_type) p2p uut4(uut3.ethernet.1,conn_id) 1 uut4(uut3.ethernet.2,intf) uut4(uut3.ethernet.2,speed) ether1000 uut4(uut3.ethernet.2,conn_type) p2p uut4(uut3.ethernet.2,conn_id) 2 uut4(uut2.ethernet.2,intf) uut4(uut2.ethernet.2,speed) ether1000 uut4(uut2.ethernet.2,conn_type) p2p uut4(uut2.ethernet.2,conn_id) 2 Avalanche(uut3.ethernet.1,intf) 0 Avalanche(uut3.ethernet.1,speed) ether1000 Avalanche(uut3.ethernet.1,conn_type) p2p Avalanche(uut3.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) 1 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) 2 Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.2,intf) 3 Avalanche(uut2.ethernet.2,speed) ether1000 Avalanche(uut2.ethernet.2,conn_type) p2p Avalanche(uut2.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut3 1 CLIENT1 FROM_TITAN uut 1 CLIENT2 FROM_TITAN uut2 1 SERVER1 FROM_TITAN uut2 2 SERVER2 FROM_TITAN FROM_TITAN FROM_TITAN lab MC FROM_TITAN Avalanche 1 CLIENT2 FROM_TITAN uut3 1 LAN1 FROM_TITAN FROM_TITAN FROM_TITAN lab MC_BR FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 SERVER2 FROM_TITAN uut4 1 WAN_S1 FROM_TITAN uut4 2 WAN_S2 FROM_TITAN FROM_TITAN FROM_TITAN lab BR FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut 1 LAN1 FROM_TITAN uut4 1 WAN_C1 FROM_TITAN uut4 2 WAN_C2 FROM_TITAN FROM_TITAN FROM_TITAN lab ISP uut3 1 WAN_C1 FROM_TITAN uut3 2 WAN_C2 FROM_TITAN uut2 1 WAN_S1 FROM_TITAN uut2 2 WAN_S2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(MC,CLIENT2) default interface $uut_data(MC,LAN1) interface $uut_data(MC,LAN1) ip address 19.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(MC,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 20.0.0.0 network 19.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback BR] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(BR,CLIENT1) default interface $uut_data(BR,LAN1) default interface $uut_data(BR,WAN_C1) default interface $uut_data(BR,WAN_C2) interface $uut_data(BR,LAN1) ip address 19.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(BR,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(BR,WAN_C1) ip address 50.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(BR,WAN_C2) ip address 60.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 21.0.0.0 network 19.0.0.0 network 60.0.0.0 network 50.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback ISP] use the one in router Filled by Controller after reload default interface $uut_data(ISP,WAN_S1) default interface $uut_data(ISP,WAN_S2) default interface $uut_data(ISP,WAN_C1) default interface $uut_data(ISP,WAN_C2) interface $uut_data(ISP,WAN_S1) ip address 70.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(ISP,WAN_S2) ip address 80.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(ISP,WAN_C1) ip address 50.0.0.2 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(ISP,WAN_C2) ip address 60.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 70.0.0.0 network 80.0.0.0 network 60.0.0.0 network 50.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC_BR] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(MC_BR,WAN_S1) default interface $uut_data(MC_BR,WAN_S2) default interface $uut_data(MC_BR,SERVER1) default interface $uut_data(MC_BR,SERVER2) interface $uut_data(MC_BR,WAN_S1) ip address 70.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,WAN_S2) ip address 80.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,SERVER1) ip address 22.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(MC_BR,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 70.0.0.0 network 80.0.0.0 network 22.0.0.0 network 23.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init MC] [simple_uut_performance_init MC_BR] [simple_uut_performance_init BR] [simple_uut_performance_init ISP] [Avalanche4_2_init] [simple_uut_performance_config MC] [simple_uut_performance_exec MC "show run"] [simple_uut_performance_config BR] [simple_uut_performance_exec BR "show run"] [simple_uut_performance_config ISP] [simple_uut_performance_exec ISP "show run"] [simple_uut_performance_config MC_BR] [simple_uut_performance_exec MC_BR "show run"] [simple_uut_performance_exec MC "show ip eigrp neighbors"] [simple_uut_performance_exec MC_BR "show ip eigrp neighbors"] [simple_uut_performance_exec BR "show ip eigrp neighbors"] [simple_uut_performance_exec ISP "show ip eigrp neighbors"] [sleep 5] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable MC] [simple_uut_performance_monitor_enable MC_BR] [simple_uut_performance_monitor_enable BR] [simple_uut_performance_monitor_enable ISP] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_NARRA_SANITY2.xml0000777000006000000600000023225212226110336016326 0ustar apacheapache SANDBOX 2Routers ASR1001 REALISTIC CEF SANITY2 UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether1000 uut(Avalanche.ethernet.2,conn) p2p uut(Avalanche.ethernet.2,conn_id) 2 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut(uut2.ethernet.2,intf) uut(uut2.ethernet.2,speed) ether1000 uut(uut2.ethernet.2,conn) p2p uut(uut2.ethernet.2,conn_id) 2 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut.ethernet.2,intf) uut2(uut.ethernet.2,speed) ether1000 uut2(uut.ethernet.2,conn) p2p uut2(uut.ethernet.2,conn_id) 2 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.2,intf) uut2(Avalanche.ethernet.2,speed) ether1000 uut2(Avalanche.ethernet.2,conn) p2p uut2(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn) p2p Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.2,intf) Avalanche(uut2.ethernet.2,speed) ether1000 Avalanche(uut2.ethernet.2,conn) p2p Avalanche(uut2.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut2 2 SERVER2 FROM_TITAN uut 1 CLIENT1 FROM_TITAN uut 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN uut2 2 WAN2 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 SERVER2 FROM_TITAN uut 1 WAN1 FROM_TITAN uut 2 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,CLIENT2) default interface $uut_data(uut,WAN1) default interface $uut_data(uut,WAN2) ! CONFIGURE CRYPTO PEER crypto isakmp policy 1 lifetime 86400 encr aes 256 authentication pre-share crypto isakmp key cisco address 192.168.0.0 255.255.0.0 crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 crypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac ! crypto ipsec profile vti-1 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! crypto ipsec profile vti-2 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! interface loopback 1 ip address 192.168.1.1 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface loopback 2 ip address 192.168.2.2 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface tunnel 1 ip unnumbered $uut_data(uut,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.3.3 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-1 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! interface tunnel 2 ip unnumbered $uut_data(uut,WAN2) bandwidth 1000000 tunnel source loopback 2 tunnel destination 192.168.4.4 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-2 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! ip route 22.0.0.0 255.0.0.0 tunnel 1 ip route 23.0.0.0 255.0.0.0 tunnel 2 ! ip route 192.168.3.3 255.255.255.255 $uut_data(uut,WAN1) ip route 192.168.4.4 255.255.255.255 $uut_data(uut,WAN2) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown interface $uut_data(uut,WAN2) ip address 25.0.0.1 255.255.255.0 no shutdown ! ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,SERVER2) default interface $uut_data(uut2,WAN1) default interface $uut_data(uut2,WAN2) ! ! CONFIGURE CRYPTO PEER crypto isakmp policy 1 lifetime 86400 encr aes 256 authentication pre-share crypto isakmp key cisco address 192.168.0.0 255.255.0.0 crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 crypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac ! crypto ipsec profile vti-1 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! crypto ipsec profile vti-2 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! interface loopback 1 ip address 192.168.3.3 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface loopback 2 ip address 192.168.4.4 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface tunnel 1 ip unnumbered $uut_data(uut2,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.1.1 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-1 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! interface tunnel 2 ip unnumbered $uut_data(uut2,WAN2) bandwidth 1000000 tunnel source loopback 2 tunnel destination 192.168.2.2 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-2 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! ip route 20.0.0.0 255.0.0.0 tunnel 1 ip route 21.0.0.0 255.0.0.0 tunnel 2 ! ip route 192.168.1.1 255.255.255.255 $uut_data(uut2,WAN1) ip route 192.168.2.2 255.255.255.255 $uut_data(uut2,WAN2) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(uut2,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(uut2,WAN2) ip address 25.0.0.2 255.255.255.0 no shutdown ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 7 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_regex_neg -router_name uut -name "NO EIGRP" -regex {eigrp} -show_command "show run | i eigrp" -sleep 5 -retry 2] [simple_uut_regex_neg -router_name uut2 -name "NO EIGRP" -regex {eigrp} -show_command "show run | i eigrp" -sleep 5 -retry 2] [simple_uut_regex_neg -router_name uut -name "NO OSPF" -regex {ospf} -show_command "show run | i ospf" -sleep 5 -retry 2] [simple_uut_regex_neg -router_name uut2 -name "NO OSPF" -regex {ospf} -show_command "show run | i ospf" -sleep 5 -retry 2] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_b2b_real1g_nbarallen.xml0000777000006000000600000020266512234560357020443 0ustar apacheapache SANDBOX Back_to_back ISR3945 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.153-2.25.M0.11;UUT.uut.proto_pack=/auto/tftpboot/allenche/pp-adv-isrg2-153_3.M-7.1.0.pack Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R11" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown ! !ip nbar protocol-pack flash:proto_pack show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.00 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_exec uut "copy tftp://223.255.254.245/$uut_data(uut,proto_pack) flash:proto_pack"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR2951_B2B_REAL1G_NBAR.xml0000777000006000000600000020043212236030252016475 0ustar apacheapache PERFORMANCE Back_to_back ISR2951 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c2951-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "cisco2951/k9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945e_B2B_REAL1G_TRAFFIC_VALIDATION.xml0000777000006000000600000020004512234564645020734 0ustar apacheapache PERFORMANCE Back_to_back ISR3945E REALISTIC VALIDATION_OF_TRAFFIC TRAFFIC_VALIDATION UUT.uut.IMAGE=/auto/tftp-joaofer/c3900e-universalk9-mz.SSA.GOLDEN Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE250/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE250/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload !Voice access-list 2000 permit ip any host 22.0.0.13 access-list 2000 permit ip host 22.0.0.13 any ! Citrix access-list 2001 permit ip any host 22.0.0.12 access-list 2001 permit ip host 22.0.0.12 any ! Oracle access-list 2002 permit ip any host 22.0.0.2 access-list 2002 permit ip host 22.0.0.2 any ! Exchange access-list 2003 permit ip any host 22.0.0.3 access-list 2003 permit ip host 22.0.0.3 any ! ! HTTP_10K_60K access-list 2004 permit ip any host 22.0.0.4 access-list 2004 permit ip host 22.0.0.4 any ! ! HTTP_Browsing access-list 2005 permit ip any host 22.0.0.6 access-list 2005 permit ip host 22.0.0.6 any ! RTSP access-list 2006 permit ip any host 22.0.0.5 access-list 2006 permit ip host 22.0.0.5 any ! POP access-list 2007 permit ip any host 22.0.0.7 access-list 2007 permit ip host 22.0.0.7 any ! SMTP access-list 2008 permit ip any host 22.0.0.8 access-list 2008 permit ip host 22.0.0.8 any ! DNS access-list 2009 permit ip any host 22.0.0.9 access-list 2009 permit ip host 22.0.0.9 any ! HTTPS access-list 2010 permit ip any host 22.0.0.10 access-list 2010 permit ip host 22.0.0.10 any ! Video Calls access-list 2011 permit ip any host 22.0.0.11 access-list 2011 permit ip host 22.0.0.11 any class-map match_voice match access-group 2000 class-map match_citrix match access-group 2001 class-map match_oracle match access-group 2002 class-map match_exchange match access-group 2003 class-map match_http10k_60k match access-group 2004 class-map match_rtsp match access-group 2005 class-map match_httpbrowsing match access-group 2006 class-map match_pop match access-group 2007 class-map match_smtp match access-group 2008 class-map match_dns match access-group 2009 class-map match_https match access-group 2010 class-map match_video_calls match access-group 2011 policy-map counting class match_voice class match_citrix class match_oracle class match_exchange class match_http10k_60k class match_httpbrowsing class match_rtsp class match_pop class match_smtp class match_dns class match_https class match_video_calls ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy input counting service-policy output counting no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "sh policy-map int $uut_data(uut,SERVER1)"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 900 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP40_PERF_B2B_Real5G_AVC_310_A_NAT.xml0000777000006000000600000021230112226110337021676 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP40 REALISTIC AVC 3.10 Config A with NAT AVC310_A_NAT UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R16_R3" uut(device,console) "telnet 172.27.63.13 2004" uut(device,mgt_ip) "1.18.16.3" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP40" uut(device,chassis_type) "asr1013" uut(Avalanche.ethernet.1,intf) Te5/0/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,carriercard) sip40 uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te5/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,carriercard) sip40 uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ip nat translation max-entries 300000 access-list 1 permit 21.0.0.0 0.255.255.255 ip nat inside source list 1 interface $uut_data(uut,SERVER1) overload ip nat translation timeout 120 ip nat translation dns-timeout 1 ip nat translation finrst-timeout 1 ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 10000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN ip nat inside no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN ip nat outside no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [sleep 30] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_145.xml0000777000006000000600000020430712226110337022741 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 120 cache entries 32768 history size 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_murthy_310_c_test.xml0000777000006000000600000020504712231613201022501 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload service internal ! AVC 310 C with lcac performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-response-time ipv4 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor media ipv4 traffic-monitor application-traffic-stats traffic-monitor conversation-traffic-stats ipv4 cache-size 32000 metadata flow class-map match-all admitted match metadata cac status admitted class-map match-all unadmitted match metadata cac status un-admitted policy-map child class admitted set dscp af41 class unadmitted set dscp af42 class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 queue-limit 100 ms queue-limit dscp af41 150 ms admit cac local flow rate fixed 100 service-policy child class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % sh policy-map interface 120 yes sh flow exporter statistics 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/go.xml0000644000006000000600000040361612237132315013710 0ustar apacheapache PERFORMANCE Back_to_back ASR1001 REALISTIC AVC_A PERFORMANCE TEST AVC_A UUT.uut.IMAGE=/auto/tftp-joaofer/cmukhopa/asr1001-universalk9.BLD_V154_1_S_XE311_THROTTLE_LATEST_20131102_005924-std_2.bin; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 8 20.0.0.0 true Routing1 20.0.0.2-20.0.4.0 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 8 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! AVC CHECKS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER2)"] ! CHECK ON THE LAN POLICY CLIENT 1 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE LAN POLICY CLIENT 2 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 1 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 2 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section class-default" -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr892_b2b_real1g_avc_310_c.xml0000777000006000000600000020061212227051022020031 0ustar apacheapache SANDBOX Back_to_back ISR892 REAL AVC_310_B MMA with CENT metrics UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c800-universalk9-mz.SSA.154-0.12.T; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R17" uut(device,console) "" uut(device,chassis_type) "892" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 C performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-response-time ipv4 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor media ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_b2b_real1g_nbar_proto.xml0000777000006000000600000020266512234560327020647 0ustar apacheapache SANDBOX Back_to_back ISR3945 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.153-2.25.M0.11;UUT.uut.proto_pack=/auto/tftpboot/allenche/pp-adv-isrg2-153_3.M-7.1.0.pack Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R11" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown ! !ip nbar protocol-pack flash:proto_pack show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.00 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_exec uut "copy tftp://223.255.254.245/$uut_data(uut,proto_pack) flash:proto_pack"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_310_b.xml0000777000006000000600000021140012226110337020025 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 metadata flow class-map match-all admitted match metadata cac status admitted class-map match-all unadmitted match metadata cac status un-admitted policy-map child class admitted set dscp af41 class unadmitted set dscp af42 class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 queue-limit 100 ms queue-limit dscp af41 150 ms admit cac local flow rate fixed 100 service-policy child class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % sh policy-map interface 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_add_configuut "no performance monitor context my-visibility profile application-experience"] [simple_uut_performance_add_config uut "no policy-map POLICY_WAN"] [simple_uut_performance_add_config uut "no policy-map QOS_WAN"] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_145_60.xml0000777000006000000600000020431012226110337023240 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 32768 history size 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_fnf_ats_dual.xml0000777000006000000600000020146012226110337023540 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload flow record Application-Traffic-Stats-Output match ipv4 protocol match application name match ipv4 version match flow direction match routing vrf input match interface output collect interface input collect ipv4 dscp collect counter packets collect counter bytes long collect timestamp sys-uptime first collect timestamp sys-uptime last flow record Application-Traffic-Stats-Input match ipv4 protocol match application name match ipv4 version match flow direction match routing vrf input match interface input collect interface output collect ipv4 dscp collect counter packets collect counter bytes long collect timestamp sys-uptime first collect timestamp sys-uptime last flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor ATS_Input record Application-Traffic-Stats-Input exporter fe1 cache timeout synchronized 60 cache entries 64000 flow monitor ATS_Output record Application-Traffic-Stats-Output exporter fe1 cache timeout synchronized 60 cache entries 64000 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 ip flow monitor ATS_Input in ip flow monitor ATS_Output out no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_3R_Real1G_CENT_BASELINE.xml0000777000006000000600000027620612226110337020663 0ustar apacheapache SANDBOX 2Routers ISR3945 CENT CEF DMVPN UUT.uut.IMAGE=/auto/tftp-joaofer/c3900-universalk9-mz.SSA.LATEST;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.uut3.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "cisco3945-chassis" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut3 1 WAN2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN uut3 1 INTER FROM_TITAN FROM_TITAN FROM_TITAN uut3 lab FROM_TITAN uut2 1 INTER FROM_TITAN uut 1 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) mtu 9216 ip address 25.0.0.2 255.255.255.0 shut no shutdown ! router eigrp 100 network 21.0.0.0 network 1.0.0.0 no auto-summary ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.0.1 key letmein ! crypto ipsec security-association replay disable crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.0.1 255.255.255.255 keyring DMVPN match identity address 25.0.0.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(uut,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN no keepalive ip tcp adjust-mss 1340 shut no shut ip mtu 9000 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 24.0.0.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 24.0.0.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(uut,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 no keepalive ip tcp adjust-mss 1340 shut no shut ip mtu 9000 ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP !!!!!!!!!!!!!!!!!!!!!!!!!!! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.1 remote-as 6000 neighbor 25.0.0.1 update-source loopback 0 neighbor 25.0.0.1 activate neighbor 24.0.0.1 remote-as 6000 neighbor 24.0.0.1 update-source loopback 0 neighbor 24.0.0.1 activate ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT3 ! interface $uut_data(uut2,INTER) ip address 26.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 22.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 24.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 24.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 24.0.0.2 ip nhrp map 1.0.1.2 24.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.1.2 ip virtual-reassembly no keepalive tunnel source $uut_data(uut2,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 24.0.0.2 remote-as 6001 neighbor 24.0.0.2 update-source loopback 0 neighbor 24.0.0.2 activate ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut3] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut3,INTER) default interface $uut_data(uut3,WAN2) ! INTERFACES THAT CONNECT TO AVALANCHE ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut3,WAN2) ip address 25.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut3,INTER) ip address 26.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 25.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 25.0.0.2 ip nhrp map 1.0.0.2 25.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(uut3,WAN2) no keepalive tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.2 remote-as 6001 neighbor 25.0.0.2 update-source loopback 0 neighbor 25.0.0.2 activate ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1600 500 30 30 500 CLIENT1 24 1 CLIENT1 24 2 CLIENT1 146 3 CLIENT1 62 4 CLIENT1 80 5 CLIENT1 26 6 CLIENT1 34 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 144 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [simple_uut_performance_init uut3] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [simple_uut_performance_exec uut3 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name uut3 -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3 p4] [simple_uut_license -router_name uut -license "appxk9"] [simple_uut_license -router_name uut -license "securityk9"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [simple_uut_performance_config uut3] [simple_uut_performance_exec uut3 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut3 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut3 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [simple_uut_performance_exec uut3 "show ip route"] [simple_uut_performance_exec uut "ping 1.0.0.2"] [simple_uut_performance_exec uut2 "ping 1.0.1.1"] [simple_uut_performance_exec uut3 "ping 1.0.0.1"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [simple_uut_performance_monitor_enable uut3] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/nbar.xml0000777000006000000600000020266712235761134014244 0ustar apacheapache SANDBOX Back_to_back ISR3945 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.153-2.25.M0.11;UUT.uut.proto_pack=/auto/tftpboot/allenche/pp-adv-isrg2-153_3.M-7.1.0.pack Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R11" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown ! !ip nbar protocol-pack flash:proto_pack show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.00 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_exec uut "copy tftp://223.255.254.245/$uut_data(uut,proto_pack) flash:proto_pack"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945e_PERF_B2B_Real500M_AVC_310_B.xml0000777000006000000600000021002112226110337020504 0ustar apacheapache SANDBOX Back_to_back ISR3945e REALISTIC AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R13" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base 21.0.0.0 22.0.0.0 24 21.0.0.0 22.0.0.0 24 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 90 80 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945e_perf_b2b_mohassan_200m_real_avc_210_b.xml~0000777000006000000600000020453112236270710023702 0ustar apacheapache SANDBOX Back_to_back ISR3945e Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R13" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B service internal performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor url traffic-monitor application-response-time traffic-monitor conversation-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show memory statistics | inc Processor Processor +[0-9A-Z]+ +[0-9]+ +[0-9]+ +([0-9]+) +[0-9]+ Mb 1048576 /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1200 500 30 30 2086 200 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_exec uut "show memory processor statistics history"] [simple_uut_performance_exec uut "show memory processor statistics"] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] [simple_uut_performance_exec uut "show memory processor statistics history"] [simple_uut_performance_exec uut "show memory processor statistics"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:PMEM -store_variable PMEM_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_CEF.xml0000777000006000000600000020564212234555505017321 0ustar apacheapache SANDBOX Back_to_back ASR1001 REALISTIC Plain Routing CEF UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 8 20.0.0.0 true Routing1 20.0.0.2-20.0.4.0 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [simple_uut_performance_exec uut "show policy-map counting"] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1002_PERF_B2B_Real2G_NBAR.xml0000777000006000000600000021152212236026560017435 0ustar apacheapache PERFORMANCE Back_to_back ASR1002 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1002" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_2R_Real2G_CRYPTO.xml0000777000006000000600000023441612227370664017666 0ustar apacheapache SANDBOX 2Routers ASR1001 REALISTIC CEF CRYPTO UUT.uut.IMAGE=;UUT.uut2.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether1000 uut(Avalanche.ethernet.2,conn) p2p uut(Avalanche.ethernet.2,conn_id) 2 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut(uut2.ethernet.2,intf) uut(uut2.ethernet.2,speed) ether1000 uut(uut2.ethernet.2,conn) p2p uut(uut2.ethernet.2,conn_id) 2 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut.ethernet.2,intf) uut2(uut.ethernet.2,speed) ether1000 uut2(uut.ethernet.2,conn) p2p uut2(uut.ethernet.2,conn_id) 2 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.2,intf) uut2(Avalanche.ethernet.2,speed) ether1000 uut2(Avalanche.ethernet.2,conn) p2p uut2(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn) p2p Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.2,intf) Avalanche(uut2.ethernet.2,speed) ether1000 Avalanche(uut2.ethernet.2,conn) p2p Avalanche(uut2.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut2 2 SERVER2 FROM_TITAN uut 1 CLIENT1 FROM_TITAN uut 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN uut2 2 WAN2 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 SERVER2 FROM_TITAN uut 1 WAN1 FROM_TITAN uut 2 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,CLIENT2) default interface $uut_data(uut,WAN1) default interface $uut_data(uut,WAN2) ! CONFIGURE CRYPTO PEER crypto isakmp policy 1 lifetime 86400 encr aes 256 authentication pre-share crypto isakmp key cisco address 192.168.0.0 255.255.0.0 crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 crypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac ! crypto ipsec profile vti-1 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! crypto ipsec profile vti-2 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! interface loopback 1 ip address 192.168.1.1 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface loopback 2 ip address 192.168.2.2 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface tunnel 1 ip unnumbered $uut_data(uut,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.3.3 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-1 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! interface tunnel 2 ip unnumbered $uut_data(uut,WAN2) bandwidth 1000000 tunnel source loopback 2 tunnel destination 192.168.4.4 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-2 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! ip route 22.0.0.0 255.0.0.0 tunnel 1 ip route 23.0.0.0 255.0.0.0 tunnel 2 ! ip route 192.168.3.3 255.255.255.255 $uut_data(uut,WAN1) ip route 192.168.4.4 255.255.255.255 $uut_data(uut,WAN2) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown interface $uut_data(uut,WAN2) ip address 25.0.0.1 255.255.255.0 no shutdown ! ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,SERVER2) default interface $uut_data(uut2,WAN1) default interface $uut_data(uut2,WAN2) ! ! CONFIGURE CRYPTO PEER crypto isakmp policy 1 lifetime 86400 encr aes 256 authentication pre-share crypto isakmp key cisco address 192.168.0.0 255.255.0.0 crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 crypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac ! crypto ipsec profile vti-1 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! crypto ipsec profile vti-2 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! interface loopback 1 ip address 192.168.3.3 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface loopback 2 ip address 192.168.4.4 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface tunnel 1 ip unnumbered $uut_data(uut2,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.1.1 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-1 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! interface tunnel 2 ip unnumbered $uut_data(uut2,WAN2) bandwidth 1000000 tunnel source loopback 2 tunnel destination 192.168.2.2 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-2 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! ip route 20.0.0.0 255.0.0.0 tunnel 1 ip route 21.0.0.0 255.0.0.0 tunnel 2 ! ip route 192.168.1.1 255.255.255.255 $uut_data(uut2,WAN1) ip route 192.168.2.2 255.255.255.255 $uut_data(uut2,WAN2) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(uut2,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(uut2,WAN2) ip address 25.0.0.2 255.255.255.0 no shutdown ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_send uut "conf terminal \n license boot level adventerprise\n"] [sleep 3] [simple_uut_performance_send uut "yes \n"] [simple_uut_performance_send uut "license accept end user agreement\n"] [sleep 3] [simple_uut_performance_send uut "yes \n"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_send uut2 "conf terminal \n license boot level adventerprise\n"] [sleep 3] [simple_uut_performance_send uut2 "yes \n"] [simple_uut_performance_send uut2 "license accept end user agreement\n"] [sleep 3] [simple_uut_performance_send uut2 "yes \n"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show crypto isa sa"] [simple_uut_performance_exec uut "show crypto engine connections active"] [simple_uut_performance_exec uut "show crypto engine accelerator stat"] [simple_uut_regex -router_name uut -name "crypto encrypt check" -regex {(encaps:\s\d....*?encrypt:\s\d....*?digest:\s\d....*){1}} -show_command "show crypto ipsec sa | inc encrypt" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "crypto decrypt check" -regex {(decaps:\s\d....*?decrypt:\s\d....*?verify:\s\d....*){1}} -show_command "show crypto ipsec sa | inc decrypt" -sleep 5 -retry 2] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_2R_CENT1G_CORE_CENT.xml0000777000006000000600000026574612232707414020057 0ustar apacheapache SANDBOX 2Routers ASR1001 CENT CEF DMVPN_CENT UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.192" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "" uut(device,rp) "RP2" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! ! router eigrp 100 network 21.0.0.0 network 24.0.0.0 network 10.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG ! CENT CONFIG ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 no shutdown ! ! cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.2 source-interface Loopback0 ! INTERFACES THAT CONNECT TO AVALANCHE ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh cent border pmi 300 yes sh cent master channels 120 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes show logging 300 yes sh ip route 300 yes show cent master traffic-class 60 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! router eigrp 100 network 22.0.0.0 network 24.0.0.0 network 10.0.0.0 no auto-summary ! ! ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! ! cent master hub source-interface Loopback0 border 10.0.0.1 cent-interface $uut_data(uut2,WAN1) external green class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! cent border master 10.0.0.1 source-interface Loopback0 ! ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % sh cent border pmi 300 yes sh cent master channels 300 yes sh cent border site-pre 300 yes sh cent border status 300 yes sh cent master status 300 yes show logging 300 yes sh ip route 300 yes show cent master traffic-class 300 yes sh pl h q a infr cft status b 120 yes sh cen bo traf 300 yes sh cen bo si 300 yes sh pl h q a infr cft status b 120 yes sh cen bo traf 300 yes sh cen bo si 300 yes show platform hardware qfp active statistics drop clear | exclude _0_ 300 yes show platform hardware qfp active infrastructure punt statistics type global-drop clear | exclude _0_ 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 120 20 0.01 60 85 75 60 85 75 50 0.1 1600 500 30 30 1500 CLIENT1 24 1 CLIENT1 24 2 CLIENT1 146 3 CLIENT1 62 4 CLIENT1 80 5 CLIENT1 26 6 CLIENT1 34 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 144 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::wait p1 p2] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 120] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR4451_PERF_B2B_Real1G_NBAR_7H.xml0000777000006000000600000021060512226110337020011 0ustar apacheapache SANDBOX Back_to_back ISR4451 REALISTIC this is a test NBAR UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "isr4451/k9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 7 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 60000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 60000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 60000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 60000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 60000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 60000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 60000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 60000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 60000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 60000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 60000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 60000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 60000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 60000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 6000 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 1000 CLIENT2 720 7 CLIENT1 120 3 CLIENT1 170 4 CLIENT1 730 5 CLIENT1 400 6 CLIENT1 310 2 CLIENT2 40 2 CLIENT2 40 3 CLIENT2 40 4 CLIENT1 130 8 CLIENT2 40 5 CLIENT2 120 6 CLIENT1 120 7
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_2R_Real1G_CENT_MC_BR.xml0000777000006000000600000022051412234077055020361 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-sjc-users5/anuragb/c3900-universalk9-mz.SSA.3900_current;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! CENT CONFIG ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 no shutdown ! cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.2 source-interface Loopback0 ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.2 0.0.0.0 network 21.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! cent master hub source-interface Loopback0 border 10.0.0.1 cent-interface $uut_data(uut2,WAN1) external green class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 10.0.0.1 source-interface Loopback0 ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.1 0.0.0.0 network 22.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [#simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENB BASIC BORDER CONNECTION CHECK [simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [simple_uut_regex -router_name uut2 -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show cent master cent-tech"] [simple_uut_performance_exec uut "show cent border cent-tech"] [simple_uut_performance_exec uut2 "show cent master cent-tech"] [simple_uut_performance_exec uut2 "show cent border cent-tech"] ! CENT BASIC AVC RECORD CHECK [#simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {{PV4 DESTINATION PREFIX: 22.0.0.0[ \n\r\tA-Z0-9:/]+APPLICATION NAME: +layer7 exchange[A-Z0-9a-z:/ \n\r\t\.]+counter packets long aor: +\d{2}}} -show_command {show performance monitor cache detail format record} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {{PV4 DESTINATION PREFIX: 22.0.0.0[ \n\r\tA-Z0-9:/]+APPLICATION NAME: +port http[A-Z0-9a-z:/ \n\r\t\.]+counter packets long aor: +\d{2}}} -show_command {show performance monitor cache detail format record} -sleep 5 -retry 2] ! CENT BASIC CHECK Prefix Check [#simple_uut_regex -router_name uut -name "UUT BR PREFIX LOOPBACK CHECK" -regex {10.0.0.1\s+10.0.0.1} -show_command {show cent border site-prefix | i 10.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Client Prefix 21 network check" -regex {10.0.0.1\s+21.0.0.1/24} -show_command {show cent border site-prefix | i 21.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Client Prefix 22 network check" -regex {10.0.0.1\s+20.0.0.1/25} -show_command {show cent border site-prefix | i 20.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer PREFIX LOOPBACK CHECK" -regex {10.0.0.2\s+10.0.0.2} -show_command {show cent border site-prefix | i 10.0.0.2} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer Prefix 21 network check" -regex {10.0.0.2\s+22.0.0.1/24} -show_command {show cent border site-prefix | i 22.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer Prefix 22 network check" -regex {10.0.0.2\s+23.0.0.1/25} -show_command {show cent border site-prefix | i 23.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT BR PREFIX LOOPBACK CHECK" -regex {10.0.0.1\s+10.0.0.1} -show_command {show cent border site-prefix | i 10.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Client Prefix 21 network check" -regex {10.0.0.1\s+21.0.0.1/24} -show_command {show cent border site-prefix | i 21.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Client Prefix 22 network check" -regex {10.0.0.1\s+20.0.0.1/25} -show_command {show cent border site-prefix | i 20.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer PREFIX LOOPBACK CHECK" -regex {10.0.0.2\s+10.0.0.2} -show_command {show cent border site-prefix | i 10.0.0.2} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer Prefix 21 network check" -regex {10.0.0.2\s+22.0.0.1/24} -show_command {show cent border site-prefix | i 22.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer Prefix 22 network check" -regex {10.0.0.2\s+23.0.0.1/25} -show_command {show cent border site-prefix | i 23.0.0.1} -sleep 5 -retry 2] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_3.xml0000777000006000000600000020375712226110337022602 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 120 cache entries 32768 history size 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_64k_145_120_exp_15_his1.xml0000777000006000000600000020440612226110337026114 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 120 export-spread 30 cache entries 65535 history size 1 timeout 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 100 30 0.005 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr1941_perf_b2b_murthy500m_pi23_mma_pa_64k_145_60_log_his1_time1.xml0000777000006000000600000020444512226110337026613 0ustar apacheapache SANDBOX Back_to_back ISR1941 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R13" uut(device,console) "telnet " uut(device,chassis_type) "cisco1941/k9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 65535 history size 1 timeout 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 100 30 0.005 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [sleep 3600] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1002X_PERF_CENT2_Real2G_CENT_A.xml0000777000006000000600000025635312227370665020325 0ustar apacheapache SANDBOX CENT ASR1002X REALISTIC CEF CENT UUT.BR1.IMAGE=/auto/tftp-joaofer/asr1002x-universalk9.LATEST;UUT.BR2.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.MC.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.MC_BR.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,mgt_intf) "" uut2(device,rp) "RP2" uut2(device,chassis_type) "" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,mgt_intf) "GigabitEthernet0" uut3(device,rp) "" uut3(device,esp) "" uut3(device,chassis_type) "asr1002-x" uut4(device,hostname) "" uut4(device,console) "" uut4(device,mgt_ip) "" uut4(device,mgt_intf) "GigabitEthernet0" uut4(device,rp) "RP2" uut4(device,chassis_type) "" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut4.ethernet.1,intf) uut2(uut4.ethernet.1,speed) ether1000 uut2(uut4.ethernet.1,conn_type) p2p uut2(uut4.ethernet.1,conn_id) 1 uut3(Avalanche.ethernet.1,intf) GigabitEthernet0/0/0 uut3(Avalanche.ethernet.1,speed) ether1000 uut3(Avalanche.ethernet.1,conn_type) p2p uut3(Avalanche.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) GigabitEthernet0/0/1 uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) GigabitEthernet0/0/2 uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut4.ethernet.1,intf) GigabitEthernet0/0/3 uut3(uut4.ethernet.1,speed) ether1000 uut3(uut4.ethernet.1,conn_type) p2p uut3(uut4.ethernet.1,conn_id) 1 uut4(uut2.ethernet.1,intf) uut4(uut2.ethernet.1,speed) ether1000 uut4(uut2.ethernet.1,conn_type) p2p uut4(uut2.ethernet.1,conn_id) 1 uut4(uut3.ethernet.1,intf) uut4(uut3.ethernet.1,speed) ether1000 uut4(uut3.ethernet.1,conn_type) p2p uut4(uut3.ethernet.1,conn_id) 1 uut4(Avalanche.ethernet.1,intf) uut4(Avalanche.ethernet.1,speed) ether1000 uut4(Avalanche.ethernet.1,conn_type) p2p uut4(Avalanche.ethernet.1,conn_id) 1 uut4(Avalanche.ethernet.2,intf) uut4(Avalanche.ethernet.2,speed) ether1000 uut4(Avalanche.ethernet.2,conn_type) p2p uut4(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut3.ethernet.1,intf) Avalanche(uut3.ethernet.1,speed) ether1000 Avalanche(uut3.ethernet.1,conn_type) p2p Avalanche(uut3.ethernet.1,conn_id) 1 Avalanche(uut4.ethernet.1,intf) Avalanche(uut4.ethernet.1,speed) ether1000 Avalanche(uut4.ethernet.1,conn_type) p2p Avalanche(uut4.ethernet.1,conn_id) 1 Avalanche(uut4.ethernet.2,intf) Avalanche(uut4.ethernet.2,speed) ether1000 Avalanche(uut4.ethernet.2,conn_type) p2p Avalanche(uut4.ethernet.2,conn_id) 2 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut4 1 CLIENT1 FROM_TITAN uut4 2 CLIENT2 FROM_TITAN uut3 1 SERVER1 FROM_TITAN uut2 1 SERVER2 FROM_TITAN FROM_TITAN FROM_TITAN lab MC FROM_TITAN uut2 1 HUB_MC2 FROM_TITAN uut3 1 HUB_MC1 FROM_TITAN FROM_TITAN FROM_TITAN lab BR2 FROM_TITAN Avalanche 1 SERVER2 FROM_TITAN uut 1 HUB_MC2 FROM_TITAN uut4 1 WAN1 FROM_TITAN uut3 1 INTERBR FROM_TITAN FROM_TITAN FROM_TITAN lab BR1 FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 HUB_MC1 FROM_TITAN uut4 1 WAN2 FROM_TITAN uut2 1 INTERBR FROM_TITAN FROM_TITAN FROM_TITAN lab MC_BR uut2 1 WAN1 FROM_TITAN uut3 1 WAN2 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(MC,HUB_MC1) default interface $uut_data(MC,HUB_MC2) interface $uut_data(MC,HUB_MC2) ip address 24.0.1.1 255.255.255.0 no shutdown ! interface $uut_data(MC,HUB_MC1) ip address 24.0.2.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 24.0.1.1 0.0.0.0 network 24.0.2.1 0.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback BR1] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(BR1,WAN2) default interface $uut_data(BR1,INTERBR) default interface $uut_data(BR1,HUB_MC1) default interface $uut_data(BR1,SERVER1) interface $uut_data(BR1,WAN2) ip address 25.0.2.1 255.255.255.0 no shutdown ! interface $uut_data(BR1,INTERBR) ip address 24.0.3.1 255.255.255.0 no shutdown ! interface $uut_data(BR1,HUB_MC1) ip address 24.0.2.2 255.255.255.0 no shutdown ! interface $uut_data(BR1,SERVER1) ip address 22.0.0.1 255.0.0.0 no shutdown ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! EIGRP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! router eigrp 100 no auto-summary network 24.0.0.0 network 22.0.0.0 network 1.0.0.0 !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.2.2 remote-as 6001 neighbor 25.0.2.2 update-source $uut_data(BR1,WAN2) neighbor 25.0.2.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.2.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.2.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.2.2 ip nhrp map 1.0.0.2 25.0.2.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(BR1,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show interfaces tunnel0 | i 30 second 30 second output rate ([0-9]+) % 1000000 show interfaces tunnel0 | i 30 second 30 second input rate ([0-9]+) % 1000000 /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback BR2] use the one in router Filled by Controller after reload default interface $uut_data(BR2,HUB_MC2) default interface $uut_data(BR2,SERVER2) default interface $uut_data(BR2,INTERBR) default interface $uut_data(BR2,WAN1) interface $uut_data(BR2,HUB_MC2) ip address 24.0.1.2 255.255.255.0 no shutdown ! interface $uut_data(BR2,SERVER2) ip address 23.0.0.1 255.0.0.0 no shutdown ! interface $uut_data(BR2,INTERBR) ip address 24.0.3.2 255.255.255.0 no shutdown ! interface $uut_data(BR2,WAN1) ip address 25.0.1.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 24.0.0.0 network 23.0.0.0 network 1.0.0.0 ! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.1.2 remote-as 6001 neighbor 25.0.1.2 update-source $uut_data(BR2,WAN1) neighbor 25.0.1.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.1.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.1.2 255.255.255.255 keyring DMVPN match identity address 25.0.1.2 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.1.2 ip nhrp map 1.0.1.2 25.0.1.2 ip nhrp network-id 124 ip nhrp nhs 1.0.1.2 tunnel source $uut_data(BR1,WAN2) tunnel mode gre multipoint tunnel key 124 ip virtual-reassembly tunnel protection ipsec profile DMVPN shut no shut ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show interfaces tunnel0 | i 30 second 30 second output rate ([0-9]+) % 1000000 show interfaces tunnel0 | i 30 second 30 second input rate ([0-9]+) % 1000000 /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC_BR] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(MC_BR,WAN1) default interface $uut_data(MC_BR,WAN2) default interface $uut_data(MC_BR,CLIENT1) default interface $uut_data(MC_BR,CLIENT2) interface $uut_data(MC_BR,WAN1) ip address 25.0.1.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,WAN2) ip address 25.0.2.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,CLIENT1) ip address 21.0.0.1 255.0.0.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(MC_BR,CLIENT2) ip address 20.0.0.1 255.0.0.0 ip tcp adjust-mss 1340 no shutdown ! router eigrp 100 no auto-summary network 21.0.0.0 network 20.0.0.0 network 1.0.0.0 ! ! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.2.1 remote-as 6000 neighbor 25.0.2.1 update-source $uut_data(MC_BR,WAN2) neighbor 25.0.2.1 activate neighbor 25.0.1.1 remote-as 6000 neighbor 25.0.1.1 update-source $uut_data(MC_BR,WAN1) neighbor 25.0.1.1 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.2.1 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.2.1 255.255.255.255 keyring DMVPN match identity address 25.0.2.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(MC_BR,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 25.0.1.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 25.0.1.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(MC_BR,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 shut no shut ! ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 900 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 900 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 900 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 8 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 8 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 8 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75
      85 75 85 75
      85 75 85 75 85 75 85 75
      50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init BR1] [simple_uut_performance_init MC_BR] [simple_uut_performance_init BR2] [simple_uut_performance_init MC] [Avalanche4_2_init] [#::async::async p1 {simple_uut_reload_with_tftpdnld -router_name BR1 -tftp_server 223.255.254.245}] [#::async::async p2 {simple_uut_reload_with_tftpdnld -router_name MC -tftp_server 223.255.254.245}] [#::async::async p3 {simple_uut_reload_with_tftpdnld -router_name BR2 -tftp_server 223.255.254.245}] [#::async::async p4 {simple_uut_reload_with_tftpdnld -router_name MC_BR -tftp_server 223.255.254.245}] [#::async::wait p1 p2 p3 p4] [simple_uut_performance_add_config MC "no router eigrp 100"] [simple_uut_performance_add_config BR1 "no router eigrp 100"] [simple_uut_performance_add_config BR2 "no router eigrp 100"] [simple_uut_performance_add_config MC_BR "no router eigrp 100"] [simple_uut_performance_config MC] [simple_uut_performance_exec MC "show run"] [simple_uut_performance_config BR1] [simple_uut_performance_exec BR1 "show run"] [simple_uut_performance_config BR2] [simple_uut_performance_exec BR2 "show run"] [simple_uut_performance_config MC_BR] [simple_uut_performance_exec MC_BR "show run"] [simple_uut_performance_exec MC "show ip eigrp neighbors"] [simple_uut_performance_exec MC_BR "show ip eigrp neighbors"] [simple_uut_performance_exec BR1 "show ip eigrp neighbors"] [simple_uut_performance_exec BR2 "show ip eigrp neighbors"] [simple_uut_performance_exec BR1 "show ip bgp"] [simple_uut_performance_exec BR2 "show ip bgp"] [simple_uut_performance_exec MC_BR "show ip route"] [sleep 5] [simple_uut_performance_add_config BR2 "interface tunnel 0 \n shutdown \n"] [simple_uut_performance_add_config BR1 "interface tunnel 0 \n shutdown \n"] [simple_uut_performance_add_config BR2 "interface tunnel 0 \n no shutdown \n"] [simple_uut_performance_add_config BR1 "interface tunnel 0 \n no shutdown \n"] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable MC] [simple_uut_performance_monitor_enable BR2] [simple_uut_performance_monitor_enable BR1] [simple_uut_performance_monitor_enable MC_BR] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe BR:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe BR:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe BR:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT BR1 -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_NARRA_SANITY_DYNAMIC.xml0000777000006000000600000023103612226110337017106 0ustar apacheapache SANDBOX SANITY ASR_RP2_ESP20 REALISTIC Plain Routing SANITY UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.GOLDEN;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP20" uut(device,chassis_type) "" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,mgt_intf) "GigabitEthernet0" uut2(device,rp) "RP2" uut2(device,esp) "ESP20" uut2(device,chassis_type) "" uut(Avalanche.ethernet.1,intf) "" uut(Avalanche.ethernet.1,speed) ether10000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) "" uut(uut2.ethernet.1,speed) ether10000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) "" uut2(uut.ethernet.1,speed) ether10000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) "" uut2(Avalanche.ethernet.1,speed) ether10000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,speed) ether10000 Avalanche(uut2.ethernet.1,intf) 14 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,speed) ether10000 4 traffic_gen1 FROM_TITAN 3100B 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut2 1 WAN1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN uut 1 WAN1 FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! CONFIGURE CRYPTO PEER crypto isakmp policy 1 lifetime 86400 encr aes 256 authentication pre-share crypto isakmp key cisco address 192.168.0.0 255.255.0.0 crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 crypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac ! crypto ipsec profile vti-1 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! interface loopback 1 ip address 192.168.1.1 255.255.255.255 load-interval 30 no keepalive no shutdown ! ! interface tunnel 1 ip unnumbered $uut_data(uut,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.3.3 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-1 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! ! ip route 22.0.0.0 255.0.0.0 tunnel 1 ! ip route 192.168.3.3 255.255.255.255 $uut_data(uut,WAN1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! ! CONFIGURE CRYPTO PEER crypto isakmp policy 1 lifetime 86400 encr aes 256 authentication pre-share crypto isakmp key cisco address 192.168.0.0 255.255.0.0 crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 crypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac ! crypto ipsec profile vti-1 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! ! interface loopback 1 ip address 192.168.3.3 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface tunnel 1 ip unnumbered $uut_data(uut2,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.1.1 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-1 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! ip route 21.0.0.0 255.0.0.0 tunnel 1 ! ip route 192.168.1.1 255.255.255.255 $uut_data(uut2,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show plat hard qfp act feature ipsec data drop"] [simple_uut_performance_exec uut "show plat hard qfp act statistics drop "] [simple_uut_performance_exec uut2 "show plat hard qfp act feature ipsec data drop"] [simple_uut_performance_exec uut2 "show plat hard qfp act statistics drop "] [simple_uut_performance_exec uut "show crypto isa sa"] [simple_uut_performance_exec uut "show crypto engine connections active"] [simple_uut_performance_exec uut "show crypto engine accelerator stat"] [simple_uut_performance_exec uut "show logging"] [simple_uut_performance_exec uut2 "show logging"] [simple_uut_regex -router_name uut -name "crypto encrypt check" -regex {(encaps:\s\d....*?encrypt:\s\d....*?digest:\s\d....*){1}} -show_command "show crypto ipsec sa | inc encrypt" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "crypto decrypt check" -regex {(decaps:\s\d....*?decrypt:\s\d....*?verify:\s\d....*){1}} -show_command "show crypto ipsec sa | inc decrypt" -sleep 5 -retry 2] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_2.xml0000777000006000000600000021230112226110337022562 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 120 cache entries 32768 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_add_configuut "no performance monitor context my-visibility profile application-experience"] [simple_uut_performance_add_config uut "no policy-map POLICY_WAN"] [simple_uut_performance_add_config uut "no policy-map QOS_WAN"] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP40_PERF_B2B_Real5G_AVC_310_C.xml0000777000006000000600000021234712226110337021210 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP40 REALISTIC AVC 3.10 Config C AVC310_C UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R16_R3" uut(device,console) "telnet 172.27.63.13 2004" uut(device,mgt_ip) "1.18.16.3" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP40" uut(device,chassis_type) "asr1013" uut(Avalanche.ethernet.1,intf) Te5/0/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,carriercard) sip40 uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te5/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,carriercard) sip40 uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-response-time ipv4 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor media ipv4 traffic-monitor application-traffic-stats ! class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 10000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [sleep 30] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_B.xml0000777000006000000600000022707512236305072017574 0ustar apacheapache PERFORMANCE Back_to_back ASR1001 REALISTIC AVC 310 Config B AVC_B UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 ! ! class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services ! policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default ! class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 ! policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue ! policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! SHOW COMMANDS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER2)"] ! CHECK ON THE LAN POLICY CLIENT 1 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE LAN POLICY CLIENT 2 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 1 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 2 [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section class-default" -sleep 5 -retry 2] ! CHECK FLOW EXPORTER [simple_uut_performance_exec uut "show flow exporter statistics"] [simple_uut_regex -router_name uut -name "Flow exporter sent" -regex {Successfully sent: +[1-9]\d{3,}} -show_command "show flow exporter statistics | i Successfully" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "MMA-EXP-1" -regex {Client: Flow Monitor my-visibility-url_ipv4[\s\n\r\t]+Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "application-attributes" -regex {Client: Option options application-attributes[\s\n\r\t]+Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "application-name" -regex {Client: Option options application-name[\s\n\r\t]+Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "MMA-EXP-2" -regex {Client: Flow Monitor my-visibility-conv_ts_ipv4[\s\n\r\t]+Records added: +[1-9]\d{3,}} -show_command "show flow exporter statistics" -sleep 5 -retry 2] ! ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3925_B2B_REAL1G_NBAR.xml0000777000006000000600000020132312236030154016500 0ustar apacheapache PERFORMANCE Back_to_back ISR3925 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3925" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE100/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE100/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr892_b2b_real1g_nbar_allen.xml0000777000006000000600000020224512233555467020517 0ustar apacheapache SANDBOX Back_to_back ISR892 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot/allenche/c890-universalk9-mz.153-2.T; Avalanche(device,mgt_ip) "172.27.62.70" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "892" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_exec uut "copy tftp://223.255.254.245/auto/tftpboot/allenche/pp-adv-isrg2-153_2.T-7.1.0_none_mtp_2.pack flash:"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP20_PERF_B2B_Real5G_NBAR_CHK.xml0000777000006000000600000021344512227575604021174 0ustar apacheapache PERFORMANCE Back_to_back ASR_RP2_ESP20 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,rp) "RP2" uut(device,esp) "ESP20" uut(device,chassis_type) "" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,eth_mode) uut(Avalanche.ethernet.1,spa) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether1000 uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,eth_mode) uut(Avalanche.ethernet.2,spa) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [exit] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP20_PERF_B2B_Real5G_AVC_310_B_NAT.xml0000777000006000000600000021303212226110337021677 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP20 REALISTIC Plain Routing ROUTING1 UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R3_R2" uut(device,console) "telnet 172.27.41.161 2013" uut(device,mgt_ip) "1.18.3.2" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP20" uut(device,esp_a) "ESP20" uut(device,esp_b) "ESP20" uut(device,chassis_type) "asr1006" uut(Avalanche.ethernet.1,intf) Te0/3/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te0/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ip nat translation max-entries 300000 access-list 1 permit 21.0.0.0 0.255.255.255 ip nat inside source list 1 interface $uut_data(uut,SERVER1) overload ip nat translation timeout 120 ip nat translation dns-timeout 1 ip nat translation finrst-timeout 1 ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 10000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN ip nat inside no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN ip nat outside no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [exit] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR892FSP_PERF_B2B_Real500M_MACE.xml0000777000006000000600000020004512226110337020103 0ustar apacheapache SANDBOX Back_to_back ISR892FSP REALISTIC MACE enabled MACE UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.62.70" uut(device,hostname) "R2_R8" uut(device,console) "telnet 172.27.63.15 2013" uut(device,mgt_ip) "1.18.2.8" uut(device,mgt_intf) "GigabitEthernet8" uut(device,chassis_type) "c892fsp-k9" uut(Avalanche.ethernet.1,intf) GigabitEthernet0 uut(Avalanche.ethernet.1,speed) etherauto uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) GigabitEthernet9 uut(Avalanche.ethernet.2,speed) ether1000 uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 0 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 1 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 CLIENT1 FROM_TITAN uut 2 SERVER1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 SERVER1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! START OF MACE CONFIG ! ! flow record type mace allrecord collect waas all collect art all ! flow record type mace testrecord collect application name ! flow record type mace macerecord collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect waas all collect counter client bytes collect counter client packets collect art all ! flow exporter EXPORT destination 22.0.0.3 transport udp 2055 ! flow monitor type mace monitorMace record macerecord exporter EXPORT cache timeout update 5 ! access-list 100 permit ip any any ! class-map match-all mace-class-map-all match access-group 100 ! policy-map type mace mace_global class mace-class-map-all flow monitor monitorMace ! ! ! END OF MACE CONFIG ! interface vlan100 ip nbar protocol-discovery ip address 21.0.0.1 255.255.255.0 no shutdown interface $uut_data(uut,CLIENT1) switchport mode access switchport access vlan 100 interface $uut_data(uut,SERVER1) mace enable ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base 21.0.0.0 22.0.0.0 24 21.0.0.0 22.0.0.0 24 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 90 80 50 0.1 1200 500 30 30 500 LAN 144 1 CLIENT1 LAN 24 2 CLIENT1 LAN 34 3 CLIENT1 LAN 146 4 CLIENT1 LAN 80 5 CLIENT1 LAN 62 6 CLIENT1 LAN 8 7 CLIENT1 LAN 8 8 CLIENT1 LAN 8 9 CLIENT1 LAN 26 10 CLIENT1 LAN 8 11 CLIENT1 LAN 24 12 CLIENT1 LAN 24 13 CLIENT1
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_310_a.xml0000777000006000000600000021071212226110337020031 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A metadata flow class-map match-all admitted match metadata cac status admitted class-map match-all unadmitted match metadata cac status un-admitted policy-map child class admitted set dscp af41 class unadmitted set dscp af42 class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 queue-limit 100 ms queue-limit dscp af41 150 ms admit cac local flow rate fixed 100 service-policy child class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % sh policy-map interface 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_add_configuut "no performance monitor context my-visibility profile application-experience"] [simple_uut_performance_add_config uut "no policy-map POLICY_WAN"] [simple_uut_performance_add_config uut "no policy-map QOS_WAN"] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_murthy_310_a_test.xml0000777000006000000600000020350612226122337022506 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A with lcac metadata flow class-map match-all admitted match metadata cac status admitted class-map match-all unadmitted match metadata cac status un-admitted policy-map child class admitted set dscp af41 class unadmitted set dscp af42 class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 queue-limit 100 ms queue-limit dscp af41 150 ms admit cac local flow rate fixed 100 service-policy child class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % sh policy-map interface 120 yes sh flow exporter statistics 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_CENT1G_CEF.xml0000777000006000000600000024576312226110336017164 0ustar apacheapache SANDBOX Back_to_back ASR1001 CENT Plain Routing CEF UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! Voice access-list 2000 permit ip any host 22.0.1.2 access-list 2000 permit ip host 22.0.1.2 any ! Citrix access-list 2001 permit ip any host 22.0.7.2 access-list 2001 permit ip host 22.0.7.2 any ! Oracle access-list 2002 permit ip any host 22.0.8.2 access-list 2002 permit ip host 22.0.8.2 any ! Exchange access-list 2003 permit ip any host 22.0.6.2 access-list 2003 permit ip host 22.0.6.2 any ! ! HTTP_10K_60K access-list 2004 permit ip any host 22.0.11.2 access-list 2004 permit ip host 22.0.11.2 any ! ! HTTP_Browsing access-list 2005 permit ip any host 22.0.12.2 access-list 2005 permit ip host 22.0.12.2 any ! RTSP access-list 2006 permit ip any host 22.0.3.2 access-list 2006 permit ip host 22.0.3.2 any ! POP access-list 2007 permit ip any host 22.0.9.2 access-list 2007 permit ip host 22.0.9.2 any ! SMTP access-list 2008 permit ip any host 22.0.10.2 access-list 2008 permit ip host 22.0.10.2 any ! DNS access-list 2009 permit ip any host 22.0.4.2 access-list 2009 permit ip host 22.0.4.2 any ! HTTPS access-list 2010 permit ip any host 22.0.5.2 access-list 2010 permit ip host 22.0.5.2 any ! class-map match_any match any class-map match_voice match access-group 2000 class-map match_citrix match access-group 2001 class-map match_oracle match access-group 2002 class-map match_exchange match access-group 2003 class-map match_http10k_60k match access-group 2004 class-map match_rtsp match access-group 2005 class-map match_httpbrowsing match access-group 2006 class-map match_pop match access-group 2007 class-map match_smtp match access-group 2008 class-map match_dns match access-group 2009 class-map match_https match access-group 2010 ! policy-map counting class match_any class match_voice class match_citrix class match_oracle class match_exchange class match_http10k_60k class match_httpbrowsing class match_rtsp class match_pop class match_smtp class match_dns class match_https ! ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! interface $uut_data(uut,SERVER1) no ip address no shutdown ! interface ${uut_data(uut,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 service-policy input counting service-policy output counting ! interface ${uut_data(uut,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 service-policy input counting service-policy output counting ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1600 500 30 30 500 CLIENT1 24 1 CLIENT1 24 2 CLIENT1 146 3 CLIENT1 62 4 CLIENT1 80 5 CLIENT1 26 6 CLIENT1 34 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 144 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [#simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface input"] [simple_uut_performance_exec uut "show policy-map interface output"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR4451_PERF_B2B_Real2G_AVC_310_B.xml0000777000006000000600000021175112227370665020207 0ustar apacheapache SANDBOX Back_to_back ISR4451 REALISTIC AVC 3.10 Config B AVC310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "isr4451/k9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_32k_145_60_log_his0.xml0000777000006000000600000020434112226110337025507 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 32768 history size 0 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_CENT_MMA_ALAN.xml0000777000006000000600000021316312227370664020742 0ustar apacheapache SANDBOX Back_to_back ASR1001 REALISTIC AVC 3.10 Config A CENT_MMA UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! START OF PERF_MON ! flow record type performance-monitor Ingress_per-DSCP match ipv4 dscp match interface input match policy performance-monitor classification hierarchy match pfr site source id ipv4 match pfr site destination id ipv4 collect transport packets lost rate collect counter bytes long collect counter packets long collect pfr one-way-delay sum collect transport rtp jitter mean sum collect timestamp absolute monitoring-interval start collect transport bytes lost rate ! flow record type performance-monitor Egress_per-DSCP match ipv4 dscp match ipv4 destination prefix match ipv4 destination mask match interface output match application version match application vendor collect counter bytes long collect counter packets long collect timestamp absolute monitoring-interval start ! flow record type performance-monitor Egress_per-DSCP1 match ipv4 source prefix match ipv4 source mask collect counter bytes long collect counter packets long collect timestamp absolute monitoring-interval start ! ! flow monitor type performance-monitor Ingress_per-DSCP record Ingress_per-DSCP ! ! flow monitor type performance-monitor Egress_per-DSCP record Egress_per-DSCP ! ! flow monitor type performance-monitor Egress_per-DSCP1 record Egress_per-DSCP1 ! class-map match-any Egress_per-DSCP1 class-map match-any Egress_per-DSCP class-map match-any Ingress_per-DSCP ! policy-map type performance-monitor Egress_per-DSCP class Egress_per-DSCP flow monitor Egress_per-DSCP policy-map type performance-monitor Ingress_per-DSCP class Ingress_per-DSCP flow monitor Ingress_per-DSCP policy-map type performance-monitor Egress_per-DSCP1 class Egress_per-DSCP1 flow monitor Egress_per-DSCP1 ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input Ingress_per-DSCP service-policy type performance-monitor output Egress_per-DSCP no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy type performance-monitor input Ingress_per-DSCP service-policy type performance-monitor output Egress_per-DSCP no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER2)"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP40_PERF_B2B_Real5G_AVC_310_B_NAT.xml0000777000006000000600000021306612226110337021710 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP40 REALISTIC AVC 3.10 Config B AVC310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R16_R3" uut(device,console) "telnet 172.27.63.13 2004" uut(device,mgt_ip) "1.18.16.3" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP40" uut(device,chassis_type) "asr1013" uut(Avalanche.ethernet.1,intf) Te5/0/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,carriercard) sip40 uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te5/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,carriercard) sip40 uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ip nat translation max-entries 300000 access-list 1 permit 21.0.0.0 0.255.255.255 ip nat inside source list 1 interface $uut_data(uut,SERVER1) overload ip nat translation timeout 120 ip nat translation dns-timeout 1 ip nat translation finrst-timeout 1 ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 10000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN ip nat inside no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN ip nat outside no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [sleep 30] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1002_NARRA_SANITY_CENT.xml0000777000006000000600000025703712226110336017066 0ustar apacheapache SANDBOX CENT ASR1002 REALISTIC CEF CENT UUT.BR1.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.BR2.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.MC.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.MC_BR.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,mgt_intf) "" uut2(device,rp) "RP2" uut2(device,rp_a) "RP2" uut2(device,rp_b) "RP2" uut2(device,esp) "ESP20" uut2(device,esp_a) "ESP20" uut2(device,esp_b) "ESP20" uut2(device,chassis_type) "asr1006" uut3(device,hostname) "R7_R7" uut3(device,console) "telnet 172.27.41.164 2009" uut3(device,mgt_ip) "1.18.7.7" uut3(device,mgt_intf) "GigabitEthernet0" uut3(device,rp) "RP1" uut3(device,esp) "ESP10" uut3(device,chassis_type) "asr1002" uut4(device,hostname) "" uut4(device,console) "" uut4(device,mgt_ip) "" uut4(device,mgt_intf) "GigabitEthernet0" uut4(device,rp) "RP2" uut4(device,esp) "ESP20" uut4(device,esp_a) "ESP20" uut4(device,esp_b) "ESP20" uut4(device,chassis_type) "asr1013" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut4.ethernet.1,intf) uut2(uut4.ethernet.1,speed) ether1000 uut2(uut4.ethernet.1,conn_type) p2p uut2(uut4.ethernet.1,conn_id) 1 uut3(Avalanche.ethernet.1,intf) GigabitEthernet0/0/0 uut3(Avalanche.ethernet.1,speed) ether1000 uut3(Avalanche.ethernet.1,conn_type) p2p uut3(Avalanche.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) GigabitEthernet0/0/1 uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) GigabitEthernet0/0/2 uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut4.ethernet.1,intf) GigabitEthernet0/0/3 uut3(uut4.ethernet.1,speed) ether1000 uut3(uut4.ethernet.1,conn_type) p2p uut3(uut4.ethernet.1,conn_id) 1 uut4(uut2.ethernet.1,intf) uut4(uut2.ethernet.1,speed) ether1000 uut4(uut2.ethernet.1,conn_type) p2p uut4(uut2.ethernet.1,conn_id) 1 uut4(uut3.ethernet.1,intf) uut4(uut3.ethernet.1,speed) ether1000 uut4(uut3.ethernet.1,conn_type) p2p uut4(uut3.ethernet.1,conn_id) 1 uut4(Avalanche.ethernet.1,intf) uut4(Avalanche.ethernet.1,speed) ether1000 uut4(Avalanche.ethernet.1,conn_type) p2p uut4(Avalanche.ethernet.1,conn_id) 1 uut4(Avalanche.ethernet.2,intf) uut4(Avalanche.ethernet.2,speed) ether1000 uut4(Avalanche.ethernet.2,conn_type) p2p uut4(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut3.ethernet.1,intf) Avalanche(uut3.ethernet.1,speed) ether1000 Avalanche(uut3.ethernet.1,conn_type) p2p Avalanche(uut3.ethernet.1,conn_id) 1 Avalanche(uut4.ethernet.1,intf) Avalanche(uut4.ethernet.1,speed) ether1000 Avalanche(uut4.ethernet.1,conn_type) p2p Avalanche(uut4.ethernet.1,conn_id) 1 Avalanche(uut4.ethernet.2,intf) Avalanche(uut4.ethernet.2,speed) ether1000 Avalanche(uut4.ethernet.2,conn_type) p2p Avalanche(uut4.ethernet.2,conn_id) 2 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut4 1 CLIENT1 FROM_TITAN uut4 2 CLIENT2 FROM_TITAN uut3 1 SERVER1 FROM_TITAN uut2 1 SERVER2 FROM_TITAN FROM_TITAN FROM_TITAN lab MC FROM_TITAN uut2 1 HUB_MC2 FROM_TITAN uut3 1 HUB_MC1 FROM_TITAN FROM_TITAN FROM_TITAN lab BR2 FROM_TITAN Avalanche 1 SERVER2 FROM_TITAN uut 1 HUB_MC2 FROM_TITAN uut4 1 WAN1 FROM_TITAN uut3 1 INTERBR FROM_TITAN FROM_TITAN FROM_TITAN lab BR1 FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 HUB_MC1 FROM_TITAN uut4 1 WAN2 FROM_TITAN uut2 1 INTERBR FROM_TITAN FROM_TITAN FROM_TITAN lab MC_BR uut2 1 WAN1 FROM_TITAN uut3 1 WAN2 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(MC,HUB_MC1) default interface $uut_data(MC,HUB_MC2) interface $uut_data(MC,HUB_MC2) ip address 24.0.1.1 255.255.255.0 no shutdown ! interface $uut_data(MC,HUB_MC1) ip address 24.0.2.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 24.0.1.1 0.0.0.0 network 24.0.2.1 0.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback BR1] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(BR1,WAN2) default interface $uut_data(BR1,INTERBR) default interface $uut_data(BR1,HUB_MC1) default interface $uut_data(BR1,SERVER1) interface $uut_data(BR1,WAN2) ip address 25.0.2.1 255.255.255.0 no shutdown ! interface $uut_data(BR1,INTERBR) ip address 24.0.3.1 255.255.255.0 no shutdown ! interface $uut_data(BR1,HUB_MC1) ip address 24.0.2.2 255.255.255.0 no shutdown ! interface $uut_data(BR1,SERVER1) ip address 22.0.0.1 255.0.0.0 no shutdown ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! EIGRP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! router eigrp 100 no auto-summary network 24.0.0.0 network 22.0.0.0 network 1.0.0.0 !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.2.2 remote-as 6001 neighbor 25.0.2.2 update-source $uut_data(BR1,WAN2) neighbor 25.0.2.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.2.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.2.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.2.2 ip nhrp map 1.0.0.2 25.0.2.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(BR1,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show interfaces tunnel0 | i 30 second 30 second output rate ([0-9]+) % 1000000 show interfaces tunnel0 | i 30 second 30 second input rate ([0-9]+) % 1000000 /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback BR2] use the one in router Filled by Controller after reload default interface $uut_data(BR2,HUB_MC2) default interface $uut_data(BR2,SERVER2) default interface $uut_data(BR2,INTERBR) default interface $uut_data(BR2,WAN1) interface $uut_data(BR2,HUB_MC2) ip address 24.0.1.2 255.255.255.0 no shutdown ! interface $uut_data(BR2,SERVER2) ip address 23.0.0.1 255.0.0.0 no shutdown ! interface $uut_data(BR2,INTERBR) ip address 24.0.3.2 255.255.255.0 no shutdown ! interface $uut_data(BR2,WAN1) ip address 25.0.1.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 24.0.0.0 network 23.0.0.0 network 1.0.0.0 ! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.1.2 remote-as 6001 neighbor 25.0.1.2 update-source $uut_data(BR2,WAN1) neighbor 25.0.1.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.1.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.1.2 255.255.255.255 keyring DMVPN match identity address 25.0.1.2 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.1.2 ip nhrp map 1.0.1.2 25.0.1.2 ip nhrp network-id 124 ip nhrp nhs 1.0.1.2 tunnel source $uut_data(BR1,WAN2) tunnel mode gre multipoint tunnel key 124 ip virtual-reassembly tunnel protection ipsec profile DMVPN shut no shut ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show interfaces tunnel0 | i 30 second 30 second output rate ([0-9]+) % 1000000 show interfaces tunnel0 | i 30 second 30 second input rate ([0-9]+) % 1000000 /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC_BR] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(MC_BR,WAN1) default interface $uut_data(MC_BR,WAN2) default interface $uut_data(MC_BR,CLIENT1) default interface $uut_data(MC_BR,CLIENT2) interface $uut_data(MC_BR,WAN1) ip address 25.0.1.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,WAN2) ip address 25.0.2.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,CLIENT1) ip address 21.0.0.1 255.0.0.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(MC_BR,CLIENT2) ip address 20.0.0.1 255.0.0.0 ip tcp adjust-mss 1340 no shutdown ! router eigrp 100 no auto-summary network 21.0.0.0 network 20.0.0.0 network 1.0.0.0 ! ! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.2.1 remote-as 6000 neighbor 25.0.2.1 update-source $uut_data(MC_BR,WAN2) neighbor 25.0.2.1 activate neighbor 25.0.1.1 remote-as 6000 neighbor 25.0.1.1 update-source $uut_data(MC_BR,WAN1) neighbor 25.0.1.1 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.2.1 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.2.1 255.255.255.255 keyring DMVPN match identity address 25.0.2.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(MC_BR,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 25.0.1.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 25.0.1.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(MC_BR,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 shut no shut ! ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 8 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 8 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 8 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75
      85 75 85 75
      85 75 85 75 85 75 85 75
      50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 7 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init BR1] [simple_uut_performance_init MC_BR] [simple_uut_performance_init BR2] [simple_uut_performance_init MC] [Avalanche4_2_init] [#::async::async p1 {simple_uut_reload_with_tftpdnld -router_name BR1 -tftp_server 223.255.254.245}] [#::async::async p2 {simple_uut_reload_with_tftpdnld -router_name MC -tftp_server 223.255.254.245}] [#::async::async p3 {simple_uut_reload_with_tftpdnld -router_name BR2 -tftp_server 223.255.254.245}] [#::async::async p4 {simple_uut_reload_with_tftpdnld -router_name MC_BR -tftp_server 223.255.254.245}] [#::async::wait p1 p2 p3 p4] [simple_uut_performance_add_config MC "no router eigrp 100"] [simple_uut_performance_add_config BR1 "no router eigrp 100"] [simple_uut_performance_add_config BR2 "no router eigrp 100"] [simple_uut_performance_add_config MC_BR "no router eigrp 100"] [simple_uut_performance_config MC] [simple_uut_performance_exec MC "show run"] [simple_uut_performance_config BR1] [simple_uut_performance_exec BR1 "show run"] [simple_uut_performance_config BR2] [simple_uut_performance_exec BR2 "show run"] [simple_uut_performance_config MC_BR] [simple_uut_performance_exec MC_BR "show run"] [simple_uut_performance_exec MC "show ip eigrp neighbors"] [simple_uut_performance_exec MC_BR "show ip eigrp neighbors"] [simple_uut_performance_exec BR1 "show ip eigrp neighbors"] [simple_uut_performance_exec BR2 "show ip eigrp neighbors"] [simple_uut_performance_exec BR1 "show ip bgp"] [simple_uut_performance_exec BR2 "show ip bgp"] [simple_uut_performance_exec MC_BR "show ip route"] [sleep 5] [simple_uut_performance_add_config BR2 "interface tunnel 0 \n shutdown \n"] [simple_uut_performance_add_config BR1 "interface tunnel 0 \n shutdown \n"] [simple_uut_performance_add_config BR2 "interface tunnel 0 \n no shutdown \n"] [simple_uut_performance_add_config BR1 "interface tunnel 0 \n no shutdown \n"] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable MC] [simple_uut_performance_monitor_enable BR2] [simple_uut_performance_monitor_enable BR1] [simple_uut_performance_monitor_enable MC_BR] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe BR:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe BR:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe BR:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT BR1 -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_TRAFFIC_VALIDATION.xml0000777000006000000600000021106612236027035021503 0ustar apacheapache PERFORMANCE Back_to_back ASR1001 REALISTIC TRAFFIC_VALIDATION TRAFFIC_VALIDATION UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload !Voice access-list 2000 permit ip any host 22.0.0.13 access-list 2000 permit ip host 22.0.0.13 any ! Citrix access-list 2001 permit ip any host 22.0.0.12 access-list 2001 permit ip host 22.0.0.12 any ! Oracle access-list 2002 permit ip any host 22.0.0.2 access-list 2002 permit ip host 22.0.0.2 any ! Exchange access-list 2003 permit ip any host 22.0.0.3 access-list 2003 permit ip host 22.0.0.3 any ! ! HTTP_10K_60K access-list 2004 permit ip any host 23.0.0.8 access-list 2004 permit ip host 23.0.0.8 any ! ! HTTP_Browsing access-list 2005 permit ip any host 22.0.0.7 access-list 2005 permit ip host 22.0.0.7 any ! RTSP access-list 2006 permit ip any host 23.0.0.2 access-list 2006 permit ip host 23.0.0.2 any ! POP access-list 2007 permit ip any host 23.0.0.3 access-list 2007 permit ip host 23.0.0.3 any ! SMTP access-list 2008 permit ip any host 23.0.0.4 access-list 2008 permit ip host 23.0.0.4 any ! DNS access-list 2009 permit ip any host 23.0.0.5 access-list 2009 permit ip host 23.0.0.5 any ! HTTPS access-list 2010 permit ip any host 23.0.0.6 access-list 2010 permit ip host 23.0.0.6 any ! Video Calls access-list 2011 permit ip any host 22.0.0.11 access-list 2011 permit ip host 22.0.0.11 any class-map match_voice match access-group 2000 class-map match_citrix match access-group 2001 class-map match_oracle match access-group 2002 class-map match_exchange match access-group 2003 class-map match_http10k_60k match access-group 2004 class-map match_httpbrowsing match access-group 2005 class-map match_rtsp match access-group 2006 class-map match_pop match access-group 2007 class-map match_smtp match access-group 2008 class-map match_dns match access-group 2009 class-map match_https match access-group 2010 class-map match_video_calls match access-group 2011 policy-map counting class match_voice class match_citrix class match_oracle class match_exchange class match_http10k_60k class match_httpbrowsing class match_rtsp class match_pop class match_smtp class match_dns class match_https class match_video_calls ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy input counting service-policy output counting no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy input counting service-policy output counting no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 8 20.0.0.0 true Routing1 20.0.0.2-20.0.4.0 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [#simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [simple_uut_performance_exec uut "show policy-map counting"] [880_Monitor_disable] [simple_uut_performance_exec uut "sh policy-map int $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "sh policy-map int $uut_data(uut,SERVER2)"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_CENT2G_CENT_MMA_ALAN.xml0000777000006000000600000021270412227370664020610 0ustar apacheapache SANDBOX Back_to_back ASR1001 CENT AVC 3.10 Config A CENT_MMA UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! START OF PERF_MON ! flow record type performance-monitor Ingress_per-DSCP match ipv4 dscp match interface input match policy performance-monitor classification hierarchy match pfr site source id ipv4 match pfr site destination id ipv4 collect transport packets lost rate collect counter bytes long collect counter packets long collect pfr one-way-delay sum collect transport rtp jitter mean sum collect timestamp absolute monitoring-interval start collect transport bytes lost rate ! flow record type performance-monitor Egress_per-DSCP match ipv4 dscp match ipv4 destination prefix match ipv4 destination mask match interface output match application version match application vendor collect counter bytes long collect counter packets long collect timestamp absolute monitoring-interval start ! flow record type performance-monitor Egress_per-DSCP1 match ipv4 source prefix match ipv4 source mask collect counter bytes long collect counter packets long collect timestamp absolute monitoring-interval start ! ! flow monitor type performance-monitor Ingress_per-DSCP record Ingress_per-DSCP ! ! flow monitor type performance-monitor Egress_per-DSCP record Egress_per-DSCP ! ! flow monitor type performance-monitor Egress_per-DSCP1 record Egress_per-DSCP1 ! class-map match-any Egress_per-DSCP1 class-map match-any Egress_per-DSCP class-map match-any Ingress_per-DSCP ! policy-map type performance-monitor Egress_per-DSCP class Egress_per-DSCP flow monitor Egress_per-DSCP policy-map type performance-monitor Ingress_per-DSCP class Ingress_per-DSCP flow monitor Ingress_per-DSCP policy-map type performance-monitor Egress_per-DSCP1 class Egress_per-DSCP1 flow monitor Egress_per-DSCP1 ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input Ingress_per-DSCP service-policy type performance-monitor output Egress_per-DSCP no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy type performance-monitor input Ingress_per-DSCP service-policy type performance-monitor output Egress_per-DSCP no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 http httpbrowsing https dns snmp pop rtsp Inf1 citrix exchange oracle video voice 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER2)"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_3R_Real1G_CENT_CENTA_FAILOVER.xml0000777000006000000600000032136012231423120021550 0ustar apacheapache SANDBOX 2Routers ASR1001 CENT CEF CENT_DMVPN UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.uut3.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "" uut(device,rp) "RP2" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut3 1 WAN2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN uut3 1 INTER FROM_TITAN FROM_TITAN FROM_TITAN uut3 lab FROM_TITAN uut2 1 INTER FROM_TITAN uut 1 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) mtu 9216 ip address 25.0.0.2 255.255.255.0 shut no shutdown ! router eigrp 100 network 21.0.0.0 network 1.0.0.0 no auto-summary ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.0.1 key letmein ! crypto ipsec security-association replay disable crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.0.1 255.255.255.255 keyring DMVPN match identity address 25.0.0.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(uut,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 24.0.0.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 24.0.0.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(uut,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.1 remote-as 6000 neighbor 25.0.0.1 update-source loopback 0 neighbor 25.0.0.1 activate neighbor 24.0.0.1 remote-as 6000 neighbor 24.0.0.1 update-source loopback 0 neighbor 24.0.0.1 activate !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface Loopback1 ip address 1.1.1.12 255.255.255.255 no shutdown ! cent master branch source-interface Loopback1 hub 1.1.1.10 ! cent border master 1.1.1.12 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh cent border pmi 300 yes sh cent master channels 120 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes show logging 300 yes sh ip route 300 yes show cent master traffic-class 60 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip flow ingress ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip flow ingress ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip flow ingress ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip flow ingress ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip flow ingress ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip flow ingress ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip flow ingress ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip flow ingress ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip flow ingress ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip flow ingress ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip flow ingress ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT3 ! interface $uut_data(uut2,INTER) ip address 26.0.0.1 255.255.255.0 ip flow ingress no shutdown ! router eigrp 100 network 1.0.0.0 network 22.0.0.0 network 26.0.0.0 no auto-summary ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 24.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 24.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 24.0.0.2 ip nhrp map 1.0.1.2 24.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.1.2 ip virtual-reassembly no keepalive tunnel source $uut_data(uut2,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN ip mtu 9000 ip flow ingress shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 24.0.0.2 remote-as 6001 neighbor 24.0.0.2 update-source loopback 0 neighbor 24.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.10 255.255.255.255 no shutdown cent master hub source-interface Loopback1 border 1.1.1.10 cent-interface tunnel0 external green border 1.1.1.11 cent-interface tunnel0 external blue class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 1.1.1.10 source-interface Loopback1 ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! RATE LIMIT POLICY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! policy-map test class class-default shape average 1000000000 ! interface $uut_data(uut2,WAN1) service-policy output test ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show cent master traffic-class 60 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut3] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut3,INTER) default interface $uut_data(uut3,WAN2) ! INTERFACES THAT CONNECT TO AVALANCHE ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut3,WAN2) ip address 25.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut3,INTER) ip address 26.0.0.2 255.255.255.0 ip flow ingress no shutdown ! router eigrp 100 network 1.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 1.0.0.2 remote-as 6001 neighbor 1.0.0.2 update-source loopback 0 neighbor 1.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 25.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 ip flow ingress bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.0.2 ip nhrp map 1.0.0.2 25.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(uut3,WAN2) no keepalive tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.2 remote-as 6001 neighbor 25.0.0.2 update-source loopback 0 neighbor 25.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.11 255.255.255.255 no shutdown ! cent border master 1.1.1.10 source-interface Loopback1 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! RATE LIMIT POLICY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! policy-map test class class-default shape average 1000000000 ! interface $uut_data(uut3,WAN2) service-policy output test ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh cent border pmi 300 yes sh cent master channels 60 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes show logging 180 yes sh monitor event-trace ssm latest 300 yes sh ip route 300 yes show cent master traffic-class 60 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 300 20 0.0001 85 75 50 0.1 1600 500 30 30 500 CLIENT1 24 1 CLIENT1 24 2 CLIENT1 146 3 CLIENT1 62 4 CLIENT1 80 5 CLIENT1 26 6 CLIENT1 34 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 144 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [simple_uut_performance_init uut3] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [simple_uut_performance_exec uut3 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name uut3 -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3 p4] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [simple_uut_performance_config uut3] [simple_uut_performance_exec uut3 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut3 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut3 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [simple_uut_performance_exec uut3 "show ip route"] [simple_uut_performance_exec uut "ping 1.0.0.2"] [simple_uut_performance_exec uut2 "ping 1.0.1.1"] [simple_uut_performance_exec uut3 "ping 1.0.0.1"] [880_Monitor_enabled] [Avalanche4_2_start traffic_gen1] [sleep 30] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [simple_uut_performance_monitor_enable uut3] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 900] [simple_uut_performance_add_complex_config -router_name uut2 -config "interface tunnel 0 \n shutdown" -flag "BR1 to tunnel shutdown"] [sleep 120] [simple_uut_performance_exec uut2 "sh ip cache flow"] [simple_uut_performance_exec uut "show platf hard qfp act statist drop all | i TtlExceed"] [simple_uut_performance_exec uut2 "show platf hard qfp act statist drop all | i TtlExceed"] [simple_uut_performance_exec uut3 "show platf hard qfp act statist drop all | i TtlExceed"] [simple_uut_performance_exec uut3 "sh ip cache flow"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "interface tunnel 0 \n no shutdown" -flag "BR1 to tunnel no shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n shutdown" -flag "BR2 to tunnel shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n no shutdown" -flag "BR2 to tunnel no shutdown"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "policy-map test \n class class-default \n shape average 50000000" -flag "BR1 to 50mbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut2 -config "policy-map test \n class class-default \n shape average 300000000" -flag "BR1 to 300mbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "policy-map test \n class class-default \n shape average 50000000" -flag "BR2 to 50mbps"] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "policy-map test \n class class-default \n shape average 300000000" -flag "BR2 to 300mbps"] [sleep 600] [Avalanche4_2_stop_traffic traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_CENT_MMA.xml0000777000006000000600000021211412227370664020142 0ustar apacheapache SANDBOX Back_to_back ASR1001 REALISTIC AVC 3.10 Config A CENT_MMA UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! START OF PERF_MON ! ! flow record type performance-monitor ingress match ipv4 source prefix match ipv4 source mask match ipv4 destination prefix match ipv4 destination mask match ipv4 dscp match interface input collect transport packets lost rate collect transport bytes lost rate collect pfr one-way-delay samples collect pfr one-way-delay sum collect network delay sample collect network delay sum collect transport rtp jitter mean collect counter bytes long collect counter packets long collect timestamp absolute monitoring-interval start ! flow record type performance-monitor egress match ipv4 source prefix match ipv4 source mask match ipv4 destination prefix match ipv4 destination mask match ipv4 dscp match interface output collect counter bytes long collect counter packets long collect timestamp absolute monitoring-interval start ! ! flow exporter fe1 destination 22.0.0.21 transport udp 2055 export-protocol ipfix ! ! flow monitor type performance-monitor fm1 record ingress exporter fe1 cache timeout synchronized 120 cache entries 32768 ! flow monitor type performance-monitor fm2 record egress exporter fe1 cache timeout synchronized 120 cache entries 32768 ! class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 ! policy-map type performance-monitor p2 class c1 flow monitor fm2 ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p2 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p2 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER2)"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945e_PERF_B2B_Real500M_MACE.xml0000777000006000000600000017650612226110337017777 0ustar apacheapache SANDBOX Back_to_back ISR3945e REALISTIC MACE enabled MACE UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R13" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! START OF MACE CONFIG ! ! flow record type mace allrecord collect waas all collect art all ! flow record type mace testrecord collect application name ! flow record type mace macerecord collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect waas all collect counter client bytes collect counter client packets collect art all ! flow exporter EXPORT destination 22.0.0.3 transport udp 2055 ! flow monitor type mace monitorMace record macerecord exporter EXPORT cache timeout update 5 ! access-list 100 permit ip any any ! class-map match-all mace-class-map-all match access-group 100 ! policy-map type mace mace_global class mace-class-map-all flow monitor monitorMace ! ! ! END OF MACE CONFIG ! interface $uut_data(uut,CLIENT1) ip nbar protocol-discovery ip address 21.0.0.1 255.255.255.0 no shutdown interface $uut_data(uut,SERVER1) mace enable ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base 21.0.0.0 22.0.0.0 24 21.0.0.0 22.0.0.0 24 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 90 80 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/joao123.xml0000644000006000000600000040361612307325755014473 0ustar apacheapache PERFORMANCE Back_to_back ASR1001 REALISTIC AVC_A PERFORMANCE TEST AVC_A UUT.uut.IMAGE=/auto/tftp-joaofer/cmukhopa/asr1001-universalk9.BLD_V154_1_S_XE311_THROTTLE_LATEST_20131102_005924-std_2.bin; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1002" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 8 20.0.0.0 true Routing1 20.0.0.2-20.0.4.0 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 8 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! AVC CHECKS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT2)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER2)"] ! CHECK ON THE LAN POLICY CLIENT 1 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE LAN POLICY CLIENT 2 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT2) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 1 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 2 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER2) | section class-default" -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr892_b2b_real1g_nbar.xml0000777000006000000600000035657512234570637017361 0ustar apacheapache PERFORMANCE Back_to_back ISR892 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c890-universalk9-mz.153-2.25.M0.11; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "892" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_64k_145_300_exp.xml0000777000006000000600000020440512226110337024662 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 300 export-spread cache entries 65535 history size 1 timeout 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 100 30 0.005 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP20_PERF_3R_CENT5G_CENTA.xml0000777000006000000600000031563712226110337020375 0ustar apacheapache SANDBOX 2Routers ASR_RP2_ESP20 CENT CEF DMVPN UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.uut3.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,esp) "ESP40" uut(device,chassis_type) "" uut2(device,esp) "ESP20" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether10000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether10000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether10000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether10000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) 14 Avalanche(uut2.ethernet.1,speed) ether10000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether10000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 3100B 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut3 1 WAN2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN uut3 1 INTER FROM_TITAN FROM_TITAN FROM_TITAN uut3 lab FROM_TITAN uut2 1 INTER FROM_TITAN uut 1 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) mtu 9216 ip address 25.0.0.2 255.255.255.0 shut no shutdown ! router eigrp 100 network 21.0.0.0 network 1.0.0.0 no auto-summary ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.0.1 key letmein ! crypto ipsec security-association replay disable crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.0.1 255.255.255.255 keyring DMVPN match identity address 25.0.0.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(uut,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 24.0.0.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 24.0.0.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(uut,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.1 remote-as 6000 neighbor 25.0.0.1 update-source loopback 0 neighbor 25.0.0.1 activate neighbor 24.0.0.1 remote-as 6000 neighbor 24.0.0.1 update-source loopback 0 neighbor 24.0.0.1 activate !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface Loopback1 ip address 1.1.1.12 255.255.255.255 no shutdown ! cent master branch source-interface Loopback1 hub 1.1.1.10 ! cent border master 1.1.1.12 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh cent border pmi 300 yes sh cent master channels 120 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes show logging 300 yes sh ip route 300 yes show cent master traffic-class 60 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT3 ! interface $uut_data(uut2,INTER) ip address 26.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 22.0.0.0 network 26.0.0.0 no auto-summary ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 24.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 24.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 24.0.0.2 ip nhrp map 1.0.1.2 24.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.1.2 ip virtual-reassembly no keepalive tunnel source $uut_data(uut2,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 24.0.0.2 remote-as 6001 neighbor 24.0.0.2 update-source loopback 0 neighbor 24.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.11 255.255.255.255 no shutdown ! cent border master 1.1.1.10 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % sh cent border pmi 300 yes sh cent master channels 300 yes sh cent border site-pre 300 yes sh cent border status 300 yes sh cent master status 300 yes show logging 300 yes sh ip route 300 yes show cent master traffic-class 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut3] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut3,INTER) default interface $uut_data(uut3,WAN2) ! INTERFACES THAT CONNECT TO AVALANCHE ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut3,WAN2) ip address 25.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut3,INTER) ip address 26.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 1.0.0.2 remote-as 6001 neighbor 1.0.0.2 update-source loopback 0 neighbor 1.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 25.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.0.2 ip nhrp map 1.0.0.2 25.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(uut3,WAN2) no keepalive tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.2 remote-as 6001 neighbor 25.0.0.2 update-source loopback 0 neighbor 25.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.10 255.255.255.255 no shutdown cent master hub source-interface Loopback1 border 1.1.1.10 cent-interface tunnel0 external green border 1.1.1.11 cent-interface tunnel0 external blue class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 1.1.1.10 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show logging 300 yes sh ip route 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 60 85 75 60 85 75 60 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 240 1 CLIENT1 240 2 CLIENT1 1460 3 CLIENT1 620 4 CLIENT1 800 5 CLIENT1 260 6 CLIENT1 340 7 CLIENT1 80 8 CLIENT1 80 9 CLIENT1 80 10 CLIENT1 80 11 CLIENT1 240 12 CLIENT1 1440 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [simple_uut_performance_init uut3] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [simple_uut_performance_exec uut3 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name uut3 -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3 p4] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [simple_uut_performance_config uut3] [simple_uut_performance_exec uut3 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut3 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut3 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [simple_uut_performance_exec uut3 "show ip route"] [simple_uut_performance_exec uut "ping 1.0.0.2"] [simple_uut_performance_exec uut2 "ping 1.0.1.1"] [simple_uut_performance_exec uut3 "ping 1.0.0.1"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [simple_uut_performance_monitor_enable uut3] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 120] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n shutdown" -flag "BR2 to tunnel shutdown"] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_murthy_310_b_test.xml0000777000006000000600000020512312231612515022502 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload service internal ! AVC 310 B with lcac performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor conversation-traffic-stats ipv4 cache-size 32000 metadata flow class-map match-all admitted match metadata cac status admitted class-map match-all unadmitted match metadata cac status un-admitted policy-map child class admitted set dscp af41 class unadmitted set dscp af42 class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 queue-limit 100 ms queue-limit dscp af41 150 ms admit cac local flow rate fixed 100 service-policy child class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % show policy-map interface 120 yes show flow exporter statistics 120 yes show metadata flow table 600 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_4_60.xml0000777000006000000600000020430412226110337023075 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 32768 history size 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR4451_NARRA_SANITY.xml0000777000006000000600000020561212226110337016271 0ustar apacheapache SANDBOX Back_to_back ISR4451 REALISTIC Plain Routing SANITY UUT.uut.IMAGE=/auto/tftp-joaofer/isr4400-universalk9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "isr4451/k9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 7 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_3R_Real1G_CENT_CENTA.xml0000777000006000000600000031121712226110337020323 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-joaofer/c3900-universalk9-mz.SSA.LATEST;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.uut3.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "cisco3945-chassis" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut3 1 WAN2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN uut3 1 INTER FROM_TITAN FROM_TITAN FROM_TITAN uut3 lab FROM_TITAN uut2 1 INTER FROM_TITAN uut 1 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) mtu 9216 ip address 25.0.0.2 255.255.255.0 shut no shutdown ! router eigrp 100 network 21.0.0.0 network 1.0.0.0 no auto-summary ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.0.1 key letmein ! crypto ipsec security-association replay disable crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.0.1 255.255.255.255 keyring DMVPN match identity address 25.0.0.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(uut,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 24.0.0.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 24.0.0.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 1000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(uut,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.1 remote-as 6000 neighbor 25.0.0.1 update-source loopback 0 neighbor 25.0.0.1 activate neighbor 24.0.0.1 remote-as 6000 neighbor 24.0.0.1 update-source loopback 0 neighbor 24.0.0.1 activate !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface Loopback1 ip address 1.1.1.12 255.255.255.255 no shutdown ! cent master branch source-interface Loopback1 hub 1.1.1.10 ! cent border master 1.1.1.12 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % sh cent border pmi 300 yes sh cent master channels 60 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes show logging 180 yes sh monitor event-trace ssm latest 300 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT3 ! interface $uut_data(uut2,INTER) ip address 26.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 22.0.0.0 network 26.0.0.0 no auto-summary ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 24.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 24.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 24.0.0.2 ip nhrp map 1.0.1.2 24.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.1.2 ip virtual-reassembly no keepalive tunnel source $uut_data(uut2,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 24.0.0.2 remote-as 6001 neighbor 24.0.0.2 update-source loopback 0 neighbor 24.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.10 255.255.255.255 no shutdown cent master hub source-interface Loopback1 border 1.1.1.10 cent-interface tunnel0 external green border 1.1.1.11 cent-interface tunnel0 external blue class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 1.1.1.10 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh cent border pmi 60 yes sh cent master channels 60 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut3] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut3,INTER) default interface $uut_data(uut3,WAN2) ! INTERFACES THAT CONNECT TO AVALANCHE ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut3,WAN2) ip address 25.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut3,INTER) ip address 26.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 1.0.0.2 remote-as 6001 neighbor 1.0.0.2 update-source loopback 0 neighbor 1.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 25.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 1000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.0.2 ip nhrp map 1.0.0.2 25.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(uut3,WAN2) no keepalive tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.2 remote-as 6001 neighbor 25.0.0.2 update-source loopback 0 neighbor 25.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CENT CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface Loopback1 ip address 1.1.1.11 255.255.255.255 no shutdown ! cent border master 1.1.1.10 source-interface Loopback1 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % sh cent border pmi 60 yes sh cent master channels 60 yes sh cent border site-pre 120 yes sh cent border status 120 yes sh cent master status 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1600 500 30 30 500 CLIENT1 24 1 CLIENT1 24 2 CLIENT1 146 3 CLIENT1 62 4 CLIENT1 80 5 CLIENT1 26 6 CLIENT1 34 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 144 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [simple_uut_performance_init uut3] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [simple_uut_performance_exec uut3 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name uut3 -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3 p4] [simple_uut_license -router_name uut -license "appxk9"] [simple_uut_license -router_name uut -license "securityk9"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [simple_uut_performance_config uut3] [simple_uut_performance_exec uut3 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut3 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut3 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [simple_uut_performance_exec uut3 "show ip route"] [simple_uut_performance_exec uut "ping 1.0.0.2"] [simple_uut_performance_exec uut2 "ping 1.0.1.1"] [simple_uut_performance_exec uut3 "ping 1.0.0.1"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [simple_uut_performance_monitor_enable uut3] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR1941_B2B_REAL1G_NBAR.xml0000777000006000000600000020114312236027631016502 0ustar apacheapache PERFORMANCE Back_to_back ISR1941 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/cmukhopa/c1900-universalk9-mz.SPA.153-2.25.M0.11 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "1941" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP10_PERF_B2B_Real5G_NBAR_CHK.xml0000777000006000000600000021343612227575654021200 0ustar apacheapache PERFORMANCE Back_to_back ASR_RP2_ESP10 REALISTIC NBAR PERFORMANCE NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,rp) "RP2" uut(device,esp) "ESP10" uut(device,chassis_type) "" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,eth_mode) uut(Avalanche.ethernet.1,spa) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether1000 uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,eth_mode) uut(Avalanche.ethernet.2,spa) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [exit] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa.xml0000777000006000000600000021155612226110337022354 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 120 cache entries 32768 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_add_configuut "no performance monitor context my-visibility profile application-experience"] [simple_uut_performance_add_config uut "no policy-map POLICY_WAN"] [simple_uut_performance_add_config uut "no policy-map QOS_WAN"] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_CENT2_Real2G_CENT_A.xml0000777000006000000600000024421312227370664020163 0ustar apacheapache SANDBOX CENT ASR1001 REALISTIC CEF CENT UUT.BR.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.MC_BR.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST;UUT.MC.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,chassis_type) "asr1006" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,mgt_intf) "" uut2(device,chassis_type) "asr1013" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,mgt_intf) "" uut3(device,chassis_type) "asr1001" uut4(device,hostname) "" uut4(device,console) "" uut4(device,mgt_ip) "" uut4(device,chassis_type) "" uut3(uut4.ethernet.1,intf) GigabitEthernet0/0/0 uut3(uut4.ethernet.1,speed) gigabit uut3(uut4.ethernet.1,conn_type) p2p uut3(uut4.ethernet.1,media) uut3(uut4.ethernet.1,eth_mode) lan uut3(uut4.ethernet.1,conn_id) 1 uut3(Avalanche.ethernet.1,intf) GigabitEthernet0/0/1 uut3(Avalanche.ethernet.1,speed) gigabit uut3(Avalanche.ethernet.1,conn_type) p2p uut3(Avalanche.ethernet.1,media) uut3(Avalanche.ethernet.1,eth_mode) lan uut3(Avalanche.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) GigabitEthernet0/0/2 uut3(uut.ethernet.1,speed) gigabit uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,media) uut3(uut.ethernet.1,eth_mode) lan uut3(uut.ethernet.1,conn_id) 1 uut3(uut4.ethernet.2,intf) GigabitEthernet0/0/3 uut3(uut4.ethernet.2,speed) gigabit uut3(uut4.ethernet.2,conn_type) p2p uut3(uut4.ethernet.2,media) uut3(uut4.ethernet.2,eth_mode) lan uut3(uut4.ethernet.2,conn_id) 2 uut2(uut4.ethernet.1,intf) GigabitEthernet0/0/0 uut2(uut4.ethernet.1,speed) gigabit uut2(uut4.ethernet.1,conn_type) p2p uut2(uut4.ethernet.1,media) uut2(uut4.ethernet.1,eth_mode) lan uut2(uut4.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) GigabitEthernet0/0/1 uut2(Avalanche.ethernet.1,speed) gigabit uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,media) uut2(Avalanche.ethernet.1,eth_mode) lan uut2(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.2,intf) GigabitEthernet0/0/2 uut2(Avalanche.ethernet.2,speed) gigabit uut2(Avalanche.ethernet.2,conn_type) p2p uut2(Avalanche.ethernet.2,media) uut2(Avalanche.ethernet.2,eth_mode) lan uut2(Avalanche.ethernet.2,conn_id) 2 uut2(uut4.ethernet.2,intf) GigabitEthernet0/0/3 uut2(uut4.ethernet.2,speed) gigabit uut2(uut4.ethernet.2,conn_type) p2p uut2(uut4.ethernet.2,media) uut2(uut4.ethernet.2,eth_mode) lan uut2(uut4.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.1,intf) GigabitEthernet0/0/0 uut(Avalanche.ethernet.1,speed) gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) GigabitEthernet0/0/1 uut(uut3.ethernet.1,speed) gigabit uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,media) uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut4(uut2.ethernet.1,intf) uut4(uut2.ethernet.1,speed) ether1000 uut4(uut2.ethernet.1,conn_type) p2p uut4(uut2.ethernet.1,conn_id) 1 uut4(uut3.ethernet.1,intf) uut4(uut3.ethernet.1,speed) ether1000 uut4(uut3.ethernet.1,conn_type) p2p uut4(uut3.ethernet.1,conn_id) 1 uut4(uut3.ethernet.2,intf) uut4(uut3.ethernet.2,speed) ether1000 uut4(uut3.ethernet.2,conn_type) p2p uut4(uut3.ethernet.2,conn_id) 2 uut4(uut2.ethernet.2,intf) uut4(uut2.ethernet.2,speed) ether1000 uut4(uut2.ethernet.2,conn_type) p2p uut4(uut2.ethernet.2,conn_id) 2 Avalanche(uut3.ethernet.1,intf) 0 Avalanche(uut3.ethernet.1,speed) ether1000 Avalanche(uut3.ethernet.1,conn_type) p2p Avalanche(uut3.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) 1 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) 2 Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.2,intf) 3 Avalanche(uut2.ethernet.2,speed) ether1000 Avalanche(uut2.ethernet.2,conn_type) p2p Avalanche(uut2.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut3 1 CLIENT1 FROM_TITAN uut 1 CLIENT2 FROM_TITAN uut2 1 SERVER1 FROM_TITAN uut2 2 SERVER2 FROM_TITAN FROM_TITAN FROM_TITAN lab MC FROM_TITAN Avalanche 1 CLIENT2 FROM_TITAN uut3 1 LAN1 FROM_TITAN FROM_TITAN FROM_TITAN lab MC_BR FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 SERVER2 FROM_TITAN uut4 1 WAN_S1 FROM_TITAN uut4 2 WAN_S2 FROM_TITAN FROM_TITAN FROM_TITAN lab BR FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut 1 LAN1 FROM_TITAN uut4 1 WAN_C1 FROM_TITAN uut4 2 WAN_C2 FROM_TITAN FROM_TITAN FROM_TITAN lab ISP uut3 1 WAN_C1 FROM_TITAN uut3 2 WAN_C2 FROM_TITAN uut2 1 WAN_S1 FROM_TITAN uut2 2 WAN_S2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC] FROM_RUN_PARAMETERS Filled by Controller after reload cent master hub source-interface Loopback0 border 10.0.0.2 cent-interface $uut_data(BR,WAN_C1) external green cent-interface $uut_data(BR,WAN_C2) external blue cent-policy default sequence 10 apply-to application rtp policy voice cent-policy http sequence 20 apply-to application http policy low-latency-data cent-policy https sequence 30 apply-to application https policy low-latency-data ! interface loopback 0 ip address 10.0.0.1 255.255.255.255 no shut default interface $uut_data(MC,CLIENT2) default interface $uut_data(MC,LAN1) interface $uut_data(MC,LAN1) ip address 19.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(MC,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 20.0.0.0 network 19.0.0.0 network 10.0.0.1 0.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback BR] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(BR,CLIENT1) default interface $uut_data(BR,LAN1) default interface $uut_data(BR,WAN_C1) default interface $uut_data(BR,WAN_C2) ! ! CENT CONFIG BR ! cent border source-interface Loopback0 master 10.0.0.1 ! ! interface loopback 0 ip address 10.0.0.2 255.255.255.255 no shut ! interface $uut_data(BR,LAN1) ip address 19.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(BR,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(BR,WAN_C1) ip address 50.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(BR,WAN_C2) ip address 60.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 21.0.0.0 network 19.0.0.0 network 60.0.0.0 network 50.0.0.0 network 10.0.0.2 0.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback ISP] use the one in router Filled by Controller after reload default interface $uut_data(ISP,WAN_S1) default interface $uut_data(ISP,WAN_S2) default interface $uut_data(ISP,WAN_C1) default interface $uut_data(ISP,WAN_C2) interface $uut_data(ISP,WAN_S1) ip address 70.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(ISP,WAN_S2) ip address 80.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(ISP,WAN_C1) ip address 50.0.0.2 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(ISP,WAN_C2) ip address 60.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 70.0.0.0 network 80.0.0.0 network 60.0.0.0 network 50.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC_BR] FROM_RUN_PARAMETERS Filled by Controller after reload cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.3 source-interface Loopback0 ! interface Loopback0 ip address 10.0.0.3 255.255.255.255 no shutdown ! default interface $uut_data(MC_BR,WAN_S1) default interface $uut_data(MC_BR,WAN_S2) default interface $uut_data(MC_BR,SERVER1) default interface $uut_data(MC_BR,SERVER2) interface $uut_data(MC_BR,WAN_S1) ip address 70.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,WAN_S2) ip address 80.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,SERVER1) ip address 22.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(MC_BR,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 no auto-summary network 70.0.0.0 network 80.0.0.0 network 22.0.0.0 network 23.0.0.0 network 10.0.0.3 0.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75
      85 75 85 75
      85 75 85 75 85 75 85 75
      50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init MC] [simple_uut_performance_init MC_BR] [simple_uut_performance_init BR] [simple_uut_performance_init ISP] [Avalanche4_2_init] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name MC -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name BR -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name MC_BR -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3] [simple_uut_performance_add_config MC "no router eigrp 100"] [simple_uut_performance_add_config BR "no router eigrp 100"] [simple_uut_performance_add_config ISP "no router eigrp 100"] [simple_uut_performance_add_config MC_BR "no router eigrp 100"] [simple_uut_performance_config MC] [simple_uut_performance_exec MC "show run"] [simple_uut_performance_config BR] [simple_uut_performance_exec BR "show run"] [simple_uut_performance_config ISP] [simple_uut_performance_exec ISP "show run"] [simple_uut_performance_config MC_BR] [simple_uut_performance_exec MC_BR "show run"] [simple_uut_performance_exec MC "show ip eigrp neighbors"] [simple_uut_performance_exec MC_BR "show ip eigrp neighbors"] [simple_uut_performance_exec BR "show ip eigrp neighbors"] [simple_uut_performance_exec ISP "show ip eigrp neighbors"] [simple_uut_performance_exec MC "show cent master cent-tech"] [simple_uut_performance_exec MC_BR "show cent border cent-tech"] [simple_uut_performance_exec MC_BR "show cent master cent-tech"] [simple_uut_performance_exec BR "show cent border cent-tech"] [sleep 5] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable MC] [simple_uut_performance_monitor_enable MC_BR] [simple_uut_performance_monitor_enable BR] [simple_uut_performance_monitor_enable ISP] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe BR:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe BR:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe BR:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT BR -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_3R_Real1G_CENT_BASE_FAILOVER.xml0000777000006000000600000030543212226110337021474 0ustar apacheapache SANDBOX 2Routers ISR3945 CENT CEF DMVPN UUT.uut.IMAGE=/auto/tftp-joaofer/c3900-universalk9-mz.SSA.LATEST;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST;UUT.uut3.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "cisco3945-chassis" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,chassis_type) "asr1001" uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,eth_mode) lan uut(uut2.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) ether1000 uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut3.ethernet.1,intf) uut2(uut3.ethernet.1,speed) ether1000 uut2(uut3.ethernet.1,conn_type) p2p uut2(uut3.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) uut3(uut.ethernet.1,speed) ether1000 uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,conn_id) 1 uut3(uut2.ethernet.1,intf) uut3(uut2.ethernet.1,speed) ether1000 uut3(uut2.ethernet.1,conn_type) p2p uut3(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut3 1 WAN2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN uut3 1 INTER FROM_TITAN FROM_TITAN FROM_TITAN uut3 lab FROM_TITAN uut2 1 INTER FROM_TITAN uut 1 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) ! interface ${uut_data(uut,CLIENT1)} no shut ! interface ${uut_data(uut,CLIENT1)}.1 encap dot1q 10 ip address 21.0.1.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.2 encap dot1q 11 ip address 21.0.2.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.3 encap dot1q 12 ip address 21.0.3.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.4 encap dot1q 13 ip address 21.0.4.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.5 encap dot1q 14 ip address 21.0.5.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.6 encap dot1q 15 ip address 21.0.6.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.7 encap dot1q 16 ip address 21.0.7.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.8 encap dot1q 17 ip address 21.0.8.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.9 encap dot1q 18 ip address 21.0.9.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.10 encap dot1q 19 ip address 21.0.10.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.11 encap dot1q 20 ip address 21.0.11.1 255.255.255.0 ! interface ${uut_data(uut,CLIENT1)}.12 encap dot1q 21 ip address 21.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) mtu 9216 ip address 24.0.0.2 255.255.255.0 shut no shutdown ! default interface $uut_data(uut,WAN2) interface $uut_data(uut,WAN2) mtu 9216 ip address 25.0.0.2 255.255.255.0 shut no shutdown ! router eigrp 100 network 21.0.0.0 network 1.0.0.0 no auto-summary ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 0 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN pre-shared-key address 25.0.0.1 key letmein ! crypto ipsec security-association replay disable crypto isakmp policy 10 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN match identity address 25.0.0.1 255.255.255.255 keyring DMVPN match identity address 25.0.0.1 255.255.255.255 ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 10000000 ip address 1.0.0.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 123 ip virtual-reassembly tunnel source $uut_data(uut,WAN2) tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG TUNNEL 1 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto keyring DMVPN2 pre-shared-key address 24.0.0.1 key letmein ! crypto isakmp policy 20 encr 3des authentication pre-share group 2 crypto isakmp profile DMVPN2 match identity address 24.0.0.1 255.255.255.255 keyring DMVPN2 ! crypto ipsec profile DMVPN2 set transform-set DMVPN set isakmp-profile DMVPN2 ! crypto ipsec transform-set DMVPN2 esp-des esp-sha-hmac mode transport ! interface Tunnel1 bandwidth 10000000 ip address 1.0.1.2 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast dynamic ip nhrp network-id 124 ip virtual-reassembly tunnel source $uut_data(uut,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN2 no keepalive ip tcp adjust-mss 1340 ip mtu 9000 shut no shut ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! interface loopback 0 ip address 1.1.1.3 255.255.255.255 no shut ! ! router bgp 6001 bgp router-id 1.1.1.3 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.1 remote-as 6000 neighbor 25.0.0.1 update-source loopback 0 neighbor 25.0.0.1 activate neighbor 24.0.0.1 remote-as 6000 neighbor 24.0.0.1 update-source loopback 0 neighbor 24.0.0.1 activate show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show ip route 300 yes sh cent border pmi 60 yes sh cent master channels 60 yes sh cent border site-pre 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) no ip address no shutdown ! interface ${uut_data(uut2,SERVER1)}.1 encap dot1q 10 ip address 22.0.1.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.2 encap dot1q 11 ip address 22.0.2.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.3 encap dot1q 12 ip address 22.0.3.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.4 encap dot1q 13 ip address 22.0.4.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.5 encap dot1q 14 ip address 22.0.5.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.6 encap dot1q 15 ip address 22.0.6.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.7 encap dot1q 16 ip address 22.0.7.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.8 encap dot1q 17 ip address 22.0.8.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.9 encap dot1q 18 ip address 22.0.9.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.10 encap dot1q 19 ip address 22.0.10.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.11 encap dot1q 20 ip address 22.0.11.1 255.255.255.0 ! interface ${uut_data(uut2,SERVER1)}.12 encap dot1q 21 ip address 22.0.12.1 255.255.255.0 ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT3 ! interface $uut_data(uut2,INTER) ip address 26.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 22.0.0.0 network 26.0.0.0 no auto-summary ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 24.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 24.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 10000000 load-interval 30 ip address 1.0.1.1 255.255.255.0 no ip redirects ip nhrp authentication letmein ip nhrp map multicast 24.0.0.2 ip nhrp map 1.0.1.2 24.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.1.2 ip virtual-reassembly no keepalive tunnel source $uut_data(uut2,WAN1) tunnel mode gre multipoint tunnel key 124 tunnel protection ipsec profile DMVPN ip mtu 9000 shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.1 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! address-family ipv4 neighbor 24.0.0.2 remote-as 6001 neighbor 24.0.0.2 update-source loopback 0 neighbor 24.0.0.2 activate ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! RATE LIMIT POLICY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! policy-map test class class-default shape average 1000000000 ! interface $uut_data(uut2,WAN1) service-policy output test ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut3] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut3,INTER) default interface $uut_data(uut3,WAN2) ! INTERFACES THAT CONNECT TO AVALANCHE ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut3,WAN2) ip address 25.0.0.1 255.255.255.0 mtu 9216 no shutdown ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut3,INTER) ip address 26.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 1.0.0.0 network 26.0.0.0 no auto-summary ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 1.0.0.2 remote-as 6001 neighbor 1.0.0.2 update-source loopback 0 neighbor 1.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! DMVPN CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! crypto ipsec security-association replay disable crypto keyring DMVPN pre-shared-key address 25.0.0.2 key letmein ! crypto isakmp policy 10 encr 3des authentication pre-share group 2 ! crypto isakmp profile DMVPN match identity address 25.0.0.2 255.255.255.255 keyring DMVPN ! ! crypto ipsec transform-set DMVPN esp-des esp-sha-hmac mode transport ! crypto ipsec profile DMVPN set transform-set DMVPN set isakmp-profile DMVPN ! interface Tunnel0 bandwidth 10000000 load-interval 30 ip address 1.0.0.1 255.255.255.0 no ip redirects ip mtu 9000 ip nhrp authentication letmein ip nhrp map multicast 25.0.0.2 ip nhrp map 1.0.0.2 25.0.0.2 ip nhrp network-id 123 ip nhrp nhs 1.0.0.2 ip virtual-reassembly tunnel source $uut_data(uut3,WAN2) no keepalive tunnel mode gre multipoint tunnel key 123 tunnel protection ipsec profile DMVPN shut no shut ! !!!!!!!!!!!!!!!!!!!!!!!!!!! ! BGP CONFIG !!!!!!!!!!!!!!!!!!!!!!!!!!! ! interface loopback 0 ip address 1.1.1.2 255.255.255.255 no shut ! router bgp 6000 bgp router-id 1.1.1.2 bgp log-neighbor-changes ! address-family ipv4 neighbor 25.0.0.2 remote-as 6001 neighbor 25.0.0.2 update-source loopback 0 neighbor 25.0.0.2 activate ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! RATE LIMIT POLICY !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! policy-map test class class-default shape average 1000000000 ! interface $uut_data(uut3,WAN2) service-policy output test ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.1.2 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 citrix dns exchange httpbrowsing https http oracle pop rtsp smtp video voice 21.0.1.1 0 0.0.0.0 21.0.2.1 0 0.0.0.0 21.0.3.1 0 0.0.0.0 21.0.4.1 0 0.0.0.0 21.0.5.1 0 0.0.0.0 21.0.6.1 0 0.0.0.0 21.0.7.1 0 0.0.0.0 21.0.8.1 0 0.0.0.0 21.0.9.1 0 0.0.0.0 21.0.10.1 0 0.0.0.0 21.0.11.1 0 0.0.0.0 21.0.12.1 0 0.0.0.0 true 24 21.0.1.0 true Routing0 21.0.1.2-21.0.1.100 B8 on 10 001voice 100 true 24 21.0.2.0 true Routing1 21.0.2.2-21.0.2.100 88 on 11 013video_calls 100 true 24 21.0.3.0 true Routing2 21.0.3.2-21.0.3.100 88 on 12 008rtsp_160k 100 009rtsp_250k 100 true 24 21.0.4.0 true Routing3 21.0.4.2-21.0.4.100 68 on 13 012dns 100 true 24 21.0.5.0 true Routing4 21.0.5.2-21.0.5.100 C0 on 14 010https 100 true 24 21.0.6.0 true Routing5 21.0.6.2-21.0.6.100 48 on 15 004exchange 100 true 24 21.0.7.0 true Routing6 21.0.7.2-21.0.7.100 48 on 16 002citrix 100 true 24 21.0.8.0 true Routing7 21.0.8.2-21.0.8.100 48 on 17 003oracle 100 true 24 21.0.9.0 true Routing8 21.0.9.2-21.0.9.100 28 on 18 007pop 100 true 24 21.0.10.0 true Routing9 21.0.10.2-21.0.10.100 28 on 19 011smtp 100 true 24 21.0.11.0 true Routing10 21.0.11.2-21.0.11.100 00 on 20 005http_10k_60k 100 true 24 21.0.12.0 true Routing11 21.0.12.2-21.0.12.100 20 on 21 006http_browsing 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.11.2/http_10k_60k 1 POST http://22.0.11.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.12.2/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.3.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.9.2 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.9.2 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.10.2 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com DNS A 22.0.4.2 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.5.2/http_10k_60k 1 POST https://22.0.5.2/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.7.2 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.8.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.6.2 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.2.2 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 voice video rtsp dns https exchange citrix oracle pop smtp http httpbrowsing 22.0.1.1 0 0.0.0.0 22.0.2.1 0 0.0.0.0 22.0.3.1 0 0.0.0.0 22.0.4.1 0 0.0.0.0 22.0.5.1 0 0.0.0.0 22.0.6.1 0 0.0.0.0 22.0.7.1 0 0.0.0.0 22.0.8.1 0 0.0.0.0 22.0.9.1 0 0.0.0.0 22.0.10.1 0 0.0.0.0 22.0.11.1 0 0.0.0.0 22.0.12.1 0 0.0.0.0 true 24 22.0.1.0 true Routing0 B8 on 10 VOICE 22.0.1.2 true 24 22.0.2.0 true Routing1 88 on 11 VIDEO_CALLS 22.0.2.2 true 24 22.0.3.0 true Routing2 88 on 12 RTSP 22.0.3.2 true 24 22.0.4.0 true Routing3 68 on 13 DNS 22.0.4.2 true 24 22.0.5.0 true Routing4 C0 on 14 HTTPS 22.0.5.2 true 24 22.0.6.0 true Routing5 48 on 15 EXCHANGE 22.0.6.2 true 24 22.0.7.0 true Routing6 48 on 16 CITRIX 22.0.7.2 true 24 22.0.8.0 true Routing7 on 17 ORACLE 22.0.8.2 true 24 22.0.9.0 true Routing8 28 on 18 POP 22.0.9.2 true 24 22.0.10.0 true Routing9 28 on 19 SMTP 22.0.10.2 true 24 22.0.11.0 true Routing10 00 on 20 HTTP_10K_60K 22.0.11.2 true 24 22.0.12.0 true Routing11 20 on 21 HTTP_BROWSING 22.0.12.2 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 300 20 0.0001 85 75 50 0.1 1600 500 30 30 40 CLIENT1 24 1 CLIENT1 24 2 CLIENT1 146 3 CLIENT1 62 4 CLIENT1 80 5 CLIENT1 26 6 CLIENT1 34 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 8 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 144 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [simple_uut_performance_init uut3] [Avalanche4_2_init] [simple_uut_performance_exec uut "write"] [simple_uut_performance_exec uut2 "write"] [simple_uut_performance_exec uut3 "write"] [::async::async p1 {simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245}] [::async::async p2 {simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245}] [::async::async p3 {simple_uut_reload_with_tftpdnld -router_name uut3 -tftp_server 223.255.254.245}] [::async::wait p1 p2 p3 p4] [simple_uut_license -router_name uut -license "appxk9"] [simple_uut_license -router_name uut -license "securityk9"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [simple_uut_performance_config uut3] [simple_uut_performance_exec uut3 "show run"] [sleep 5] [simple_uut_performance_exec uut "show ip eigrp neighbors"] [simple_uut_performance_exec uut2 "show ip eigrp neighbors"] [simple_uut_performance_exec uut3 "show ip eigrp neighbors"] [simple_uut_performance_exec uut "show ip interface brief"] [simple_uut_performance_exec uut2 "show ip interface brief"] [simple_uut_performance_exec uut3 "show ip interface brief"] [simple_uut_performance_exec uut "show ip route"] [simple_uut_performance_exec uut2 "show ip route"] [simple_uut_performance_exec uut3 "show ip route"] [simple_uut_performance_exec uut "ping 1.0.0.2"] [simple_uut_performance_exec uut2 "ping 1.0.1.1"] [simple_uut_performance_exec uut3 "ping 1.0.0.1"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [simple_uut_performance_monitor_enable uut3] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 900] [simple_uut_performance_add_complex_config -router_name uut2 -config "interface tunnel 0 \n shutdown" -flag "BR1 to tunnel shutdown"] [sleep 180] [simple_uut_performance_add_complex_config -router_name uut2 -config "interface tunnel 0 \n no shutdown" -flag "BR1 to tunnel no shutdown"] [sleep 180] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n shutdown" -flag "BR1 to tunnel shutdown"] [sleep 180] [simple_uut_performance_add_complex_config -router_name uut3 -config "interface tunnel 0 \n no shutdown" -flag "BR1 to tunnel no shutdown"] [sleep 180] [simple_uut_performance_add_complex_config -router_name uut2 -config "policy-map test \n class class-default \n shape average 1000000" -flag "BR1 to 1000kbps"] [sleep 180] [simple_uut_performance_add_complex_config -router_name uut2 -config "policy-map test \n class class-default \n shape average 40000000" -flag "BR1 to 40mbps"] [sleep 180] [simple_uut_performance_add_complex_config -router_name uut3 -config "policy-map test \n class class-default \n shape average 1000000" -flag "BR2 to 1000kbps"] [sleep 180] [simple_uut_performance_add_complex_config -router_name uut3 -config "policy-map test \n class class-default \n shape average 40000000" -flag "BR2 to 40mbps"] [sleep 600] [Avalanche4_2_stop_traffic traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_NBAR.xml0000777000006000000600000021012512236026430017426 0ustar apacheapache SANDBOX Back_to_back ASR1001 REALISTIC this is a test NBAR UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip nbar protocol-discovery ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945e_perf_b2b_mohassan_200m_real_avc_210_b.xml0000777000006000000600000020503612236355550023513 0ustar apacheapache SANDBOX Back_to_back ISR3945e Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R13" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B service internal performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor url traffic-monitor application-response-time traffic-monitor conversation-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show memory statistics | inc Processor Processor +[0-9A-Z]+ +[0-9]+ +[0-9]+ +([0-9]+) +[0-9]+ Mb 1048576 /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1200 500 30 30 2086 200 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_add_config uut "memory-size iomem 25"] [simple_uut_performance_exec uut "write"] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_exec uut "show memory processor statistics history"] [simple_uut_performance_exec uut "show memory processor statistics"] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] [simple_uut_performance_exec uut "show memory processor statistics history"] [simple_uut_performance_exec uut "show memory processor statistics"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:PMEM -store_variable PMEM_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP40_PERF_B2B_Real5G_AVC_310_A.xml0000777000006000000600000021157412226110337021207 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP40 REALISTIC AVC 3.10 Config A AVC310_A UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R16_R3" uut(device,console) "telnet 172.27.63.13 2004" uut(device,mgt_ip) "1.18.16.3" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP40" uut(device,chassis_type) "asr1013" uut(Avalanche.ethernet.1,intf) Te5/0/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,carriercard) sip40 uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te5/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,carriercard) sip40 uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 10000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [sleep 30] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_mma_ezpm_mace.xml0000777000006000000600000017744612226110337017315 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload service internal logg buffered 1000000 performance monitor context testing profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor url cache-size 64000 traffic-monitor application-response-time cache-size 64000 traffic-monitor conversation-traffic-stats cache-size 64000 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context testing no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_64k_145_60_log_his1_exp_15xml.xml0000777000006000000600000020460212226110337027417 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 service internal flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 export-spread 15 cache entries 65535 history size 1 timeout 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 100 30 0.005 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_2R_Real1G_CENT_MC_BR_access.xml0000777000006000000600000023310612234304672021701 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-sjc-users5/anuragb/c3900-universalk9-mz.SSA.3900_current;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload !Voice access-list 2000 permit ip any host 22.0.0.13 access-list 2000 permit ip host 22.0.0.13 any ! Citrix access-list 2001 permit ip any host 22.0.0.12 access-list 2001 permit ip host 22.0.0.12 any ! Oracle access-list 2002 permit ip any host 22.0.0.2 access-list 2002 permit ip host 22.0.0.2 any ! Exchange access-list 2003 permit ip any host 22.0.0.3 access-list 2003 permit ip host 22.0.0.3 any ! ! HTTP_10K_60K access-list 2004 permit ip any host 22.0.0.4 access-list 2004 permit ip host 22.0.0.4 any ! ! HTTP_Browsing access-list 2005 permit ip any host 22.0.0.6 access-list 2005 permit ip host 22.0.0.6 any ! RTSP access-list 2006 permit ip any host 22.0.0.5 access-list 2006 permit ip host 22.0.0.5 any ! POP access-list 2007 permit ip any host 22.0.0.7 access-list 2007 permit ip host 22.0.0.7 any ! SMTP access-list 2008 permit ip any host 22.0.0.8 access-list 2008 permit ip host 22.0.0.8 any ! DNS access-list 2009 permit ip any host 22.0.0.9 access-list 2009 permit ip host 22.0.0.9 any ! HTTPS access-list 2010 permit ip any host 22.0.0.10 access-list 2010 permit ip host 22.0.0.10 any ! Video Calls access-list 2011 permit ip any host 22.0.0.11 access-list 2011 permit ip host 22.0.0.11 any ! class-map match_voice match access-group 2000 class-map match_citrix match access-group 2001 class-map match_oracle match access-group 2002 class-map match_exchange match access-group 2003 class-map match_http10k_60k match access-group 2004 class-map match_rtsp match access-group 2005 class-map match_httpbrowsing match access-group 2006 class-map match_pop match access-group 2007 class-map match_smtp match access-group 2008 class-map match_dns match access-group 2009 class-map match_https match access-group 2010 class-map match_video_calls match access-group 2011 ! policy-map counting class match_voice set ip dscp ef class match_citrix set dscp cs4 class match_oracle set dscp cs4 class match_exchange set dscp cs4 class match_http10k_60k set dscp cs2 class match_httpbrowsing set dscp cs2 class match_rtsp set ip dscp ef class match_pop set ip dscp af21 class match_smtp set ip dscp af31 class match_dns class match_https class match_video_calls ! default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! CENT CONFIG ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 no shutdown ! cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.2 source-interface Loopback0 ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input counting no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.2 0.0.0.0 network 21.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload !Voice access-list 2000 permit ip any host 22.0.0.13 access-list 2000 permit ip host 22.0.0.13 any ! Citrix access-list 2001 permit ip any host 22.0.0.12 access-list 2001 permit ip host 22.0.0.12 any ! Oracle access-list 2002 permit ip any host 22.0.0.2 access-list 2002 permit ip host 22.0.0.2 any ! Exchange access-list 2003 permit ip any host 22.0.0.3 access-list 2003 permit ip host 22.0.0.3 any ! ! HTTP_10K_60K access-list 2004 permit ip any host 22.0.0.4 access-list 2004 permit ip host 22.0.0.4 any ! ! HTTP_Browsing access-list 2005 permit ip any host 22.0.0.6 access-list 2005 permit ip host 22.0.0.6 any ! RTSP access-list 2006 permit ip any host 22.0.0.5 access-list 2006 permit ip host 22.0.0.5 any ! POP access-list 2007 permit ip any host 22.0.0.7 access-list 2007 permit ip host 22.0.0.7 any ! SMTP access-list 2008 permit ip any host 22.0.0.8 access-list 2008 permit ip host 22.0.0.8 any ! DNS access-list 2009 permit ip any host 22.0.0.9 access-list 2009 permit ip host 22.0.0.9 any ! HTTPS access-list 2010 permit ip any host 22.0.0.10 access-list 2010 permit ip host 22.0.0.10 any ! Video Calls access-list 2011 permit ip any host 22.0.0.11 access-list 2011 permit ip host 22.0.0.11 any ! class-map match_voice match access-group 2000 class-map match_citrix match access-group 2001 class-map match_oracle match access-group 2002 class-map match_exchange match access-group 2003 class-map match_http10k_60k match access-group 2004 class-map match_rtsp match access-group 2005 class-map match_httpbrowsing match access-group 2006 class-map match_pop match access-group 2007 class-map match_smtp match access-group 2008 class-map match_dns match access-group 2009 class-map match_https match access-group 2010 class-map match_video_calls match access-group 2011 ! policy-map counting class match_voice set ip dscp ef class match_citrix set dscp cs4 class match_oracle set dscp cs4 class match_exchange set dscp cs4 class match_http10k_60k set dscp cs2 class match_httpbrowsing set dscp cs2 class match_rtsp set ip dscp ef class match_pop set ip dscp af21 class match_smtp set ip dscp af31 class match_dns class match_https class match_video_calls ! ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! cent master hub source-interface Loopback0 border 10.0.0.1 cent-interface $uut_data(uut2,WAN1) external green class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 10.0.0.1 source-interface Loopback0 ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy input counting no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.1 0.0.0.0 network 22.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENB BASIC BORDER CONNECTION CHECK [simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [simple_uut_regex -router_name uut2 -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show cent master cent-tech"] [simple_uut_performance_exec uut "show cent border cent-tech"] [simple_uut_performance_exec uut2 "show cent master cent-tech"] [simple_uut_performance_exec uut2 "show cent border cent-tech"] ! CENT BASIC AVC RECORD CHECK [#simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {{PV4 DESTINATION PREFIX: 22.0.0.0[ \n\r\tA-Z0-9:/]+APPLICATION NAME: +layer7 exchange[A-Z0-9a-z:/ \n\r\t\.]+counter packets long aor: +\d{2}}} -show_command {show performance monitor cache detail format record} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {{PV4 DESTINATION PREFIX: 22.0.0.0[ \n\r\tA-Z0-9:/]+APPLICATION NAME: +port http[A-Z0-9a-z:/ \n\r\t\.]+counter packets long aor: +\d{2}}} -show_command {show performance monitor cache detail format record} -sleep 5 -retry 2] ! CENT BASIC CHECK Prefix Check [#simple_uut_regex -router_name uut -name "UUT BR PREFIX LOOPBACK CHECK" -regex {10.0.0.1\s+10.0.0.1} -show_command {show cent border site-prefix | i 10.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Client Prefix 21 network check" -regex {10.0.0.1\s+21.0.0.1/24} -show_command {show cent border site-prefix | i 21.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Client Prefix 22 network check" -regex {10.0.0.1\s+20.0.0.1/25} -show_command {show cent border site-prefix | i 20.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer PREFIX LOOPBACK CHECK" -regex {10.0.0.2\s+10.0.0.2} -show_command {show cent border site-prefix | i 10.0.0.2} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer Prefix 21 network check" -regex {10.0.0.2\s+22.0.0.1/24} -show_command {show cent border site-prefix | i 22.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "UUT Peer Prefix 22 network check" -regex {10.0.0.2\s+23.0.0.1/25} -show_command {show cent border site-prefix | i 23.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT BR PREFIX LOOPBACK CHECK" -regex {10.0.0.1\s+10.0.0.1} -show_command {show cent border site-prefix | i 10.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Client Prefix 21 network check" -regex {10.0.0.1\s+21.0.0.1/24} -show_command {show cent border site-prefix | i 21.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Client Prefix 22 network check" -regex {10.0.0.1\s+20.0.0.1/25} -show_command {show cent border site-prefix | i 20.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer PREFIX LOOPBACK CHECK" -regex {10.0.0.2\s+10.0.0.2} -show_command {show cent border site-prefix | i 10.0.0.2} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer Prefix 21 network check" -regex {10.0.0.2\s+22.0.0.1/24} -show_command {show cent border site-prefix | i 22.0.0.1} -sleep 5 -retry 2] [#simple_uut_regex -router_name uut2 -name "UUT Peer Prefix 22 network check" -regex {10.0.0.2\s+23.0.0.1/25} -show_command {show cent border site-prefix | i 23.0.0.1} -sleep 5 -retry 2] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_NARRA_SANITY.xml0000777000006000000600000023307612226110336016251 0ustar apacheapache SANDBOX 2Routers ASR1001 REALISTIC CEF SANITY UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether1000 uut(Avalanche.ethernet.2,conn) p2p uut(Avalanche.ethernet.2,conn_id) 2 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut(uut2.ethernet.2,intf) uut(uut2.ethernet.2,speed) ether1000 uut(uut2.ethernet.2,conn) p2p uut(uut2.ethernet.2,conn_id) 2 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut.ethernet.2,intf) uut2(uut.ethernet.2,speed) ether1000 uut2(uut.ethernet.2,conn) p2p uut2(uut.ethernet.2,conn_id) 2 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.2,intf) uut2(Avalanche.ethernet.2,speed) ether1000 uut2(Avalanche.ethernet.2,conn) p2p uut2(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn) p2p Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.2,intf) Avalanche(uut2.ethernet.2,speed) ether1000 Avalanche(uut2.ethernet.2,conn) p2p Avalanche(uut2.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut2 2 SERVER2 FROM_TITAN uut 1 CLIENT1 FROM_TITAN uut 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN uut2 2 WAN2 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 SERVER2 FROM_TITAN uut 1 WAN1 FROM_TITAN uut 2 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,CLIENT2) default interface $uut_data(uut,WAN1) default interface $uut_data(uut,WAN2) ! CONFIGURE CRYPTO PEER crypto isakmp policy 1 lifetime 86400 encr aes 256 authentication pre-share crypto isakmp key cisco address 192.168.0.0 255.255.0.0 crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 crypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac ! crypto ipsec profile vti-1 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! crypto ipsec profile vti-2 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! interface loopback 1 ip address 192.168.1.1 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface loopback 2 ip address 192.168.2.2 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface tunnel 1 ip unnumbered $uut_data(uut,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.3.3 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-1 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! interface tunnel 2 ip unnumbered $uut_data(uut,WAN2) bandwidth 1000000 tunnel source loopback 2 tunnel destination 192.168.4.4 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-2 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! ip route 22.0.0.0 255.0.0.0 tunnel 1 ip route 23.0.0.0 255.0.0.0 tunnel 2 ! ip route 192.168.3.3 255.255.255.255 $uut_data(uut,WAN1) ip route 192.168.4.4 255.255.255.255 $uut_data(uut,WAN2) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown interface $uut_data(uut,WAN2) ip address 25.0.0.1 255.255.255.0 no shutdown ! ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,SERVER2) default interface $uut_data(uut2,WAN1) default interface $uut_data(uut2,WAN2) ! ! CONFIGURE CRYPTO PEER crypto isakmp policy 1 lifetime 86400 encr aes 256 authentication pre-share crypto isakmp key cisco address 192.168.0.0 255.255.0.0 crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 crypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac ! crypto ipsec profile vti-1 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! crypto ipsec profile vti-2 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! interface loopback 1 ip address 192.168.3.3 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface loopback 2 ip address 192.168.4.4 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface tunnel 1 ip unnumbered $uut_data(uut2,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.1.1 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-1 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! interface tunnel 2 ip unnumbered $uut_data(uut2,WAN2) bandwidth 1000000 tunnel source loopback 2 tunnel destination 192.168.2.2 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-2 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! ip route 20.0.0.0 255.0.0.0 tunnel 1 ip route 21.0.0.0 255.0.0.0 tunnel 2 ! ip route 192.168.1.1 255.255.255.255 $uut_data(uut2,WAN1) ip route 192.168.2.2 255.255.255.255 $uut_data(uut2,WAN2) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(uut2,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(uut2,WAN2) ip address 25.0.0.2 255.255.255.0 no shutdown ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 7 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_send uut "conf terminal \n license boot level adventerprise\n"] [sleep 3] [simple_uut_performance_send uut "yes \n"] [simple_uut_performance_send uut "license accept end user agreement\n"] [sleep 3] [simple_uut_performance_send uut "yes \n"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_send uut2 "conf terminal \n license boot level adventerprise\n"] [sleep 3] [simple_uut_performance_send uut2 "yes \n"] [simple_uut_performance_send uut2 "license accept end user agreement\n"] [sleep 3] [simple_uut_performance_send uut2 "yes \n"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_B2B_REAL1G_AVC_A.xml0000777000006000000600000020645312236030131016635 0ustar apacheapache PERFORMANCE Back_to_back ISR3945 REALISTIC AVC_A PERFORMANCE TEST AVC_A UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.154-0.26.T0.7 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! AVC CHECKS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER1)"] ! CHECK ON THE LAN POLICY CLIENT 1 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 1 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR4451_PERF_B2B_Real2G_AVC_310_C.xml0000777000006000000600000021175212227370665020211 0ustar apacheapache SANDBOX Back_to_back ISR4451 REALISTIC AVC 3.10 Config C AVC310_C UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "isr4451/k9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-response-time ipv4 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor media ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_PERF_B2B_Real2G_AVC_310_A_NAT.xml0000777000006000000600000021204312227370664020656 0ustar apacheapache SANDBOX Back_to_back ASR1001 REALISTIC AVC 3.10 Config A with NAT AVC310_A_NAT UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ip nat translation max-entries 300000 access-list 1 permit 21.0.0.0 0.255.255.255 access-list 2 permit 20.0.0.0 0.255.255.255 ip nat inside source list 1 interface $uut_data(uut,SERVER1) overload ip nat inside source list 2 interface $uut_data(uut,SERVER2) overload ip nat translation timeout 120 ip nat translation dns-timeout 1 ip nat translation finrst-timeout 1 ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN ip nat outside no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN ip nat outside no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN ip nat inside no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy output POLICY_WAN ip nat inside no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR1001_NARRA_SANITY3.xml0000777000006000000600000023670212226110336016333 0ustar apacheapache SANDBOX CENT ASR1001 REALISTIC CEF CENT UUT.BR.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN;UUT.MC_BR.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN;UUT.MC.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,mgt_intf) "" uut2(device,chassis_type) "asr1001" uut3(device,hostname) "" uut3(device,console) "" uut3(device,mgt_ip) "" uut3(device,mgt_intf) "" uut3(device,chassis_type) "asr1001" uut4(device,hostname) "" uut4(device,console) "" uut4(device,mgt_ip) "" uut4(device,chassis_type) "" uut3(uut4.ethernet.1,intf) uut3(uut4.ethernet.1,speed) gigabit uut3(uut4.ethernet.1,conn_type) p2p uut3(uut4.ethernet.1,media) uut3(uut4.ethernet.1,eth_mode) lan uut3(uut4.ethernet.1,conn_id) 1 uut3(Avalanche.ethernet.1,intf) uut3(Avalanche.ethernet.1,speed) gigabit uut3(Avalanche.ethernet.1,conn_type) p2p uut3(Avalanche.ethernet.1,media) uut3(Avalanche.ethernet.1,eth_mode) lan uut3(Avalanche.ethernet.1,conn_id) 1 uut3(uut.ethernet.1,intf) uut3(uut.ethernet.1,speed) gigabit uut3(uut.ethernet.1,conn_type) p2p uut3(uut.ethernet.1,media) uut3(uut.ethernet.1,eth_mode) lan uut3(uut.ethernet.1,conn_id) 1 uut3(uut4.ethernet.2,intf) uut3(uut4.ethernet.2,speed) gigabit uut3(uut4.ethernet.2,conn_type) p2p uut3(uut4.ethernet.2,media) uut3(uut4.ethernet.2,eth_mode) lan uut3(uut4.ethernet.2,conn_id) 2 uut2(uut4.ethernet.1,intf) uut2(uut4.ethernet.1,speed) gigabit uut2(uut4.ethernet.1,conn_type) p2p uut2(uut4.ethernet.1,media) uut2(uut4.ethernet.1,eth_mode) lan uut2(uut4.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) gigabit uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,media) uut2(Avalanche.ethernet.1,eth_mode) lan uut2(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.2,intf) uut2(Avalanche.ethernet.2,speed) gigabit uut2(Avalanche.ethernet.2,conn_type) p2p uut2(Avalanche.ethernet.2,media) uut2(Avalanche.ethernet.2,eth_mode) lan uut2(Avalanche.ethernet.2,conn_id) 2 uut2(uut4.ethernet.2,intf) uut2(uut4.ethernet.2,speed) gigabit uut2(uut4.ethernet.2,conn_type) p2p uut2(uut4.ethernet.2,media) uut2(uut4.ethernet.2,eth_mode) lan uut2(uut4.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,conn_id) 1 uut(uut3.ethernet.1,intf) uut(uut3.ethernet.1,speed) gigabit uut(uut3.ethernet.1,conn_type) p2p uut(uut3.ethernet.1,media) uut(uut3.ethernet.1,eth_mode) lan uut(uut3.ethernet.1,conn_id) 1 uut4(uut2.ethernet.1,intf) uut4(uut2.ethernet.1,speed) ether1000 uut4(uut2.ethernet.1,conn_type) p2p uut4(uut2.ethernet.1,conn_id) 1 uut4(uut3.ethernet.1,intf) uut4(uut3.ethernet.1,speed) ether1000 uut4(uut3.ethernet.1,conn_type) p2p uut4(uut3.ethernet.1,conn_id) 1 uut4(uut3.ethernet.2,intf) uut4(uut3.ethernet.2,speed) ether1000 uut4(uut3.ethernet.2,conn_type) p2p uut4(uut3.ethernet.2,conn_id) 2 uut4(uut2.ethernet.2,intf) uut4(uut2.ethernet.2,speed) ether1000 uut4(uut2.ethernet.2,conn_type) p2p uut4(uut2.ethernet.2,conn_id) 2 Avalanche(uut3.ethernet.1,intf) 0 Avalanche(uut3.ethernet.1,speed) ether1000 Avalanche(uut3.ethernet.1,conn_type) p2p Avalanche(uut3.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) 1 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) 2 Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.2,intf) 3 Avalanche(uut2.ethernet.2,speed) ether1000 Avalanche(uut2.ethernet.2,conn_type) p2p Avalanche(uut2.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut3 1 CLIENT1 FROM_TITAN uut 1 CLIENT2 FROM_TITAN uut2 1 SERVER1 FROM_TITAN uut2 2 SERVER2 FROM_TITAN FROM_TITAN FROM_TITAN lab MC FROM_TITAN Avalanche 1 CLIENT2 FROM_TITAN uut3 1 LAN1 FROM_TITAN FROM_TITAN FROM_TITAN lab MC_BR FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 SERVER2 FROM_TITAN uut4 1 WAN_S1 FROM_TITAN uut4 2 WAN_S2 FROM_TITAN FROM_TITAN FROM_TITAN lab BR FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut 1 LAN1 FROM_TITAN uut4 1 WAN_C1 FROM_TITAN uut4 2 WAN_C2 FROM_TITAN FROM_TITAN FROM_TITAN lab ISP uut3 1 WAN_C1 FROM_TITAN uut3 2 WAN_C2 FROM_TITAN uut2 1 WAN_S1 FROM_TITAN uut2 2 WAN_S2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(MC,CLIENT2) default interface $uut_data(MC,LAN1) interface $uut_data(MC,LAN1) ip address 19.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(MC,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 20.0.0.0 network 19.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback BR] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(BR,CLIENT1) default interface $uut_data(BR,LAN1) default interface $uut_data(BR,WAN_C1) default interface $uut_data(BR,WAN_C2) interface $uut_data(BR,LAN1) ip address 19.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(BR,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(BR,WAN_C1) ip address 50.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(BR,WAN_C2) ip address 60.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 21.0.0.0 network 19.0.0.0 network 60.0.0.0 network 50.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback ISP] use the one in router Filled by Controller after reload default interface $uut_data(ISP,WAN_S1) default interface $uut_data(ISP,WAN_S2) default interface $uut_data(ISP,WAN_C1) default interface $uut_data(ISP,WAN_C2) interface $uut_data(ISP,WAN_S1) ip address 70.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(ISP,WAN_S2) ip address 80.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(ISP,WAN_C1) ip address 50.0.0.2 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(ISP,WAN_C2) ip address 60.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 70.0.0.0 network 80.0.0.0 network 60.0.0.0 network 50.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback MC_BR] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(MC_BR,WAN_S1) default interface $uut_data(MC_BR,WAN_S2) default interface $uut_data(MC_BR,SERVER1) default interface $uut_data(MC_BR,SERVER2) interface $uut_data(MC_BR,WAN_S1) ip address 70.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,WAN_S2) ip address 80.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(MC_BR,SERVER1) ip address 22.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(MC_BR,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 70.0.0.0 network 80.0.0.0 network 22.0.0.0 network 23.0.0.0 show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 7 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init MC] [simple_uut_performance_init MC_BR] [simple_uut_performance_init BR] [simple_uut_performance_init ISP] [Avalanche4_2_init] [simple_uut_performance_config MC] [simple_uut_performance_exec MC "show run"] [simple_uut_performance_config BR] [simple_uut_performance_exec BR "show run"] [simple_uut_performance_config ISP] [simple_uut_performance_exec ISP "show run"] [simple_uut_performance_config MC_BR] [simple_uut_performance_exec MC_BR "show run"] [simple_uut_performance_exec MC "show ip eigrp neighbors"] [simple_uut_performance_exec MC_BR "show ip eigrp neighbors"] [simple_uut_performance_exec BR "show ip eigrp neighbors"] [simple_uut_performance_exec ISP "show ip eigrp neighbors"] [sleep 5] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable MC] [simple_uut_performance_monitor_enable MC_BR] [simple_uut_performance_monitor_enable BR] [simple_uut_performance_monitor_enable ISP] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe MC:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe MC:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe MC:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT MC -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP40_PERF_B2B_Real5G_AVC_310_B.xml0000777000006000000600000021236512226110337021207 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP40 REALISTIC AVC 3.10 Config B AVC310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R16_R3" uut(device,console) "telnet 172.27.63.13 2004" uut(device,mgt_ip) "1.18.16.3" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP40" uut(device,chassis_type) "asr1013" uut(Avalanche.ethernet.1,intf) Te5/0/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,carriercard) sip40 uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te5/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,carriercard) sip40 uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 10000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [sleep 30] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_310_b_base.xml0000777000006000000600000021016612226110337021027 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_add_configuut "no performance monitor context my-visibility profile application-experience"] [simple_uut_performance_add_config uut "no policy-map POLICY_WAN"] [simple_uut_performance_add_config uut "no policy-map QOS_WAN"] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945e_PERF_B2B_Murthy500M_AVC_310_B.xml0000777000006000000600000020735712226110337021133 0ustar apacheapache SANDBOX Back_to_back ISR3945e Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R13" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_B2B_REAL1G_AVC_B.xml0000777000006000000600000020723712236030065016645 0ustar apacheapache PERFORMANCE Back_to_back ISR3945 REALISTIC AVC_B PERFORMANCE TEST AVC_B UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c3900-universalk9-mz.SPA.154-0.26.T0.7 Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE150/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE150/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! AVC CHECKS [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut, SERVER1)"] ! CHECK ON THE LAN POLICY CLIENT 1 [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] ! CHECK ON THE WAN POLICY SERVER 1 [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/CSR1000V_NARRA_SANITY.xml0000777000006000000600000017473412226110337016406 0ustar apacheapache SANDBOX Back_to_back CSR1000v REALISTIC MACE enabled MACE UUT.uut.IMAGE=/auto/tftp-joaofer/csr1000v-adventerprisek9.GOLDEN; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "csr1000v" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 CLIENT1 FROM_TITAN uut 2 SERVER1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 SERVER1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] /auto/tftp-joaofer/csr1000v-adventerprisek9.LATEST.bin Filled by Controller after reload interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.0.0.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_64k_145_60_log_his1_aor.xml0000777000006000000600000020461612226110337026363 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 service internal flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 65535 history size 1 timeout 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 parameter default account class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 100 30 0.005 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_310_a_base.xml0000777000006000000600000020747412226110337021036 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_add_configuut "no performance monitor context my-visibility profile application-experience"] [simple_uut_performance_add_config uut "no policy-map POLICY_WAN"] [simple_uut_performance_add_config uut "no policy-map QOS_WAN"] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP20_PERF_B2B_Real5G_AVC_310_C.xml0000777000006000000600000021230412226110337021177 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP20 REALISTIC Plain Routing ROUTING1 UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R3_R2" uut(device,console) "telnet 172.27.41.161 2013" uut(device,mgt_ip) "1.18.3.2" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP20" uut(device,esp_a) "ESP20" uut(device,esp_b) "ESP20" uut(device,chassis_type) "" uut(Avalanche.ethernet.1,intf) Te0/3/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te0/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-response-time ipv4 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor media ipv4 traffic-monitor application-traffic-stats ! class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 10000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [exit] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP5_PERF_B2B_Real2G_NBAR_CHK.xml0000777000006000000600000020644012236026152021076 0ustar apacheapache PERFORMANCE Back_to_back ASR_RP2_ESP5 REALISTIC NBAR PERFORMANCE NBAR UUT.uut.IMAGE=/auto/tftp-joaofer/asr1000rp2-adventerprisek9.GOLDEN; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,mgt_intf) "" uut(device,rp) "RP2" uut(device,esp) "ESP5" uut(device,chassis_type) "" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,eth_mode) uut(Avalanche.ethernet.1,spa) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether1000 uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,eth_mode) uut(Avalanche.ethernet.2,spa) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip nbar protocol-discovery ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString true true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.250 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 010https 100 006http_browsing 100 false true 1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://23.0.0.8/http_10k_60k 1 POST http://23.0.0.8/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_BROWSING 22.0.0.7 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_10K_60K 23.0.0.8 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 110 1 CLIENT1 110 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT2 310 8 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 30 3 CLIENT2 130 7 CLIENT2 30 4 CLIENT2 80 5 CLIENT1 100 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [exit] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mace_300.xml0000777000006000000600000020062612226110337022405 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload flow record type mace macerecord collect datalink mac source address input collect ipv4 dscp collect ipv6 dscp collect interface input collect interface output collect application name collect counter client bytes collect counter client packets collect counter server bytes collect counter server packets collect art all collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type mace monitorMace record macerecord exporter fe1 cache entries 64000 cache timeout update 5 class-map match-all mace-class-map-all match any ! policy-map type mace mace_global class mace-class-map-all flow monitor monitorMace default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 mace enable no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_64k_145_60_log_his1_time2_1.xml0000777000006000000600000020435512226110337027042 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 65535 history size 1 timeout 2 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_B2B_Murthy500M_AVC_310_B.xml0000777000006000000600000021046012226110337020753 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_add_configuut "no performance monitor context my-visibility profile application-experience"] [simple_uut_performance_add_config uut "no policy-map POLICY_WAN"] [simple_uut_performance_add_config uut "no policy-map QOS_WAN"] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [#simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_64k_145_60_debug.xml0000777000006000000600000020520412232032002025062 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload logg buffered 1000000 service internal flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 60 cache entries 65535 history size 1 timeout 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 100 30 0.005 101 101 0.1 30 30 142 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 120] [simple_uut_performance_exec uut "debug performance monitor datab"] [sleep 50] [simple_uut_performance_exec uut "show logging"] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mma_pa_4.xml0000777000006000000600000020430312226110337022567 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload flow record type performance-monitor fr1 match ipv4 protocol match connection client ipv4 address match connection server ipv4 address match connection server transport port collect datalink mac source address input collect ipv4 dscp collect interface input collect interface output collect application name collect connection new-connections collect connection sum-duration collect connection delay response to-server sum collect connection delay response to-server min collect connection delay response to-server max collect connection server counter responses collect connection delay response to-server histogram bucket1 collect connection delay response to-server histogram bucket2 collect connection delay response to-server histogram bucket3 collect connection delay response to-server histogram bucket4 collect connection delay response to-server histogram bucket5 collect connection delay response to-server histogram bucket6 collect connection delay response to-server histogram bucket7 collect connection delay response to-server histogram late collect connection delay network to-server sum collect connection delay network to-server min collect connection delay network to-server max collect connection delay network to-client sum collect connection delay network to-client min collect connection delay network to-client max collect connection client counter packets retransmitted collect connection delay network client-to-server sum collect connection delay network client-to-server min collect connection delay network client-to-server max collect connection delay application sum collect connection delay application min collect connection delay application max collect connection transaction duration sum collect connection transaction duration min collect connection transaction duration max collect connection transaction counter complete collect connection server counter bytes long collect connection server counter packets long collect connection client counter bytes long collect connection client counter packets long collect application http url collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type performance-monitor fm1 record fr1 exporter fe1 cache timeout synchronized 120 cache entries 32768 history size 1 class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy type performance-monitor input p1 service-policy type performance-monitor output p1 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP20_PERF_2R_Real5G_CRYPTO2.xml0000777000006000000600000023045512226110337020770 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP20 REALISTIC Plain Routing CRYPTO2 UUT.uut.IMAGE=;UUT.uut2.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R3_R2" uut(device,console) "telnet 172.27.41.161 2013" uut(device,mgt_ip) "1.18.3.2" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP20" uut(device,esp_a) "ESP20" uut(device,esp_b) "ESP20" uut(device,chassis_type) "asr1006" uut2(device,hostname) "R15_R1" uut2(device,console) "telnet 172.27.63.13 2005" uut2(device,mgt_ip) "1.18.15.1" uut2(device,mgt_intf) "GigabitEthernet0" uut2(device,rp) "RP2" uut2(device,esp) "ESP160" uut2(device,esp_a) "ESP160" uut2(device,esp_b) "ESP160" uut2(device,chassis_type) "asr1013" uut(Avalanche.ethernet.1,intf) Te0/3/0 uut(Avalanche.ethernet.1,speed) ether10000 uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) Te0/1/0 uut(uut2.ethernet.1,speed) ether10000 uut(uut2.ethernet.1,conn_type) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) Te1/1/0 uut2(uut.ethernet.1,speed) ether10000 uut2(uut.ethernet.1,conn_type) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) Te1/0/0 uut2(Avalanche.ethernet.1,speed) ether10000 uut2(Avalanche.ethernet.1,conn_type) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether10000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) 14 Avalanche(uut2.ethernet.1,speed) ether10000 Avalanche(uut2.ethernet.1,conn_type) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 3100B 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN uut2 1 WAN1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN uut 1 WAN1 FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! crypto ikev2 proposal ikev2_proposal encryption 3des integrity md5 group 2 ! crypto ikev2 policy ikev2_policy proposal ikev2_proposal ! crypto ikev2 keyring ikev2_key peer mypeer pre-shared-key cisco123 ! peer mypeer address 192.168.3.3 pre-shared-key cisco123 ! ! crypto ikev2 profile ikev2_profile match identity remote address 0.0.0.0 authentication remote pre-share authentication local pre-share keyring local ikev2_key crypto ipsec transform-set transform-1 esp-des esp-sha-hmac mode tunnel ! ! crypto ipsec profile test set transform-set transform-1 set ikev2-profile ikev2_profile ! crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 ! ! interface loopback 1 ip address 192.168.1.1 255.255.255.255 load-interval 30 no keepalive no shutdown ! ! interface tunnel 1 ip unnumbered $uut_data(uut,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.3.3 load-interval 30 ip virtual-reassembly ip mtu 9000 no keepalive no shutdown no ip redirects no logging event link-status qos pre-classify tunnel mode ipsec ipv4 tunnel protection ipsec profile test ! ! ip route 22.0.0.0 255.0.0.0 tunnel 1 ! ip route 192.168.3.3 255.255.255.255 $uut_data(uut,WAN1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! crypto ikev2 proposal ikev2_proposal encryption 3des integrity md5 group 2 ! crypto ikev2 policy ikev2_policy proposal ikev2_proposal ! crypto ikev2 keyring ikev2_key peer mypeer pre-shared-key cisco123 ! peer mypeer address 192.168.3.3 pre-shared-key cisco123 ! ! crypto ikev2 profile ikev2_profile match identity remote address 0.0.0.0 authentication remote pre-share authentication local pre-share keyring local ikev2_key crypto ipsec transform-set transform-1 esp-des esp-sha-hmac mode tunnel ! ! crypto ipsec profile test set transform-set transform-1 set ikev2-profile ikev2_profile ! crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 ! ! interface loopback 1 ip address 192.168.3.3 255.255.255.255 load-interval 30 no keepalive no shutdown ! ! interface tunnel 1 ip unnumbered $uut_data(uut2,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.1.1 load-interval 30 ip virtual-reassembly ip mtu 9000 no keepalive no shutdown no ip redirects no logging event link-status qos pre-classify tunnel mode ipsec ipv4 tunnel protection ipsec profile test ! ! ip route 21.0.0.0 255.0.0.0 tunnel 1 ! ip route 192.168.1.1 255.255.255.255 $uut_data(uut2,WAN1) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % show platform hardware crypto-device utilization | i 1 min 1 min \(percentage\) : ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show plat hard qfp act feature ipsec data drop"] [simple_uut_performance_exec uut "show plat hard qfp act statistics drop "] [simple_uut_performance_exec uut2 "show plat hard qfp act feature ipsec data drop"] [simple_uut_performance_exec uut2 "show plat hard qfp act statistics drop "] [simple_uut_performance_exec uut "show crypto isa sa"] [simple_uut_performance_exec uut "show crypto engine connections active"] [simple_uut_performance_exec uut "show crypto engine accelerator stat"] [simple_uut_performance_exec uut "show logging"] [simple_uut_performance_exec uut2 "show logging"] [simple_uut_regex -router_name uut -name "crypto encrypt check" -regex {(encaps:\s\d....*?encrypt:\s\d....*?digest:\s\d....*){1}} -show_command "show crypto ipsec sa | inc encrypt" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "crypto decrypt check" -regex {(decaps:\s\d....*?decrypt:\s\d....*?verify:\s\d....*){1}} -show_command "show crypto ipsec sa | inc decrypt" -sleep 5 -retry 2] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945e_perf_b2b_lcac_500m_avc_310_b.xml0000777000006000000600000020736112226110337021577 0ustar apacheapache SANDBOX Back_to_back ISR3945e Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R13" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 B performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor application-traffic-stats class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map interface $uut_data(uut,SERVER1)"] [simple_uut_regex -router_name uut -name "class-map VOICE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section VOICE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTP check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTP" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map ORACLE check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section ORACLE" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map HTTPS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section HTTPS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map CITRIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section CITRIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map EMAIL check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section EMAIL" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DNS check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section DNS" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,CLIENT1) | section class-default" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map VOIX check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section VOIX" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA1 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA1" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA2 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA2" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map DATA3 check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section DATA3" -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "class-map Default check" -regex {[1-9]\d{2,}\spackets} -show_command "show policy-map interface $uut_data(uut,SERVER1) | section class-default" -sleep 5 -retry 2] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_murthy_310_a_base2.xml0000777000006000000600000020267012230305143022515 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A without lcac class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % sh policy-map interface 120 yes sh flow exporter statistics 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP160_PERF_B2B_Real5G_CEF.xml0000777000006000000600000020623012226110337020424 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP160 REALISTIC Plain Routing ROUTING1 UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R4_R4" uut(device,console) "telnet 172.27.41.161 2007" uut(device,mgt_ip) "1.18.4.4" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP160" uut(device,chassis_type) "asr1013" uut(Avalanche.ethernet.1,intf) Te5/0/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,carriercard) sip40 uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te5/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,carriercard) sip40 uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [exit] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_murthy_310_c_base2.xml0000777000006000000600000020421612231613005022515 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload service internal ! AVC 310 C without lcac performance monitor context my-visibility profile application-experience exporter destination 22.0.0.2 source $uut_data(uut,SERVER1) transport udp port 2055 traffic-monitor application-response-time ipv4 traffic-monitor conversation-traffic-stats ipv4 traffic-monitor url ipv4 traffic-monitor media ipv4 traffic-monitor application-traffic-stats traffic-monitor conversation-traffic-stats ipv4 cache-size 32000 class-map match-any ORACLE match protocol ora-srv match protocol oracle-sqlnet class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 100000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 performance monitor context my-visibility service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % sh policy-map interface 120 yes sh flow exporter statistics 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] [simple_uut_performance_exec uut "show performance monitor internal"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_murthy500m_pi23_mace_60.xml0000777000006000000600000020062412226110337022326 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload flow record type mace macerecord collect datalink mac source address input collect ipv4 dscp collect ipv6 dscp collect interface input collect interface output collect application name collect counter client bytes collect counter client packets collect counter server bytes collect counter server packets collect art all collect application http host collect application http uri statistics flow exporter fe1 destination 22.0.0.2 transport udp 2055 export-protocol ipfix template data timeout 30 option interface-table timeout 30 option vrf-table timeout 30 option sampler-table timeout 30 option application-table timeout 30 option application-attributes timeout 30 option sub-application-table timeout 30 option c3pl-class-table timeout 30 option c3pl-policy-table timeout 30 ! flow monitor type mace monitorMace record macerecord exporter fe1 cache entries 32768 cache timeout update 1 class-map match-all mace-class-map-all match any ! policy-map type mace mace_global class mace-class-map-all flow monitor monitorMace default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 mace enable no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ASR_RP2_ESP40_PERF_B2B_Real5G_CEF.xml0000777000006000000600000020632512226110337020346 0ustar apacheapache SANDBOX Back_to_back ASR_RP2_ESP40 REALISTIC Plain Routing ROUTING1 UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" Avalanche(device,mgt_intf) "GigabitEthenet0" uut(device,hostname) "R16_R3" uut(device,console) "telnet 172.27.63.13 2004" uut(device,mgt_ip) "1.18.16.3" uut(device,mgt_intf) "GigabitEthernet0" uut(device,rp) "RP2" uut(device,esp) "ESP40" uut(device,chassis_type) "asr1013" uut(Avalanche.ethernet.1,intf) Te5/0/0 uut(Avalanche.ethernet.1,speed) 10gigabit uut(Avalanche.ethernet.1,conn_type) p2p uut(Avalanche.ethernet.1,media) 10gbase-sr/sw uut(Avalanche.ethernet.1,eth_mode) lan uut(Avalanche.ethernet.1,carriercard) sip40 uut(Avalanche.ethernet.1,spa) 1X10GE uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) Te5/1/0 uut(Avalanche.ethernet.2,speed) 10gigabit uut(Avalanche.ethernet.2,conn_type) p2p uut(Avalanche.ethernet.2,media) 10gbase-sr/sw uut(Avalanche.ethernet.2,eth_mode) lan uut(Avalanche.ethernet.2,carriercard) sip40 uut(Avalanche.ethernet.2,spa) 1X10GE uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) 12 Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn_type) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) 14 Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn_type) p2p Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 3100B 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2_performance.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap Net1 SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString yes Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap NET2 SFR Main Traffic Profile Net2 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString Net2 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Subnet2 Subnet3 Subnet4 Subnet5 Subnet6 Subnet7 Subnet8 Subnet9 Subnet10 Subnet11 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 ORACLE 22.0.0.2 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 EXCHANGE 22.0.0.3 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_10K_60K 22.0.0.4 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 RTSP 22.0.0.5 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTP_BROWSING 22.0.0.6 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 POP 22.0.0.7 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 SMTP 22.0.0.8 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 DNS 22.0.0.9 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 HTTPS 22.0.0.10 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 5000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [sleep 30] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 30] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_2R_Real1G_CEF.xml0000777000006000000600000020670312226110337017257 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-sjc-users5/anuragb/c3900-universalk9-mz.SSA.3900_current;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! CENT CONFIG ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 no shutdown ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.3 0.0.0.0 network 21.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.1 0.0.0.0 network 22.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945_PERF_B2B_REAL1G_CENT_MMA.xml0000777000006000000600000020000612226110337020015 0ustar apacheapache SANDBOX Back_to_back ISR3945 REAL AVC_310_B MMA with CENT metrics UUT.uut.IMAGE=/auto/tftp-joaofer/c3900-universalk9-mz.SSA.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! START OF PERF_MON ! ! flow record type performance-monitor ingress match ipv4 source prefix match ipv4 source mask match ipv4 destination prefix match ipv4 destination mask match ipv4 dscp match interface input collect transport packets lost rate collect transport bytes lost rate collect transport rtp jitter mean collect transport round-trip-time samples collect transport round-trip-time sum collect counter bytes long collect counter packets long collect timestamp absolute monitoring-interval start ! flow record type performance-monitor egress match ipv4 source prefix match ipv4 source mask match ipv4 destination prefix match ipv4 destination mask match ipv4 dscp match interface output collect counter bytes long collect counter packets long collect timestamp absolute monitoring-interval start ! ! flow exporter fe1 destination 22.0.0.21 transport udp 2055 export-protocol ipfix ! ! flow monitor type performance-monitor fm1 record ingress exporter fe1 cache timeout synchronized 120 cache entries 32768 ! flow monitor type performance-monitor fm2 record egress exporter fe1 cache timeout synchronized 120 cache entries 32768 ! class-map match-all c1 match any ! ! ! policy-map type performance-monitor p1 class c1 flow monitor fm1 ! policy-map type performance-monitor p2 class c1 flow monitor fm2 ! ! WAN Interface interface $uut_data(uut,SERVER1) service-policy type performance-monitor input p1 service-policy type performance-monitor output p2 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/test2.xml0000777000006000000600000020076012226110337014344 0ustar apacheapache SANDBOX Back_to_back ISR3945e REALISTIC NBAR enabled NBAR UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R1_R13" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload interface $uut_data(uut,CLIENT1) ip nbar protocol-discovery ip address 21.0.0.1 255.255.255.0 no shutdown interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown alskdjasldkasjlk show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base 21.0.0.0 22.0.0.0 24 21.0.0.0 22.0.0.0 24 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 90 80 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] ! NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr3945_perf_b2b_lcac_murthy_310_a_base.xml0000777000006000000600000020260212226122104022425 0ustar apacheapache SANDBOX Back_to_back ISR3945 Murthy AVC_310_B AVC_310_B UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 2 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show process cpu history one minute: ([0-9]+)% % sh policy-map interface 120 yes sh flow exporter statistics 120 yes /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.01 85 75 0.1 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_add_config uut "default interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_add_config uut "default interface $uut_data(uut,SERVER1)"] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,CLIENT1)"] [simple_uut_performance_exec uut "show policy-map type performance interface $uut_data(uut,SERVER1)"] [simple_uut_performance_exec uut "show process cpu history"] [simple_uut_performance_exec uut "show flow exporter stat"] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_exec uut "show log"] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR4451_PERF_B2B_Real2G_CEF.xml0000777000006000000600000020553212227370665017347 0ustar apacheapache SANDBOX Back_to_back ISR4451 REALISTIC Plain Routing CEF UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "isr4451/k9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/asr1001_narra_sanity.xml0000777000006000000600000023310012226110337017136 0ustar apacheapache SANDBOX 2Routers ASR1001 REALISTIC CEF SANITY UUT.uut.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.GOLDEN; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,mgt_ip) "" uut(device,chassis_type) "asr1001" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) ether1000 uut(Avalanche.ethernet.2,conn) p2p uut(Avalanche.ethernet.2,conn_id) 2 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut(uut2.ethernet.2,intf) uut(uut2.ethernet.2,speed) ether1000 uut(uut2.ethernet.2,conn) p2p uut(uut2.ethernet.2,conn_id) 2 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(uut.ethernet.2,intf) uut2(uut.ethernet.2,speed) ether1000 uut2(uut.ethernet.2,conn) p2p uut2(uut.ethernet.2,conn_id) 2 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.2,intf) uut2(Avalanche.ethernet.2,speed) ether1000 uut2(Avalanche.ethernet.2,conn) p2p uut2(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) ether1000 Avalanche(uut.ethernet.2,conn) p2p Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.2,intf) Avalanche(uut2.ethernet.2,speed) ether1000 Avalanche(uut2.ethernet.2,conn) p2p Avalanche(uut2.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut2 2 SERVER2 FROM_TITAN uut 1 CLIENT1 FROM_TITAN uut 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN uut2 2 WAN2 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN Avalanche 2 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 SERVER2 FROM_TITAN uut 1 WAN1 FROM_TITAN uut 2 WAN2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,CLIENT2) default interface $uut_data(uut,WAN1) default interface $uut_data(uut,WAN2) ! CONFIGURE CRYPTO PEER crypto isakmp policy 1 lifetime 86400 encr aes 256 authentication pre-share crypto isakmp key cisco address 192.168.0.0 255.255.0.0 crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 crypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac ! crypto ipsec profile vti-1 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! crypto ipsec profile vti-2 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! interface loopback 1 ip address 192.168.1.1 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface loopback 2 ip address 192.168.2.2 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface tunnel 1 ip unnumbered $uut_data(uut,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.3.3 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-1 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! interface tunnel 2 ip unnumbered $uut_data(uut,WAN2) bandwidth 1000000 tunnel source loopback 2 tunnel destination 192.168.4.4 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-2 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! ip route 22.0.0.0 255.0.0.0 tunnel 1 ip route 23.0.0.0 255.0.0.0 tunnel 2 ! ip route 192.168.3.3 255.255.255.255 $uut_data(uut,WAN1) ip route 192.168.4.4 255.255.255.255 $uut_data(uut,WAN2) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 ip tcp adjust-mss 1340 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown interface $uut_data(uut,WAN2) ip address 25.0.0.1 255.255.255.0 no shutdown ! ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,SERVER2) default interface $uut_data(uut2,WAN1) default interface $uut_data(uut2,WAN2) ! ! CONFIGURE CRYPTO PEER crypto isakmp policy 1 lifetime 86400 encr aes 256 authentication pre-share crypto isakmp key cisco address 192.168.0.0 255.255.0.0 crypto ipsec security-association lifetime kilobytes disable crypto ipsec security-association lifetime seconds 86400 crypto ipsec transform-set uni-perf esp-aes 256 esp-sha-hmac ! crypto ipsec profile vti-1 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! crypto ipsec profile vti-2 set transform-set uni-perf set pfs group2 set security-association lifetime seconds 86400 set security-association lifetime kilobytes disable ! interface loopback 1 ip address 192.168.3.3 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface loopback 2 ip address 192.168.4.4 255.255.255.255 load-interval 30 no keepalive no shutdown ! interface tunnel 1 ip unnumbered $uut_data(uut2,WAN1) bandwidth 1000000 tunnel source loopback 1 tunnel destination 192.168.1.1 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-1 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! interface tunnel 2 ip unnumbered $uut_data(uut2,WAN2) bandwidth 1000000 tunnel source loopback 2 tunnel destination 192.168.2.2 tunnel mode ipsec IPV4 tunnel protection ipsec profile vti-2 load-interval 30 ip virtual-reassembly no keepalive no shutdown ! ip route 20.0.0.0 255.0.0.0 tunnel 1 ip route 21.0.0.0 255.0.0.0 tunnel 2 ! ip route 192.168.1.1 255.255.255.255 $uut_data(uut2,WAN1) ip route 192.168.2.2 255.255.255.255 $uut_data(uut2,WAN2) ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! interface $uut_data(uut2,SERVER2) ip address 23.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! interface $uut_data(uut2,WAN2) ip address 25.0.0.2 255.255.255.0 no shutdown ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 10 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 6 CLIENT1 120 2 CLIENT1 170 3 CLIENT1 730 4 CLIENT1 400 5 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT2 40 3 CLIENT1 130 7 CLIENT2 40 4 CLIENT2 120 5 CLIENT1 120 6
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_send uut "conf terminal \n license boot level adventerprise\n"] [sleep 3] [simple_uut_performance_send uut "yes \n"] [simple_uut_performance_send uut "license accept end user agreement\n"] [sleep 3] [simple_uut_performance_send uut "yes \n"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_send uut2 "conf terminal \n license boot level adventerprise\n"] [sleep 3] [simple_uut_performance_send uut2 "yes \n"] [simple_uut_performance_send uut2 "license accept end user agreement\n"] [sleep 3] [simple_uut_performance_send uut2 "yes \n"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENT BASIC BORDER CONNECTION CHECK [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/isr892_b2b_real1g.xml0000777000006000000600000035454412234775726016357 0ustar apacheapache PERFORMANCE Back_to_back ISR892 REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftpboot-users-sj/cmukhopa/c890-universalk9-mz.153-2.25.M0.11; Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "892" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ANURAGB_CENT_OCT7.xml0000777000006000000600000021433212226110336015766 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-sjc-users5/anuragb/c3900-universalk9-mz.SSA.3900_current;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! CENT CONFIG ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 no shutdown ! cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.2 source-interface Loopback0 ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.2 0.0.0.0 network 21.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! cent master hub source-interface Loopback0 border 10.0.0.1 cent-interface $uut_data(uut2,WAN1) external green class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 10.0.0.1 source-interface Loopback0 ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.1 0.0.0.0 network 22.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENB BASIC BORDER CONNECTION CHECK [simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [simple_uut_regex -router_name uut2 -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 600] [simple_uut_performance_exec uut "profile task interrupt"] [simple_uut_performance_exec uut "profile 4000000 0415270c 4"] [simple_uut_performance_exec uut "profile start"] [sleep 30] [simple_uut_performance_exec uut "profile stop"] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show profile terse"] [simple_uut_performance_exec uut "show cent master cent-tech"] [simple_uut_performance_exec uut "show cent border cent-tech"] [simple_uut_performance_exec uut "show cent master cent-tech"] [simple_uut_performance_exec uut "show cent border cent-tech"] [simple_uut_performance_exec uut "show cent master statistics"] [simple_uut_performance_exec uut "show cent border statistics"] [simple_uut_performance_exec uut "show cent border channels"] [simple_uut_performance_exec uut "show waas status"] [simple_uut_performance_exec uut "show policy-map type waas waas_global"] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR4451_PERF_B2B_Real2G_AVC_310_A_NAT.xml0000777000006000000600000021204612227370665020706 0ustar apacheapache SANDBOX Back_to_back ISR4451 REALISTIC AVC 3.10 Config A with NAT AVC310_A_NAT UUT.uut.IMAGE=; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "" uut(device,console) "telnet " uut(device,chassis_type) "isr4451/k9" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.3,intf) uut(Avalanche.ethernet.3,speed) uut(Avalanche.ethernet.3,media) uut(Avalanche.ethernet.3,conn_id) 3 uut(Avalanche.ethernet.4,intf) uut(Avalanche.ethernet.4,speed) uut(Avalanche.ethernet.4,media) uut(Avalanche.ethernet.4,conn_id) 4 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 Avalanche(uut.ethernet.3,intf) Avalanche(uut.ethernet.3,speed) Avalanche(uut.ethernet.3,conn_id) 3 Avalanche(uut.ethernet.4,intf) Avalanche(uut.ethernet.4,speed) Avalanche(uut.ethernet.4,conn_id) 4 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN uut 3 SERVER2 FROM_TITAN uut 4 CLIENT2 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN Avalanche 3 SERVER2 FROM_TITAN Avalanche 4 CLIENT2 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload ip nat translation max-entries 300000 access-list 1 permit 21.0.0.0 0.255.255.255 access-list 2 permit 20.0.0.0 0.255.255.255 ip nat inside source list 1 interface $uut_data(uut,SERVER1) overload ip nat inside source list 2 interface $uut_data(uut,SERVER2) overload ip nat translation timeout 120 ip nat translation dns-timeout 1 ip nat translation finrst-timeout 1 ! AVC 310 A class-map match-any ORACLE match protocol ora-srv match protocol ncube-lm class-map match-any HTTP match protocol http class-map match-any EMAIL match protocol attribute category email class-map match-any CITRIX match protocol citrix class-map match-any HTTPS match protocol secure-http match protocol ssl class-map match-any VOICE match protocol rtp class-map match-any DNS match protocol attribute sub-category naming-services policy-map QOS_LAN class VOICE set ip dscp ef class HTTP set dscp cs4 class HTTPS set dscp cs2 class ORACLE set dscp af11 class CITRIX set ip dscp af21 class EMAIL set ip dscp af31 class DNS set ip dscp default class-map match-any VOIX match dscp ef class-map match-any DATA1 match dscp cs4 match dscp cs2 class-map match-any DATA2 match dscp af11 class-map match-any DATA3 match dscp af21 match dscp af31 policy-map QOS_WAN class VOIX priority police rate percent 28 class DATA1 bandwidth remaining percent 59 random-detect dscp-based fair-queue class DATA2 bandwidth remaining percent 3 random-detect dscp-based fair-queue class DATA3 bandwidth remaining percent 7 random-detect dscp-based fair-queue class class-default bandwidth remaining percent 3 random-detect dscp-based fair-queue policy-map POLICY_WAN class class-default shape average 1000000000 service-policy QOS_WAN default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.255.255.0 service-policy input QOS_LAN ip nat outside no shutdown default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 service-policy output POLICY_WAN ip nat outside no shutdown default interface $uut_data(uut,CLIENT2) interface $uut_data(uut,CLIENT2) ip address 20.0.0.1 255.255.255.0 service-policy input QOS_LAN ip nat inside no shutdown default interface $uut_data(uut,SERVER2) interface $uut_data(uut,SERVER2) ip address 23.0.0.1 255.255.255.0 service-policy output POLICY_WAN ip nat inside no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 10 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString avalanche_mgt_IP Inf1 CLIENT2 CLIENT2_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 720 60 60 Flat Seconds 720 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 390 60 60 Flat Seconds 390 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 730 60 60 Flat Seconds 730 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 170 60 60 Flat Seconds 170 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 310 60 60 Flat Seconds 310 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 40 60 60 Flat Seconds 40 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 120 60 60 Flat Seconds 120 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 130 60 60 Flat Seconds 130 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 140 60 60 Flat Seconds 140 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld0 Inf1 Realworld1 21.0.0.1 0 0.0.0.0 20.0.0.1 0 0.0.0.0 true 24 21.0.0.0 true Routing0 21.0.0.2-21.0.0.100 006http_browsing 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 013video_calls 100 010https 100 true 24 20.0.0.0 true Routing1 20.0.0.2-20.0.0.200 007pop 100 008rtsp_160k 100 009rtsp_250k 100 011smtp 100 012dns 100 001voice 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://23.0.0.7/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://23.0.0.2/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user1 PASSWORD=user1 CHECK RETR pop3://23.0.0.3 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://23.0.0.3 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://23.0.0.4 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com DNS A 23.0.0.5 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://23.0.0.6/http_10k_60k 1 POST https://23.0.0.6/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString avalanche_mgt_IP Inf1 SERVER2 SERVER2_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 Inf1 Subnet2 22.0.0.1 0 0.0.0.0 23.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 VIDEO_CALLS 22.0.0.11 This is the Subnet2 subnet 24 23.0.0.0 true true Routing2 RTSP 23.0.0.2 POP 23.0.0.3 SMTP 23.0.0.4 DNS 23.0.0.5 HTTPS 23.0.0.6 HTTP_BROWSING 23.0.0.7 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.1 60 20 0.005 85 75 85 75 50 0.1 1600 500 30 30 2000 CLIENT2 720 5 CLIENT1 120 1 CLIENT1 170 2 CLIENT1 730 3 CLIENT1 400 4 CLIENT1 310 1 CLIENT2 40 1 CLIENT2 40 1 CLIENT2 40 2 CLIENT1 130 6 CLIENT2 40 3 CLIENT2 120 4 CLIENT1 120 5
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [wait 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/ISR3945e_B2B_REAL1G_NBAR.xml0000777000006000000600000020061512236027770016664 0ustar apacheapache SANDBOX Back_to_back ISR3945E REALISTIC NBAR PERFORMANCE TEST NBAR UUT.uut.IMAGE=/auto/tftp-users-sj/cmukhopa/c3900e-universalk9-mz.SPA.153-2.25.M0.11;UUT.uut.proto_pack= Avalanche(device,mgt_ip) "" uut(device,hostname) "" uut(device,console) "" uut(device,chassis_type) "3945" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) uut(Avalanche.ethernet.1,media) uut(Avalanche.ethernet.1,conn_id) 1 uut(Avalanche.ethernet.1,carriercard) C3900-SPE250/K9 uut(Avalanche.ethernet.2,intf) uut(Avalanche.ethernet.2,speed) uut(Avalanche.ethernet.2,media) uut(Avalanche.ethernet.2,conn_id) 2 uut(Avalanche.ethernet.2,carriercard) C3900-SPE250/K9 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.2,intf) Avalanche(uut.ethernet.2,speed) Avalanche(uut.ethernet.2,conn_id) 2 4 traffic_gen1 FROM_TITAN 2900 0 uut 1 SERVER1 FROM_TITAN uut 2 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN Avalanche 2 CLIENT1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload !default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown !default interface $uut_data(uut,SERVER1) interface $uut_data(uut,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.0.4.0 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false RC4-MD5 TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco RC4-MD5 TLSv1 10k_60K 0 35000 25000 1 true 32K 32000 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 30 30 1000 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 33 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 70 6 CLIENT1 8 7 CLIENT1 7 8 CLIENT1 7 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 23 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_license -router_name uut -license appxk9] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "clear counters"] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [Avalanche4_2_init] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] 880_while [Avalanche4_2_done traffic_gen1] [sleep 10] [880_Monitor_disable] NBAR BASIC CHECK [simple_uut_regex -router_name uut -name "NBAR BASIC CHECK " -regex {Total\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery stats packet-count | inc Total} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR HTTP CHECK " -regex {http\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SSL CHECK " -regex {ssl\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i ssl} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTP CHECK " -regex {rtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR POP3 CHECK " -regex {pop3\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i pop3} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SMTP CHECK " -regex {smtp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i smtp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR DNS CHECK " -regex {dns\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i dns} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR SIP CHECK " -regex {sip\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i sip} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR RTSP CHECK " -regex {rtsp\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i rtsp} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "NBAR ORACLE CHECK " -regex {oracle-sqlnet\s+\d{4}.*\d{4}} -show_command {show ip nbar protocol-discovery | i oracle-sqlnet} -sleep 5 -retry 2] ! Check for tracebacks [simple_uut_regex_neg -router_name uut -name "Tracebacks " -regex {Traceback} -show_command {show logging | i Traceback} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No alignment data} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No spurious memory} -show_command {show align} -sleep 5 -retry 2] [simple_uut_regex -router_name uut -name "Memory check " -regex {No data inconsistency errors have been} -show_command {show data-corruption} -sleep 5 -retry 2] ! Cleanup [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]
      site_pro/XML/test1.xml0000777000006000000600000021337512226110337014351 0ustar apacheapache SANDBOX 2Routers ISR3945 REALISTIC CEF CENT UUT.uut.IMAGE=/auto/tftp-sjc-users5/anuragb/c3900-universalk9-mz.SSA.3900_current;UUT.uut2.IMAGE=/auto/tftp-joaofer/asr1001-universalk9.LATEST; Avalanche(device,mgt_ip) "172.27.63.191" uut(device,hostname) "R2_R11" uut(device,console) "telnet " uut(device,chassis_type) "3945" uut2(device,hostname) "" uut2(device,console) "" uut2(device,mgt_ip) "" uut2(device,chassis_type) "asr1001" uut(Avalanche.ethernet.1,intf) uut(Avalanche.ethernet.1,speed) ether1000 uut(Avalanche.ethernet.1,conn) p2p uut(Avalanche.ethernet.1,conn_id) 1 uut(uut2.ethernet.1,intf) uut(uut2.ethernet.1,speed) ether1000 uut(uut2.ethernet.1,conn) p2p uut(uut2.ethernet.1,conn_id) 1 uut2(uut.ethernet.1,intf) uut2(uut.ethernet.1,speed) ether1000 uut2(uut.ethernet.1,conn) p2p uut2(uut.ethernet.1,conn_id) 1 uut2(Avalanche.ethernet.1,intf) uut2(Avalanche.ethernet.1,speed) ether1000 uut2(Avalanche.ethernet.1,conn) p2p uut2(Avalanche.ethernet.1,conn_id) 1 Avalanche(uut.ethernet.1,intf) Avalanche(uut.ethernet.1,speed) ether1000 Avalanche(uut.ethernet.1,conn) p2p Avalanche(uut.ethernet.1,conn_id) 1 Avalanche(uut2.ethernet.1,intf) Avalanche(uut2.ethernet.1,speed) ether1000 Avalanche(uut2.ethernet.1,conn) p2p Avalanche(uut2.ethernet.1,conn_id) 1 4 traffic_gen1 FROM_TITAN 2900 0 uut2 1 SERVER1 FROM_TITAN uut 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut lab FROM_TITAN uut2 1 WAN1 FROM_TITAN Avalanche 1 CLIENT1 FROM_TITAN FROM_TITAN FROM_TITAN uut2 lab FROM_TITAN Avalanche 1 SERVER1 FROM_TITAN uut 1 WAN1 FROM_TITAN /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut] FROM_RUN_PARAMETERS Filled by Controller after reload default interface $uut_data(uut,CLIENT1) default interface $uut_data(uut,WAN1) ! CENT CONFIG ! interface Loopback0 ip address 10.0.0.2 255.255.255.255 no shutdown ! cent master branch source-interface Loopback0 hub 10.0.0.1 ! cent border master 10.0.0.2 source-interface Loopback0 ! ! INTERFACES THAT CONNECT TO AVALANCHE ! default interface $uut_data(uut,CLIENT1) interface $uut_data(uut,CLIENT1) ip address 21.0.0.1 255.0.0.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT ! default interface $uut_data(uut,WAN1) interface $uut_data(uut,WAN1) ip address 24.0.0.1 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.2 0.0.0.0 network 21.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/simple_uut_performance.exp [simple_uut_performance_callback uut2] FROM_RUN_PARAMETERS Filled by Controller after reload ! ! SET DEFAULTS default interface $uut_data(uut2,SERVER1) default interface $uut_data(uut2,WAN1) ! interface Loopback0 ip address 10.0.0.1 255.255.255.255 no shutdown ! ! cent master hub source-interface Loopback0 border 10.0.0.1 cent-interface $uut_data(uut2,WAN1) external green class POL_1 sequence 10 match dscp default policy best-effort class POL_2 sequence 20 match dscp ef policy voice class POL_3 sequence 30 match dscp af41 policy real-time-video class POL_4 sequence 40 match dscp af11 policy bulk-data class POL_5 sequence 50 match dscp cs1 policy scavenger class POL_6 sequence 60 match dscp af21 policy low-latency-data class POL_7 sequence 70 match dscp cs6 policy custom priority 1 loss threshold 2 priority 2 one-way-delay threshold 100 class POL_8 sequence 80 match dscp af31 policy custom priority 1 loss threshold 1 priority 2 one-way-delay threshold 100 ! ! ! cent border master 10.0.0.1 source-interface Loopback0 ! ! ! INTERFACES THAT CONNECT TO AVALANCHE ! interface $uut_data(uut2,SERVER1) ip address 22.0.0.1 255.255.255.0 no shutdown ! ! ! INTERFACES THAT CONNECT TO UUT2 ! interface $uut_data(uut2,WAN1) ip address 24.0.0.2 255.255.255.0 no shutdown ! router eigrp 100 network 10.0.0.1 0.0.0.0 network 22.0.0.0 network 24.0.0.0 ! show proc cpu | inc util five seconds: ([0-9]+)% % show proc cpu | inc util five seconds: [0-9]+%/([0-9]+)% % show proc cpu | inc util one minute: ([0-9]+)% % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+([0-9]+) % show platform hardware qfp active datapath utilization summary | i Processing Processing: Load \(pct\)[ \t\r]+[0-9]+[ \t\r]+([0-9]+) % /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/avalanche4_2.exp [avalanche_call_back traffic_gen1] /auto/td-devtest/avalanche/realistic_base ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Default Net1 5 avalanche_mgt_IP Inf0 CLIENT1 CLIENT1_InterfaceDisplayString false true Sessions 100 120 6000 120 Sessions Flat Seconds 144 60 60 Flat Seconds 144 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 78 60 60 Flat Seconds 78 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 146 60 60 Flat Seconds 146 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 34 60 60 Flat Seconds 34 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 62 60 60 Flat Seconds 62 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 8 60 60 Flat Seconds 8 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 24 60 60 Flat Seconds 24 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 26 60 60 Flat Seconds 26 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 0 60 60 Flat Seconds 0 0 6000 Flat Seconds 0 60 60 Sessions Flat Seconds 28 60 60 Flat Seconds 28 0 6000 Flat Seconds 0 60 60 Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP callee@spirent.com caller@spirent.com 30000 30000 22.0.0.13 1 voice300 5060 UDP Phoneboot_0001 22 Inf0 Realworld 21.0.0.1 0 0.0.0.0 true 8 21.0.0.0 true Routing0 21.0.0.2-21.1.134.100 001voice 100 002citrix 100 003oracle 100 004exchange 100 005http_10k_60k 100 006http_browsing 100 007pop 100 008rtsp_160k 100 009rtsp_250k 100 010https 100 011smtp 100 012dns 100 013video_calls 100 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 voice load_voice 65535 voice_300_sec.wav voice300 voice300 G.729AB Content true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 citrix load_citrix 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 video_calls load_video_calls 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 oracle load_oracle 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 exchange load_exchange 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_10k_60k load_http_10k_60k 65535 true true 31000 false true 1 RC4-MD5 SSLv2 SSLv3 TLSv1 http_browsing load_http_browsing 65535 true true 31000 6000 rtsp_160k load_rtsp 554 -- None -- RTP_UDP 6000 rtsp_250k load_rtsp 554 -- None -- RTP_UDP false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 pop load_pop 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 smtp load_smtp 65535 31000 false false 1 RC4-MD5 SSLv2 SSLv3 TLSv1 dns load_dns 65535 31000 false false 1 false AES128-SHA TLSv1 https load_https 65535 true true 31000 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> sipng://phonebook=Phonebook_0001 ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/CITRIX/Citrix ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Oracle/oracle ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/H264/H264_30s_312kbps ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> SAPEE://user/Exchange/Exchange ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get http://22.0.0.4/http_10k_60k 1 POST http://22.0.0.4/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> ASSIGN VARIABLE <url UNIFORM 1 1000> 1 get http://22.0.0.6/<APPLY url> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_160k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 rtsp://22.0.0.5/cawsample_250k_60s_va.mov ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user1 PASSWORD=user1 CHECK RETR pop3://22.0.0.7 USER=user2 PASSWORD=user2 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> pop3://22.0.0.7 USER=user3 PASSWORD=user3 CHECK RETR ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,4000> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,16000> ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> smtp://22.0.0.8 FROM=<smtpdb^1> TO=<smtpdb^2> DATA=<FIXED,90000> ASSIGN VARIABLE <rand UNIFORM 1000 2000> THINK <rand> DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com DNS A 22.0.0.9 www.cisco.com ASSIGN VARIABLE <rand UNIFORM 1000 5000> THINK <rand> 1 get https://22.0.0.10/http_10k_60k 1 POST https://22.0.0.10/<POST_BODY: URLENC KEY=foobar, LENGTH=10000> on on off From,To,Subject,Size user1@from.com,user1@to.com,this is from user1,2000 user2@from.com,user2@to.com,this is from user2,4000 user3@from.com,user3@to.com,this is from user3,8000 user4@from.com,user4@to.com,this is from user4,16000 user5@from.com,user5@to.com,this is from user5,32000 ./files/content/voice_300_sec.wav ./files/content/cawsample_250k_60s_va.mov.caw ./files/content/cawsample_160k_60s_va.mov.caw ./files/content/reservedIndexFile ./files/content/sapee/pcap/user/CITRIX/stream_2.pcap ./files/content/sapee/pcap/user/Oracle/stream_1.pcap ./files/content/sapee/pcap/user/Exchange/stream_1.pcap ./files/content/sapee/pcap/user/H264/stream_1.pcap SFR SFR Main Traffic Profile Net1 5 avalanche_mgt_IP Inf0 SERVER1 SERVER1_InterfaceDisplayString false Net1 10 0 ./CITRIX Citrix 31 stream_2 22.0.0.12 1494 24 2 PRESERVE 5000 ./Oracle oracle 23 stream_1 22.0.0.2 1521 0 0 PRESERVE 5000 ./Exchange Exchange 1 stream_1 22.0.0.3 5003 0 0 PRESERVE 500 ./H264 H264_30s_312kbps 0 stream_1 22.0.0.11 16476 0 0 PRESERVE 500 CFIN stream_2.pcap 31 Citrix ./CITRIX 10.150.155.60 1088 10.0.53.200 1494 24 TCP SFIN stream_1.pcap 23 Oracle ./Oracle 10.1.1.38 2811 10.1.3.81 1521 0 TCP SFIN stream_1.pcap 1 Exchange_Mapi ./Exchange 10.40.60.44 1693 10.40.50.228 5003 0 TCP stream_1.pcap 0 10.34.210.72_16476-172.19.151.160_60282-UDP ./H264 172.19.151.160 60282 10.34.210.72 16476 0 UDP Inf0 Subnet1 22.0.0.1 0 0.0.0.0 This is the Subnet1 subnet 24 22.0.0.0 true true Routing1 VOICE 22.0.0.13 CITRIX 22.0.0.12 ORACLE 22.0.0.2 EXCHANGE 22.0.0.3 HTTP_10K_60K 22.0.0.4 RTSP 22.0.0.5 HTTP_BROWSING 22.0.0.6 POP 22.0.0.7 SMTP 22.0.0.8 DNS 22.0.0.9 HTTPS 22.0.0.10 VIDEO_CALLS 22.0.0.11 53 DNS zone1 5060 SIPNG_Endpoint voice_300_sec.wav voice300 true voice300 G.729AB Content off UDP 0 80 SapeeTCP user/CITRIX/Citrix 2 1521 SapeeTCP user/Oracle/oracle 0 5003 SapeeTCP user/Exchange/Exchange 0 80 SapeeUDP user/H264/H264_30s_312kbps 0 80 HTTP Microsoft-IIS/6.0 1 false 100 http_10k_60k 0 80 HTTP Microsoft-IIS/6.0 2 false 100 32k 0 554 Streaming true 110 POP3 3 user1 0 1 ./files/pop3messages/890_config.pop3 user2 0 1 ./files/pop3messages/table-1-16K.pop3 user3 0 1 ./files/pop3messages/digitalsales.pop3 25 SMTP 0 0 0 true 443 HTTPS Microsoft-IIS/6.0 false 100 http_10k_60k 0 cisco AES128-SHA TLSv1 1000 ./files/certs/certificate_from_wae.pem false false 10k_60K 0 35000 25000 1 true 32K 32000 2 20000 3 true true 10 1 true www.cisco.com 1 1 0
      100.100.100.100
      Client loadspec,desiredLoadSpecCount clients Client http,successfulTxns clients Client http,unsuccessfulTxns clients Client http,successfulTxnsPerSec clients Client http,unsuccessfulTxnsPerSec clients Client driver,rxBandwidth mb/s 1000 Client driver,txBandwidth mb/s 1000 Client tcp,averageTimeToSynAck ms 1000 Client url,averageRespTimePerUrl ms Client url,averageRespTimePerPage ms Client memory,rcvQueueLength unit Server driver,rcvQueueLength unit packet_loss % Total_Bandwitdh % 0.05 120 20 0.01 85 75 50 0.1 1200 500 30 30 500 CLIENT1 144 1 CLIENT1 24 2 CLIENT1 34 3 CLIENT1 146 4 CLIENT1 80 5 CLIENT1 62 6 CLIENT1 8 7 CLIENT1 8 8 CLIENT1 8 9 CLIENT1 26 10 CLIENT1 8 11 CLIENT1 24 12 CLIENT1 24 13
      30 [880_Monitor_disable] [simple_uut_performance_init uut] [simple_uut_performance_init uut2] [Avalanche4_2_init] [simple_uut_performance_add_config uut "license boot level adventerprise"] [simple_uut_performance_add_config uut "license boot level appxk9"] [simple_uut_performance_exec uut "write"] [simple_uut_reload_with_tftpdnld -router_name uut -tftp_server 223.255.254.245] [simple_uut_performance_add_config uut2 "license boot level adventerprise"] [simple_uut_performance_add_config uut2 "license boot level appxk9"] [simple_uut_performance_exec uut2 "write"] [simple_uut_reload_with_tftpdnld -router_name uut2 -tftp_server 223.255.254.245] [simple_uut_performance_config uut] [simple_uut_performance_exec uut "show run"] [simple_uut_performance_config uut2] [simple_uut_performance_exec uut2 "show run"] [sleep 5] ! CENB BASIC BORDER CONNECTION CHECK [simple_uut_regex -router_name uut -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [simple_uut_regex -router_name uut2 -name "UUT BR CONNECTION UP" -regex {CONNECTION SUCCESSFUL} -show_command {show cent border status | i MC connection info} -sleep 5 -retry 2] [880_Monitor_enabled] [simple_uut_performance_monitor_enable uut] [simple_uut_performance_monitor_enable uut2] [Avalanche4_2_start traffic_gen1] [sleep 60] [Avalanche4_2_trottle_enable traffic_gen1] [sleep 600] [simple_uut_performance_exec uut "profile task interrupt"] [simple_uut_performance_exec uut "profile 414c288 0415270c 4"] [simple_uut_performance_exec uut "profile start"] [sleep 30] [simple_uut_performance_exec uut "profile stop"] 880_while [Avalanche4_2_done traffic_gen1] [sleep 5] [880_Monitor_disable] [simple_uut_performance_exec uut "show profile detail"] [simple_uut_performance_exec uut "show cent master cent-tech"] [simple_uut_performance_exec uut "show cent border cent-tech"] [simple_uut_performance_exec uut2 "show cent master cent-tech"] [simple_uut_performance_exec uut2 "show cent border cent-tech"] [Avalanche4_2_cleanup] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_analyse.exp [880_Analyse_avg -monitor TRUE -probe uut:QFP -store_variable QFP_avg] [880_Analyse_avg -monitor TRUE -probe uut:CPU -store_variable CPU_avg] [880_Analyse_avg -monitor TRUE -probe uut:iCPU -store_variable iCPU_avg] [880_Analyse_avg -monitor TRUE -probe traffic_gen1:Total_Bandwitdh -store_variable Total_Bandwitdh] [880_Analyse_common -monitor TRUE -probe traffic_gen1:flags -store_variable main_limit] [880_Analyse_last -monitor TRUE -probe traffic_gen1:UnSuccessful_Txns -store_variable UnSuccessful_Txns] [880_Analyse_last -monitor TRUE -probe traffic_gen1:Successful_Txns -store_variable Successful_Txns] [880_Analyse_compare -name failed_transations_check -variable1 Successful_Txns -variable2 UnSuccessful_Txns -compare GT -variable2_adjust 100] [880_Analyse_compare -name total_bandwidh_check -variable1 Total_Bandwitdh -fix_variable2 10 -compare GT ] /auto/stg-devtest/joaofer/stg_reg/utils/880/controller/performance_report.exp [880_performance_report -UUT uut -Avalanche traffic_gen1 -test_id $test_id -run_parameters_file $run_parameters_file -xml_file $xml_file -user $user -LOG $LOG_FILE -STATS $PERMANENT_STAT_FILE]